FM радио модуль RDA5807M

Однажды на страницах Aliexpress наткнулся на интересную и недорогую микросхему – RDA5807m. Это FM тюнер, в распоряжении которого имеется I2C интерфейс, стерео выход звука, цифровые настройки громкости звука, частоты радиостанции, поддерживается RDS. Такое радио часто можно встретить в формате модуля, на котором расположена микросхема тюнера, кварц на частоту 32,768 кГц и пара конденсаторов – ничего особенного просто чуть удобнее паять. И в честь этой покупки предлагаю рассмотреть конструкцию на микроконтроллере несложного радиоприемника.

Лот на Aliexpress

Характеристики FM-тюнера RDA5807m:

  • Все в одном корпусе, практически не требуется внешних компонентов
  • КМОП технология
  • Полоса частот от 50 МГц до 115 МГц
  • Настраиваемый шаг между каналами – 200 кГц, 100 кГц, 50 кГц, 25 кГц
  • Поддерживает RDS/RBDS
  • Высококачественный АЦП
  • Синтезатор частот полностью встроен в микросхему
  • Автоматическая регулировка усиления
  • Цифровое адаптивное подавление шума
  • Поддержка выхода звука как в моно, так и в стерео
  • Индикатор уровня сигнала (Receive signal strength indicator — RSSI) и SNR
  • Усилитель низких частот
  • Регулировка звука и функция mute
  • Цифровой интерфейс I2C
  • Нагрузка на выходе звукового канала 32 Ом
  • Встроенный LDO регулятор
  • Корпус MSOP (10 выводов)

Электрические параметры FM тюнера RDA5807m:

  • Напряжение питания — 3 вольта (от 1,8 до 3,3 вольт)
  • Температура окружающей среды — 27 градусов Цельсия (от -20 до +75 градусов Цельсия)
  • Ток потребления в рабочем режиме — до 21 мА
  • Ток потребления в спящем режиме – 5 мкА
  • Коэффициент нелинейных искажений – 0,15 – 0,2 %
  • Максимальная частота I2C – 400 кГц

Схема радиоприемника на базе тюнера RDA5807m:

В качестве микроконтроллера будем использовать ATmega8a. Это очень популярный и общедоступный микроконтроллер. Использовать его можно как в DIP корпусе, так и в TQFP (здесь лишь расположение выводов различается для этой схемы). Для продолжительной корректной работы этого микроконтроллера на выводе reset должен быть положительный уровень напряжения, для этой цели используется резистор R1, который подтягивает напряжение питания, создавая надежный потенциал, что предотвращает самопроизвольное перезапускание микроконтроллера. Кнопка S1 предназначена для ручной перезагрузки микроконтроллера. В качестве тактового генератора используется внутренний RC генератор на частоту 8 МГц. В качестве индикатора в схеме используется ЖК дисплей на базе микроконтроллера PCD8544 или более известен этот экран по названию Nokia 5110 или Nokia 3110. Для подключения такого дисплея к микроконтроллеру не нужны дополнительные компоненты, все соединяется в соответствии со схемой. Вся схема устройства питается от напряжения 3,3 вольта, которые получаем посредством стабилизатора AMS1117-3,3. Но для получения звука достаточной громкости необходимо использовать усилитель звука, который питается от более высокого напряжения. В схеме применен усилитель на базе микросхемы TDA7056B, однако этот усилитель можно заменить на абсолютно любой другой, подходящий для вас. Данный усилитель звука имеет регулировку громкости потенциометром R6. Схема усилителя построена в соответствии с даташитом, хотя ее можно и доработать для более качественного звука. TDA7056B является моно усилителем, поэтому от модуля RDA5807m берем лишь один канал звука, либо параллелим их вместе. Если использовать наушники с сопротивлением 32 Ом, то можно слушать радио без усилителя, согласно даташиту на тюнер. Для усилителя на TDA7056B оптимально использовать динамик с сопротивлением 8 Ом. Модуль радио RDA5807m получает настройки от микроконтроллера посредством цифрового интерфейса I2C. Для работы I2C необходимы резисторы R3 и R5, которые формируют положительный перепад напряжения на линиях передачи данных. Из особенностей I2C в RDA5807m необходимо отметить, что в модуля нет возможности обратиться к конкретному регистру, чтобы настроить параметры в одном регистре, необходимо перезаписать и все остальные. После старта I2C и передачи адреса микросхемы с битом чтения или записи указатель регистра автоматически становится на начало регистров чтения или на начало регистров записи и после обращения к одному (первому) регистру указатель автоматически переходит на другой (второй, третий и так далее) регистр. Диаграмму формирования сигналов по линиям I2C для модуля RDA5807m можно посмотреть в даташите, который прилагается в конце статьи. Там же находится и карта регистров радио. Мое мнение, такая организация управления достаточно неудобная, хотя и имеет место быть. Ну и наконец, в схеме есть четыре кнопки – S2 – S5, которыми можно настраивать частоту радиостанции или перебирать список радиостанций для города Минска.

