AC-DC и DC-DC преобразователи напряжения Top Power на складе ЭЛТЕХ

Аудио проигрыватель на Atmega8 и WTV020

Захаров Денис, Украина

На просторах Интернета можно встретить немало проектов, связанных с воспроизведением звуковых файлов с помощью микроконтроллеров. В большинстве случаев аудиофайл хранится в карте памяти объемом до 2 Гб. Однако реализовать полноценную систему FAT на 8-разрядных микроконтроллерах очень сложно, поэтому лучше использовать модуль, который сможет работать с картой памяти, не загружая ресурсы основного контроллера. Самым миниатюрным и простым в обращении из таких модулей является WTV020 (Рисунок 1).

Аудио проигрыватель на Atmega8 и WTV020
Рисунок 1.

Модуль работает с отформатированными в FAT16 SD-картами объемом не более 2 Гб и воспроизводит в любой последовательности звуковые фрагменты в форматах .ad4 или .wav. Предусмотрено питание внутренних цепей модуля от встроенного стабилизатора на 3.3 В, что очень удобно, поскольку это позволяет на сам модуль подавать напряжение 5 В. (Для этого нужно замкнуть площадку «5V» со средней площадкой на плате модуля, предварительно, разомкнув перемычку из припоя с площадкой «3.3V», как показано на Рисунке 2).

Аудио проигрыватель на Atmega8 и WTV020
Рисунок 2.  

Управлять модулем можно как «вручную», так и с помощью микроконтроллера. В «ручном» режиме достаточно подключить к устройству кнопки, согласно схеме, представленной на Рисунке 3. В техническом описании модуля WTV020 можно найти другие варианты подключения, которые по функциональности мало чем отличаются от предложенной схемы.

Аудио проигрыватель на Atmega8 и WTV020
Рисунок 3.   

Динамик подключается к выходам ШИМ или к встроенному 16-разрядному ЦАП. В последнем случае нужно подключать внешний ОУ и усилитель (Рисунок 4). При подключении к ШИМ каналу разрешается коммутировать динамики сопротивлением 8 Ом и мощностью до 0.5 Вт.

Аудио проигрыватель на Atmega8 и WTV020
Рисунок 4.

Назначение выводов модуля WTV020 показано в Таблице 1. Каналы двухпроводного интерфейса связи могут использоваться как для подключения кнопок, так и для внешнего микроконтроллера.

Таблица1.
Номер
вывода
Назначение
1
Сброс
2
Аудио выход с ЦАП
3
Не используется
4
ШИМ выход
5
ШИМ выход
6
Не используется
7
Громкость «+» / CLK
8
Общий
9
Воспроизведение - пауза
10
Громкость «-» / DI
11
Не используется
12
Повтор
13
Следующий файл
14
Не используется
15
BUSY
16
Питание

Для визуального контроля были использованы LCD дисплей 2×16 и согласующий контроллер ATmega8. Общая схема проигрывателя представлена на Рисунке 5. Микроконтроллер и модуль питаются напряжением 3.3 В, дисплей – 4 В, поскольку для выбранного LCD напряжения 3.3 В было недостаточно. На прием данных от МК эта разница напряжений никак не влияет. Внутренний стабилизатор модуля WTV020 автор решил не активировать.

Аудио проигрыватель на Atmega8 и WTV020
Рисунок 5.

Для передачи данных в модуль WTV020 используются линии CLK и DI. Согласно техническому описанию (Рисунок 6а), 16 бит данных должны передаваться с периодичностью 200 мкс, однако на практике эти значение нужно увеличить до 2 мс (Рисунок 6б).

Аудио проигрыватель на Atmega8 и WTV020
Рисунок 6а.
Аудио проигрыватель на Atmega8 и WTV020
Рисунок 6б.

Исходя из документации, после подачи питания рекомендуется на выход «Reset» модуля подать отрицательный импульс длительностью 5 мс, и по истечении 300 мс отправлять команды. Но это явная ошибка, поскольку время инициализации модуля WTV020 составляет порядка 600 мс. Если подавать команды раньше, чем через 600 мс после сброса, модуль их просто не воспринимает.

Список основных команд, принимаемых модулем, представлен в Таблице 2. Из таблицы видно, что максимальное количество воспроизводимых аудио файлов составляет 512, однако автор ограничился тридцатью. Громкость регулируется в 7 диапазонах. На практике с адреса FFF0 по FFF3 наблюдаются искажения звука, причем как с ШИМ-выхода, так и с ЦАП. Команды FFFE (Play/Pause) и FFFF (Stop/Play) – триггерные.

Таблица 2.
Команда
Назначение
0000-0511
Выбор номера аудио записи (1-512)
FFF0-FFF7
Настройка громкости
FFFEH
Воспроизведение - пауза
FFFFH
Воспроизведение - стоп

Модуль WTV020 воспринимает аудиофайлы формата .wav или .ad4 (аналог mp3). Для конвертирования файлов из mp3 в ad4 нужно использовать программу USBRecording (Рисунок 7). Карту памяти форматировать в систему FAT. Аудиофайлы именовать только так: 0000.ad4, 0001.ad4. В противном случае модуль не сможет выбрать адрес файла для воспроизведения.

Аудио проигрыватель на Atmega8 и WTV020
Рисунок 7.

На экран LCD выводятся номер воспроизводимого файла и громкость в виде шкалы из 7 закрашенных прямоугольников. Фото готового устройства показано на Рисунке 8.

Аудио проигрыватель на Atmega8 и WTV020
Рисунок 8.

Демонстрационное видео:
 

Программное обеспечение МК, виртуальная модель Proteus и аудиофайл формата .ad4 - скачать

Программа для конвертирования аудио записи в формат .ad4 - скачать  

ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Помню игрался этим модулем, только от кнопок. С МК чето не очень работало, точно не помню уже, да и не было времени копаться. Возможно это из-за этой ошибки в даташите, о которой автор пишет. В любом случае данную конструкцию можно в различных целях использовать. Главное, что производительность МК почти не затрачивается