Аудио проигрыватель на ATtiny861
Этот плеер – разработка японского инженера ChaN – так он представляется на своем сайте http://elm-chan.org/. Конструкция отлично подходит для звукового оповещателя, рекламного информатора, автоответчика, синтезатора речи и других электронных самоделок, которые легко можно сделать в домашних условиях своими руками. Адрес странички с оригинальным описанием плеера http://elm-chan.org/works/sd20p/report.html. Аудио плеер проигрывает WAV файлы МОНО и СТЕРЕО 8 и 16 бит с частотой дискретизации 8...48 КГц, записанные в стандартной файловой системе FAT или FAT32 на SD карточке, причем поддерживаются карты объемом более 2 ГБ. Он собран на одном микроконтроллере ATtiny861 и нескольких пассивных компонентах
Автор разработал три варианта плеера – МОНО 8 бит, СТЕРЕО 8 бит и МОНО 16 бит. Они немного отличаются программно и схемотехнически. Автор использует карту памяти MicroSD и подключает динамик непосредственно к микроконтроллеру. Учитывая, что напряжение питания всего около 3 вольт, громкость звукового оповещателя будет явно недостаточной. На мой взгляд, лучше использовать внешний усилитель НЧ, что позволит в полной мере оценить качество звучания этого электронного устройства, собранного своими руками. Кроме того, SD карточка удобнее в обращении, чем MicroSD. Очень уж последняя мала, ее применение оправдано только в случае необходимости получить предельно малые габариты.
С учетом этих замечаний я предлагаю Вашему вниманию свою версию схемы и печатной платы этого плеера. Схема и плата показаны на рисунках для варианта STEREO 8 бит. Размер платы 40x63 мм. Для прошивки MONO 8 бит схема не изменяется, просто выходы левого и правого каналов работают противофазно, т.е воспроизводят один и тот же сигнал со сдвигом фазы на 180 градусов. Это позволяет при том же напряжении питания, использовав мостовую схему включения нагрузки, увеличить выходную мощность в четыре раза. В случае использования прошивки MONO 16 бит выходы левого и правого каналов объединяются, конденсатор C1 исключается, а номинал R1 увеличивается до 256 КОм.
Все детали использованы в корпусах для поверхностного монтажа, контроллер в DIP корпусе, но он монтируется со стороны печатных проводников. Выводы панельки, в которую вставляется контроллер, отгибаются в стороны и припаиваются к контактным площадкам.
Перед тем, как изготавливать плату, убедитесь, что расположение выводов разъема для SD карточки соответствует плате. Дело в том, что разъемы разных производителей могут несколько отличаться, гораздо проще подкорректировать чертеж, чем изгибать выводы и перерезать дорожки на уже готовой плате. Вы можете также посмотреть авторские варианты схемы Печатную плату он не разрабатывал, просто собрал плеер на макетной плате.
Этот аудио плеер не требует налаживания. Единственное, что может потребоваться – это подобрать номинал резистора R1 для варианта МОНО 16 бит. Лучше это сделать на слух, записав файл с чистым музыкальным тоном 400…800 Гц и, прослушивая его, подобрать номинал по наиболее чистому звучанию. Теоретически он должен быть в 256 раз больше R2. Однако качество звучания даже в режиме 8 бит более чем достаточно для автоответчика или рекламного информатора. По крайней мере, оно на порядок выше, чем у популярных микросхем цифровых магнитофонов ISD14xx, ISD16xx.
Усилитель НЧ можно собрать по любой известной схеме, выбор зависит от напряжения источника питания и необходимой громкости звучания. Плеер можно подключить и к активным компьютерным колонкам, амплитуда звукового сигнала на его выходе как раз та, что требуется. Имейте в виду, что максимально допустимое напряжение питания плеера 3,6 В, потребляемый ток при этом около 20 МА.
Из 18 портов ввода-вывода ATtiny861 8 линий использованы для выбора воспроизведения одного из 255 музыкальных файлов. Файлы нужно предварительно записать в корневой каталог SD карты, имена должны быть 001.wav, 002.wav ... 255.wav. Обратите внимание, что имя должно состоять из трех цифр, например, файл с именем 1.wav проигрываться не будет. Расширение всех файлов должно быть «wav», файлы с другим расширением не будут проигрываться. Поддерживается только формат PCM, это стандартный формат, в который легко можно конвертировать файлы с аудио CD либо из MP3.
Частота дискретизации может быть от 8 до 48 КГц, Если будет решено сделать МОНО вариант плеера, файлы тоже должны быть МОНО, в СТЕРЕО файлах будет проигрываться в этом случае только один канал. Если выбран вариант 8 бит, нет необходимости переводить файлы в этот формат, 16-и битные файлы тоже проигрываются, но с качеством 8 бит. Просто размер 16-и битных файлов в 2 раза больше, чем 8-битных. Однако, учитывая, что сейчас карты памяти объемом менее 2 ГБ практически исчезли из продажи, это не имеет существенного значения. Ведь 2 ГБ это более трех часов звучания СТЕРЕО 16 бит.
Проигрывание запускается выбором в двоичном коде нужного файла путем замыкания кнопок SB1…SB8. Кнопки показаны условно, это могут быть линии связи с управляющим контроллером или сигналы с каких-то датчиков. При замыкании кнопки SB1 проигрывается файл с именем 001.wav. Если нажать одновременно SB2 и SB3 – 006.wav, а если замкнуть все кнопки одновременно – 255.wav.
Возможны четыре варианта работы проигрывателя.
Mode 0: Level trigger – Проигрывание выбранного файла начинается в соответствии с набранным на кнопках кодом и продолжается в режиме автоповтора до тех пор, пока этот код не сменится. При смене кода начинается проигрывание другого файла, также в режиме автоповтора. При отпускании всех кнопок проигрывание прекращается.
Mode 1: Level trigger (sustained) – Аналогично режиму 0, но, если разомкнуть все кнопки в момент проигрывания файла, он все равно будет воспроизведен до конца.
Mode 2: Edge trigger – Музыкальный файл воспроизводится только один раз и до конца. Любая смена кода в момент проигрывания игнорируется.
Mode 3: Edge trigger (re-triggerable) – Похоже на режим 2, но при смене кода в момент проигрывания, текущее воспроизведение прекращается и начинается проигрывание нового файла. Чтобы перезапустить воспроизведение текущего файла, нужно отпустить все кнопки и вновь нажать ту же самую комбинацию.Для выбора нужного режима в корневом каталоге карты памяти вместе с музыкальными файлами должен находиться файл с именем 000.txt, в котором записана нужная цифра – 0, 1, 2 или 3. Пример этого файла есть в архиве с прошивками. Я проверил работу в режиме 3 – все работает именно так, как описано!
Светодиод, подключенный к выводу PB2 микроконтроллера, светится при воспроизведении. Иными словами, высокий логический уровень на этом выводе сигнализирует о том, что в данный момент проигрывается файл. Контролируя этот сигнал, управляющий контроллер может определить момент окончания воспроизведения файла. Очень важная функция для, например, рекламного речевого информатора или других электронных самоделок!
Светодиод выполняет еще одну функцию – он сигнализирует об ошибках. По количеству его вспышек можно определить, почему нет звука.
2 вспышки – ошибка ввода/вывода (не вставлена или неправильно отформатирована карта памяти.
3 вспышки – звуковой файл не найден.
4 вспышки – формат звукового файла не поддерживается.Автор не делает секрета из своей разработки, все файлы проекта доступны для скачивания. Но я бы не советовал что-то в них менять и дорабатывать. Лучше вряд ли удастся сделать! Просто используйте один из трех HEX файлов прошивки.
Если возникло желание добавить паузу, перемотку вперед, назад и другие сервисные режимы – не мучайтесь, просто зайдите в магазин бытовой электроники и приобретите MP3 плеер. Их выбор достаточно велик и цены вполне доступные. А этот плеер именно основа для «говорящей электронной самоделки», которая может быть отличным подарком, сделанным своими руками, или будет приветствовать посетителей в Вашем офисе выполняя роль звукового оповещателя. Ну и, наконец, может служить наглядным пособием, демонстрирующим возможности простых и дешевых микроконтроллеров.
Если Вы хотите сделать своими руками игрушку для ребенка или музыкальную шкатулку, рекомендую обратить внимание на другую разработку этого же автора - плеер на основе ATtiny85. Принцип работы и параметры те же самые, но управление воспроизведением несколько иное.
В заключение, предупреждая возможные вопросы, хочу добавить, что заменить ATtiny861 другим контроллером здесь нельзя. Дело не в доработке программы, а в особенностях внутренней периферии этой серии контроллеров. Даже если у вас в «ящике с хламом» лежит куча ATmega8, придется приобрести именно ATtiny861.
Прошивки ATtiny861, версия 21.12.2011г.
Файлы проекта от автора, версия 21.12.2011г.
http://ra4nal.qrz.ru