По поводу работы радио. Принимает модуль RDA5807m сигнал радио достаточно уверенно, иногда лучше радио, встроенного в мобильный телефон, иногда хуже. При этом в качестве антенны использовался кусок провода (примерно 50 см) и к тому же все это располагалось вблизи от WiFi антенны, которая, скорее всего, вносила помехи в прием. В разное время суток качество сигнала может отличаться по множеству причин.

Все это безобразие собиралось, проверялось на отладочной плате:

Усилитель на TDA7056B собран на отдельной плате в виде небольшого модуля:

Форм фактор модуля RDA5807m не очень удобный, поэтому был изготовлен небольшой переходник на штыревые соединения с шагом между гребенками для установки на беспаечную макетную плату:

Распиновка модуля радио, согласно источникам, изготавливавших этот продукт:

Переходник на штырьки сохраняет порядок расположения выводов исходного модуля.

Ну, и микроконтроллер Atmega8a в минимальной отладочной плате:

В память микроконтроллер изначально записаны 15 популярных радиостанций города Минска (к слову схема адаптирована лишь к этому городу по сохраненным в памяти частотам радиостанций, однако при желании можно настроить под любой другой город, либо вручную сохранять заданное количество станций). Перебор сохраненных станций осуществляется кнопками S4 и S5, последняя выбранная станция сохраняется в eeprom и загружается при следующем включении. Обычный поиск радиостанций осуществляется кнопками S2 и S3, шаг составляет 100 кГц. Будем считать данный функционал основой, а любые изменения можно внести в исходный код, предоставленный в конце статьи, перекомпилировать и получить новую прошивку.

В целом RDA5807m достаточно неплохой тюнер среднего уровня, набор настроек позволяет использовать практически любые функции, связанные с приемом радиосигнала. Размер же самой микросхемы и отсутствие необходимости в обвязке большим количеством дополнительных элементов позволяет встраивать радио почти в любое устройство.

Для программирования микроконтроллера необходимо знать конфигурацию фьюз битов, скриншот из AVR Studio:

К статье прилагается прошивка для микроконтроллера ATmega8a, исходный код в программе AVR Studio 4, даташит на RDA5807m и небольшое видео.


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

IC1
МК AVR 8-битATmega8A1
IC2
Аудио усилительяTDA7056B1
Или любой другой усилительIC3
Радио модульRDA5807M1
Готовый модуль с обвязкойVR1
Линейный регуляторL7805AB1
VR2
Линейный регуляторAMS1117-3.31
C1, C4, C5, C7, C12
Конденсатор100 нФ5
C2
Электролитический конденсатор470 мкФ1
C3, C9
Электролитический конденсатор10 мкФ2
C6, C10
Электролитический конденсатор220 мкФ2
C8
Конденсатор470 нФ1
ПленочныйC11
Конденсатор1 мкФ1
R1, R3, R5
Резистор10 кОм3
R2
Резистор4.7 кОм1
R4
Резистор100 кОм1
R6
Переменный резистор1 МОм1
HG1
LCD-дисплейPCD85441
Nokia 5110S1-S5
Тактовая кнопкаTC-A1095
Ls1
Динамик3 Вт1
Сопротивление 8 — 32 ОмДобавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.