В разных источниках иногда приходилось видеть часы, которые вместо звонка будильника включали радиоприемник. Рассматривая модуль FM тюнера RDA5807m, пришла идея сделать что-то подобное.
Как обычно, без микроконтроллера не обойтись, схема устройства:
В качестве микроконтроллера будем использовать ATmega8a. Это очень популярный и общедоступный микроконтроллер. Использовать его можно как в DIP корпусе, так и в TQFP (здесь лишь расположение выводов различается для этой схемы). Для продолжительной корректной работы этого микроконтроллера на выводе reset должен быть положительный уровень напряжения, для этой цели используется резистор R4, который подтягивает напряжение питания, создавая надежный потенциал, что предотвращает самопроизвольное перезапускание микроконтроллера. Кнопка S1 предназначена для ручной перезагрузки микроконтроллера. В качестве тактового генератора используется внутренний RC генератор на частоту 8 МГц. В качестве индикатора в схеме используется ЖК дисплей на базе микроконтроллера PCD8544 или более известен этот экран по названию Nokia 5110 или Nokia 3110. Для подключения такого дисплея к микроконтроллеру не нужны дополнительные компоненты, все соединяется в соответствии со схемой. Вся схема устройства питается от напряжения 3,3 вольта, которые получаем посредством стабилизатора AMS1117-3,3 – VR1. Данный стабилизатор напряжения можно заменить на любой другой с выходным напряжением 3,3 вольта, также необходимо учитывать максимальное входное напряжение стабилизатора, чтобы напряжение, которое вы подаете на его вход, не превышало допустимое, что может вывести из строя компонент. Но для получения звука достаточной громкости необходимо использовать усилитель звука, который питается от более высокого напряжения. В схеме применен усилитель на базе микросхемы TDA7056B, однако этот усилитель можно заменить на абсолютно любой другой, подходящий для вас, например TDA2030, TDA2003 или другие. TDA7056B имеет регулировку громкости потенциометром R9. Схема усилителя построена в соответствии с даташитом, хотя ее можно и доработать для более качественного звука. TDA7056B является моно усилителем, поэтому от модуля RDA5807m берем лишь один канал звука, либо параллелим их вместе. Звуковой выход тюнера RDA5807m адаптирован для работы наушников с сопротивлением 32 Ом без усилителя звука, но в данной конструкции по определению использование наушников бессмысленно – включение радио в заданный промежуток времени должно разбудить хозяина. Для усилителя на TDA7056B оптимально использовать динамик с сопротивлением 8 Ом. Модуль радио RDA5807m получает настройки от микроконтроллера посредством цифрового интерфейса I2C. Для работы I2C необходимы резисторы R5 и R6, которые формируют положительный перепад напряжения на линиях передачи данных. Из особенностей I2C в RDA5807m необходимо отметить, что в модуля нет возможности обратиться к конкретному регистру, чтобы настроить параметры в одном регистре, необходимо перезаписать и все остальные. После старта I2C и передачи адреса микросхемы с битом чтения или записи указатель регистра автоматически становится на начало регистров чтения или на начало регистров записи и после обращения к одному (первому) регистру указатель автоматически переходит на другой (второй, третий и так далее) регистр. Диаграмму формирования сигналов по линиям I2C для модуля RDA5807m можно посмотреть в даташите, который прилагается в конце статьи. Там же находится и карта регистров радио. Мое мнение, такая организация управления достаточно неудобная, хотя и имеет место быть. Часы в данной схеме используются в виде отдельной микросхемы DS1307. Это одна из самых популярных часовых микросхем среди радиолюбителей. Применить можно микросхему как в корпусе DIP, таки в SO. При разработке схемы DS1307 использовалась в составе модуля Tiny RTC.
Точность хода таких часов напрямую зависит от качества кварцевого резонатора на частоту 32,768 кГц. Почти все утверждают, что наиболее точные экземпляры таких кварцевых резонаторов можно выпаять из старых материнских плат. Также DS1307 имеет резервное питание от батарейки типа CR2032, либо чего-нибудь аналогичного с напряжением 3 вольта. Одним из вариантов замены батарейки резервного питания является ионистор. Потребление от источника резервного питания часовой микросхемы достаточно мало и при применении ионистора емкостью порядка 0,47 – 1 фарад позволит сохранять хронологию времени несколько недель. Но стоимость ионисторов на сегодняшний день достаточно высока по сравнению с копеечными батарейками. Управление настройками схемы осуществляется кнопками S2 – S5.
Теперь собираем схему. Я применил макетные платы:
Интерфейс устройства достаточно прост. На дисплее мы видим текущее время и частоту станции, на которую настроено радио.
Чтобы задать текущее время, частоту радиостанции и время включения и выключения радио, нужно перейти в меню настроек, нажав на кнопку S5.
Кнопками S3 и S4 увеличивается или уменьшается значение, на которое установлен указатель, кнопкой S5 указатель перемещается на следующие значения. В меню настроек установлена защита от переполнения переменных, поэтому выставить 25 часов или 65 минут будет невозможно. При переполнении вверх значение становится равно нулю, а при переполнении вниз, то есть меньше нуля значение становится максимальным – для часов – это 23 часа, для минут — 59 минут, частоты радиостанций лежат в районе от 87 до 108 МГц, аналогично защита от переполнения работает и для этой переменной. Чтобы сохранить настройки, установленные в меню, необходимо дойти до последней переменной и ещё раз нажать S5, тогда мы все сохраним и автоматически перейдем в главное меню. Также в меню настроек радио автоматически включается и можно слышать волну, настраивая частоту радиостанции, при переходе в главное меню радио отключается. Чтобы включить или выключить радио в главном меню независимо от установленного расписания, необходимо нажать кнопку S2. Кроме того в главном меню кнопками S2 и S3 можно регулировать громкость звука.
Для программирования микроконтроллера необходимо знать конфигурацию фьюз битов, скриншот из AVR Studio:
К статье прилагается файл прошивки для микроконтроллера ATmega8a, исходный код в программе AVR Studio 4 и небольшое видео работы радио-часов.
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
IC1
Часы реального времени (RTC)DS13071
IC2
МК AVR 8-битATmega8A1
IC3
Радио модульRDA5807m1
IC4
Аудио усилительяTDA7056B1
VR1
Линейный регуляторAMS1117-3.31
VD1
Выпрямительный диод1N41481
HG1
LCD-дисплейPCD85441
Nokia 5110C1, C3, C4, C7, C8, C11
Конденсатор100 нФ6
C8 — пленочныйC2, C10
Электролитический конденсатор220 мкФ2
C5, C6
Электролитический конденсатор10 мкФ2
C9
Конденсатор1 мкФ1
Z1
Часовой кварц32768 Гц1
S1-S5
Тактовая кнопкаTC-A1095
R1
Резистор470 кОм1
R2
Резистор1.5 МОм1
R3
Резистор200 Ом1
R4-R6
Резистор10 кОм3
R7
Резистор4.7 кОм1
R8
Резистор100 кОм1
R9
Переменный резистор1 МОм1
Ls1
Динамик3 Вт1
Сопротивление 8 — 32 Ом
Элемент питания3 В1
CR2032Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы: