Відтворення звуку на PIC

  • Час 31-07-2015, 13:13
  • Автор admin
  • Коментарів 0 Комент.
  • Силка url

У даній статті розглянуто один із способів відтворення звуку на PIC-микроконтроллере з використанням PCM-модуляції. Імпульсно кодова модуляція (PCM) - це цифрове представлення аналогових сигналів, де через кожні рівнозначні проміжки часу, вимірюється миттєве значення амплітуди сигналу і представляється в цифровому (як правило довічним) вигляді.

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

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

Відтворення звуку на PIC

Крім мікроконтролера в схемі використовується стабілізатор напруги 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 і приклади звуків ви можете нижче

Прикріплені файли:
  • sound_pic.rar (182 Кб)
Tags

Коментарі до новини