Схема. Проигрыватель файлов формата МРЗ с SD-карт памяти
Проигрыватель, внешний вид которого показан на рис. 1, — совершенно новая конструкция. Из прежних своих разработок я позаимствовал лишь подпрограммы обслуживания декодера и работу с файловой системой FAT32.
Размеры проигрывателя — 70x42x20 мм, а его основные характеристики определяет специализированная микросхема VS1011e [2]. Она содержит 18-разрядный ЦАП и обеспечивает следующие параметры:
Коэффициент нелинейных искажений, %……………..0,1
Уровень шума, дБ ……………-85
Динамический диапазон, дБ…….90
Диапазон воспроизводимых частот, Гц…………..20…20000
Неравномерность АЧХ, дБ……±0,1
Размах выходного напряжения, В……………………1,6
Прибор может воспроизводить музыкальные записи форматов МРЗ (битрейт до 256 Кбит/с или переменный) и WAV.
Для последних допустимы следующие субформаты:
0x01 — РСМ с частотой квантования до 48 кГц;
0x11 — IMA ADPCM с частотой квантования до 48 кГц;
0x55 — МРЗ.
На остальные субформаты декодер VS1011е не рассчитан.
Проигрыватель работает с картами памяти SD и SDHC, причем возможна «горячая» смена карты. Он должен работать и с картами ММС, но это не проверялось. Проверены SD-карты разных производителей на 512 Мбайт, 1 и 2 Гбайт, а также карты SDHC на 4 и 16 Гбайт. Проигрыватель постоянно эксплуатируется с картой на 16 Гбайт.
Поскольку поддерживается только файловая система FAT32, карты памяти перед использованием нужно отформатировать в этой системе. Microsoft Windows позволяет без проблем сделать это.
Питается проигрыватель от литий-ионной аккумуляторной батареи от сотового телефона, потребляя не более 700 мкА в выключенном состоянии (в режиме «СТОП»), 50 мА при воспроизведении с выключенной подсветкой индикатора и 70 мА, когда подсветка включена. Новой, полностью заряженной батареи емкостью 600 мА-ч хватает на 10… 12 ч непрерывного воспроизведения.
Алгоритм управления проигрывателем прост и интуитивно понятен. Из режима «СТОП» можно начать воспроизведение, перейти к предыдущему и последующему файлу (треку), войти в каталог записей и выйти из него, управлять громкостью и тембром и, наконец, выключить проигрыватель.
Во время воспроизведения можно сделать паузу или вовсе прекратить его, перейти к предыдущему или последующему файлу, управлять громкостью и тембром, а также заблокировать кнопки управления, чтобы избежать последствий случайных нажатий на них.
При регулировании тембра предусмотрено как изменение значений частоты среза регуляторов НЧ и ВЧ, так и степени создаваемых ими подъемов/провалов АЧХ. На НЧ можно установить частоту среза от 20 до 150 Гц с шагом 10 Гц и подъем АЧХ на этой частоте от нуля до 15 дБ с шагом 1 дБ. На ВЧ частота среза — от 1 кГц до 15 кГц с шагом 1 кГц, а глубина регулирования — от -12 дБ до 10,5 дБ с шагами по 1,5 дБ, причем ее значение выводится на индикатор также в шагах (от -8 до 7), а не в децибелах. Громкость регулируется одновременно в обоих стереоканалах от 0 дБ (максимальная) до -72 дБ (минимальная).
Установленные пользователем положения регуляторов громкости и тембра проигрыватель сразу же запоминает в энергонезависимой памяти. Поэтому при включении положения регуляторов останутся такими, какими они были при выключении проигрывателя. Запоминается также последний файл перед выключением. После включения происходит переход к этому файлу (при отсутствии ошибок). Нажатие на любую кнопку управления включает на несколько секунд подсветку дисплея.
Схема проигрывателя показана на рис. 2. Все функции управления входящими в его состав устройствами и взаимодействия между ними выполняет микроконтроллер DD2, работающий от внутреннего тактового генератора на 4 МГц. При внутрисхемном программировании микроконтроллера к контактным площадкам ХТ1—ХТ6 припаивают провода, идущие к программатору. Позиционные номера этих площадок соответствуют номерам контактов разъема программатора AVRISP. Резисторы R12—R14 устраняют влияние элементов проигрывателя на процесс программирования микроконтроллера.
Нажатия на кнопки управления SB1—SB6 генерируют запросы внешних прерываний INTO и INT1 микроконтроллера. Пары светодиодов HL3, HL4 и HL5, HL6 (подсветка экрана ЖКИ HG1) подключены к разным выводам микроконтроллера, чтобы уменьшить токовую нагрузку на них. Для определения степени заряженности аккумуляторной батареи GB1 на вход АЦП микроконтроллера поступает с выхода резистивного делителя R17R18 половина напряжения питания.
Декодер МРЗ DD1, ЖКИ HG1 и карта памяти DS1 связаны с микроконтроллером по интерфейсу SPI. Выбор устройства для обмена информацией производится сигналами, формируемыми микроконтроллером на выводах 7, 9, 12, 13. На выводе 10 микроконтроллер формирует сигнал аппаратной установки в исходное состояние декодера DD1, а на выводе 14 — ЖКИ. Сигнал готовности декодера к приему информации поступает на вывод 11 микроконтроллера. Логический уровень, установленный микроконтроллером на выводе 8, для ЖКИ HG1 означает, будет ли ему передан по интерфейсу SPI байт команды или байт информации для отображения.
Для загрузки цифрового потока аудиоинформации в декодер применена небольшая схемная «хитрость». Дело в том, что если прервать чтение сектора SD-карты, обращение к ней завершится ошибкой. Чтобы восстановить работу карты, ее придется заново инициализировать. А для хранения всего содержимого сектора карты в микроконтроллере недостаточно оперативной памяти.
Было решено информацию, прочитанную из SD-карты, подавать по линии MISO прямо в декодер, минуя микроконтроллер. Для этого сигналы MISO и MOSI объединены у декодера логическим узлом И на сдвоенном диоде Шотки VD4. Микроконтроллер только следит за информационным потоком и управляет им. Чтение цифровой информации из декодера не предусмотрено, в рассматриваемом устройстве в этом нет необходимости.
Выход проигрывателя — стереогнездо XS2 под стандартную вставку диаметром 3,5 мм. Тип гнезда — SJ-3.5-03. Номинальная нагрузка — стереотелефоны сопротивлением 2×30 Ом.
ЖКИ HG1 (LPH7889-1 от сотового телефона Siemens C35, но нужно быть внимательным, в некоторых партиях таких телефонов применены и другие ЖКИ) имеет на схеме двойную нумерацию выводов. Без скобок указаны номера проводов плоского кабеля, соединяющего ЖКИ с разъемом на плате и контактов этого разъема. В скобках — номера выводов встроенного контроллера ЖКИ, к которому ведет упомянутый кабель.
Для упрощения программирования вывода информации на ЖКИ он установлен в проигрывателе повернутым в плоскости табло на 180 град, относительно положения в телефоне. Это оказалось удобнее, чем выводить сообщения «задом наперед». Пришлось, однако, разработать специальные кодовые таблицы-знакогенераторы. Именно ими различаются варианты программы микроконтроллера, приложенные к статье. В одном случае (файл MP3_SD_LVAplayer_wide. hex) линии шрифта на экране толще, в другом (файл MP3_SD_LVAplayer_thin. hex) — тоньше. Вариант можно выбрать по своему вкусу.
Немного об аккумуляторной батарее GB1. Согласно моему опыту, во все литий-ионные батареи для сотовых телефонов встроен контроллер зарядки—разрядки. Иногда проскакивающие в Интернете сообщения, что такие батареи самовоспламеняются или взрываются, не имеют под собой никаких оснований. Не нужно путать их с действительно опасными литиевыми гальваническими элементами, которые по этой причине выпускают лишь с очень небольшим запасом энергии и не подлежат зарядке.
Рекомендую проверить аккумуляторную батарею перед использованием. Для этого ее нужно подключить, соблюдая полярность, к источнику постоянного тока около 50 мА и контролировать ток и напряжение на батарее в процессе ее зарядки. По достижении напряжением на батарее значения 4,1…4,2 В встроенный контроллер автоматически прекращает зарядку, а ток в результате разрыва цепи контроллером падает до нуля. Если это произошло, контроллер зарядки исправен и батарею можно эксплуатировать.
Возможно, встроенный контроллер и не стабилизирует ток зарядки на оптимальном уровне, но это не так уж важно. Достаточно, что он защищает батарею от перезарядки, отключая ее от зарядного устройства при указанном выше напряжении, а также от чрезмерной разрядки, отключая нагрузку при уменьшении напряжения батареи до 3,3…3,4 В. Как правило, встроенный контроллер защищает аккумуляторную батарею и от замыканий в нагрузке, а также от превышения допустимой температуры во время зарядки и разрядки.
Отсутствие необходимости во внешнем контроллере зарядки аккумуляторной батареи значительно упрощает проигрыватель, однако на время зарядки требуется обязательно отключать от батареи все питаемые от нее узлы. Это связано с тем, что в конце зарядки напряжение на внешних выводах батареи скачком увеличивается до напряжения холостого хода зарядного устройства — обычно до 6…7 В, чего может оказаться достаточно для повреждения питаемых от батареи узлов.
В описываемом проигрывателе эту проблему решает применение гнезда XS1 особой конструкции. Его тип — DJK-05D. При вставлении в это гнездо вставки зарядного устройства контакты 2 и 3 размыкаются и отключают минусовый вывод батареи GB1 от общего провода проигрывателя. При выборе зарядного устройства необходимо убедиться, что его вставка подходит к гнезду XS1, а напряжение холостого хода находится в указанных выше пределах. Автор использовал сетевой блок питания из комплекта сотового телефона Nokia.
Зарядный ток течет через диод VD2 (он же защищает батарею от повреждения при неправильной полярности подключения зарядного устройства). О том, что зарядка идет, сигнализирует светодиод HL2. Светодиод HL1 в это время выключен благодаря стабилитрону VD1. Когда по окончании зарядки встроенный контроллер батареи разрывает цепь, напряжение на ее выводах повышается и становится достаточным для включения светодиода HL1. В зависимости от типов батареи и ее контроллера он может светить непрерывно или мигать с периодом 1 …2 с. После отключения зарядного устройства диод VD2 закрыт, а светодиоды HL1, HL2 выключены независимо от состояния батареи GB1.
Подаваемое на микросхемы VS1011 е и SD-карты памяти напряжение не должно превышать 3,6 В. Но у полностью заряженной литий-ионной батареи оно может достигать 4,2 В, что на 0,6 В больше. Диод VD3 гасит избыток, но увеличивает внутреннее сопротивление источника питания проигрывателя, поэтому в паузах музыкального произведения могут слегка прослушиваться помехи, вызванные импульсным характером потребления цифровых узлов устройства. На свой страх и риск можно попробовать исключить этот диод.
Основная печатная плата проигрывателя изготовлена из фольгированного с обеих сторон стеклотекстолита толщиной 1,5 мм. Чертеж платы и расположение деталей на ее сторонах изображены на рис. 3. Под кварцевый резонатор ZQ1 и контакты для карты памяти DS1 в ней вырезаны сквозные окна. Отверстия в плате, показанные на видах на детали залитыми, переходные. Они должны быть либо металлизированы, либо в них нужно будет вставить и пропаять с обеих сторон отрезки провода.
Часть элементов (на схеме рис. 2 они обведены штрихпунктирной линией) вынесена на дополнительную плату из одностороннего фольгированного стеклотекстолита толщиной 1 мм. Чертеж платы показан на рис. 4.
Большинство деталей, устанавливаемых на платы проигрывателя, — для поверхностного монтажа: резисторы и керамические конденсаторы типоразмера 1206, декодер DD1 в корпусе SOIC-28, микроконтроллер DD2 в корпусе TQFP-32, светодиоды HL1, HL2 типоразмера 1206, a HL3—HL6 — типоразмера 0805 из телефона Siemens C35, где предназначались, как и в проигрывателе, для подсветки экрана ЖКИ.
Диод ВАТ68-06 можно заменить другим таким же по схеме соединения сдвоенным маломощным диодом Шотки или двумя отдельными.
Оксидные конденсаторы С17 и С19 — алюминиевые типоразмера С для поверхностного монтажа (диаметр и высота корпуса — 6 мм). Если есть возможность, их следует выбирать возможно большей емкости. Остальные оксидные конденсаторы — танталовые типоразмера А.
Сборку проигрывателя начинают с изготовления контактного устройства для SD-карты (готовое найти не удалось). Контактные пружины для него извлечены из компьютерного слота ISA, но можно найти подходящие и в разъеме плоского кабеля, которым когда-то подключали к компьютеру пятидюймовый дисковод. Контур установленной в проигрыватель карты изображен на рис. 3 штрихпунктирной линией.
Каждую пружину следует припаять к соответствующим контактным площадкам обязательно с обеих сторон основной печатной платы, чтобы предотвратить отрывание фольговых площадок от стеклотекстолита под действием усилий, которые возникают из-за упругости пружин при установке SD-карты в контактное устройство. Каждая пара площадок дополнительно усилена припаянным к ним отрезком луженого провода диаметром около 0,25 мм, проложенным через край окна в плате. На рис. 5 показано, как выглядят контактные пружины со стороны установки SD-карты.
После контактных пружин на плату монтируют конденсаторы С17и С19, затем гнездо XS2. Выступающие над поверхностью платы концы выводов и крепежных элементов гнезда следует обрезать. Этим будет обеспечена плоскостность поверхности, на которой собирают контактное устройство.
На основную плату накладывают две направляющие прокладки для SD-карты, изготовленные из нефольгированного стеклотекстолита или другого плотного листового изоляционного материала по чертежу на рис. 6. Толщина первой прокладки — 0,8 мм, размер А=23 мм. У второй толщина — 1,5 мм, А=24 мм. Последней в эту стопку укладывают печатными проводниками вверх дополнительную плату. Конструкция примет более эстетичный вид, если между основной платой и стопкой поместить не закрывающий контактные пружины листок ламинированной бумаги с декоративным либо поясняющим, как вставлять SD-карту, рисунком.
Всю конструкцию скрепляют шестью отрезками жесткого медного провода, пропущенными в отверстия, предусмотренные для них в платах (на рис. 3 и 4 они обозначены косыми крестами) и в прокладках. Диаметр отверстий и отрезков провода должен быть таким, чтобы посадка была тугой. После окончательной сборки контактного устройства, проверки легкости хода карты и надежности контактов отрезки провода фиксируют на платах пайкой.
Теперь можно электрически соединить платы монтажными проводами, припаянными к контактным площадкам с одинаковыми номерами на каждой из плат, и смонтировать все остальные элементы, возможно, кроме декодера DD1. Почти все этапы налаживания проигрывателя могут быть выполнены и без него. Полностью собранный электронный блок проигрывателя со стороны ЖКИ и SD-карты показан на рис. 7, а со стороны большинства остальных деталей — на рис. 8. Обратите внимание, что плата с этой стороны закрыта накладкой из органического стекла толщиной 2,5 мм с фрезерованными углублениями под детали. В ней также просверлены отверстия для идущих к контактным площадкам ХТ1—ХТ6 проводов от программатора.
На внешней стороне накладки помещены контакты для подключения аккумуляторной батареи (их конструкция зависит от ее типа) и расположена сама батарея. На фотоснимке батарея отсутствует.
Корпус проигрывателя (рис. 9) изготовлен из белой жести толщиной 0,4 мм. При подготовке его развертки в местах паяных швов делают припуски по 2 мм.
В развертке заранее сверлят и вырезают отверстия для кнопок управления, светодиодов, ЖКИ, гнезд XS1 и XS2, установки SD-карты Изгибают развертку в тисках по заранее подготовленным шаблонам, ни в коем случае не используя в их качестве платы и другие элементы проигрывателя.
После пропайки швов, снятия заусенцев, шлифовки, окраски или оклейки декоративной пленкой корпус готов к установке в него электронного блока.
Около отверстий для кнопок SB 1 —SB6 и светодиодов HL1, HL2 на переднюю панель корпуса наклеивают изображенную на рис. 10 упругую накладку с надписями, поясняющими назначение кнопок. По такой же технологии изготавливают и заднюю крышку корпуса, закрывающую аккумуляторную батарею.
Налаживание проигрывателя начинают с программирования микроконтроллера DD2. Пока в проигрыватель не установлен декодер DD1, а в контактное устройство не вставлена SD-карта, сделать это можно с помощью любого программатора, подключив его к контактным площадкам ХТ1—ХТ6. В противном случае необходим программатор, обеспечивающий напряжение не более 3,6 В на программируемом микроконтроллере, например, стандартный ISP-программатор фирмы Atmel. Автор пользовался программатором с интерфейсом USB, описанным в [3].
Во время программирования желательно питать микроконтроллер от аккумуляторной батареи проигрывателя. Для этого провод питания от программатора к контактной площадке ХТ2 не подключают.
Конфигурация микроконтроллера при программировании должна соответствовать таблице. Учтите, что в большинстве случаев, когда конфигурацию задают «галочками», нулю в таблице соответствует наличие «галочки», а единице — ее отсутствие. В EEPROM микроконтроллера никакой информации при программировании не заносят.
При подключении аккумуляторной батареи GB1 к проигрывателю с правильно запрограммированным микроконтроллером DD1 на экране ЖКИ HG1 появятся логотип и информация о степени заряженности батареи GB1. После удержания кнопки SB1 нажатой в течение примерно 3 с включится подсветка экрана ЖКИ и будет выполнена попытка инициализации SD-карты. Если карта не обнаружена, на экран будет выведена просьба вставить ее, что и следует сделать, не выключая проигрыватель.
После успешной инициализации карты на экран будет на 2 с выведено сообщение о ее информационной емкости в мегабайтах, типе и версии (ММС, SD vl.xx или SD v2.0). Если появится сообщение «Not Format FAT32», карту необходимо отформатировать, создав на ней файловую систему FAT32.
Если описанного выше не происходит, проверьте правильность программирования и конфигурацию микроконтроллера, а также еще раз убедитесь в отсутствии ошибок монтажа, обрывов и замыканий на печатных платах проигрывателя.
В случае, когда подсветка экрана ЖКИ включается, но никакой информации на нем нет, нужно проверить исправность плоского кабеля, соединяющего ЖКИ с разъемом на плате, и качество контактов в этом разъеме. Если SD-карта не инициализируется или при чтении информации из нее наблюдается большое число ошибок, проверьте качество самодельного контактного устройства и саму карту, подключив ее к компьютеру или другому работающему с такими картами заведомо исправному устройству.
Программа микроконтроллера «понимает» только короткие имена файлов. Форматирование карты нужно обязательно начинать с имени тома, иначе оно не будет найдено предлагаемой версией программы.
Во время просмотра содержимого карты при переходах от каталогов к файлам и обратно возможны заметные задержки выведения информации на экран ЖКИ.
Если все описанные этапы проверки и налаживания проигрывателя выполнены успешно, можно установить в него декодер DD1 и приступить к эксплуатации.
Кнопкой SB1 («On/Off») проигрыватель включают и выключают. Как уже упоминалось, для включения ее следует удерживать нажатой не менее 3 с. Нажатием на эту же кнопку во время воспроизведения блокируют клавиатуру, предотвращая этим реакцию на случайные нажатия кнопок. Проигрыватель автоматически выключится по достижении конца текущего каталога.
Кнопкой SB2 («Esc») выходят из текущего каталога или прекращают воспроизведение. При выходе имена каталогов не восстанавливаются, а обозначаются как «PREV Dir» (предыдущий каталог) и «CURR Dir» (текущий каталог). По достижении конца каталога на экране ЖКИ кратковременно появляется надпись «EndDir».
Кнопками SB3 («Prev/Down») и SB4 («Next/Up») переходят соответственно к предыдущему и последующему каталогу или файлу на SD-карте. Во время воспроизведения смена файла возможна только в пределах текущего каталога. Если для изменения выбран один из параметров регуляторов громкости и тембра, этими же кнопками изменяют их значения.
Кнопка SB5 («Select») имеет две функции. Нажатиями на нее выбирают каталог из имеющихся на SD-карте. После выбора файла и во время воспроизведения нажатиями на эту кнопку перебирают по кругу предусмотренные в проигрывателе регулировки громкости и тембра и их параметры. В нижней строке ЖКИ выводится название выбранного параметра и его текущее значение. При достижении конца файла параметры регуляторов громкости и тембра будут убраны с экрана, а нажатия на кнопки SB3 и SB4 станут приводить к смене файла.
Кнопкой SB6 («Play») включают воспроизведение, а повторным нажатием на нее временно его приостанавливают.
Когда подсветка экрана ЖКИ выключена, первое нажатие на любую из кнопок приводит к включению подсветки, а не к исполнению соответствующей кнопке операции.
При выключенном проигрывателе на экран ЖКИ выводится информация о степени заряженности аккумуляторной батареи в процентах. Однако для экономии энергии батареи измерение ее напряжения выполняется лишь по запросу пользователя. Для обновления показаний достаточно кратковременного нажатия на любую из кнопок SB1 — SB6.
Во время воспроизведения информация о заряженности выводится в правый верхний угол экрана в виде символа батареи, рядом с которым находится смайлик — от улыбающегося до грустного в зависимости от степени заряженности ступенями по 20 %. Символ ключа в верхнем левом углу экрана означает, что кнопки проигрывателя заблокированы на время воспроизведения.
При разработке использовалась в основном информация из источников [4—11].
Прилагаемые файлы: MP3_SD_player.zip
В. ЛУЗЯНИН, г. Анапа Краснодарского края
«Радио» №3 2011г.
ЛИТЕРАТУРА
1. Лузянин В. Проигрыватель аудио-CD из привода CD-ROM. — Радио, 2006, № 12, с. 26-28; 2007, № 1, с. 32-34.
2. VS1011e — MPEG AUDIO CODEC. — <<noindex> www.vlsi.fi </noindex>>
3. Рыжков А. USB-программатор микроконтроллеров AVR и AT89S, совместимый с AVR910. — Радио, 2008, № 7, с. 28, 29.
4. Катичев A. LCD Nokia 3410. — <<noindex> www.payalnik-ru.narod.ru </noindex>>
5. Катичев А. Азы работы с ММС. — <<noindex> www.payalnik-ru.narod.ru </noindex>>.
7. ОМ6206 65×102 pixels matrix LCD driver. — <<noindex> www.doc.chipfind.ru </noindex>>.
8. Secure Digital Card, Product Manual, Revision 1.7. — <<noindex> www.payalnik-ru.narod.ru </noindex>>.
9. High Density MMC Application Note. — <<noindex> www.payalnik-ru.narod.ru </noindex> >.
10. Кулакове. Программирование дисковых подсистем. — С.-Пб.: Издательский дом «Питер», 2002.
11. Литий-ионные (Li-ion) аккумуляторы. — <<noindex> www.powerinfo.ru </noindex>>.