В статье описывается открытие WAV-файла с карты SD/MMC и воспроизведение его с помощью ШИМ (PWM, Pulse-Wide Modulation). Для упрощения допускаются только несжатые файлы звука (uncompressed PCM), 8 бит, моно, частота выборок 16000 Гц. Проект работает на макетной плате AT91SAM7X (микроконтроллер ARM Atmel AT91SAM7X256 или AT91SAM7X512), но его можно также запустить на макетных платах Atmel и Olimex. Для работы с файловой системой FAT32 используется библиотека EFSL.
Алгоритм работы проекта прост - через консоль DBGU (коннектор DB9 на макетной плате, подключенный к COM-порту компьютера) можно подавать команды на считывание и воспроизведение файлов с карты памяти SD/MMC. Файлы формата WAV (несжатый PCM, 8-бит, моно, скорость выборок 16000 Гц) должны лежать в каталоге wav. В консоли DBGU доступна система подсказки (команда h или ?).
-- PlayWav Project 1.0 --
Board : microsin AT91SAM7X, Chip ID : 0x275B0940
?
help or ? - help
reboot - restart/reload crontab
play filename.wav - play WAV-file
info - show info
play muson04.wav
play muson05.wav
play muzon06.wav
Не найден файл wav/muzon06.wav
info
[elapsed]
0 days, 0 hours, 0 minutes, 54 seconds
Звук формируется с помощью широтно-импульсной модуляции (PWM). Карта памяти подключена к разъему UEXT макетной платы Olimex SAM7-EX256 (U6 UEXT макетной платы AT91SAM7X), а PWM выведена на разъем EXT (U4 EXT макетной платы AT91SAM7X). Схемы макетных плат и подключения есть в каталоге doc архива проекта (см. ссылки в конце статьи).
В статье приведены только файлы, касающиеся открытия и воспроизведения WAV-файлов (projtypes.h, wav.h, wav.c). Полностью проект можно скачать по ссылке из конца статьи.
Огромное спасибо за статью. У меня все заработало с microSD размером 2 гигабайта, а вот с microSD размером 8 гигабайта не работает, может Вы уже знаете как это исправить?
microsin: проблема в том, что карты размером 8 гигабайт и больше имеют другой протокол инициализации, это карты спецификации SDHC. Вам нужен низкоуровневый код, который поддерживает как формат карт SD, так и формат карт SDHC. Прогуглите ключевое слово SDHC, воспользуйтесь поиском по моему сайту по этому ключевому слову - найдете код для поддержки работы с этими картами.
Очень сильно. Разрешите полюбопытствовать, Андрей, это хобби или работа?
microsin: благодарю, Алексей. Рад, что Вас что-то заинтересовало на моем сайте. Статья, про которую Вы спрашиваете, составлена из кусочков, которые применяются в проектах, связанных с работой. Поскольку много заработать не очень-то получается, а работа интересная, то лучше всего назвать все это занятие "хобби".
Комментарии
microsin: проблема в том, что карты размером 8 гигабайт и больше имеют другой протокол инициализации, это карты спецификации SDHC. Вам нужен низкоуровневый код, который поддерживает как формат карт SD, так и формат карт SDHC. Прогуглите ключевое слово SDHC, воспользуйтесь поиском по моему сайту по этому ключевому слову - найдете код для поддержки работы с этими картами.
microsin: благодарю, Алексей. Рад, что Вас что-то заинтересовало на моем сайте. Статья, про которую Вы спрашиваете, составлена из кусочков, которые применяются в проектах, связанных с работой. Поскольку много заработать не очень-то получается, а работа интересная, то лучше всего назвать все это занятие "хобби".
RSS лента комментариев этой записи