Решил собрать себе FM приемник на ATmega8 и модуле RDA5807M. Минимум электронных компонентов. Тем более что все в наличии. Спасибо площадке AliExpress. В качестве индикатора приемника применил дисплей Nokia 5110. Собранный приемник очень функциональный: регулировка громкости, сканирование диапозона в пределах 87…108 МГц, автопоиск радиостанций, регулировка контрастности дисплея, автоматическое отключение дисплея через 16 секунд в целях экономии батареи, удобно редактировать радиоканалы станций. Ну и конечно порадовало качество приема радиостанций - просто на высоте. За это отвечает модуль RDA5807M. Очень удобное меню управления . На борту всего пять тактильных кнопок управления. Более подробно будет описано ниже. Все это поместилось в корпус от блока питания купленного в радиомагазине за 120 рублей. В качестве источника питания приемника применена литиевая батарея тип 18650.
Внешний вид FM радиоприемника:
Описание:
Радиоприемник с управлением посредством микроконтроллера построен на базе модуля с тюнером RDA5807M. Возможно также применение отдельной микросхемы тюнера RDA5807FP совместно с часовым кварцем без изменения управляющей программы микроконтроллера. Принципиальная электрическая схема радиоприемника приведена в конце настоящего описания. Управляющая программа обеспечивает работу радиоприемника в радиовещательном FM диапазоне 87…108 МГц и рассчитана на использование микроконтроллера ATmega8, который работает на частоте внутреннего генератора 8 МГц.
Основные функции приемника:
Сканирование и запоминание станций в энергонезависимой памяти микроконтроллера. Возможность редактирования записанных в память частот, в том числе: изменение, добавление и удаление частот каналов приема. Переход в режим сканирования или редактирования производится при помощи меню при длительном нажатии (более 3 сек.) на кнопку CH+. Перебор станций, сохраненных в памяти вверх и вниз по списку, а также автопоиск станций вверх и вниз по диапазону кнопками CH+ или CH-. Переход из режима перебора радиостанций в режим автопоиска и обратно производится длительным нажатием на кнопку CH-. Плавная регулировка громкости кнопками V+ и V- с отключением звука при "0". Запись последней частоты настройки и громкости в энергонезависимую память. При включении начинает работу на сохраненной частоте с предыдущим уровнем громкости. Возможность настройки контрастности дисплея. Индикация номера станции и опознавание его по частоте при автопоиске. Частота настройки выводится цифрами тройной величины.
Индикация уровня сигнала на дисплее четырьмя столбиками. Индикация уровня громкости цифрами от 0 до 16. Индикация "Моно-Стерео" как на дисплее, так и светодиодом. Подсветка дисплея в течение 16 сек при включении и после нажатия на любую кнопку. Опциональная кнопка управления подсветкой. После включения приемника, по умолчанию, устанавливается рабочий режим перебора сохраненных в памяти радиоканалов (см. фото выше). Переход в другие режимы работы производится из этого рабочего режима.
Чтобы выбрать режим сканирования или редактирования частот радиостанций, нужно нажать и удерживать не менее 3 сек. в нажатом состоянии кнопку CH+. При этом на экране дисплея появится меню выбора режима работы (см. фото слева).
Сканирование.
Для записи частот радиоканалов, работающих в данной местности, необходимо перевести радиоприемник в режим сканирования частот, для чего нужно сначала по длительному нажатию кнопки CH+ войти в меню выбора режима работы, затем снова нажать кнопку CH+. В результате радиотюнер начнет сканирование и при обнаружении радиостанции на дисплее появляется изображение, показанное на фото. Здесь в верхней строке отображается уровень принимаемого сигнала, установленная пользователем громкость и режим воспроизведения моно или стерео (буквами M или S). На второй строке отображается порядковый номер радиоканала, на который в дальнейшем будет ссылаться программа. На третьей строке выводится широким шрифтом частота найденного канала. В трех нижних строках выводится подсказка, облегчающая управление. Далее, если данная частота является действительно радиостанцией, а не помехой или гармоникой, пользователь нажимает на кнопку V+ для записи частоты в память. После этого сканирование продолжается до обнаружения следующего радиоканала или до конца диапазона. Если это помеха, то найденную частоту можно пропустить без записи в память, нажав кнопку V-. По окончании сканирования приемник перейдет в рабочий режим. Процесс сканирования можно в любой момент прервать, если нажать на кнопку CH-. В этом случае приемник также переходит в рабочий режим, в котором можно настраиваться на сохраненные каналы нажимая кнопки CH+ или CH-. При этом происходит перебор каналов в том порядке, в котором они были записаны в память при сканировании.
Редактирование списка частот, занесенных в память.
Для редактирования частот радиоканалов, занесенных в память при сканировании, необходимо
перевести радиоприемник в режим редактирования частот, для чего нужно сначала по длительному нажатию кнопки CH+ войти в меню выбора режима работы, затем нажать кнопку V+.
В результате на экране дисплея появится меню выбора режима редактирования (см. фото слева), из которого можно перейти к нужному действию или выйти из режима редактирования в рабочий режим, если нажать на
кнопку СН-.
Изменение частоты настройки радиоканала.
Если пользователь желает изменить порядок следования радиоканалов при настройке на радиостанции,
он может сделать это путём изменения значений частот каналов, которые были записаны при сканировании. Т. е. пользователю должны быть известны частоты каналов радиовещания. Для изменения частоты выбранного в данный момент канала, нужно войти в меню редактирования и нажать на кнопку V+. При этом на экране дисплея появится информация, показанная на фото слева. Далее, нажимая на кнопку СН+, нужно выбрать редактируемый разряд числа, который при этом принимает инверсный вид. Затем, нажимая на кнопку V+ или V-, можно установить значение данного разряда и перейти к другому разряду, вновь нажимая на кнопку СН+. После установки всех разрядов числа, данную частоту можно записать в память, нажав на кнопку СН-. Если установленная частота находится вне диапазона 87…108 МГц, то при попытке её записать, будет выведено сообщение об ошибке ввода а частота записана не будет.
Добавление новой частоты радиоканала.
Если при сканировании какая-либо радиостанция была пропущена, ее частоту можно добавить в память. Для добавления новой частоты радиоканала, нужно войти в меню редактирования и нажать на кнопку СН+. При этом на экране дисплея появится информация, показанная на фото слева. На второй строке дисплея выводится принимаемая в данный момент частота. На нижних трех строках выводится подсказка, облегчающая управление. Пользователь может записать любую частоту в пределах диапазона 87…108 МГц. Для этого нажимая на кнопку СН+, выбрать редактируемый разряд числа, который при этом принимает инверсный вид. Затем, нажимая на кнопку V+ или V-, можно установить значение данного разряда и перейти к другому, вновь нажимая на кнопку СН+. После установки всех разрядов числа данную частоту можно записать в память, нажав на кнопку СН-, после чего данная частота записывается в конец списка и радиоприемник переходит в рабочий режим. Если установленная частота находится вне диапазона 87…108 МГц, то при попытке ее записать будет выведено сообщение об ошибке ввода и частота записана не будет
Удаление частоты радиоканала.
Если при сканировании ошибочно была сохранена в памяти частота помехи, или на каком-либо канале
плохие условия приема, то такую частоту (как и любую другую) можно удалить из памяти частот радиоканалов.
Для этого нужно настроиться на данный канал и затем войти в меню редактирования и нажать на кнопку V-.
При этом на экране дисплея появится информация, показанная на фото слева. Если теперь снова нажать на кнопку V-, то частота выбранного канала будет удалена из памяти. Чтобы выйти из этого режима без удаления частоты, нужно нажать кнопку СН-.
Режим автопоиска.
Кроме режима перебора сохраненных настроек станций, в программе предусмотрен режим автопоиска. Для перехода в режим автопоиска из режима перебора и обратно нужно длительно (3 сек.) удерживать в нажатом состоянии кнопку СН-. Если найденная в режиме автопоиска частота радиостанции уже записана в памяти, то в нижней строке отображается ее порядковый номер, иначе выводится сообщение о том, что эта частота неизвестна. В таком случае, при желании, пользователь может, не выходя из режима автопоиска, перейти в режим редактирования (при длительном нажатии на кнопку СН+) и сохранить частоту в памяти.
Регулировка громкости.
Кнопки V+ и V- в рабочем режиме служат для регулировки громкости. На дисплей при этом выводится условное значение громкости цифрами от 0 до 16. При каждом кратковременном нажатии на кнопку значение громкости изменяется на одну единицу. При удержании кнопки в нажатом состоянии производится плавное увеличение или уменьшение громкости звучания. При нулевом значении громкости звук полностью отключается. Значение громкости запоминается при каждой новой настройке на станцию. При включении радиоприемника уровень громкости устанавливается таким, каким он был при последней настройке на станцию. Если при нулевом значении громкости произвести настройку на другую частоту, то включается минимальная громкость.
Регулировка контрастности дисплея.
Параметры дисплеев имеют некоторый разброс значений, поэтому устанавливаемая в программе по умолчанию контрастность не всегда оптимальна для конкретного дисплея. Из-за этого возникает необходимость в настройке контрастности данного дисплея. Для настройки контрастности дисплея необходимо перевести радиоприемник в этот режим настройки, для чего нужно сначала по длительному нажатию кнопки CH+ войти в меню выбора режима работы, затем нажать кнопку V-. На экране дисплея появится информация, показанная на фото слева.
Теперь, нажимая на кнопки V+ или V-, можно изменить контрастность дисплея, при этом результат изменения сразу виден на дисплее. В нижней строке выводится значение контрастности, записываемое в дисплей. После получения желаемого результата, нужно нажать кнопку СН-. В результате новое значение контрастности будет записано в энергонезависимую память микроконтроллера и при последующих включениях радиоприемника оно будет использоваться для настройки дисплея.
Подсветка дисплея.
В программе радиоприемника предусмотрено управление подсветкой дисплея. Подсветка включается при включении радиоприемника и при нажатии на любую кнопку и гаснет, через 16 сек. после нажатия на кнопки управления. В программе предусмотрена также возможность подключения опциональной кнопки SB5 для принудительного управления подсветкой. Состояние подсветки изменяется при каждом нажатии на эту кнопку. Вывод 7 подсветки индикатора соединяется с выводом порта РD микроконтроллера без промежуточного транзисторного ключа, т. к. ток подсветки составляет всего 5,2 мА. Для индикатора Nokia5110 на плате синего цвета вывод подсветки нужно соединить с выводом порта PD7, для индикаторов на плате красного цвета этот вывод нужно соединить с выводом порта PD6. На схеме условно показано это соединение через джампер J1. В целях продления срока службы батареи питания светодиодный индикатор стереосигнала VD1 можно не устанавливать.
Схема приемника (более качественную можно скачать ниже с архива)
Распределение портов микропроцессора:
PB1 - D/C Выбор режима передачи данных (1) или команды (0) LCD
PB2 - СЕ Выбор чипа (0) LCD
PB3 - DIN Входные данные LCD
PB4 - RES Линия сброса LCD (0)
PB5 - CLK Линия тактирования LCD
PC2 - Светодиодный индикатор стерео-сигнала (1)
PC3 -
PC4 - (SDA) - Двунаправленная шина данных интерфейса I2C
PC5 - (SCL) - Двунаправленная шина тактирования интерфейса I2C
PD0 - Кнопка V+ увеличения громкости
PD1 - Кнопка V- уменьшения громкости
PD2 -
PD3 - Кнопка CH+ выбора следующей станции
PD4 - Кнопка CH- выбора предыдущей станции
PD5 - Кнопка вкл/откл подсветки дисплея
PD6 - Выходной инверсный сигнал подсветки дисплея
PD7 - Выходной прямой сигнал подсветки дисплея
При программировании Atmega8 необходимо запрограммировать следующие фьюзы: CKSEL0, CKSEL1, CKSEL3 и SUT0
Печатная плата разведена в программе Sprint Layout 6.0 на одностороннем текстолите и изготовлена с помощью лут технологии.
Готовая печатная плата с электронными компонентами, установленная в корпус приемника:
Что внутри корпуса приемника:
Дисплей Nokia5110 на отладочной плате:
B программе Sprint Layout 6.0 на плате все компоненты подписаны: smd резисторы и smd конденсаторы тип 1206, для стабилизации микроконтроллера и модуля FM RDA5807M используется AMS1117-3.3 на 3.3V. В качестве усилителя на выходе c модуля RDA5807M применил чип cke8002 мощностью до 2 ватт - аналог lm4871, только гораздо дешевле. Для заряда Li-ION аккумулятора применил готовый модуль на чипе TP4056. Питание приемника от стабилизированного источника питания 5v. У меня в качестве источника питания литиевая батарея 18650 с применением повышающего модуля mt3608, который настроил на 6V и через AMS1117-5 на 5V подал питание на приемник.