Аудиоплеер на микроконтроллере AT91SAM7S256

 

Аудиоплеер воспроизводит wav-аудиофайлы в формате стерео с частотой дискретизации 22,5 кГц и разрешением 8 бит, записанные на карту памяти MMC (SD).

Основой устройства является микроконтроллер AT91SAM7S256 компании Atmel, построенный на базе ядра ARM7TDMI, к которому подключен символьный ЖК-дисплей на контроллере HD44780 и слот для карты памяти MMC. Дисплей работает в 4-битном режиме.

Аудиоплеер на микроконтроллере AT91SAM7S256

Основные характеристики микроконтроллера:

  • 32-битное ядро ARM7TDMI, RISC архитектура;
  • встроенная высокоскоростная Flash-память 256 КБайт, 1024 страницы по 256 Байт;
  • встроенная высокоскоростная SRAM 64 КБайт;
  • контроллер сброса;
  • расширенный контроллер прерываний;
  • модуль отладки, двухпроводный UART, два модуля USART;
  • 20-битный программируемый счетчик + 12-битный интервальный счетчик;
  • 32-битный циклический счетчик с сигнализацией;
  • 32 программируемый линии ввода/вывода общего назначения;
  • интерфейс SPI;
  • трехканальный 16-битный счетчик;
  • четырехканальный 16-битный ШИМ контроллер;
  • 8-канальный 10-битный АЦП;
  • напряжение питания 3,3 В.

Блок-схема микроконтроллера

Основные характеристики устройства:

  • воспроизведение wav-файлов в стереоформате, частота дискретизации 22500 Гц, разрешение 8 бит;
  • индикация названия аудиофайла;
  • индикация времени звучания;
  • возможность остановки воспроизведения и выбора файла;
  • возможность изменять громкость звучания;
  • возможность установки произвольного выбора аудиофайлов;
  • чтение данных с карты памяти MMC;
  • индикация состояния на символьном ЖК-дисплее.

Принципиальная схема устройства

Подключение LCD-дисплея:

Вывод
микроконтроллера

Вывод
LCD модуля

PA8

E

PA9

RS

PA4

D4

PA5

D5

PA6

D6

PA7

D7

Список компонентов:

Обозначение в схеме

Описание, номинал

U1

Микроконтроллер AT91SAM7S256

R1

1,5 кОм

R2

1 кОм

RN1, RN2

набор резисторов 10 кОм

C1, C2, C7

22 пФ

C5

1 нФ

C6

10 нФ

C8

10 мкФ

C9

1 мкФ

10

470 пФ

SW1, SW2

Кнопки

MMC_SLOT

Слот для карты памяти ММС

JTAG

Коннектор отладочного интерфейса JTAG

OUT

Выход аудиосигнала

Принцип работы устройства прост: микроконтроллер считывает данные с карты памяти по интерфейсу SPI, помещает их в два буфера и затем перенаправляет в модуль ШИМ.

Чтение данных с карты памяти осуществляется с помощью программного модуля FatFS. Данный блок необходим, т.к. карта использует файловую систему (FAT16 или FAT32). Для записи файлов на карту памяти используется персональный компьютер, прочитанные данные сохраняются в двух буферах.

Программный блок FatFS написан на ANSI C, поэтому он не зависит от аппаратного уровня и может быть просто адаптирован для других микроконтроллеров.

Поддержка карты памяти по интерфейсу SPI требует трех сигнальных линий от микроконтроллера: MOSI, MISO и CLK (тактовый сигнал). Для питания карты необходимо напряжение 3,3 В, что соответствует питанию микроконтроллера.

В микроконтроллере таймер PIT (20-битный программируемый счетчик + 12-битный интервальный счетчик) настроен на периодические прерывания с частотой 22,5 кГц – частота дискретизации wav-файла. В обработчике прерывания проверяется, какой из буферов в текущий момент времени используется, и соответствующие значения индексов передаются в буферные регистры ШИМ генератора.

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

Для воспроизведения звука используются два независимых канала ШИМ, которые сконфигурированы на работу с разрешением 8 бит, частота MCK/8. Заполнение ШИМ-генератора зависит от данных получаемых с буферов и, соответственно, пропорционально выходному напряжению на выводе микроконтроллера.

2010-11-23