Вы находитесь на странице: 1из 6

FM радиоприёмник на MK ATMega8 и RDA5807

с дисплеем Nokia5110 и МР3-декодером.


В различных интернет-магазинах можно приобрести дешёвый (около 1 $) модуль МР3-
декодера на базе микросхемы GPD2856C. Модуль способен воспроизводить музыкальные
файлы с SD-карты или USB-карты памяти, а также поддерживает работу с тюнером
RDA5807M. Поэтому появилась идея встроить этот модуль в схему радиоприёмника. МР3-
декодер управляется четырьмя кнопками, при помощи которых подаётся различное
напряжение управления на вход
АЦП микросхемы. В предлагаемой
схеме управляющее напряжение
формируется из ШИМ-сигнала на
выходе OC1B микроконтроллера при
помощи фильтра на элементах R2 и
C3 (см. схему на листе 1).
При работе радиоприёмника питание
МР3-декодера отключается при
помощи узла, собранного на
транзисторах VT1 и VT2. Выходной
сигнал МР3-декодера подаётся на
выход радиоприёмника. Это не
мешает радиотюнеру, т. к. его
выходы при переключении в режим
МР3-плейера переводятся в
высокоимпедансное состояние.
Встроенный в модуль УНЧ не
используется и во избежание его
влияния на УНЧ радиоприёмника нужно тем или иным способом разорвать связь между его
входом и телефонным разъёмом.
Для связи с радиоприёмником провода подключаются к имеющимся на плате модуля
контактным площадкам питания и разъёма головных телефонов. Кроме этого необходимо
подпаять провод к общей точке резисторов R1...R4 для подачи управляющего напряжения
(см. фото). Схема МР3-декодера приведена на листе 2.
Схема радиоприёмника, рассчитанная на питание от
источника напряжением не ниже 6 В.
Для перехода в режим МР3-плейера нужно
нажимать в течение 3 секунд кнопку CH+. В результате
на дисплей выводится информация о назначении
управляющих кнопок.
Кратким нажатием кнопки V+ подаётся команда
на воспроизведение следующего файла, длительным
нажатием (2 сек.) производится увеличение громкости.
Кратким нажатием кнопки V- подаётся команда на
воспроизведение предыдущего файла, длительным
нажатием (2 сек.) производится уменьшение громкости.
Кратким нажатием кнопки СН+ воспроизведение останавливается на паузу (или
снимается с паузы), длительным нажатием (2 сек.) производится выбор источника для
воспроизведения - файлы с SD-карты или USB-карты памяти.
При нажатии на кнопку СН- питание МР3-декодера отключается, и схема переходит в
режим FM-радио.
К порту контроллера PС2 подключен светодиод VD1,
который в режиме радио зажигается в случае, если
производится приём стереосигнала. В режиме МР3-плейера
этот светодиод светится во время нажатия любой кнопки
управления и помогает пользователю контролировать
время нажатия на кнопку. В целях продления срока службы
батареи питания светодиод VD1 можно не устанавливать.
Если в радиоприёмнике будет установлен
монофонический усилитель низкой частоты, то сигнал на его
вход можно получить с выхода сумматора, например, по
такой схеме:
Необходимо отметить особенность управления МР3-
плейером – перед подачей каждой следующей команды
нужно сделать паузу 2…3 сек.
На Aliexpress можно приобрести платы МР3 -
декодеров других производителей на базе других
микросхем. Данное описание и программа подойдёт далеко не ко всем таким платам.

Описание программы.

Программа предназначена для микроконтроллера ATMEGA8, который работает на


частоте внутреннего генератора 8 Мгц. Версия программы: FM_M8_5110_MP3.

Особенностью программы является регулировка


звука как непрерывно, так и пошагово. Если нажать и
удерживать одну из кнопок V+ или V-, то при этом будет
плавно регулироваться громкость звучания, а в верхней
строке дисплея рядом с пиктограммой динамика будет
отображаться условный уровень громкости цифрами от 0
до 16. Для пошаговой регулировки громкости кнопки V+
или V- нажимаются кратковременно.
При достижении нулевого значения уровня
громкости звук полностью отключается, однако при новом
включении приёмника, уровень будет не нулевым, а
минимальным (1).
Переход в режим автонастройки и обратно, в режим перебора сохранённых станций,
производится в случае, если нажать и удерживать кнопку CH- в течение около 3 сек.

Основные функции программы:


— Управление МР3-плейером на базе микросхемы GPD2856C. Переход в режим
управления МР3-плейером производится длительным нажатием на кнопку CH+.
— Возврат в режим FM-радио из МР3-плейера по нажатию на кнопку CH-.
— Перебор станций, сохранённых в памяти программ вверх и вниз по списку, а
также автопоиск станций вверх и вниз по диапазону кнопками CH+ или CH-.
— Переход из режима ручного выбора радиостанции в режим автопоиска и обратно
производится длительным нажатием на одну из кнопок CH-.
— Опознавание названия станции по её частоте при автопоиске.
— Вывод на индикатор частоты и названия станции.
— Запись последней частоты настройки и громкости в память EEPROM при каждой
настройке на станцию. При включении начинает работу на сохранённой частоте
с предыдущим уровнем громкости.
— Регулировка громкости кнопками V+ и V-.
— Индикация уровня громкости на дисплее цифрами от 0 до 16.
— Индикация уровня сигнала на дисплее четырьмя столбиками.
— Индикация "Моно-Стерео" как на дисплее, так и светодиодом.
— Гашение дисплея через 16 сек. после последнего нажатия на любую из кнопок.

Распределение портов микропроцессора:


PB0 - D/C Выбор режима передачи данных (1) или команды (0) LCD
PB1 - СЕ Выбор чипа (0) LCD
PB2 - DIN Входные данные LCD
PB3 - Выходной сигнал ШИМ для управления МР3-плейером
PB4 - RES Линия сброса LCD (0)
PB5 - CLK Линия тактирования LCD

PC2 - Св. диод индикатор стерео-сигнала


PC3 -
PC4 - (SDA) - Двунаправленная шина данных
PC5 - (SCL) - Двунаправленная шина тактирования

PD0 - Кнопка V+ увеличения громкости


PD1 - Кнопка V- уменьшения громкости
PD2 -
PD3 - Кнопка CH+ выбора следующей станции
PD4 - Кнопка CH- выбора предыдущей станции
PD5 - Выходной сигнал управления питанием МР3-плейера
PD6 - Выходной инверсный сигнал подсветки дисплея
PD7 – Выходной прямой сигнал подсветки дисплея

В памяти МК записаны частоты и названия радиостанций, вещающих в моём городе.


Их легко можно изменить на действующие в вашей местности, не вдаваясь в детали работы
программы и затем перекомпилировать программу.
В одной строке дисплея помещается только 14 символов, поэтому нужно вместить
название станции в эти 10 символов.
Для того, чтобы прописать частоту и название станций в вашем городе, нужно открыть
ассемблерный файл программы User_set.asm в любом текстовом редакторе, можно даже в
блокноте, но удобнее это будет сделать в привычной вам среде программирования. Здесь вы
увидите строку вида:
.equ Nst = 15 ;Число местных станций
Вместо числа 15 поставьте своё число радиостанций, вещающих в вашей местности.
Далее идут строки данных с перечнем радиостанций и их частот, например, такая строка:
.DB 140, ' ', ' ','Ш','а','н','с','о','н',' ', ' ', 0 ;Радио Шансон
После директивы "DB" нужно ввести число шагов настройки частоты (один шаг равен
100 КГц). Это число определяется как разность между частотой радиостанции
представленной в виде числа шагов и нижней границей диапазона равной 870 шагов (87
МГц). Например, для частоты 101,2 МГц получаем:
1012 – 870 = 142
Далее через запятую в одинарных кавычках идут 10 символов названия станции, в том
числе пробелы, при помощи которых вы можете отцентрировать название на экране.
Заканчивается строка нулём, который является признаком окончания вывода сообщения на
дисплей. После точки с запятой идёт ваш комментарий, который при компиляции
игнорируется, поэтому можно писать там, что угодно.
Чтобы получить HEX-файл из ассемблерной программы, нужно создать проект в удобной
для вас среде программирования, например, в программе AVRStudio, загрузить в него все
исходники и скомпилировать проект, нажав на кнопку Build. Существуют и другие программы,
например, Proteus. Для этой программы я уже создал соответствующий проект и Вам
остаётся только отредактировать файл User_set.asm, в котором прописать свои
радиостанции, запустить Proteus и выполнить на команду Build All.
При программировании МК необходимо запрограммировать следующие фьюзы:
CKSEL0, CKSEL1, CKSEL3 и SUT0. (см. скриншот в статье).

