Аудио плеер на ATtiny85


Аудио плеер

Этот музыкальный плеер разработал японский инженер ChaN – так он представляется на своем сайте http://elm-chan.org/. Адрес странички с оригинальным описанием плеера http://elm-chan.org/works/sd8p/report.html. Музыкальный проигрыватель настолько хорош и оригинален, что его просто невозможно не повторить! По крайней мере, мне не попадалось описание другого аудио плеера, который проигрывает WAV файлы МОНО и СТЕРЕО 8 и 16 бит с частотой дискретизации до 48 КГц, записанные в стандартной файловой системе FAT или FAT32 на SD карточке, причем поддерживаются карты объемом более 2 ГБ. И при этом он собран всего на одном 8-и выводном микроконтроллере и нескольких пассивных компонентах. Идеальное решение для музыкальной игрушки!

Автор разработал три варианта плеера – МОНО 8 бит, СТЕРЕО 8 бит и МОНО 16 бит. Они немного отличаются программно и схемотехнически. Автор предлагает использовать карту памяти MicroSD и подключить динамик непосредственно к микроконтроллеру. Но, учитывая, что напряжение питания всего около 3 вольт, громкость звучания будет небольшой. На мой взгляд, лучше использовать внешний усилитель НЧ, это позволит в полной мере оценить качество звучания музыкальной игрушки. Кроме того, SD карточка удобнее в обращении, чем MicroSD. Очень уж последняя мала, ее применение оправдано только в случае необходимости получить предельно малые габариты.

Принципиальная схема аудио плеера на ATtiny85

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

Моя плата разработана для варианта STEREO 8 бит, если решено сделать другой вариант проигрывателя, плату нужно немного подкорректировать. Размер платы 30x50 мм. Контроллер в корпусе SOIC-8, для его программирования необходимо временно подпаять проводники к нужным выводам контроллера, для этого на плате предусмотрены контактные площадки. Перед тем, как изготавливать плату, убедитесь, что расположение выводов разъема для SD карточки соответствует плате. Дело в том, что разъемы разных производителей могут несколько отличаться, гораздо проще подкорректировать чертеж, чем изгибать выводы и перерезать дорожки на уже готовой плате.

Музыкальные файлы нужно предварительно записать в корневой каталог SD карты, либо в каталог с именем «WAV». Расширение всех файлов должно быть «wav», файлы с другим расширением проигрываться не будут. Поддерживается только формат PCM, это стандартный формат, в который легко можно конвертировать файлы с аудио CD либо из MP3.

Частота дискретизации может быть от 8 до 48 КГц, Если будет решено сделать МОНО вариант плеера, файлы тоже должны быть МОНО, в СТЕРЕО файлах будет проигрываться в этом случае только один канал. Если выбран вариант 8 бит, нет необходимости переводить файлы в этот формат, 16-и битные файлы тоже проигрываются, но с качеством 8 бит. Просто размер 16-и битных файлов в 2 раза больше, чем 8-битных. Однако, учитывая, что сейчас карты памяти объемом менее 2 ГБ практически исчезли из продажи, это не имеет существенного значения. Ведь 2 ГБ это более трех часов звучания СТЕРЕО 16 бит.

В зависимости от выбранного варианта схемы, в контроллер должен быть запрограммирован разный файл прошивки. Установка FUSE бит также различается. Подробности читайте в файле read.txt в архиве с прошивками. В варианте СТЕРЕО 8 бит и МОНО 16 бит задействован вывод RESET контроллера, поэтому программирование лучше проводить в режиме HV (высоковольтное программирование). В принципе, запрограммировать можно и в режиме ISP, который поддерживают все программаторы, но только один раз. Сначала нужно запрограммировать HEX файл прошивки, а затем FUSE биты. После этого перепрограммировать контроллер можно будет только в режиме HV, а этот режим поддерживают не все программаторы. Для прошивки МОНО 8 бит никаких ограничений нет, т.к. вывод RESET в этом варианте не используется.

Печатная плата аудио плеера на ATtiny85

Эта музыкальная игрушка не требует налаживания. Единственное, что может потребоваться – это подобрать номинал резистора R3 для варианта МОНО 16 бит. Лучше это сделать на слух, записав файл с чистым музыкальным тоном 400…800 Гц и, прослушивая его, подобрать номинал по наиболее чистому звучанию. Теоретически он должен быть в 256 раз больше R1. Однако качество звучания даже в режиме 8 бит более чем достаточно для музыкальной шкатулки или игрушки. По крайней мере, оно на порядок выше, чем у популярных микросхем цифровых магнитофонов ISD14xx, ISD16xx.

Усилитель НЧ можно собрать по любой известной схеме, выбор зависит от напряжения источника питания и необходимой громкости звучания. Плеер можно подключить и к активным компьютерным колонкам, амплитуда звукового сигнала как раз та, что требуется.

Проигрывание музыкальных фрагментов начинается после включения питания или установки карты памяти. Имейте в виду, что максимально допустимое напряжение питания 3,6 В, потребляемый ток при этом около 20 МА. Все файлы проигрываются по кругу, кнопка SB1 – переход к следующему.

Автор не делает секрета из своей разработки, все файлы проекта доступны для скачивания. Но я бы не советовал что-то в них менять и дорабатывать. Лучше вряд ли удастся сделать! Просто используйте один из трех HEX файлов прошивки.

Если возникло желание добавить паузу, перемотку назад и другие сервисные режимы – не мучайтесь, просто зайдите в магазин бытовой электроники и приобретите MP3 плеер. Их выбор достаточно велик и цены вполне доступные. А это именно игрушка – основа для музыкальной шкатулки, открытки и т.п. Ну и наглядное пособие для демонстрации возможностей простых и дешевых микроконтроллеров.

Если Вам нужен проигрыватель аудио файлов для речевого информатора, бортового компьютера, говорящих часов или чего-то подобного, рекомендую обратить внимание на другую разработку этого же автора. Принцип работы и параметры те же самые, но за счет использования другого типа контроллера с большим числом выводов автор создал аудио плеер с расширенной возможностью управления проигрыванием.

В заключение, предупреждая возможные вопросы, хочу добавить, что заменить ATtiny85 другим контроллером здесь нельзя. Дело не в доработке программы, а в особенностях внутренней периферии этой серии контроллеров. Даже если у вас в «ящике с хламом» лежит куча ATtiny2313, придется приобрести именно ATtiny85.


Плата в Sprint Layout и схема в Orcad 9.1

Прошивки ATtiny85, версия 23.01.2011г.

Файлы проекта от автора, версия 23.01.2011г.