Fm стерео радио rda5807m

Портативный FM-приемник с радиомодулем RDA5807M с RDS.

Автор: Александр Бондарь
Опубликовано 10.04.2018
Создано с помощью KotoRed.

В интернете можно найти довольно много вариантов портативных FM радиоприемников с чипами RDA5807M или RDA5807FP. Однако многие из них не являются портативными и компактными, питаются от источника 3…5 В и имеют ограниченную функциональность. Я хотел создать приемник, который бы отвечал всем моим требованиям, а именно:
— Небольшой размер (помещается в карман рубашки);
— 2 «пальчиковые батарейки» или «мизинчиковые батарейки» или перезаряжаемые батареи в качестве источника питания; напряжение до 2 В
— Яркий OLED-дисплей;
— Два режима работы — режим частотного диапазона с возможностью сохранения станций в памяти и режим с фиксированными настройками;
— Автоматическое отключение питания;
— блокировка клавиш от случайного нажатия;
— кнопка включения/выключения питания;
— регулировка громкости с помощью кнопок.

В результате был разработан приемник, принципиальная схема которого показана ниже. Кнопки названы в произвольном порядке, чтобы диаграмму было легче читать.

ZQ1 4000 МГц HC-49SM кварцевый резонатор -1шт.
C1,C2 Конденсатор 0805 22pF — 2 шт.
C3,C7-C9 0,1мкФ Конденсатор 0805 — 4шт.
C4, C12, C13 Танталовый конденсатор типа D 470 мкФ x 10 В — 3 шт.
C5,C6 Конденсатор 0805 1,0 мкФ — 2 шт.
С10 Конденсатор 0805 10,0 мкФ -1шт.
С11 Конденсатор КТ4-23 5-25 пФ (аналог имп.) — 1 шт.
C14 Конденсатор 0805 2,2 мкФ — 1 шт.

DD1 Микроконтроллер ATmega328p-AU — 1 шт.

HG1 OLED 0,96 128×64 сине-желтый — 1 шт.

L1 Катушка 0,1 мкГн 5 витков провода 0,5 мм с резьбой 4 мм — шт.
L2,L3 дроссель LQH32MN6R8K 6.8µH — 2шт.

SB1-SB13 SOP-114HST мембранная кнопка — 13шт.

U1 Модуль Rrd-102v2.0 — 1шт.

X1 Штекер PLD2-12S — 1 шт.

X2 Разъем PJ-327A — 1 шт.

Приемная пластина была изготовлена с использованием метода LUT. В круглых площадках были просверлены отверстия, а крестовины припаяны на место.

В качестве корпуса ствольной коробки был использован корпус от китайского ресивера Aliexspress. Для программирования микроконтроллера использовалась программа AVRDUDE. Вот ФУЗ:

Приемник в футляре:

И, наконец, работающий приемник:

Для прослушивания использовались наушники Urbanfun hi-fi. Качество звука хорошее, басы присутствуют.

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

Особенности FM-тюнера RDA5807m:

  • Все в одном корпусе, практически без внешних компонентов.
  • КМОП-технология
  • Диапазон полосы пропускания составляет от 50 МГц до 115 МГц.
  • Регулируемое расстояние между каналами — 200 кГц, 100 кГц, 50 кГц, 25 кГц.
  • Поддерживает RDS/RBDS
  • Высококачественный АЦП
  • Встроенный синтезатор частоты
  • Автоматическая регулировка усиления
  • Цифровое адаптивное шумоподавление
  • Поддерживает вывод звука как в моно, так и в стерео режиме
  • Индикатор уровня принимаемого сигнала (RSSI) и SNR (SNR)
  • Усилитель баса
  • Регулировка тембра и функция отключения звука
  • Цифровой интерфейс I 2 C
  • Нагрузка звукового выхода 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 (в данной схеме отличается только конфигурация выводов). Чтобы этот микроконтроллер мог корректно работать в течение длительного времени, на контакте сброса должен быть положительный уровень напряжения, и для этого используется резистор 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 и короткое видео.

Я играл с Bluetooth-модулем MP3, экспериментировал с радиоприемником (плохая чувствительность, улучшить ее пока не удалось, поэтому я забыл) и наткнулся на радиомодуль RDA5807m для Arduino. Я решил попробовать, выяснил, как это работает на Arduino Uno — обычно это работает.
Я вспомнил, что у меня где-то валяется DigiSpark, и решил использовать его, чтобы попробовать построить FM-радио. У Инеты есть DigiSpark + Rda5807m не знаю, но у Attiny13a есть. Обычно я пытаюсь сделать что-то среднее, может быть, это сработает. У меня не получилось (я не силен в программировании).

Затем я решил просто воспроизвести схему Attiny13a — купил все детали в местном радиомагазине и собрал схему.
Контроллер Attiny13a — 1шт;
Стабилизатор AMS1117 — 1шт;
Rda5807m радио — 1шт;
Керамические конденсаторы 10μF на пластине — 3шт;
Тактические пуговицы — 3шт.

Код для микроконтроллера взят из первой ссылки (источник Inspiration).
Спасибо Evgenij77 из mysku.ru за мод прошивки:
softi2c_13_radio_manual_VOL-CH.hex
Предохранители attiny13: высокий:FF низкий:6A

Изменение положений с помощью кнопок «CH +» и «CH -«.
Регулировка громкости: кнопки «VOL» и «CH +» или «VOL» и «CH -» комбинацией кнопок «VOL +» и «CH +».
(Удерживая нажатой кнопку ‘VOL’, нажмите ‘CH +’ или ‘CH -‘).
Режим поиска каналов активируется при включении питания и удержании кнопки «VOL».
Используйте кнопки «CH +» и «CH -» для поиска станций. Короткое нажатие эквивалентно шагу 0,1 МГц.
Если удерживать кнопку нажатой, частота изменяется на 2 шага в секунду.
Если в режиме поиска каналов нажать кнопку «VOL», канал будет сохранен в памяти.
Чтобы выйти из режима поиска каналов, выключите питание.
«Чтобы войти в режим ‘Моно/Стерео’, включите питание и нажмите кнопку ‘CH -‘.
«Чтобы войти в режим ‘Bass Boost’, включите питание, нажав кнопку ‘CH +’.
Все установленные режимы сохраняются в EEPROM.
Кнопки ‘CH +’ — 5-я ножка МК, ‘CH -‘ — 6-я ножка, ‘VOL’ — 7-я ножка.

Я внес некоторые дополнения в схему:
Антенная цепь вместе с внутренним входным сопротивлением тюнера обеспечивает необходимую полосу пропускания и снижает влияние сильных помех. Параметры этой схемы были взяты из спецификации.
Советую подключить конденсаторы 0,01-0,1 мкФ параллельно кнопкам (Evgenij77), не хватает памяти для программного дебаунсинга.

Есть более интересная прошивка: прошивка радио с двумя кнопками для управления
Существуют и другие варианты прошивки.

Выводы:
Чувствительность приемника превосходна.
Встроенная программа с ручным сканированием каналов позволяет настраиваться только на интересующие вас каналы, и даже на те, которые приемники обычно пропускают при автоматическом сканировании из-за слабого сигнала.
— Схема антенны вызывает сомнения. После добавления антенного контура прием стал слабее, и мне пришлось его отключить.

Оцените статью
Добавить комментарий