Воспроизведение звука на PIC

Воспроизведение звука на PIC

В данной статье рассмотрен один из способов воспроизведения звука на PIC-микроконтроллере с использованием PCM-модуляции. Импульсно кодовая модуляция (PCM) – это цифровое представление аналоговых сигналов, где через каждые равнозначные промежутки времени, измеряется мгновенное значение амплитуды сигнала и представляется в цифровом (как правило двоичном) виде.

В качестве микроконтроллера был выбран PIC18F1320 (Даташит) с 8кБ Flash-памяти и модулем ECCP. В память размеров 8 кБайт помещается приблизительно одна секунда звука с частотой сэмплирования 8000Гц. 1 секунда звука это конечно не идет ни в какое сравнение с современными устройствами воспроизведений, но целью статьи в первую очередь является возможность показать работу с звуком PCM на PIС.

Ауио-сэмплы WAV могут быть свободно найдены в интернете или могут быть самостоятельно сконвертированы в формат PCM 8000 Гц, 8 бит, моно b продолжительностью не более 1 секунды.

Помимо микроконтроллера в схеме используется стабилизатор напряжения 78L05 (КРЕН5), конденсатор 100нФ, динамик и ФНЧ. Фильтр нижних частот настроен на обрезку 3.3 кГц.

PIC-микроконтроллер сконфигурирован на работу без внешнего кварца. Т.о. экономя кварцевый резонатор и пару конденсаторов. Частота внутреннего 8 МГц.

Для динамика можно использовать УНЧ.

Программное обеспечение было написано на C (HI-TECH). В программе задействован ECCP-модуль для генерирования аппаратного ШИМ-сигнала. Timer 2 задействован для разделения ШИМ-периодов. Для создания пауз, прерывание Timer 2 работает как декрементный счетчик.

Цифровое представление звука сохраняется в H (header) файлах. Утилита pcm2h была создана для чтение PCM файлов и создания H-файлов.

Программа для создания РСМ-файлов из WAV: Linux Mplayer

Пример конвертации: mplayer myfile.wav -ao pcm:nowaveheader:file=myfile.pcm

Первые тесты показали, что данного ФНЧ не достаточно для уменьшения модуляционных шумов 8 кГц. Поэтому, возможно понадобится установить ФНЧ второго порядка.

Т.к. динамик напрямую подсоединяется к PIC, то мощности контроллера явно не достаточно, звук еле слышно, поэтому, чтобы услышать нормальный звук, потребуется какой-нибудь простенький усилитель НЧ.

Скачать прошивку, исходники, проект в MPLAB и примеры звуков

Оригинал статьи на английском языке (перевод Колтыков А.В. для сайта cxem.net)


Категория: Микроконтроллеры
Метки:

Написать коментарий

*
= 5 + 8

Добавить изображение

Последние статьи