asvetp
к Х1
C1 0,1

DD1 ATMEGA8
U2 RDA5807M ANT
+3,3V R1 10K
PC5 28
29 1 RES 28
CPU 5
PC4 27 27 6
V+ Sb1 30 2 SDA ANT
PD0
Sb2 31 3 VD1 7 4
V- PD1 PC3 26 26
R3 390
Stereo SCL RCK
32 4 C6 L1
PD2 PC2 25 25
8 3
CH+ Sb3 1 5 24 R4 R5 GP2 Lout 24 100nH
PD3 PC1 24
CH- Sb4 2 6 23 23
10K 10K 9 2
PD4 PC0 GP3 Rout

4, 6 7 Vcc 10 1
+3,3V Vdd GND
3, 5 8 GND 22 21
U1 Nokia5110
GND +3,3V
C2
7 9 XTAL1 AREF 21 20
0,1
8 10 XTAL2 AVcc 20 18
8 C5
GND
19 5 0,1
PB5 17
9 11 PD5 SCL +
10 12 PB4 18 16 1
RES
C7
J1 PD6 4,7 + C8
11 13 PB3 17 15 PCD8544
PD7 4 4,7
PB2 16 14
DIN
12 14 PB0 2
PB1 15 13
SCE
MP3-декодер
3 R6 R7
D/C
7 1К 1К
R2 1K Light
6
Uупр VCC

C3
к выв. 1 ( 29 ) DD1
U3 0,1 В правый канал УНЧ
R12 4K7
C4 0,1

RESET
X1

MISO
MOSI

SCK
GND

Vcc
В левый канал УНЧ

R13 4K7
VT1 IRFL9014 DA2
+5 В 3 2 +3.3 В
BAT+
2 3
R11 C13
+ +
1 33К C11 1
R8 R10 XC6206P332MR 22.0
47,0
BAT- 18К

DA1
VT2 +6...15 V
3 L7805 1
SP- C10 R9 BC547
+ C12
SP+ 0,1 100К 2 100,0

Rout
Lout

Красным цветом указаны номера выводов для ATMega8 в планарном корпусе.

Лист
FM-радио на RDA5807М с индикатором Nokia5110.
2 Николаев 2018 г.
Схема радиоприёмника с MP3-плейером 1
Изм. Листов № докум. Подпись Дата
R5
4E7 X4 SDCon
+5 V 1
X1 miniUSB C4 DAT2
VD1 2
BAT+ 1
+5 V DAT3
2 3
D- CMD
3 R6 4
BAT- D+ Vdd
4 +3,3 V 4K7 5
GND CLK
DD1 GPD2856C 6
AGND 5
Vss
C1 16 7
1
V33 IOB2 DAT0
Lout C5 2 15 8
V50 IOB0 DAT1
3 14 X3 R7 9
X2 GND IOB1 CD
C8 4 13 4
Lout IOA0 GND 2K
C3 5 12 3
Vref DP D+
C7 6 11 2
Rout DM D-
7 10 1
R1 22K LineIn IOA2 +5 V
8 9
Rout IOA4 IOA3
USB
Х

DA1
CKE8002 C1...С7 6,3 uF

1 8
Разорвать R9 Mute OUT-
связь R2 S1
10K 2 7 2K4 PREV/V--
BP GND
C6 3 6 S2
In+ Vdd R3 4K7 P/P/MODE
4 5
In- OUT+ S3
R4 7K5 NEXT/V++

R8 47K R10 27K S6


REPEAT
SP-

SP+

Uупр

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

Лист
Николаев 2017 г. MP3-декодер на микросхеме GPD2856C.
3
3
Изм. Листов № докум. Подпись Дата