Портативный MP3-плейер » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки Написать нам
Опрос

Сколько лет вы занимаетесь программированием PIC микроконтроллеров?


от 0-1 года
1-3 года
3-5 лет
5-10 лет
более 10


Последние материалы
  • Каршеринг в Москве - это Просто, Удобно и Недорого.
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Программирование на C микроконтроллеров PIC24
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Популярные материалы
    Случайная книга
    Портативный MP3-плейер
    Автор публикации: alex Просмотров: 3959 Добавлен: 30-07-2014, 08:30 Комментарии: 0

         Сегодня в продаже имеется множество карманных МРЗ-плей еров, да и в большинстве сотовых телефонов предусмотрена возможность воспроизводить аудиозаписи такого формата. Но автору захотелось создать свой собственный небольшой плейер, в результате на свет появилось устройство, описанное в этой статье. Оно позволяет воспроизводить МРЗ-файлы со скоростью цифрового аудиопотока до 256 Кбит/с и длительностью до 99 мин 59 с.
         Схема плейера представлена на рис. 1. Его основа — микроконтроллер DD1 PIC18F4610-I/PT [1]. Тактовая частота его процессора задана равной 32,768 МГц — это учетверённая частота кварцевого резонатора ZQ1. Такая частота необходима для получения достаточной скорости передачи информации по интерфейсу SPI. По нему микроконтроллер побайтно считывает с карты памяти microSD, вставленной в держатель XS1, аудиозапись формата MP3, затем передаёт по нему же считанную информацию в аудиокодек DD2 VS1053b-L [2], который, в свою очередь, преобразует её в звуковой сигнал.

    Портативный MP3-плейер

         Для работы кодека DD2 необходим внешний кварцевый резонатор на частоту 12,288 МГц. Поскольку найти такой мне не удалось, я использовал кварцевый резонатор на 24,576 МГц (ZQ2), при этом включив в кодеке делитель частоты на два. Имеющиеся в DD2 восемь линий ввода/вывода общего назначения в описываемой конструкции не используются, поэтому они соединены с общим проводом через резисторы R21—R23.
         Микросхеме VS1053b-L необходимы три напряжения питания: для аналоговых узлов, для цифровых узлов и для узлов ввода/вывода. Первое и третье получены от интегрального стабилизатора напряжения DA2 (TPS76330DBV) и равны 3 В. Второе должно быть равным 1,8 В. Для его получения предназначен интегральный стабилизатор DA4 (TPS76318DBV).
         Поскольку микроконтроллер PIC18F4610-I/PT не имеет встроенной энергонезависимой памяти данных, для хранения настроек плейера при выключенном питании используется внешняя микросхема EEPROM DS1 (24LC02B-I/SN). Она соединена с микроконтроллером последовательной шиной 12С. За счёт этого при выключении плейера все настройки запоминаются, а при последующем его включении автоматически восстанавливаются.
         Для отображения информации использован ЖКИ HG1 (WH1202A-YGH-CT). Подсветка его табло способна работать только при напряжении питания более 3,7 В. Такое напряжение можно получить от аккумулятора G1, но так как его напряжение изменяется по мере разрядки, для питания подсветки необходим стабилизатор. Это микросхема DA1, на выходе которой поддерживается стабильное напряжение 5 В, которое через электронный ключ на транзисторах VT3, VT5 и резистор R18 поступает на анод узла подсветки — вывод А индикатора HG1. Катод узла подсветки соединён с выводом 1 индикатора внутри него. Благодаря такому решению яркость подсветки всегда одинакова.
         У индикатора есть вход регулировки контрастности (вывод 3). Обычно к нему подключают подстроечный резистор, которым добиваются оптимальной контрастности изображения. Но изменения напряжения на этом выводе от 3 В до 0 для этой регулировки не хватает. Чтобы расширить её пределы, на левый по схеме вывод резистора R29 (в данном случае он не подстроечный, а подборный) подано напряжение -3 В от преобразователя полярности напряжения DA3.
         Плейер включают кнопкой SB7. При нажатии на неё напряжение аккумулятора G1 через диод Шотки VD2 поступает на вход стабилизатора DA2, а на его выходе появляется стабилизированное напряжение 3 В. Через диод Шотки VD1 оно поступает на микроконтроллер DD1, который формирует сигнал, открывающий электронный ключ на транзисторах VT4 и VT6. Этим цепь питания прибора замыкается, и кнопку можно отпустить.
         Далее микроконтроллер настраивает все интерфейсы обмена информацией, подготавливает кодек DD2 к её приёму и читает из микросхемы памяти DS1 хранящиеся в ней настройки. Затем происходит процедура соединения с картой памяти, вставленной в разъём XS1. Если карта отсутствует, на экране ЖКИ выводится сообщение об ошибке (рис. 2), а через 5 с плейер выключается.
         На карте должна быть предварительно создана файловая система FAT16. Так как она не позволяет хранить много файлов в корневом каталоге, необходимо создать новый каталог и поместить в него все нужные аудиофайлы. Программа микроконтроллера DD1 ищет на карте первый по счёту каталог, запоминает его имя (оно может быть любым) и далее работает только с ним. Если ни одного каталога, кроме корневого, на карте нет, на ЖКИ выводится сообщение об ошибке (рис. 3), а через 5 с плейер выключается.
         Когда каталог найден, начинается подсчёт числа файлов с расширением имени .mp3, хранящихся в нём. Длинные имена файлов автоматически преобразуются в короткие (формата 8.3) и сохраняются в ОЗУ микроконтроллера. Так создаётся список воспроизведения. Если файлов с расширением имени .mp3 в каталоге нет, то на ЖКИ выводится сообщение об ошибке (рис. 4), а плейер через 5 с выключается.
         Максимальное число имён файлов, которые может запомнить программа, — 250. По достижении этого числа дальнейший поиск прекращается. Максимальная скорость потока аудиоданных в файле — 256 Кбит/с. Можно проигрывать аудиозаписи, сделанные и с большей скоростью, но звук будет очень сильно искажён, так как пропускной способности интерфейса SPI не хватит для передачи всей информации в кодек за отведённые для этого промежутки времени. Длительность аудиозаписи может быть и больше 99 мин 59 с, но значение разряда сотен минут отображаться на индикаторе не будет.
         После того как составлен список воспроизведения, открывается файл. Либо первый в списке (при первом включении), либо тот, при воспроизведении которого плейер был выключен в предыдущем сеансе работы.
         На экран индикатора выводится основная информация о файле (рис. 5). В начале первой строки располагается его номер в составленном списке, а за ним в скобках — общее число найденных звуковых файлов. Воспроизведение первоначально остановлено. Его можно включить кратковременным нажатием на кнопку SB4. Повторным нажатием на ту же кнопку воспроизведение останавливают.
         Когда воспроизведение идёт, в середине второй строки выведен соответствующий значок. В начале второй строки отображается время, прошедшее с начала воспроизведения. Его подсчитывает кодек, а выводит на индикатор микроконтроллер. В конце той же строки — продолжительность аудиозаписи, рассчитанная по скорости цифрового аудиопотока и длине файла в байтах. В первые секунды воспроизведения здесь выводится нулевое значение и только после определения скорости кодеком и выполнения расчёта микроконтроллером на индикаторе появляется реальное значение продолжительности. В случае воспроизведения записей, сделанных с переменной скоростью, продолжительность зачастую определяется неправильно и возможны ошибки при "перемотке" записи вперёд и назад.
         При выключении плейера общую продолжительность текущей аудиозаписи и время, прошедшее с начала её воспроизведения, программа записывает в микросхему энергонезависимой памяти DS1. Когда плейер будет включён, воспроизведение начнётся с того места, где оно было прекращено.
         При кратковременном нажатии на кнопку SB5 происходит переход к началу текущей (если её воспроизведение к этому моменту длится более 3 с) или предыдущей аудиозаписи. Таким же нажатием на кнопку SB3 переходят к следующей аудиозаписи. При удержании одной из этих кнопок нажатой происходит "перемотка" записи (SB5 — назад, SB3 — вперёд).
         Нужно учитывать, что при "перемотке" программный указатель перемещается по файлу побайтно, поэтому по её завершении может потребоваться некоторое время, чтобы указатель достиг начала очередного блока информации, подлежащего передаче с карты в кодек.
         Предусмотрены три способа перебора аудиозаписей для воспроизведения. Эти способы переключаются кратковременными нажатиями на кнопку SB6 и обозначаются значком в десятой позиции первой строки индикатора:

    Портативный MP3-плейер

         Громкость регулируют кнопками SB2 (увеличивают) и SB1 (уменьшают). Значок уровня громкости — одиннадцатый символ первой строки. Предусмотрена и возможность изменять относительную громкость левого и правого стереоканалов. Для этого необходимо сначала несколько секунд удерживать нажатой кнопку SB6, пока на индикаторе в десятой и одиннадцатой позициях первой строки не появится надпись ВЦ. Она означает, что уровни громкости каналов равны (источник звука находится в центре стереобазы). Теперь можно регулировать стереобаланс кнопками SB2 и SB1 аналогично регулировке громкости. Степень разбаланса обозначается надписями, выводимыми вместо ВЦ на индикатор. Например, Л7 означает, что громкость левого канала уменьшена до 70 % громкости правого, а П8 — громкость правого канала уменьшена до 80 % громкости левого. Когда стереобаланс отрегулирован, удерживают кнопку SB6, пока на индикаторе не появятся значки способа перебора записей и уровня громкости. Можно убавить общую громкость до нуля, но совсем выключить только один из стереоканалов невозможно, так как в кодеке VS1053b-L это не предусмотрено.
         Если файл MP3 содержит метаданные в формате ID3v1 (название произведения и имя автора на русском или английском языке), то их можно просмотреть на экране индикатора. Для этого останавливают процесс воспроизведения и далее, удерживая нажатой кнопку SB4, входят в режим отображения метаданных. Следует учитывать, что они находятся в конце файла, поэтому для их поиска в файле большого размера потребуется некоторое время. Имена и названия длиной более 12 символов выводятся бегущей строкой. Если метаданные отсутствуют, появляется сообщение об этом (рис. 6). Чтобы возвратиться в режим отображения основной информации, необходимо несколько секунд удерживать нажатой кнопку SB4.

    Портативный MP3-плейер

         Если требуется удалить аудиозапись, то следует войти в режим отображения метаданных и, нажав и удерживая кнопку SB7, дождаться появления на индикаторе просьбы подтвердить удаление (рис. 7). Положительный ответ на неё дают нажатием на любую кнопку, кроме SB7. Об идущем процессе удаления свидетельствует надпись, показанная на рис. 8. Продолжительность этого процесса зависит от размера удаляемого файла. Когда он завершится, список воспроизведения будет составлен заново и на индикатор будет выведена основная информация. Если же в ответ на просьбу подтвердить удаление никакую кнопку не нажимать, через несколько секунд произойдёт возврат в основной режим, а файл останется не удалённым.
         Микроконтроллер постоянно контролирует заряженность аккумулятора G1, измеряя напряжение на нём. Полученное значение используется для формирования стилизованного изображения частично заполненного аккумулятора в последней (двенадцатой) позиции первой строки. Если напряжение аккумулятора уменьшилось до 3,4 В, на индикатор выводится сообщение, показанное на рис. 9, а плейер через 5 с выключается. Это сделано, чтобы не допустить чрезмерной разрядки аккумулятора.

    Портативный MP3-плейер

         Для зарядки аккумулятора к гнезду XS3 подключают зарядное устройство с выходным напряжением около 5 В, которое через электронный ключ на транзисторах VT1 и VT2 поступает на аккумулятор G1. Последний символ первой строки индикатора принимает вид Й, означающий, что идёт процесс зарядки. Каждую минуту зарядное устройство на 0,5 с отключается от аккумулятора, напряжение которого за это время измеряет микроконтроллер. По достижении этим напряжением значения 4,1 В аккумулятор считается заряженным. Ключ на транзисторах VT1 и VT2 остаётся закрытым и сможет открыться вновь только после разрядки аккумулятора до 3,4 В.
         Выключить плейер можно тремя способами. Первый — удерживать кнопку SB7 несколько секунд нажатой и отпустить её, когда экран индикатора станет пустым, а его подсветка выключена. Второй — остановить воспроизведение и не нажимать на кнопки в течение минуты. Третий — установить нулевую громкость и не нажимать на кнопки. Если происходит зарядка аккумулятора, второй и третий способы выключения не действуют до тех пор, пока она не будет завершена.
         При кратковременном нажатии на любую кнопку (в том числе SB7) на 10 с включается подсветка индикатора.

    Портативный MP3-плейер

         На рис. 10 изображена печатная плата плейера, а на рис. 11 — расположение деталей на ней. Резисторы R1, R3—R5, R7, R9— R13, R16, R19—R29 — типоразмера 0805, a R2, R6, R8, R14, R15, R17, R18 — типоразмера 1206. Танталовые оксидные конденсаторы С11, С13, С26—С28, С32, С34 применены типоразмера CTSMD-A. Керамические конденсаторы С1, С7, С8, С14—С17, С23, С24, С38, С39 — типоразмера 0603, остальные — типоразмера 0805.
         Плата рассчитана на установку транзисторов в корпусе SOT23. Транзисторы ВС807-40 могут быть заменены другими структуры р-п-р с максимальным постоянным током коллектора не менее 500 мА. Вместо ВС846В можно установить другие транзисторы структуры п-р-п, а вместо ВС856В — структуры р-п-р. В обоих случаях максимальный постоянный ток коллектора должен быть не менее 100 мА.

    Портативный MP3-плейер

         Аккумулятор G1 использован литий-ионный BL-4C ёмкостью 860 мА ч от сотового телефона NOKIA. Номиналы резисторов R18 и R29 подбирают такими, при которых обеспечиваются необходимые яркость подсветки и контрастность индикатора.
         Плата рассчитана на установку держателя microSD-карты (XS1) TFC-WPCE-08. Перед монтажом на плату боковые стенки его корпуса в местах, где под ними должны проходить печатные проводники, необходимо обточить надфилем, чтобы избежать замыканий. Чтобы облегчить монтаж кодека VS1053b-L, можно удалить его неиспользуемые выводы. Контактные площадки для них на плате отсутствуют.

    Портативный MP3-плейер

         Для программирования микроконтроллера на плате предусмотрена группа контактных площадок, обозначенная как разъём XS2. Диоды VD1 и VD3 во время загрузки программы в микроконтроллер защищают остальные узлы плейера от поступающих с программатора напряжения питания и напряжения программирования.
         При уровне громкости 80 % и выключенной подсветке плейер потребляет ток около 50 мА. Среднее время работы между зарядками аккумулятора — десять часов. Это связано с тем, что аккумулятор в этом устройстве заряжается и разряжается не полностью, что продлевает его срок службы.

    Портативный MP3-плейер

         Плата вместе с индикатором HG1 помещена в корпус G1200B. Вид собранного плейера без верхней крышки показан на рис. 12, а с закрытой крышкой — на рис. 13. В дне корпуса необходимо вырезать прямоугольное отверстие под аккумулятор и закрыть его пластмассовой накладкой толщиной 1,5 мм, приклеив её снизу к корпусу. В полученную выемку вставляют аккумулятор G1, на него кладут несколько листов плотной бумаги и прижимают этот пакет нижней поверхностью платы, фиксируя аккумулятор в корпусе.
         Гнездо XS3 (PC-GK1.4 или другое с выключателем, разомкнутым при вставленном штекере) приклеивают изнутри в нижней части корпуса так, чтобы штекер зарядного устройства входил в него со стороны правой боковой стенки. Рядом делают отверстие для установки карты microSD (рис. 14). Стереогнездо XS4 крепят на левой боковой стенке корпуса.

    Литература
    1. PIC18F2X1X/4X1X 28/40/44-Pin Flash Microcontrollers with 10-Bit A/D and nanoWatt Technology. — URL: http://ww1.microchip.com/downloads/en/DeviceDoc/39636d.pdf (30.03.14).
    2. VS1053b Ogg Vorbis/MP3/AAC/WMA/ FLAC/MIDI Audio Codec Circuit. — URL: http://www.vlsi.fi/fileadmin/datasheets/vlsi/vs1053.pdf (30.03.14).

    Автор: П. Кожухин, г. Курган
    Материал взят из: Журнала Радио 2014 №7

    В архиве Исходный код программы на ассемблере и прошивка для микрокотроллера PIC18F4610

    portablemp3player.rar [11,22 Kb] (cкачиваний: 170)

    Комментарии