Один из наших роботов должен был быть оснащен функциями воспроизведения различных звуков, в том числе музыки и голосовых сообщений. Для этого было испробовано несколько различных способов от самого простейшего – генерации звуков с помощью ШИМ, до декодирования MP3 файлов посредством специализированных кодеков. Последний вариант наиболее соответствовал всем требованиям. Всего было сделано две версии звукового модуля, на микросхеме VS1001 и VS1011. Вариант на VS1011 получился наиболее удачным в плане компоновки и функционала. Эту версию мы и хотим представить общественности.
Схема модуля состоит из микроконтроллера ATmega32, микросхемы MP3 кодека VS1011, микросхем, c помощью которых в схеме осуществляется сопряжение логических уровней – 74LCX244 и 74LVC245, LDO стабилизатора на 3,3 вольта – LD1117S33TR и элементов обвязки. Так же на плате модуля размещен разъем для подключения MMC/SD карточек памяти.
Микроконтроллер тактируется от кварцевого резонатора на 16 Мгц, что для стабильной работы требует 5-и вольтового питания. В схеме встроенного стабилизатора на 5 вольт нет, так как модуль использовался в роботе совместно с управляющим контроллером и получал питание извне. В модуле присутствует стабилизатор на 3,3 вольта, необходимый для питания микросхемы кодека VS1011 и карты памяти. Так как в схеме получилось два различных напряжения питания 5 и 3,3 вольта, то необходимое сопряжение логических уровней организовано с помощью 74LCX244 (с картой памяти) и 74LVC245 (с микросхемой кодека). Управление модулем может быть осуществлено различными способами – UART, I2C (соответствующий разъем с подтяжкой на плате модуля разведен), кнопки и т.п. Порты C и D микроконтроллера ATmega32 выведены и могут использоваться для этих либо иных целей.
Микросхема VS1011 имеет собственный двухканальный усилитель на выходе, но он довольно слаб. Поэтому для усиления звука нами был использован отдельный модуль усилителя на базе микросхемы TDA7053A - http://robozone.su/2009/01/11/modul-stereo-usilitelja-unch-2-x-1w-na-baze.html. Качество и громкость звучания очень хорошие.
Печатная плата модуля выполнена в двухстороннем варианте с применением SMD комплектующих. Разводка платы рассчитана под ЛУТ. Для начинающих повторение модуля будет довольно трудным – довольно тонкие проводники на плате, маленький шаг некоторых микросхем. Без определенного опыта в ЛУТ и пайке SMD компонентов браться за изготовление модуля не рекомендуем.
Для проверки работоспособности модуля мы использовали простую прошивку на основе апноута BASCOM AVR. Работа с FAT осуществляется с помощью AVR-DOS. Более подробно с этой информацией можно ознакомится на официальном сайте BASCOM AVR.
Прошивка писалась «на скорую руку» и пока исходники мы выкладывать не будем – только hex. Позднее будут опубликованы нормальные исходники с подробными комментариями и прочим.
Тестовая прошивка управляется по COM порту. Скорость порта должны быть выставлена в 19200. На карту должны быть записаны файлы в MP3 формате с именами 1.mp3, 2.mp3 и т.д. (до 9). Ввод цифры на клавиатуре компьютера (от 1 до 9) запускает воспроизведение файла с соответствующим цифровым именем. Следующее нажатие на любую клавишу останавливает воспроизведение. Кодек VS1011 может воспроизводить звуковые файлы в формате WAV, но эта возможность нами не проверялась и в прошивке не учитывалась.
Схема модуля в формате sPlan 6.0, разводка печатной платы под ЛУТ в формате Sprint-Layout 5.0, файл тестовой прошивки в формате *.hex и документацию по микросхеме VS1011 вы можете скачать ниже:
Демонстрационная прошивка с исходниками на BASCOM AVR. Управление через COM-порт. Подробные комментарии.