Представленная ниже схема SD-аудио плеера содержит минимум деталей. В основе схемы лежит 8-pin AVR-микроконтроллер ATtinyX5 series (85), который содержит 2 быстрых ШИМ-выхода с несущей частотой 250 кГц. Это дает возможность выводить аудио-сигналы с широким диапазоном частот.
В проекте аудио-плеера используется 8-pin AVR микроконтроллер и SD-карта памяти. SD-карта управляется всего шестью линиями: 2 линии питания и 4 сигнальные, что обеспечивает простое подключение к 8-pin микроконтроллеру.
Схемотехника плеера
Разработано 3 варианта схем SD-плеера. В качестве аудио-носителя используется microSD. Естественно, что для SD и microSD должны использоваться соответствующие сокеты. Динамики подключены напрямую к ШИМ-выходу микроконтроллера, поэтому нагрузка на выход МК может быть слишком большой. Однако выходной уровень все равно никогда не превысит напряжение питания МК 3 вольта, поэтому громкость воспроизведения не будет слишком высокой, но вполне будет достаточной для прослушивания на небольших настольных динамиках. Если аудио-выход будет подключаться к усилителю, то ВЧ-составляющие аудио-сигнала должны быть отфильтрованы ФНЧ-фильтром. Поэтому не подавайте выходной сигнал с данного плеера напрямую на усилитель, иначе он может сгореть!
Программное обеспечение
Использование карт памяти в различных проектах подразумевает, что ПО должно работать с файловой системой FAT. Я выбрал модуль Petit-FatFs module. Данный модуль был разработан для систем содержащих малое количество памяти RAM – 512 байт и меньше. Он подходит как для МК tiny AVR, так и для PIC-микроконтроллеров.
В прилагаемом ниже архиве содержится несколько файлов прошивок для разных вариантов схем. Фьюзы записаны в HEX-файл, однако некоторые AVR-программаторы не поддерживают данный тип HEX, поэтому необходимо будет удалить три последние строчки из HEX-файла. Конфигурацию фьюзов можно найти в файле main.c. При использовании стерео-конфигурации схемы, используются все I/O выводы, включая RESET. Конфигурирования RSTDISBL-фьюза осуществляется в режиме высоковольтного последовательного программирования (HVSP), который большинство AVR-программаторов не поддерживает. В ISP режиме также можно запрограммировать, но только первый раз. В режиме моно используется только 5 I/O выводов, следовательно фьюз RSTDISBL не требуется программировать. Поэтому возможно программирование в ISP-режиме, который поддерживают все AVR-программаторы.
Данный SD-аудио плеер поддерживает только формат RIFF-WAVE в LPCM, 8/16-бит, моно/стерео и частотой дискретизации до 48 кГц. Поэтому MP3-файлы должны быть переконвертированы в WAVE. Воспроизведение файлов начинается сразу после подачи питания или вставки SD-карты. Следующий файл воспроизводится при нажатии кнопки Next.
Скачать прошивку, исходник и печатные платы PCB (печатную плату разработал и прислал Денис Сторожев)
Оригинал статьи на английском языке (перевод Колтыков А.В. для сайта cxem.net)
Теги: