Например TDA7294

РадиоКот > Схемы > Цифровые устройства > Бытовая техника

Простой FM-приёмник с часами и термометром

Автор: WiseLord, wiselord1983@gmail.com
Опубликовано 20.01.2015.
Создано при помощи КотоРед.

Лежали у меня дома без дела FM-модули RDA5807, заказанные как-то в Китае для другого моего проекта, а тут ещё вспомнил, что у нас в РБ проводное вещание отключили в этом году. Вот и решил сделать "на деревню бабушке" FM радиоприёмник вместо радиоточки.

В общем, получилось что-то такое:

Я не поленился и даже сделал видео работы девайса:

Если кто-то уже заинтересовался, то вот вам принципиальная схема:

Делать одну большую плату было лениво, поэтому получилось три маленькие. На одной собственно цифровая часть, т.е. микроконтроллер и счетверённый семисегментный индикатор, на другой - аналоговая, т.е. тюнер и аудиоусилитель, ну а часы на базе широкоизвестной микросхемы реального времени DS1307 и термометр на базе не менее известного датчика DS18B20 находятся на "заводской" плате, тоже купленной когда-то давно у тех же трудолюбивых китайцев.

Вот эти миниатюрные платы:

Они же перевёрнутые:

Платы сделаны методом ЛУТ, ширина дорожек 0.4мм. Аналоговая плата - однослойная, цифровая - двухслойная с полутора десятками переходных отверстий. Ввиду миниатюрности плат нужен какой-никакой опыт их изготовления. Кстати, впервые удачно использовал персульфат аммония вместо хлорного железа - и получилось неожиданно неплохо (когда-то давно пробовал не так удачно - разъело было дорожки даже под тонером).

Вот как выглядит вся конструкция в сборе:

Положил на корпус линейку для оценки размеров:

 

В корпусе ещё осталось место, возможно туда когда-нибудь будет вставлен батарейный отсек с подзаряжаемыми от сети же аккумуляторами.

Несколько слов о схеме.

Исходники проекта доступны и находятся на гитхабе. Писалось и собиралось под AVR-GCC в Linux, так что, по идее, без особых проблем должно собираться и в Windows в WinAVR или AVRStudio. Лично не проверял.

В качестве индикатора использован счетверённый GNQ-5641AS (красного цвета, схема с общим катодом). Хотя по документации там прописан ток 20мА на сегмент, но у меня (резисторами 360 Ом) выбран ток порядка 5 мА, и яркости вполне достаточно, даже несмотря на динамическую индикацию. Кому нужно - можете ток повыше сделать, но смотрите на ограничения по току выводов у микроконтроллера.

В архиве, приложеном к статье, лежат прошивки как для варианта индикатора с общим катодом, так и с общим анодом.

Если кто-то захочет использовать ещё более мощные индикаторы и не влезет в эти ограничения - нужно уже делать схему с транзисторными ключами для выбора разряда. Это потребует изменения прошивки. В Makefile исходников, собственно, через переменные IND_TYPE и USE_TRANS выбирается вариант соответственно типа индикаторов (макрос _CC или _CA), и наличия транзисторов (макрос _TR или _NO). Если кто-то будет прикручивать проект к AVRStudio, то, возможно, там будет использоваться свой Makefile, и тогда эти макросы можно вписать в начале segm.h (например, строчки #define _CA и #define _TR).

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

Функции кнопок:

1. Включение-отключение приёмника (ждущий режим), а длительное нажатие - вход на экран регулировки яркости.

2. Переключение отображения частоты-часов-температуры. Длительное нажатие и последующие короткие - настройка времени, повторное длительное - выход из настройки.

3. Уменьшение текущего параметра (номера станции, частоты, часов, минут и т.д. в зависимости от текущего режима). Длительное нажатие - вход (ну и выход, соответственно) в настройку FM-станций.

4. Увеличение текущего параметра. Длительное нажатие - удаление или сохранение частоты в EEPROM.

Энкодер (обычный механческий типа PEC12) также увеличивает/уменьшает текущий параметр или громкость.

Особенность приёмника - станции всегда сохраняются в упорядоченном по частоте порядке. Скажем, если у станции A (номер 1) частота 101,2 и станции B (номер 2) частота 105.1, то при сохранении станции C с частотой, например 103.7, она получит номером 2, а номера станций с более высокими частотами сдвинутся (т.е. станция B станет 3-ей по номеру). При удалении, аналогично, номера сдвигаются вниз. Мне такое поведение нравится и менять его на другое я не хочу.

Если начнёте читать форум по ссылке, увидите что там речь идёт о радиомодуле TEA5767. Да, изначально проект делался для него, но данная статья касается только RDA5807, т.к. у этого радиомодуля есть встроенная регулировка громкости звука. Поэтому если кто-то хочет - может использовать любую микросхему УНЧ (TDA7052 / TDA7052A / TDA7052B или вообще любую схему усилителя).

Если же кто-то хочет сделать схему на модуле TEA5767 или на TUX032 (добываются из автомагнитол Sony), то нужно использовать TDA7052A/B, имеющие вход управления громкостью (ножка 4, которая у просто TDA7052 без индекса не задействована) и программный ШИМ от отдельной ножки контроллера. Поэтому здесь нужна уже другая схемотехника (см. первую страницу форума) и другая прошивка. Исходники для этого варианта доступны в отдельной ветке на гитхабе.

Кстати, код проекта написан так, что ножки МК (за исключением SDA/SCL) можно подключать куда угодно, достаточно только перед компиляцией поменять файл pins.h. Поэтому, если кто-то будет разводить свою плату, не обязательно привязываться к моей разводке. Возможно, топология будет красивее, без лишних переходных отверстий, рисоваться с другой разводкой. Рисуйте как угодно, потом согласно полученному результату меняйте pins.h и компилируйте под себя.

Строка с FUSE для avrdude: -U lfuse:w:0x24:m -U hfuse:w:0xc1:m. Кому непонятно и нужны "галочки" - вот онлайн-калькулятор, если и так туго доходит - ставьте конфигурацию на 8МГц от внутреннего источника, бит EESAVE (чтобы не затирать сохранённые радиостанции при новой прошивке), ну и биты BODLEVEL и BODLEVEL можно запрограммировать, тогда меньше риск порчи EEPROM при внезапном пропадании питания в момент его чтения/записи.

Ну вот, собственно, и всё. Удачи в повторении.


Файлы:
Прошивки от 6.02.2015 (исправленные)
Печатные платы


Все вопросы в Форум.


ID: 2051