Altinkaya: турецкие корпуса для РЭА

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

Szymon Dyja

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

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

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

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

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

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

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

Блок-схема микроконтроллера AT91SAM7S256
Кликинте для увеличения

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

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

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

Аудиоплеер на микроконтроллере AT91SAM7S256
Кликните для увеличения

Подключение 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. Заполнение ШИМ генератора зависит от данных получаемых с буферов и, соответственно, пропорционально выходному напряжению на выводе микроконтроллера.

Демонстрация работы аудиоплеера

Загрузки

Исходный код программы микроконтроллера - скачать

pro-qwerty.com

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Music player built on microcontroller AT91SAM7S256 with ARM core

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • В какой IDE написано не могу понять?
  • Для разработки программного кода использовалась среда (точнее пакет программ и инструментов) WinARM. Это видно по исходникам в архиве, который в конце статьи.