<<<

Устройство на микроконтроллере AT91SAM7S64 для записи речи на SD карту.

   Устройство собрано на макетной плате Olimex SAM7-P64. Возможная схема микрофонного усилителя см. в прилагаемом архиве. Питание усилителя берётся с макетной платы, выход подключен ко входу AD7. Запись начинается нажатием кнопки B1 (см. схему макетной платы). В процессе записи мигают светодиоды LED1 - LED2. Останавливается запись нажатием на ту же кнопку. На SD карте записывается файл test.wav в формате PCM 11кГц 8-бит моно, который можно воспроизвести на компьютере. Карты объемом 64Мб должно хватить приблизительно на 100 мин записи. В программе нет проверки на доступное свободное место на карте, это необходимо учитывать. На выход RS232_0 выводится отладочная информация (9600 8N1).
   Программа написана на gcc с использованием библиотеки ESFL Проект выполнен для среды WINARM. Следует отредактировать Makefile для указания расположения библитотеки ESFL на диске (см. переменные ESFLPATH, EXTRAINCDIRS). Мой файл config.h для библиотеки ESFL можно найти в папке config.
   Проект можно легко доработать в направлении проверки доступного места на карте, записи нескольких файлов, установки даты-времени файла, поддержки других форматов записи. Проект использует части кода других проектов, которые можно найти в сети.
   Некоторые пояснения к коду программы. В качестве формата записи выбран PCM формат, представляющий собой просто последовательные выборки уровня звука. Для точности этих выборок во времени используется Periodoc Interval Timer (PIT) вызывающий прерывания с частотой 11кГц. Обработчик прерывания записывает сигнал со входа АЦП и записывает его в один из двух буферов, другой буфер в это время записывается на карту памяти. Светодиоды показывают, какой из буферов выбран в текущий момент.

При модификации ссылка на первоисточник обязательна.

Файлы проекта

@tty