MP3 плеер своими руками
Набравшись немного терпения, вы можете спаять самодельный MP3-плеер своими руками, при этом затратив менее 1000 руб. Т.к. программное обеспечение данного плеера представлено в открытом виде (доступны все исходники проекта), то вы можете дорабатывать его вводя новые функции, к примеру: управление по последовательному интерфейсу, можете использовать плеер в различных проектах робототехники, ну и естественно по его прямому предназначению – прослушивание музыки. Карта памяти – SD/MMC, размер памяти ограничен теоретическим лимитом спецификациями MMC-формата. Данный MP-3 плеер поддерживает такие функции как случайное воспроизведение треков, навигация по трекам (вперед, назад, пауза), регулирование громкости воспроизведения. Также присутствует поддержка файловой системы FAT32, фрагментированных файлов, неограниченное число файлов в корневой директории, ну и естественно качество воспроизведения находится на высоком уровне. MP3-файлы с битрейтом 256 кБит/с воспроизводятся без каких-либо затыков, файлы с переменным битрейтом также воспроизводятся без проблем (в пике до 320 кБит/с). WAV файлы также поддерживаются, но качество должно быть ниже чем у CD, пока вы не поставите кварцевый резонатор с большей частотой. На моем тестовом плеере это работает, однако запустить PIC с более чем ~8 МГц кварцем при питании 3.3 Вольта проблематично. Для записи файлов на карту памяти вам будет нужен кард-ридер. Помните, что карта памяти должна быть в формате FAT32, а не в FAT16 или каком-либо другом. Файлы на карте памяти должны быть с расширением .mp3. Вставьте карту памяти в плеер и включите питание, воспроизведение начнется с первого трека. Файлы воспроизводятся в том порядке – как они были на нее записаны (если не включена функция случайного воспроизведения). Чтобы включить случайное воспроизведение, удерживайте кнопку «следующий трек» во время включения MP3-плеера. Функция будет работать до следующего включения плеера. Когда все треки будут проиграны, воспроизведение останавливается и плеер уходит в «sleep» режим.
Исходный код Исходник написан на Си. В качестве компилятора я использовал PCM midrange compiler от CCS (офсайт ccsinfo.com). Компилятор платный, однако выдает очень компактный код и содержит достаточно богатый набор встроенных функций и данных. Если в исходном коде вам не нужно делать каких-либо изменений и корректировок, то в архив я вложил уже готовый HEX-файл. Перед прошивкой не забудьте очистить фьзы BROWNOUT и WATCHDOG, иначе устройство не заработает! Почти вся память контроллера 4К используется. Память EEPROM 256 байт полностью используется под таблицу данных для функции случайного воспроизведения. При необходимости можно освободить память, удалив несколько не очень критичных функций, к примеру функции для кнопок и случайное воспроизведение.
Думаю vs1011e также должна подойти с некоторыми изменениями Ниже вы можете скачать прошивки, исходники, PCB и другие файлы
Стационарный MP3/CD-плеер своими силами
Думаю, нет необходимости знакомить вас с форматом потокового сжатия и хранения аудиосигнала MP3 (желающие могут прочитать соответствующие статьи на нашем сайте). За последние три-четыре года этот формат стал самым популярным для распространения музыки среди пользователей РС и, в особенности, сети Internet. Его популярность в первую очередь вызвана высокой степенью компрессии исходного аудиосигнала, не вызывающей значительной потери качества. К примеру, десять аудиодисков стандартной продолжительностью 74 минуты можно легко уместить на одном компакт диске со звуковыми файлами, записанными в формате MP3. Таким образом, всего на одном CD-R, ценой менее 1$, можно хранить 12 часов музыки с приличным качеством. Кроме того, значительное падение цен на приводы CD-RW привело к их активному распространению среди домашних пользователей. В результате составление и запись собственных музыкальных библиотек в формате MP3 на компакт-дисках становится крайне выгодным по сравнению с записью обычных аудиодисков и гораздо более надежным (и более качественным) способом хранения по сравнению, например, с магнитной лентой.
Однако в этой большей бочке меда присутствует далеко не маленькая ложка дегтя. Для воспроизведения звука в формате MP3 первоначально требуется произвести декомпрессию аудиоданных по алгоритму, требующему для своего выполнения достаточно большое количество ресурсов. В обычной бытовой электронике соответствующих микросхем нет, поэтому послушать CD-MP3, скажем, на обычном музыкальном центре, к сожалению, не удастся. Долгое время воспроизводить MP3 файлы было возможно только с помощью компьютера, т. к. CD-проигрывателей распознающих этот формат до последнего времени в широкой продаже просто не было. На сегодня ситуация на рынке несколько изменилась, можно достаточно просто найти и приобрести портативный MP3/CD плеер за 100 — 200 долларов. Причем сложилась парадоксальная ситуация: при достаточно широком ассортименте портативных носимых моделей, устройства рассчитанные на стационарную работу, можно пересчитать по пальцам. Да и, кроме того, стоимость последних колеблется в районе 300-800 долларов. Вряд ли такие затраты агрегаты, можно считать приемлемыми и оправданными для среднего жителя нашей страны даже с учетом таких дополнительных возможностей этих устройств, как DVD-видео, караоке и т п.
Однако положение все же не так безнадежно, как кажется на первый взгляд. Для работы с MP3-файлами, вполне достаточно, вычислительной мощности младших моделей процессоров пятого поколения (Pentium, K5, Cyrix) с частотой 100 МГц. С учетом просто смешных цен на столь сильно устаревшее морально «железо», это позволяет собрать своими руками MP3/CD плеер, не уступающий по своим характеристикам фирменным моделям, при затратах на компоненты всего в 70–100 долларов. Данному вопросу и посвящена эта статья.
Выбор аппаратуры
- MB должна быть рассчитана на питание от блока питания типа АТ: стоимость такого БП в 2-2,5 раза ниже, чем у ATX-аналогов
- BIOS обязательно должен поддерживать загрузку операционной системы с CD-ROM
Кулер для процессора следует выбрать помощнее: рассчитанный на охлаждение процессоров Celeron/Р3, а еще лучше Duron/Atlon. Радиаторы в таких кулерах обладают лучшей теплоотдачей, что позволяет использовать их без вентилятора (для уменьшения шума). Устанавливать радиатор нужно обязательно, предварительно обмазав процессор тонким слоем теплопроводящей пасты. В процессе работы системы проконтролируйте температуру радиатора. Если поднимается выше 50-60 градусов, то можно попытаться уменьшить тактовую частоту CPU изменением внешней частоты шины или коэффициента умножения для внутренней частоты процессора. Кроме того, можно попытаться, снизить напряжение питания ядра процессора на 0,1–0,3 В, если это позволяет сделать выбранная материнская плата. Если установка нестандартных напряжений не описана в инструкции к MB (или инструкция просто отсутствует), то стоит ознакомиться с документом по этому адресу: возможно, с его помощью все получится.
Требования к оперативной памяти у программы проигрывателя MP3 для DOS минимальны. Это позволяет ограничиться двумя модулями SIMM по 4 Mбайта.
К выбору привода СD-ROM нужно отнестись более внимательно. С одной стороны нужно выбрать устройство с как можно меньшей скоростью вращения диска: это не только приведет к снижению общей стоимости проигрывателя, но и значительно понизит общий шумовой фон, создаваемый при работе устройства. Но, с другой стороны, проигрыватель компакт дисков должен обязательно уметь работать с CD-R и, крайне желательно, CD-RW. Оптимальным будет установка 8–24×-скоростного проигрывателя. Только не забудьте перед окончательным выбором модели CD-ROMа проверить работу с записываемыми и перезаписываемыми дисками. Для проигрывания AudioCD нужно соединить привод CD-ROM со звуковой картой кабелем.
Доработка АТ блока питания
Техника безопасности
Блок питания (БП) — единственный компонент в корпусе компьютера, где присутствуют опасные для жизни человека уровни напряжения. Надо заметить, что пагубное воздействие электрического тока на тело человека линейно возрастает по мере увеличения частоты воздействующего напряжения. В импульсных схемах стабилизаторов напряжения (к ним относится БП компьютера) сетевое напряжение 220 В 50 Гц (опасное для жизни) сначала выпрямляется, а затем преобразуется в переменный ток, но с частотой уже до нескольких десятков Кгц, что увеличивает разрушающее воздействие электрического тока на органы человека в несколько раз, и уже после такого преобразования напряжение понижается до безопасного уровня с помощью трансформатора. Поэтому все дальнейшие манипуляции проводите только при отключенном от сети шнуре питания. Также после отключения БП от сети перед началом работ желательно выдержать паузу в течение примерно 10 секунд, необходимую для разрядки высоковольтных конденсаторов.
Теперь о том, что предстоит сделать. Прежде всего, необходимо раскрутить корпус БП и изъять из него вентилятор (с целью снижения шумности изготавливаемого проигрывателя). Для компенсации ухудшения теплообмена имеет смысл заменить штатные радиаторы, прикрученные к силовых транзисторам и микросхемам стабилизаторов. Если они в процессе работы разогреваются до температуры выше 60°, то замените их более мощными, изготовленными, к примеру, из радиаторов от слотовых или сокетных процессоров. Температуру радиаторов ни в коем случае не проверяйте пальцем! Если у вас в наличии нет электронного термометра с электрически изолированным датчиком, то для приблизительной оценки температуры, можно положить на каждый радиатор (в выключенном состоянии) по маленькому кусочку парафина (температура плавления последнего 56°). Те радиаторы, на которых в процессе работы парафин начинает плавиться, желательно усилить. В любом случае проверьте, все ли компоненты, прикрученные к радиаторам, посажены на слой теплопроводящей пасты. Если нет — исправьте данную недоработку. Теплопроводящую пасту КПТ 8 можно приобрести практически в любом магазине торгующем радиоэлектронными компонентами.
Компромиссным вариантом является уменьшить напряжение питания вентилятора с 12 до 7 В путем подсоединения его между выходами БП +5 В и +12 В. Это значительно снизит производимый им шумовой фон.
Для уменьшения путаницы проводов, а также увеличения надежности желательно выпаять лишние провода для питания различной периферии. Необходимо оставить только шину, питающую материнскую плату и две шины для питания CD-ROM, дисковода и внешних индикаторов.
С целью уменьшения габаритов корпуса, блок питания в проигрыватель можно установить без кожуха, оставив только металлическое основание с прикрученной к нему платой стабилизатора. При такой установке еще и улучшится теплообмен силовых элементов БП с окружающей средой. Ничего страшного и особо опасного в эксплуатации такого БП нет: в бытовой аппаратуре блок питания обычно никогда не закрывается железным коробом с гудящим на всю комнату осевым вентилятором. Необходимо только помнить о мерах предосторожности, указанных выше.
Доработка клавиатуры
Для проигрывателя MP3 подойдет практически любая дешевая клавиатура. Фактически нам понадобится только небольшая плата контроллера с соединительным кабелем.
Сначала немного теории.
Упрощенная структурная схема клавиатуры показана на рисунке. Как видно из схемы, все клавиши находятся в узлах матрицы. Все горизонтальные линии матрицы подключены через резисторы к источнику питания +5 В. Клавиатурный контроллер имеет два порта — выходной и входной. Входной порт подключен к горизонтальным линиям матрицы (X0-X4), а выходной — к вертикальным (Y0-Y5). Устанавливая по очереди на каждой из вертикальных линий уровень напряжения, соответствующий логическому 0, контроллер опрашивает состояние горизонтальных линий. Если ни одна клавиша не нажата, уровень напряжения на всех горизонтальных линиях соответствует логической 1 (т.к. все эти линии подключены к источнику питания +5 В через резисторы). Если пользователь нажмет на какую-либо клавишу, то соответствующая вертикальная и горизонтальная линии окажутся замкнутыми. Когда на этой вертикальной линии контроллер установит значение логического 0, то уровень напряжения на горизонтальной линии также будет соответствовать логическому 0. Как только на одной из горизонтальных линий появится уровень логического 0, клавиатурный процессор фиксирует нажатие на клавишу. Он посылает в центральный компьютер запрос на прерывание и номер клавиши в матрице. Аналогичные действия выполняются и тогда, когда пользователь отпускает нажатую ранее клавишу.
А теперь, подкованные теорией, перейдем к практике. Для начала раскрутите винты на корпусе клавиатуры, и аккуратно, чтобы не рассыпались клавиши, разделите ее на две половинки: верхнюю с клавишами и нижнюю с токопроводящими дорожками на пленочной основе, присоединенными к плате контроллера.
Следующее, что необходимо сделать — укоротить соединительный кабель между клавиатурой и компьютером примерно до 25 — 30 сантиметров. При этом удобней переделать разъем, который втыкается в плату контроллера клавиатуры. В крайнем случае жилы соединительного кабеля можно просто припаять к плате с контроллером. Главное — не перепутайте их местами!
Теперь остается последний этап: нужно по рисунку печатных проводников на пленочной основе и расположению клавиш на снятой ранее верхней половинке клавиатуры отследить номера контактов на разъеме платы контроллера, которые замыкаются при нажатии соответствующих клавиш и припаять к этим контактам на многожильных проводниках длинной около 30 сантиметров кнопки управления. Проводники, к примеру, можно сделать из обрезанного ранее соединительного шнура. Для управления проигрывателем необходимо припаять кнопки на место следующих клавиш:
(Page UP), (Page Down) перемещение по записям (Left), (Right) перемотка записи (F5), (F6) скорость воспроизведения (Up), (Down) регулировка громкости (F3), (F4) баланс (/) пауза при воспроизведения (S) режим «Surround sound» (x), (c) следующий/предыдущий трэк на аудиодиске
Звуковая плата
От выбора звуковой платы в дальнейшем будет напрямую зависеть качество воспроизводимой музыки (уровень шума, искажения, и т. п.), поэтому скупиться при выборе этого важнейшего компонента для вашей будущей аудиосистемы не стоит. При выборе звуковой платы следует учесть, что большинство программных плееров, работающих под управлением MS-DOS, не совместимо с платами для шины PCI. Наилучшим выбором (по моему мнению), могла бы стать б/у SoundBlaster 16/32/64 за 10–25$.
На используемой вами звуковой плате возможно распаяна микросхема усилителя мощности звуковой частоты (УМЗЧ) мощностью 2–4 Вт на канал. При этом на плате имеются либо два разъема «line out» и «spk. out», либо (чаще всего) две перемычки.
На контакты с номером 1 стереосигнал подается непосредственно с микросхемы кодека, а на контакты под номером 3 — усиленный для воспроизведения с помощью пассивных колонок (или наоборот). Контакты 2 соответственно подсоединены к выходному разъему на плате. Коммутация сигналов осуществляется двумя перемычками, которые могут одновременно переставляться в два положения: 1–2 или 2–3. Для того, чтобы была возможность проигрывать записей без внешнего усилителя мощности, в корпус проигрывателя можно установить пару динамиков небольшой мощности и подключить их по приведенной ниже схеме, к выходу встроенного на плате усилителя мощности. Выключатель SA1 служит для отключения внутренних динамиков при воспроизведении сигнала через внешний усилитель. При этом внешний выход звуковой платы перемычками нужно сконфигурировать как «Line out». К звуковой плате динамики удобно подключать путем надевания подходящего по типоразмеру разъема на описанный выше джампер.
Корпус
Изготовление качественного корпуса — самая трудоемкая часть всего проекта. Конечно, проще всего оставить проигрыватель MP3 в корпусе от компьютера, но такой вариант вряд ли будет гармонировать с интерьером квартиры. Лучше использовать самодельный корпус подходящих габаритов и оформления, похожий по стилю исполнения на уже имеющуюся у вас аудиоаппаратуру. К примеру, удобно использовать уже готовый корпус от отжившего свой век звукового усилителя мощности, изготовленного в далекие советские времена: нужно только изготовить новую лицевую панель с необходимыми вырезами и надписями (для кнопок управления, CD-ROM и индикаторов). В общем, здесь все определяется вашей фантазией и подручными материалами. Следует только не забывать о том, что корпус должен иметь достаточное количество вентиляционных отверстий, для обеспечения нормального уровня естественной конвекции нагретого воздуха от элементов плеера, т. к в устройстве отсутствуют вентиляторы для принудительного обдува силовых элементов в БП и процессора на материнской плате. Полезно прочитать советы по изготовлению фальшпанелей по следующим адресам:
- www.nnov.rfnet.ru:8100/rf/falsh-p.htm
- lytnev.newmail.ru/tehnology/color.htm
- /www.nnov.rfnet.ru:8100/rf/anodir.htm
Индикатор номера проигрываемой записи
Для индикации номера проигрываемой записи потребуется собрать модуль индикации по несложной схеме.
Для этого узла потребуется три микросхемы К555ИР8 (восьмиразрядный сдвиговый регистр), и три семисегментных светодиодных индикатора АЛС324А с общим катодом. Перед началом проигрывания очередного файла в сдвиговые регистры D1-D3 управляющая программа последовательно загружает через LPT-порт число, соответствующее номеру проигрываемой записи, Вместо указанных на схеме микросхем, можно использовать любые другие, рассчитанные на напряжения питания 5 вольт, и имеющие, аналогичное функциональное назначение. Также подойдут любые другие светодиодные семисегментные индикаторы с общим катодом. В случае использования компонентов, отличных от указанных на схеме, потребуется скорректировать указанные здесь номера выводов для микросхем и индикаторов в соответствии с их разводкой корпусов.
Софт
После включения проигрывателя MP3 в сеть, BIOS проводит тестирование установленных в системе компонентов, после чего загружает операционную систему CD-ROM. Поэтому предварительно необходимо, подключив к материнской плате монитор, настроить соответствующим BIOS Setup. Кроме того, на все компакт диски, предназначенные для использования с данным проигрывателем, должна быть записана соответствующая загрузочная запись.
В качестве встроенной операционной системы можно использовать ядро MS-DOS из Windows 95 или 98. В процессе загрузки DOS создает виртуальный диск размером 2 Mбайт и помещает на него текстовый файл, содержащий имена всех файлов с расширением .МР3, имеющихся на компакт-диске. После чего запускается программа проигрывателя MP3 для DOS, которая начинает проигрывать по очереди записи из Playlist, начиная с той, которая была воспроизведена последней перед выключением проигрывателя. Если же после предыдущей перезагрузки системы производилась замена диска, то проигрывание начинается с первого файла в Playlist. При этом номер исполняемой записи выводится через LPT порт на внешний индикатор.
Номер исполняемой записи из Playlist и индивидуальный серийный номер диска сохраняется в энергонезависимой памяти компьютера CMOS. Управление проигрывателем производится с помощью восьми кнопок: перемотка записи вперед/назад, смена записи на следующую/предыдущую, громкость выше/ниже, пауза, смена диска.
Программное обеспечение для проигрывателя можно взять здесь. Распакуйте архив в любой каталог, поместите дискету емкостью 1.44 Mбайта в дисковод, и, под управлением Windows 95/98, запустите файл setup.bat (bat файл написан в расчете на то, что Windows установлен в каталоге c:\windows; если это условие не выполнено, то необходимо с помощью текстового редактора скорректировать соответствующие пути в файле setup.bat). Все — загрузочная дискета создана. Осталось только не забывать записывать образ этой дискеты на те диски, которые вы собираетесь слушать на описанном в этой статье проигрывателе.
Существенным недостатком приведенной выше схемы работы проигрывателя является невозможность прослушивания дисков, купленных в магазине (к примеру, коллекций альбомов какой-либо группы), т. к. на таких дисках нет соответствующей загрузочной записи. Обойти эту проблему можно, поместив дополнительно в корпус проигрывателя дисковод, с созданной ранее загрузочной дискетой, и установив в BIOS SETUP приоритет загрузки операционной системы сначала с CD-ROM, а потом с флоппи. Такая модификация удорожит конструкцию проигрывателя на 10$ (если не меньше), но, при этом, значительно увеличит универсальность его использования.
Кроме проигрывания MP3, используемая программа способна воспроизводить звуковые файлы форматов MP2, MOD, XM, S3M, а также AudioCD.
Возможные усовершенствования плеера (в расчете на любителя)
С целью улучшения внешнего вида и удобства эксплуатации проигрывателя, на передней панели корпуса можно установить индикатор мощности аудиосигнала. Его можно либо собрать самому, воспользовавшись описанием схемы приведенной, к примеру, по этому адресу, либо купив готовый блок от музыкального центра на радиорынке. Последний вариант является гораздо более простым (но не самым дешевым), в особенности, если вы не особенно хорошо разбираетесь в электронике.
Следующим шагом к повышению удобства использования проигрывателя могло бы стать оснащение его однострочным алфавитно-цифровым LC-дисплеем вместо предложенного выше цифрового индикатора номера, проигрываемого трека. Дисплей проще всего подключить к параллельному порту, и выводить на него содержимое ID3-тэгов (имя исполнителя и название песни), а также время проигрывания записи. Однако здесь не обойтись без хорошего умения программировать на Си или Паскале. В предложенной мной программе, написанной на смеси Паскаля с Ассемблером, нужно будет переписать процедуру вывода информации на индикатор в соответствии с алгоритмом работы выбранного вами LCD. Если выводимая строка не вмещается целиком на индикаторе, то нужно будет организовывать горизонтальный скроллинг, привязав его к прерыванию от аппаратного таймера компьютера (INT 1Ch). Содержимое ID3-тэга можно легко получить и без знания формата заголовка МР3-файла: с помощью вызова внутренней команды DIR (см. исходный текст, программы mp3.pas) командного процессора command.com при использовании в качестве встроенной операционной системы MS-DOS версии 7.1 (из состава Windows 98)
Заключение
Подведем итог. Для создания описанного выше проигрывателя CD-MP3 потребуются следующие компоненты:
Блок питания АТ | 8$ |
Процессор с частотой 100-150 MГц | 12$ |
Кулер | 3$ |
Материнская плата | 20$ |
Память 2 SIMM по 4 Mбайта | 8$ |
б/у CD-ROM 8× | 20$ |
Клавиатура | 4$ |
Звуковая плата | 8$ |
Прочие расходы (микросхемы, индикаторы, динамические головки) | 7$ |
Итого | 90$ |
С учетом использования более качественной звуковой платы и дисковода для 3,5″ дискет, расходы могут вырасти до отметки 120 долларов. Плюс к тому придется потратить пару выходных на сборку проигрывателя. Поэтому, возможно, практичнее будет добавить еще 30$ долларов и купить носимый MP3/CD плеер, с адаптером питания от сети, и подключить его к вашему музыкальному центру. В данном случае его можно будет всегда взять плеер с собой в дорогу (только необходимо перед этим, не забыть запастись комплектом батареек). С другой стороны если вы уже обладаете морально устаревшим компьютером на чем-нибудь типа Intel Pentium 100, любите слушать музыку, и немножко разбираетесь в сборке компьютерного железа, то самостоятельная сборка описанного здесь MP3/CD плеера может оказаться гораздо более выгодным вариантом, нежели продажа старого компьютера фактически за бесценок.
Одноклассники
Дополнительно |
Стационарный MP3/CD-плеер своими силами
Стационарный MP3/CD-плеер своими силами
Думаю, нет необходимости знакомить вас с форматом потокового сжатия и хранения аудиосигнала MP3 (желающие могут прочитать соответствующие статьи на нашем сайте). За последние три-четыре года этот формат стал самым популярным для распространения музыки среди пользователей РС и, в особенности, сети Internet. Его популярность в первую очередь вызвана высокой степенью компрессии исходного аудиосигнала, не вызывающей значительной потери качества. К примеру, десять аудиодисков стандартной продолжительностью 74 минуты можно легко уместить на одном компакт диске со звуковыми файлами, записанными в формате MP3. Таким образом, всего на одном CD-R, ценой менее 1$, можно хранить 12 часов музыки с приличным качеством. Кроме того, значительное падение цен на приводы CD-RW привело к их активному распространению среди домашних пользователей. В результате составление и запись собственных музыкальных библиотек в формате MP3 на компакт-дисках становится крайне выгодным по сравнению с записью обычных аудиодисков и гораздо более надежным (и более качественным) способом хранения по сравнению, например, с магнитной лентой.
Однако в этой большей бочке меда присутствует далеко не маленькая ложка дегтя. Для воспроизведения звука в формате MP3 первоначально требуется произвести декомпрессию аудиоданных по алгоритму, требующему для своего выполнения достаточно большое количество ресурсов. В обычной бытовой электронике соответствующих микросхем нет, поэтому послушать CD-MP3, скажем, на обычном музыкальном центре, к сожалению, не удастся. Долгое время воспроизводить MP3 файлы было возможно только с помощью компьютера, т. к. CD-проигрывателей распознающих этот формат до последнего времени в широкой продаже просто не было. На сегодня ситуация на рынке несколько изменилась, можно достаточно просто найти и приобрести портативный MP3/CD плеер за 100 — 200 долларов. Причем сложилась парадоксальная ситуация: при достаточно широком ассортименте портативных носимых моделей, устройства рассчитанные на стационарную работу, можно пересчитать по пальцам. Да и, кроме того, стоимость последних колеблется в районе 300-800 долларов. Вряд ли такие затраты агрегаты, можно считать приемлемыми и оправданными для среднего жителя нашей страны даже с учетом таких дополнительных возможностей этих устройств, как DVD-видео, караоке и т п.
Однако положение все же не так безнадежно, как кажется на первый взгляд. Для работы с MP3-файлами, вполне достаточно, вычислительной мощности младших моделей процессоров пятого поколения (Pentium, K5, Cyrix) с частотой 100 МГц. С учетом просто смешных цен на столь сильно устаревшее морально «железо», это позволяет собрать своими руками MP3/CD плеер, не уступающий по своим характеристикам фирменным моделям, при затратах на компоненты всего в 70–100 долларов. Данному вопросу и посвящена эта статья.
Выбор аппаратуры
- MB должна быть рассчитана на питание от блока питания типа АТ: стоимость такого БП в 2-2,5 раза ниже, чем у ATX-аналогов
- BIOS обязательно должен поддерживать загрузку операционной системы с CD-ROM
Кулер для процессора следует выбрать помощнее: рассчитанный на охлаждение процессоров Celeron/Р3, а еще лучше Duron/Atlon. Радиаторы в таких кулерах обладают лучшей теплоотдачей, что позволяет использовать их без вентилятора (для уменьшения шума). Устанавливать радиатор нужно обязательно, предварительно обмазав процессор тонким слоем теплопроводящей пасты. В процессе работы системы проконтролируйте температуру радиатора. Если поднимается выше 50-60 градусов, то можно попытаться уменьшить тактовую частоту CPU изменением внешней частоты шины или коэффициента умножения для внутренней частоты процессора. Кроме того, можно попытаться, снизить напряжение питания ядра процессора на 0,1–0,3 В, если это позволяет сделать выбранная материнская плата. Если установка нестандартных напряжений не описана в инструкции к MB (или инструкция просто отсутствует), то стоит ознакомиться с документом по этому адресу: возможно, с его помощью все получится.
Требования к оперативной памяти у программы проигрывателя MP3 для DOS минимальны. Это позволяет ограничиться двумя модулями SIMM по 4 Mбайта.
К выбору привода СD-ROM нужно отнестись более внимательно. С одной стороны нужно выбрать устройство с как можно меньшей скоростью вращения диска: это не только приведет к снижению общей стоимости проигрывателя, но и значительно понизит общий шумовой фон, создаваемый при работе устройства. Но, с другой стороны, проигрыватель компакт дисков должен обязательно уметь работать с CD-R и, крайне желательно, CD-RW. Оптимальным будет установка 8–24×-скоростного проигрывателя. Только не забудьте перед окончательным выбором модели CD-ROMа проверить работу с записываемыми и перезаписываемыми дисками. Для проигрывания AudioCD нужно соединить привод CD-ROM со звуковой картой кабелем.
Доработка АТ блока питания
Техника безопасности
Блок питания (БП) — единственный компонент в корпусе компьютера, где присутствуют опасные для жизни человека уровни напряжения. Надо заметить, что пагубное воздействие электрического тока на тело человека линейно возрастает по мере увеличения частоты воздействующего напряжения. В импульсных схемах стабилизаторов напряжения (к ним относится БП компьютера) сетевое напряжение 220 В 50 Гц (опасное для жизни) сначала выпрямляется, а затем преобразуется в переменный ток, но с частотой уже до нескольких десятков Кгц, что увеличивает разрушающее воздействие электрического тока на органы человека в несколько раз, и уже после такого преобразования напряжение понижается до безопасного уровня с помощью трансформатора. Поэтому все дальнейшие манипуляции проводите только при отключенном от сети шнуре питания. Также после отключения БП от сети перед началом работ желательно выдержать паузу в течение примерно 10 секунд, необходимую для разрядки высоковольтных конденсаторов.
Теперь о том, что предстоит сделать. Прежде всего, необходимо раскрутить корпус БП и изъять из него вентилятор (с целью снижения шумности изготавливаемого проигрывателя). Для компенсации ухудшения теплообмена имеет смысл заменить штатные радиаторы, прикрученные к силовых транзисторам и микросхемам стабилизаторов. Если они в процессе работы разогреваются до температуры выше 60°, то замените их более мощными, изготовленными, к примеру, из радиаторов от слотовых или сокетных процессоров. Температуру радиаторов ни в коем случае не проверяйте пальцем! Если у вас в наличии нет электронного термометра с электрически изолированным датчиком, то для приблизительной оценки температуры, можно положить на каждый радиатор (в выключенном состоянии) по маленькому кусочку парафина (температура плавления последнего 56°). Те радиаторы, на которых в процессе работы парафин начинает плавиться, желательно усилить. В любом случае проверьте, все ли компоненты, прикрученные к радиаторам, посажены на слой теплопроводящей пасты. Если нет — исправьте данную недоработку. Теплопроводящую пасту КПТ 8 можно приобрести практически в любом магазине торгующем радиоэлектронными компонентами.
Компромиссным вариантом является уменьшить напряжение питания вентилятора с 12 до 7 В путем подсоединения его между выходами БП +5 В и +12 В. Это значительно снизит производимый им шумовой фон.
Для уменьшения путаницы проводов, а также увеличения надежности желательно выпаять лишние провода для питания различной периферии. Необходимо оставить только шину, питающую материнскую плату и две шины для питания CD-ROM, дисковода и внешних индикаторов.
С целью уменьшения габаритов корпуса, блок питания в проигрыватель можно установить без кожуха, оставив только металлическое основание с прикрученной к нему платой стабилизатора. При такой установке еще и улучшится теплообмен силовых элементов БП с окружающей средой. Ничего страшного и особо опасного в эксплуатации такого БП нет: в бытовой аппаратуре блок питания обычно никогда не закрывается железным коробом с гудящим на всю комнату осевым вентилятором. Необходимо только помнить о мерах предосторожности, указанных выше.
Доработка клавиатуры
Для проигрывателя MP3 подойдет практически любая дешевая клавиатура. Фактически нам понадобится только небольшая плата контроллера с соединительным кабелем.
Сначала немного теории.
Упрощенная структурная схема клавиатуры показана на рисунке. Как видно из схемы, все клавиши находятся в узлах матрицы. Все горизонтальные линии матрицы подключены через резисторы к источнику питания +5 В. Клавиатурный контроллер имеет два порта — выходной и входной. Входной порт подключен к горизонтальным линиям матрицы (X0-X4), а выходной — к вертикальным (Y0-Y5). Устанавливая по очереди на каждой из вертикальных линий уровень напряжения, соответствующий логическому 0, контроллер опрашивает состояние горизонтальных линий. Если ни одна клавиша не нажата, уровень напряжения на всех горизонтальных линиях соответствует логической 1 (т.к. все эти линии подключены к источнику питания +5 В через резисторы). Если пользователь нажмет на какую-либо клавишу, то соответствующая вертикальная и горизонтальная линии окажутся замкнутыми. Когда на этой вертикальной линии контроллер установит значение логического 0, то уровень напряжения на горизонтальной линии также будет соответствовать логическому 0. Как только на одной из горизонтальных линий появится уровень логического 0, клавиатурный процессор фиксирует нажатие на клавишу. Он посылает в центральный компьютер запрос на прерывание и номер клавиши в матрице. Аналогичные действия выполняются и тогда, когда пользователь отпускает нажатую ранее клавишу.
А теперь, подкованные теорией, перейдем к практике. Для начала раскрутите винты на корпусе клавиатуры, и аккуратно, чтобы не рассыпались клавиши, разделите ее на две половинки: верхнюю с клавишами и нижнюю с токопроводящими дорожками на пленочной основе, присоединенными к плате контроллера.
Следующее, что необходимо сделать — укоротить соединительный кабель между клавиатурой и компьютером примерно до 25 — 30 сантиметров. При этом удобней переделать разъем, который втыкается в плату контроллера клавиатуры. В крайнем случае жилы соединительного кабеля можно просто припаять к плате с контроллером. Главное — не перепутайте их местами!
Теперь остается последний этап: нужно по рисунку печатных проводников на пленочной основе и расположению клавиш на снятой ранее верхней половинке клавиатуры отследить номера контактов на разъеме платы контроллера, которые замыкаются при нажатии соответствующих клавиш и припаять к этим контактам на многожильных проводниках длинной около 30 сантиметров кнопки управления. Проводники, к примеру, можно сделать из обрезанного ранее соединительного шнура. Для управления проигрывателем необходимо припаять кнопки на место следующих клавиш:
(Page UP), (Page Down) перемещение по записям (Left), (Right) перемотка записи (F5), (F6) скорость воспроизведения (Up), (Down) регулировка громкости (F3), (F4) баланс (/) пауза при воспроизведения (S) режим «Surround sound» (x), (c) следующий/предыдущий трэк на аудиодиске
Звуковая плата
От выбора звуковой платы в дальнейшем будет напрямую зависеть качество воспроизводимой музыки (уровень шума, искажения, и т. п.), поэтому скупиться при выборе этого важнейшего компонента для вашей будущей аудиосистемы не стоит. При выборе звуковой платы следует учесть, что большинство программных плееров, работающих под управлением MS-DOS, не совместимо с платами для шины PCI. Наилучшим выбором (по моему мнению), могла бы стать б/у SoundBlaster 16/32/64 за 10–25$.
На используемой вами звуковой плате возможно распаяна микросхема усилителя мощности звуковой частоты (УМЗЧ) мощностью 2–4 Вт на канал. При этом на плате имеются либо два разъема «line out» и «spk. out», либо (чаще всего) две перемычки.
На контакты с номером 1 стереосигнал подается непосредственно с микросхемы кодека, а на контакты под номером 3 — усиленный для воспроизведения с помощью пассивных колонок (или наоборот). Контакты 2 соответственно подсоединены к выходному разъему на плате. Коммутация сигналов осуществляется двумя перемычками, которые могут одновременно переставляться в два положения: 1–2 или 2–3. Для того, чтобы была возможность проигрывать записей без внешнего усилителя мощности, в корпус проигрывателя можно установить пару динамиков небольшой мощности и подключить их по приведенной ниже схеме, к выходу встроенного на плате усилителя мощности. Выключатель SA1 служит для отключения внутренних динамиков при воспроизведении сигнала через внешний усилитель. При этом внешний выход звуковой платы перемычками нужно сконфигурировать как «Line out». К звуковой плате динамики удобно подключать путем надевания подходящего по типоразмеру разъема на описанный выше джампер.
Корпус
Изготовление качественного корпуса — самая трудоемкая часть всего проекта. Конечно, проще всего оставить проигрыватель MP3 в корпусе от компьютера, но такой вариант вряд ли будет гармонировать с интерьером квартиры. Лучше использовать самодельный корпус подходящих габаритов и оформления, похожий по стилю исполнения на уже имеющуюся у вас аудиоаппаратуру. К примеру, удобно использовать уже готовый корпус от отжившего свой век звукового усилителя мощности, изготовленного в далекие советские времена: нужно только изготовить новую лицевую панель с необходимыми вырезами и надписями (для кнопок управления, CD-ROM и индикаторов). В общем, здесь все определяется вашей фантазией и подручными материалами. Следует только не забывать о том, что корпус должен иметь достаточное количество вентиляционных отверстий, для обеспечения нормального уровня естественной конвекции нагретого воздуха от элементов плеера, т. к в устройстве отсутствуют вентиляторы для принудительного обдува силовых элементов в БП и процессора на материнской плате. Полезно прочитать советы по изготовлению фальшпанелей по следующим адресам:
- www.nnov.rfnet.ru:8100/rf/falsh-p.htm
- lytnev.newmail.ru/tehnology/color.htm
- /www.nnov.rfnet.ru:8100/rf/anodir.htm
Индикатор номера проигрываемой записи
Для индикации номера проигрываемой записи потребуется собрать модуль индикации по несложной схеме.
Для этого узла потребуется три микросхемы К555ИР8 (восьмиразрядный сдвиговый регистр), и три семисегментных светодиодных индикатора АЛС324А с общим катодом. Перед началом проигрывания очередного файла в сдвиговые регистры D1-D3 управляющая программа последовательно загружает через LPT-порт число, соответствующее номеру проигрываемой записи, Вместо указанных на схеме микросхем, можно использовать любые другие, рассчитанные на напряжения питания 5 вольт, и имеющие, аналогичное функциональное назначение. Также подойдут любые другие светодиодные семисегментные индикаторы с общим катодом. В случае использования компонентов, отличных от указанных на схеме, потребуется скорректировать указанные здесь номера выводов для микросхем и индикаторов в соответствии с их разводкой корпусов.
Софт
После включения проигрывателя MP3 в сеть, BIOS проводит тестирование установленных в системе компонентов, после чего загружает операционную систему CD-ROM. Поэтому предварительно необходимо, подключив к материнской плате монитор, настроить соответствующим BIOS Setup. Кроме того, на все компакт диски, предназначенные для использования с данным проигрывателем, должна быть записана соответствующая загрузочная запись.
В качестве встроенной операционной системы можно использовать ядро MS-DOS из Windows 95 или 98. В процессе загрузки DOS создает виртуальный диск размером 2 Mбайт и помещает на него текстовый файл, содержащий имена всех файлов с расширением .МР3, имеющихся на компакт-диске. После чего запускается программа проигрывателя MP3 для DOS, которая начинает проигрывать по очереди записи из Playlist, начиная с той, которая была воспроизведена последней перед выключением проигрывателя. Если же после предыдущей перезагрузки системы производилась замена диска, то проигрывание начинается с первого файла в Playlist. При этом номер исполняемой записи выводится через LPT порт на внешний индикатор.
Номер исполняемой записи из Playlist и индивидуальный серийный номер диска сохраняется в энергонезависимой памяти компьютера CMOS. Управление проигрывателем производится с помощью восьми кнопок: перемотка записи вперед/назад, смена записи на следующую/предыдущую, громкость выше/ниже, пауза, смена диска.
Программное обеспечение для проигрывателя можно взять здесь. Распакуйте архив в любой каталог, поместите дискету емкостью 1.44 Mбайта в дисковод, и, под управлением Windows 95/98, запустите файл setup.bat (bat файл написан в расчете на то, что Windows установлен в каталоге c:\windows; если это условие не выполнено, то необходимо с помощью текстового редактора скорректировать соответствующие пути в файле setup.bat). Все — загрузочная дискета создана. Осталось только не забывать записывать образ этой дискеты на те диски, которые вы собираетесь слушать на описанном в этой статье проигрывателе.
Существенным недостатком приведенной выше схемы работы проигрывателя является невозможность прослушивания дисков, купленных в магазине (к примеру, коллекций альбомов какой-либо группы), т. к. на таких дисках нет соответствующей загрузочной записи. Обойти эту проблему можно, поместив дополнительно в корпус проигрывателя дисковод, с созданной ранее загрузочной дискетой, и установив в BIOS SETUP приоритет загрузки операционной системы сначала с CD-ROM, а потом с флоппи. Такая модификация удорожит конструкцию проигрывателя на 10$ (если не меньше), но, при этом, значительно увеличит универсальность его использования.
Кроме проигрывания MP3, используемая программа способна воспроизводить звуковые файлы форматов MP2, MOD, XM, S3M, а также AudioCD.
Возможные усовершенствования плеера (в расчете на любителя)
С целью улучшения внешнего вида и удобства эксплуатации проигрывателя, на передней панели корпуса можно установить индикатор мощности аудиосигнала. Его можно либо собрать самому, воспользовавшись описанием схемы приведенной, к примеру, по этому адресу, либо купив готовый блок от музыкального центра на радиорынке. Последний вариант является гораздо более простым (но не самым дешевым), в особенности, если вы не особенно хорошо разбираетесь в электронике.
Следующим шагом к повышению удобства использования проигрывателя могло бы стать оснащение его однострочным алфавитно-цифровым LC-дисплеем вместо предложенного выше цифрового индикатора номера, проигрываемого трека. Дисплей проще всего подключить к параллельному порту, и выводить на него содержимое ID3-тэгов (имя исполнителя и название песни), а также время проигрывания записи. Однако здесь не обойтись без хорошего умения программировать на Си или Паскале. В предложенной мной программе, написанной на смеси Паскаля с Ассемблером, нужно будет переписать процедуру вывода информации на индикатор в соответствии с алгоритмом работы выбранного вами LCD. Если выводимая строка не вмещается целиком на индикаторе, то нужно будет организовывать горизонтальный скроллинг, привязав его к прерыванию от аппаратного таймера компьютера (INT 1Ch). Содержимое ID3-тэга можно легко получить и без знания формата заголовка МР3-файла: с помощью вызова внутренней команды DIR (см. исходный текст, программы mp3.pas) командного процессора command.com при использовании в качестве встроенной операционной системы MS-DOS версии 7.1 (из состава Windows 98)
Заключение
Подведем итог. Для создания описанного выше проигрывателя CD-MP3 потребуются следующие компоненты:
Блок питания АТ | 8$ |
Процессор с частотой 100-150 MГц | 12$ |
Кулер | 3$ |
Материнская плата | 20$ |
Память 2 SIMM по 4 Mбайта | 8$ |
б/у CD-ROM 8× | 20$ |
Клавиатура | 4$ |
Звуковая плата | 8$ |
Прочие расходы (микросхемы, индикаторы, динамические головки) | 7$ |
Итого | 90$ |
С учетом использования более качественной звуковой платы и дисковода для 3,5″ дискет, расходы могут вырасти до отметки 120 долларов. Плюс к тому придется потратить пару выходных на сборку проигрывателя. Поэтому, возможно, практичнее будет добавить еще 30$ долларов и купить носимый MP3/CD плеер, с адаптером питания от сети, и подключить его к вашему музыкальному центру. В данном случае его можно будет всегда взять плеер с собой в дорогу (только необходимо перед этим, не забыть запастись комплектом батареек). С другой стороны если вы уже обладаете морально устаревшим компьютером на чем-нибудь типа Intel Pentium 100, любите слушать музыку, и немножко разбираетесь в сборке компьютерного железа, то самостоятельная сборка описанного здесь MP3/CD плеера может оказаться гораздо более выгодным вариантом, нежели продажа старого компьютера фактически за бесценок.
6 марта 2001 г. | Сергей Коряков |
Урок 17. Подключение Mini MP3 плеера к Arduino
Наверное, часто в ваших проектах возникала необходимость воспроизводить определенный звук или мелодию. Например, по завершению какого-нибудь процесса, или просто звуковое сопровождение. В этом нам поможет Mini MP3 Проигрыватель, который обладает очень большим потенциалом.
В данный модуль вставляется microSD карточка, на которую предварительно мы можем записать Mp3 композиции, которые, в дальнейшем, сможем воспроизводить с помощью Mini MP3 Проигрывателя.
Нам понадобится:
- Arduino
- Перемычки или Набор проводов для макетирования 65 шт.
- Провода Папа-Мама
- Breadboard
- Резисторы
- Mini MP3 ПроигрВыход на динамик, со встроенного усилителя до 3Wыватель
- Динамик 3W 4Ом.
Для реализации проекта нам необходимо установить библиотеки:
Демонстрация:
Подготавливаем microSD карточку:
Mini MP3 Проигрыватель может распознавать карты объемом до 32G и файловой системой FAT16 , FAT32 .
- Для начала нам необходимо подключить карту через катридер к компьютеру и отформатировать карточку.
- Теперь нам нужно создать папку с названием «mp3«.
- Записать ваши mp3 композиции в данную папку и дать им имена «0001.mp3» , «0002.mp3«, «0003.mp3» и тд. Так же файл можно называть «0001alla-tratata.mp3» главное, указать в самом начале номер трека в четырех символьном формате.
Описание контактов:
Pin Number | Pin Description | Description | Note |
1 | VCC | Питание | Питание постоянного тока от 3 до 5 Вольт |
2 | RX | UART serial input | |
3 | TX | UART serial output | |
4 | DAC_R | Audio output right channel | Выход на усилитель, правый канал |
5 | DAC_L | Audio output left channel | Выход на динамик, со встроенного усилителя до 3W |
9 | IO1 | Trigger port 1 | Короткое нажатие ||◄ (длительное нажатие — уменьшение громкости) |
10 | GND | Ground | Выход на динамик, со встроенного усилителя до 3W |
11 | IO2 | Trigger port 2 | Короткое нажатие ►|| (длительное нажатие — увеличение громкости) |
12 | ADKEY1 | AD port 1 | Trigger play first segment |
13 | ADKEY2 | AD port 2 | Trigger play fifth segment |
14 | USB | USB DP | USB Port |
15 | USB- | USB- DM | USB Port |
16 | Busy | Playing Status | Low means playingHigh means no |
Модуль имеет сразу два вида выходного сигнала: первый — со встроенным усилителем, а второй вариант — через внешний усилитель например УНЧ модуль 2*3 Вт класса D PAM8403. В наших примерах будет рассматриваться вариант со встроенным усилителем.
- Подключение к усилителю c помощью выходов DAC_R и DAC_L
- Подключение к динамику напрямую. динамик подключается одним контактом IO1 , а вторым к IO2
Пример 1. Управление с помощью Arduino
Схема подключения:
Данный Mini MP3 Проигрыватель может быть подключен как обычному Serial порту, так и к виртуальному Serial порту. Это дает возможность arduino подключиться к компьютеру и к mp3 проигрывателю.
Подключать удобнее всего с помощью Breadboard mini и проводков папа-папа. Так же не забудьте подключать Mp3 плеер к Serial порту с через резисторы на 1 кОм.
В результате у вас должна получиться примерно следующая картина:
Не забудьте установить библиотеку Mini mp3 Arduino Library V2.0.
Скетч №1:
Данный пример запустит проигрывание треков и каждые 10 секунд будет переключать на следующий трек.
Между двумя командами необходимо делать задержку delay (100); 100 миллисекунд, в противном случае некоторые команды могут работать не стабильно.
#include #include void setup () < Serial.begin (9600); mp3_set_serial (Serial); mp3_set_volume (25); delay (100); mp3_play (); delay (100); >void loop () < mp3_next (); // Следующий трек delay (10000); // пуза 10 секунд >
Скетч №2:
В этом примере мы запускаем плеер, он начинает проигрывать композиции целиком одна за другой в случайном порядке.
#include #include void setup () < Serial.begin (9600); mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module delay (100); mp3_set_volume (25); delay (100); mp3_play (); // запускаем трек delay (100); mp3_random_play (); // Даем команду проигрывать треки в случайной последовательности >void loop ()
Скетч №3:
Для запуска определенной мелодии нужно обязательно задать правильные именна mp3 файлам, которые находятся на флешке как указано в пункте «Подготавливаем microSD карточку» . Вы так же можете записывать файлы в любые папки и с любыми названиями, но их вы не сможете запустить выборочно по команде.
#include #include void setup () < Serial.begin (9600); mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module delay (100); mp3_set_volume (20); >void loop () < delay (100); mp3_play (2); // Произрываем "mp3/0002.mp3" delay (5000); mp3_play (5); // Произрываем "mp3/0005.mp3" delay (5000); mp3_play (1); // Произрываем "mp3/0001.mp3" delay (5000); mp3_play (4); // Произрываем "mp3/0004.mp3" delay (5000); mp3_play (3); // Произрываем "mp3/0003.mp3" delay (5000); >
Полный список функций:
- mp3_play (); // Запуск воспроизведения
- mp3_play (5); // Воспроизвести файл «mp3/0005.mp3»
- mp3_next (); // Следующий трек
- mp3_prev (); // Предыдущий трек
- mp3_set_volume (uint16_t volume); // Уровень громкости 0~30
- mp3_set_EQ (); // Эквалайзер 0~5 (0 — Normal, 1 — Pop, 2 — Rock, 3 — Jazz, 4 — Classic, 5 — Bass)
- mp3_pause (); // пауза
- mp3_stop (); // остановить воспроизведение
- mp3_random_play (); // Воспроизвести в случайнВоспроизвести в случайном порядке.
- void mp3_get_state (); //send get state command
- void mp3_get_volume ();
- void mp3_get_u_sum ();
- void mp3_get_tf_sum ();
- void mp3_get_flash_sum ();
- void mp3_get_tf_current ();
- void mp3_get_u_current ();
- void mp3_get_flash_current ();
- void mp3_single_loop (boolean state); //set single loop
- void mp3_DAC (boolean state);
Пример 2. Автономное управление без Arduino, с помощью подключенных кнопок.
Данный модуль может работать как под управлением микроконтроллера Arduino, так и автономно, как самостоятельный проигрыватель mp3.
Но модулем нужно как-то управлять, регулировать громкость, переключать треки и тд. Эти возможности мы можем реализовать очень просто, нам нужно подключить управляющие кнопки, и с помощью них мы сможем полноценно управлять mp3 проигрывателем.
Есть несколько вариантов подключения:
Простой способ (Минимум функций):
Расширенный способ (Максимальный функционал):
MP3-плеер своими руками Текст научной статьи по специальности «Компьютерные и информационные науки»
Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лысенко Александр, Малыгин Иван
Любимая музыка может поднять настроение, сделать пасмурный день не таким мрачным, развеять тяжелые мысли. Наверное, поэтому мы так часто видим на улице, в метро или в автобусе, в очереди в магазине людей в наушниках. Можно с уверенностью сказать, глядя на них, что они редко расстаются со своим увлечением, где бы они ни были. Предосторожение врачей о возможной глухоте тоже мало кого пугают. Больше беспокоит: на сколько хватит батареек, какое максимальное количество песен можно взять с собой (в дорогу); важен и размер плеера или приемника. С появлением портативных цифровых устройств воспроизведения звука многие беспокойства сошли на нет. Габариты и масса современных плееров практически незаметны и не стесняют движений, без лентопротяжного механизма энергии батарей хватает надолго, а совершенствование технологий аудиосжатия сделало возможным хранение музыки без потери качества в меньшем объеме памяти. Разработке собственного МР3-плеера и посвящена эта статья.
i Надоели баннеры? Вы всегда можете отключить рекламу.
Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Лысенко Александр, Малыгин Иван
Программируемые аналоговые интегральные схемы Anadigm. Часть 2. Загрузка конфигурации
AVR-микроконтроллеры второго поколения: новые аппаратные возможности
Внутрисхемное программирование
Приемники и передатчики УВЧ-диапазона производства корпорации Atmel
Управление несколькими периферийными устройствами по линиям шин spi/i2c
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.
Текст научной работы на тему «MP3-плеер своими руками»
Компоненты и технологии, № 4’2003
МР3-плеер своими руками
Любимая музыка может поднять настроение, сделать пасмурный день не таким мрачным, развеять тяжелые мысли. Наверное, поэтому мы так часто видим на улице, в метро или автобусе, в очереди в магазине людей в наушниках.
Можно с уверенностью сказать, глядя на них, что они редко расстаются со своим увлечением, где бы они ни были. Предостережения врачей о возможной глухоте тоже мало кого пугают. Больше беспокоит: насколько хватит батареек, какое максимальное количество песен можно взять с собой «в дорогу»; важен и размер плеера или приемника. С появлением портативных цифровых устройств воспроизведения звука многие беспокойства сошли на нет. Габариты и масса современных плееров практически незаметны и не стесняют движений, без лентопротяжного механизма энергии батарей хватает надолго, а совершенствование технологий аудиосжатия сделало возможным хранение музыки без потери качества в меньшем объеме памяти. Разработке собственного МР3-плеера и посвящена эта статья.
Александр Лысенко, Иван Малыгин
Проектирование такого устройства, как плеер, объединившего в себе дюжину «ноу-хау», на первый взгляд, может показаться просто невозможным. Но если воспользоваться опытом и репутацией специалистов в этом вопросе, то все окажется намного проще и яснее в достижении поставленной цели.
Разработчики компании VLSI (www.vlsi.fi) предлагают однокристальное решение для создания МР3-плеера — микросхему VS1001k.
VS1001k понимает все известные и наиболее популярные алгоритмы аудиосжатия MPEG — 1, 2 Layers I, II, III, а также так называемые MPEG 2.5 Layer III файлы с любой типовой скоростью и частотой дискретизации, поддерживается также и переменная скорость VBR (Variable Bitrate).
Микросхема состоит из быстродействующего сигнального процессора VS_DSP с низким потреблением мощности (см. рис. 1), 4 кбайт памяти для служебных программ и 0,5 кбайт — для пользователь-
DREQ DCLK — SDATA — BSYNC —
Stereo ear phone driver
Рис. 1. Структурная схема VS1001k
ских, двух последовательных интерфейсов типа SPI (разработана и впервые применена фирмой Motorola). Управление схемой декодирования реализовано через SCI-интерфейс, прием цифровых данных через SDI. Кроме того, микросхема содержит быстродействующий сигма-дельта стерео-ЦАП и стереоусилитель для подключения наушников.
Для корректной работы микросхемы необходим управляющий микроконтроллер. VLSI рекомендует AT90S4414 фирмы Atmel, хотя можно использовать и любой другой. В функции микроконтроллера входит выдача последовательных цифровых данных по запросу VS1001K, их синхронизация, выдача управляющих сигналов, также синхронизированных.
VS1001k производится в корпусах SOIC-28 и BGA-49 (рис 2). Первый тип корпуса удобен для макетирования и ручной сборки, второй — для серийного производства.
Для того чтобы разобраться, как в действительности работает это устройство, рассмотрим схему (рис. 3). На ней наглядно представлены этапы прохождения исходных данных через структурные блоки микросхемы. Направление движения звуковых данных может изменяться в зависимости от более
Рис. 2. Корпуса SOIC-28 и BGA-49 микросхемы VS1001k
Компоненты и технологии, № 4’2003
SCI reg HDATO/1 16-bit
SDI Bitstream MP1/2/3
16384 bits SM DAC=0
SM BASS=0 A1ADDR=0
L Bass.treble Ik User
SM BASS-1 A1ADDRK)
S.rate.conv. And DAC
Рис. 3. Основные этапы обработки звука
точных настроек, которые доступны для управления через систему регистров. Механизм настройки мы рассмотрим немного позже.
Данные могут поступать в микросхему через шину данных SDI (предназначенную для этого) и шину управления. Второй способ исключает прохождение потока данных через декодер MPl/2/3, при этом поток данных представляет собой 16-разрядный линейный (оцифрованный) код, SM_DAC = 1. Если мы подаем на вход SDI полноценный тр3-файл, то SM_DAC необходимо выставить в 0. Затем звук проходит через простенький эквалайзер. На этом этапе можно либо увеличить уровень низких частот (SM_BASS = 1), либо уменьшить его (SM_BASS = 0). SM_DAC иSM_BASS — это З и 7 биты регистра MODE (см. п. Интерфейс SCI).
Специалистами VLSI была предусмотрена возможность вносить изменения в звуковой поток при помощи пользовательской программы, для которой выделено 0,З кбайт в памяти микросхемы. Такое дополнение к функциональности позволяет реализовывать собственные фильтры, накладывать различные эффекты (например, эхо или реверберацию). При A1ADDR, установленном в ноль, данные не попадают в блок User Application, а попадают сразу на вход блока контроля громкости. В том случае, когда разработчик использует собственную программу, этот регистр должен быть равен адресу начала программы.
Буфер FIFO предназначен для того, чтобы своевременно выдавать данные на ЦАП с частотой, равной частоте дискретизации.
SCI — последовательный двусторонний интерфейс, обмен информации осуществляется 16-разрядными словами. Каждый сеанс чтения-записи позволяет обратиться только к одному из регистров микросхемы.
Код чтения-записи Адрес регистра Чтение-запись значения
мы говорим о чтении, то на выводе 80 снимаем с побитовой синхронизацией 8СК значение данного регистра. При записи в регистр после его адреса следует его новое значение (рис. 4, б). Для чтения код равен 0000 0011 (0х3Ь), для записи 0000 0010 (0х2Ь). После каждого приема-передачи должна следовать пауза в 500 микросекунд.
Как уже было сказано ранее, настройка микросхемы осуществляется через регистры. Все они перечислены в таблице 1.
Название Чт/Зп Адрес Назначение
MODE RW 0 Управление УБ1001к
STATUS RW 1 Состояние УБ1001к
INT_FCTLH — 2 Не используется
CLOCKF RW 3 Корректировка частоты
DECODE_TIME R 4 Время декодирования в секундах
AUDATA R 5 Дополнительная информация звукового потока
WRAM W б Начальный адрес для записи приложений в 1?АМ
WRAMADDR W 7 Адрес для запуска приложения
HDAT0 R B Данные заголовка тр3-файла
HDAT1 R 9 Данные заголовка трЗ-файла
A1ADDR RW 10 Начальный адрес программы
VOL RW 11 Задает аппаратное ослабление сигнала
RESERVED — 12 Зарезервировано для УБ1002
A1CTRL[x] RW 13+x х=0..1
На рис. 4, а изображены диаграммы уровней сигналов на выводах 8С1-интерфейса при чтении и записи соответственно. Операции чтения и записи определяются 8-битным кодом, за которым следует адрес регистра, и, если
Как видно из выражения, при рекомендуемой частоте результат равен 48000. От частоты генератора напрямую зависит производительность ЭвР-процессора. В таблице представлена зависимость качества звука (скорость звукового потока и частоты дискретизации) и задающей частоты:
Регистры располагаются в Х-памяти (см. структурную схему) начиная с адреса 0x4000. 0х40РБ. При сбросе все регистры устанавливаются в нули.
Установка частоты дискретизации
У81001к позволяет проигрывать звуковые файлы с максимальной возможной частотой дискретизации 48000 Гц. При этом задающий генератор (речь идет о кварцевом или диэлектрическом резонаторе) должен работать на частоте не менее 24,576 МГц, именно эта частота рекомендована для микросхемы. Если частота генератора меньше, уменьшается и частота дискретизации. Для ее расчета можно воспользоваться формулой:
48000 х ЧАСТОТА ГЕНЕРАТОРА/24,576
Эти значения соответствуют алгоритму декомпрессии, при котором частота дискретизации остается постоянной. В случае декомпрессии с переменной частотой скорость потока может увеличиваться.
При использовании нестандартной частоты генератора до начала проигрывания необходимо записать в параметр СЬОСКБ значение, рассчитанное по формуле:
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
ЧАСТОТА ГЕНЕРАТОРА (Гц)/2000
При низких задающих частотах (ниже 15 МГц) микросхема позволяет удвоить ее. Для этого необходимо установить самый старший бит регистра в единицу, то есть для 14 МГц справедливы следующие вычисления:
0x8000 + 14000000/2000 = 39768
Микросхема позволяет проводить ряд внутренних тестов: проверка памяти и шины управления, подача определенной частоты на выход. Каждому тесту соответствует управляющая последовательность, которую необходимо передать через шину управления. После каждой такой посылки необходимо дослать еще четыре нуля!
После записи пользовательской программы или других изменений (например, перезапись некоторых переменных) может возникнуть необходимость протестировать память на наличие ошибок. Тест памяти запускается последовательностью 0х4Б 0хЕА 0х6Б 0x54. После 500-микросекундной паузы можно считать результат теста из регистра НЭАТ0.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 30 31
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 29 30 31
і nstruction (WRITE)
Рис. 4. Временные диаграммы чтения (а) и записи (б)
Компоненты и технологии, № 4’2003
1 Good Y ROM (high)
2 Good Y ROM (low)
5 Good Instruction RAM (high)
6 Good Instruction RAM (low)
В таблице приведены значения битов, установленных в «1».
Тест запускается последовательностью 0x53 0x70 0xEE n, где n — 48 равен порядковому номеру регистра из таблицы. Тестирование заключается в копировании значения выбранного регистра в HDAT0. Если выбран регистр HDAT0, то его значение переносится в HDAT1.
Подача тона на выход
Последовательность 0x53 0xEF 0x6E n генерирует синусоиду, поступающую на выход устройства. Параметр n может принимать значения от 48 до 119. Параметры тестового сигнала определяются по формулам:
FsIdx = (n — 48) mod 9 FSin = (n — 48) / 9