Главная » Звук
Призовой фонд
на июль 2017 г.
1. Осциллограф DSO138
Паяльник
2. Регулируемый паяльник 60 Вт
Паяльник
3. 200 руб.
От пользователей

Музыкальная шкатулка или шарманка

Устройство представляет собой плеер MOD (музыкальный файл компьютера Amiga), совмещенный с ручным электрогенератором. Устройство предназначено для развлекательных целей, а так же изучения основ ЦОС (цифровой обработки сигналов) на микроконтроллерах семейства STM32F100 в процессе создания.

  • Объем энергонезависимой памяти для хранения мелодии – 120 кБайт (зависит от типа примененного МК)
  • Частота дискретизации – 36.5 кГц
  • Разрешение ШИМ – 3072 такта (около 11.5 Бит)

Примечание: тут может возникнуть вопрос о тактовой частоте МК. Да, он разогнан, подробности далее по тексту.

Принципиальная схема.

Схема состоит из 3-х функциональных узлов: источника питания; процессорного блока; и усилителя мощности.

Источник питания выполнен на базе двухфазного генератора переменного тока G1, в роли которого выступает шаговый двигатель и редуктор от старого МФУ, двух удвоителей напряжения на диодах VD1-VD4 и конденсаторах C2 и C3, включенных параллельно для увеличения выходного тока. Это вариант для двухфазного шагового двигателя. При применении трёхфазного генератора устанавливаются диоды VD5 и VD6, а конденсаторы C2 и C3 исключаются из схемы. Три фазы генератора подключаются к средним точкам соединения диагоналей моста.

Конденсатор C1 является фильтрующим и сглаживает пики потребления тока усилителем мощности от генератора.

Основанием редуктора служит отрезок шины из электротехнического алюминия толщиной 10мм, в который при помощи компонентного клея вклеен игольчатый подшипник от привода головок старого винчестера. Применение такого подшипника обусловлено высокими радиальными нагрузками при вращении ручки привода, и второй причиной такого решения было наличие самого подшипника под рукой. Сквозь внутреннюю обойму подшипника проходит вал, с одной стороны которого приклеена ведущая шестерня, а с другой нарезана внешняя резьба для установки приводной ручки. Приводная ручка изготовлена из ручки от катушки для спиннинга, в центре вращения которой вклеена стальная втулка с внутренней ответной резьбой. Это сделано с целью возможности снятия ручки для удобства транспортировки и разборки устройства. Промежуточная шестерня свободно вращается на оси, закрепленной на резьбе к основанию. Шаговый мотор при помощи стоек так же закреплен на основании, и при помощи монтажного провода присоединяется к плате. В основании имеются три отверстия с резьбой для крепления редуктора с внутренней стороны корпуса устройства.

Детали генератора.

Крепление приводной ручки.


Генератор в сборе

Процессорная часть устройства содержит микроконтроллер D2 - STM32F100RB и линейный стабилизатор напряжения D1 - 1117-3.3. Цепи обвязки МК урезаны до минимально необходимого уровня – только фильтрующие керамические конденсаторы C5-C9 на шинах питания, подтягивающий резистор R2 для линии NRST (сброс). Кварцевый резонатор для стабилизации тактовой частоты отсутствует, используется синхронизация от встроенного RC-генератора. На входе стабилизатора напряжения D1, в непосредственной близости, установлен танталовый конденсатор C4 для фильтрации коммутационных помех и всплесков напряжения.

Резистор R1 ограничивает ток, приходящий с одной из фаз генератора в порт PA8 микроконтроллера. С помощью этого сигнала управляющая прошивка МК отслеживает скорость вращения генератора и пропорционально изменяет скорость воспроизведения мелодии, что несколько «оживляет» характер звучания.

Разъём X1 предназначен для подключения программатора типа ST-Link или аналогичного для прошивки ПО или мелодии. На него выведены сигналы внутрисхемного отладчика Serial Wire Debug фирмы STMicroelectronics, а так же общий провод и шина питания. Механически разъём посажен на клей и находится на нижней стенке корпуса устройства.

Выходы микроконтроллера PA2/TIM2_CH3 и PA3/TIM2_CH4 – выходы внутреннего таймера TIM2, работающего в режиме шим-модулятора, идущие на входы драйверов усилителя мощности D3 и D4. Драйверы прямые, то есть когда на входе лог. 1 – на выходе напряжение питания (почти), соответственно при лог.0 на входе – на выходе уровень напряжения около GND. Усилитель мощности работает в классе Д и изначально был выполнен на микросхемах драйвера затвора МОП-транзисторов производства фирмы IR. Такая схема включения не является стандартной, и амплитуда выходного тока микросхем IR4427 не позволяла добиться приемлемых результатов. Затем при дальнейших экспериментах было установлено, что данные микросхемы деградируют при работе на индуктивную нагрузку, что выражалось в хриплом и шипящем звучании устройства спустя некоторое время. Было принято решение замены на более мощные драйверы фирмы IXYS IXDN614SI, отдающие согласно даташита длительный ток порядка 4 Ампер и имеющие выходные каскады на полевых, а не биполярных, транзисторах. Это позволило уменьшить статические потери на открытых выходных ключах данных микросхем и несколько поднять уровень громкости устройства. Применение мощного драйвера затвора в такой нестандартной роли имеет свои преимущества перед решениями на дискретных компонентах – простота схемной реализации и минимум навесных элементов, широкий диапазон питающих напряжений, низкий ток потребления, высокую скорость нарастания/спада выходного напряжения и, как следствие, минимальные потери на переключение.

Печатная плата была переделана на лету с помощью ножа и проволочных перемычек, так как у микросхем IR4427 и IXDN614SI различается цоколёвка. Резисторы R3 и R4 – подтягивающие, предотвращают щелчок при подаче питания, пока МК проходит этап сброса и инициализации. Конденсаторы C10 и C11 – керамические, шунтирующие шины питания драйверов на высоких частотах. Второй вариант платы был разведен сразу под применение микросхем IXDN614SI и имеет меньшие габариты. На плате есть две перемычки, это отражено в проекте Sprint Layout. Плату при ЛУТе и подобных технологиях надо зеркалить, так как то, что видно на экране в Sprint Layout, то же должно быть видно на стороне меди. Проверочный прототип второго варианта платы получился ужасного качества в силу изношенного фотобарабана, отсутствия правильной бумаги и прямых рук. Многочисленные протравы были пропаяны проволочными перемычками.

Выходные LC-фильтры, применяемые в «классических» усилителях мощности класса Д, в данном устройстве отсутствуют в силу специфики алгоритма управления выходными каскадами УМ, позаимствованными у фирмы производителя микросхем Texas Instruments. Это интересная технология Filterless, которая за счёт несимметричной длительности импульсов модулирующего сигнала для каждого полумоста не требует выходных фильтров, а размах амплитуды несущей частоты ШИМ на выходе ключей вдвое ниже, чем у обычных усилителей класса Д.


Собранная плата. Вариант 1


Собранная плата. Вариант 2. Без конденсаторов C1-C3 и диодов VD5, VD6

Нагрузкой усилителя мощности служит динамическая головка BA1 сопротивлением 6 Ом, у которой был удален магнитный экран для облегчения компоновки внутреннего пространства устройства. Головка расположена на нижней стенке устройства и закрыта декоративной решеткой типа «гриль» от 80-мм компьютерного вентилятора.

Все отклонения от рекомендаций производителей электронных компонентов (D2, D3, D4) и нестандартные решения были использованы с целью максимально упростить конструкцию, к которой не предъявляется особых требований по надёжности и стабильности. Тем не менее, в результате испытаний, в том числе стресс-тестов на повышенных напряжениях питания (18 Вольт), низких сопротивлениях нагрузки, в том числе «тяжелой» (реальные акустические системы сопротивлением 4 Ом) и т.д., каких-либо отклонений или «глюков» в работе устройства обнаружено не было.

P.S. На первой  версии печатной платы слева можно увидеть 4 smd светодиода и резистор. Эти элементы устанавливались для отладки и в текущей версии платы они отсутствуют.

Шаговый двигатель можно применить практически любой, желательно, что бы сопротивление обмоток постоянному току было возможно ниже. У мотора, примененного в устройстве, сопротивление обмоток около 14 Ом каждая. Эксперименты с двигателями от старых сканеров (с питанием от внешнего блока на 12 Вольт), а так же с двигателями привода шпинделя от 5.25 дюймовых дисководов дали положительный результат.

От такого «экзотического» источника питания можно отказаться вовсе, используя иной любой с выходным напряжением в пределах 5-9 Вольт, при этом потребуется установить выключатель питания и немного изменить прошивку для корректной скорости воспроизведения мелодии. Это отражено в проекте для CooCox, требуемый вариант необходимо раскоменнтировать, а ненужный закоментировать.

Микроконтроллер D2 подойдёт любой из серий F100, F101, F103. Основной критерий выбора – объём flash-памяти. Но, из-за специфики работы встроенного контроллера памяти, для серий F101 и F103 необходима модификация процедуры инициализации в прошивке. Сам плеер занимает 8кБайт flash- памяти с адреса 0x08000000 по 0x08001FFF. С адреса 0x08002000 и до физического конца flash находится файл мелодии. Если музыкальный файл не помещается в память МК полностью - возможны зависания по ошибке защиты памяти STM32.

Микросхемы драйверов D3 и D4 могут быть заменены на любые аналогичные с соблюдением цоколёвки. Возможен вариант применения дискретного ключевого усилителя, но это выходит за рамки данной статьи.

Микросхему D1 и всю остальную мелочевку можно найти на материнских платах от ПК и ноутбуков.

Динамическая головка BA1 может быть любой, с сопротивлением катушки постоянному току 4 – 16 Ом. Желательно выбирать головку с высокой чувствительностью – это повысит громкость воспроизведения.

Корпус устройства изготовлен из 10мм фанеры и имеет форму куба с внешним ребром длинной 120мм. Соединение частей корпуса выполнено встык с помощью клея ПВА, смешанного с мукой для придания ему большей вязкости. На правой боковине имеется одно отверстие для приводной ручки и три для крепления редуктора. На нижней стенке корпуса имеется фигурный вырез для крепления динамика. Там же расположены защитная решетка и сервисный разъём для прошивки устройства. Снаружи на корпус нанесён рисунок по мотивам компьютерной игры «Stalker», соответственно мелодия, прошитая в устройство это вариация на тему композиции группы FireLake «Dirge for the Planet» (эта мелодия играет в подвале у торговца в начале игры).


Внешний вид и вид изнутри. В левом нижнем углу видно прошивочный шнур и китайский вариант ST-Link.

Файл мелодии или что такое MOD?

Компьютер Commodore Amiga имел в своём составе звуковой чип Paula (MOC 8364), который представляет из себя полноценный цифровой семплер. Эта микросхема позволяет одновременно воспроизводить 4 ИКМ (PCM) семпла с разрядностью 8 бит каждый и возможностью на ходу менять скорость и громкость воспроизведения, зацикливать семпл на определенных точках. В результате начали появляться программы для написания музыки – так называемые трекеры. В них музыка не имеет привычного представления и более походит на программирование на ассемблере. Ноты записаны латинскими буквами C,D,E,F,G,A,B, октавы проставляются через черточку цифрами, а эффекты и параметры воспроизведения записываются рядом в шестнадцатеричном виде. Каждый из четырёх каналов представляет собой столбик из нот, октав и эффектов. В результате воспроизведения этот «конвейер» двигается вверх, и программа-плеер передаёт управляющие команды в звуковой чип, который воспроизводит звук, находящийся в оперативной памяти. Далее появились трекеры и на IBM совместимых компьютерах, где формат получил стремительный рост и вылился в несколько независимых форматов: S3M, XM, IT, и т.д.

Формат MOD привлекает своим малым объёмом при относительно высоком качестве и скромными вычислительными ресурсами требующимися при воспроизведении. Программное обеспечение используемое при создании мелодии – OpenMPT для ПК на платформе Windows. Существует несколько версий MOD-файлов; устройство поддерживает только 4-х и 8-ми канальные. Есть функция автоопределения.

Микроконтроллер за счет программного обеспечения эмулирует сразу два чипа MOC 8364 (Paula), и способен одновременно воспроизводить 8 семплов, находящихся во внутренней flash-памяти. Принцип воспроизведения основан на аккумулировании фазы записанного сигнала для возможности проигрывать каждый семпл с произвольной частотой. То есть положение воспроизведения семпла не целое, а дробное число. При частотах оцифровки и воспроизведения кратных друг другу никаких проблем не возникает; но стоит им стать дробными – появляется шум из-за неточностей восстановления исходного сигнала. И в этом случае на помощь приходит интерполяция, которая позволяет вычислить с необходимой точностью амплитуду сигнала в текущий момент времени, а не только те, которые есть в исходном семпле. В прошивке реализован алгоритм кубической интерполяции который успешно выполняет функцию передискретизации при незначительном уровне шума.

В некоторых композициях присутствует значительный уровень низкочастотной составляющей, которая за счет малого объёма корпуса и конструктивных особенностей динамической головки не может быть эффективно воспроизведена, но при этом расходует энергию источника питания и вносит искажения. Для уменьшения уровня НЧ в выходном сигнале применен цифровой БИХ-фильтр ВЧ 2-го порядка с частотой среза 100 Гц, что положительно сказалось на общем качестве звучания.

Возвращаясь к вопросу о тактовой частоте. За счет встроенной в МК системы ФАПЧ (PLL) тактовая частота ядра повышена с 24 МГц (штатно) до 56 МГц., что при коэффициенте пересчёта таймера TIM2 N=1536 и выключенном предделителе даёт частоту несущей ШИМ примерно 36.5 кГц, которая лежит за границей слышимого диапазона и дополнительно отфильтровывается не слишком широкополосным громкоговорителем. Согласно теореме Котельникова, максимально возможная воспроизводимая частота составляет около 18 кГц, чего с запасом достаточно для данного устройства.

Период счетчика ШИМ 3072 при коэффициенте пересчёта таймера TIM2 N=1536 обусловлен использованием для первого модулятора полумоста частного от деления сигнала на 2, пришедшего с микшера; а для второго модулятора полумоста – разности периода таймера TIM2 и частного. Результирующее разрешение увеличивается на один бит, который при обычном делении на 2 (побитном сдвиге вправо) отбрасывается. В итоге имеем Log23072 = 11.58 бит разрешения выходного сигнала.

Прошивка устройства разработана в среде CooCox IDE, и блок основных вычислений с фиксированной точкой написан на ассемблере для повышения производительности, так как только кубическая интерполяция 8-ми каналов с частотой 36.5 кГц требует порядка 2.3 Млн операций умножения в секунду, не считая операций сложения и других, не менее важных вычислений, в которые входит микшер, БИХ-фильтр ВЧ, декодер формата MOD.

Устройство не требует наладки и при правильном монтаже начинает работать сразу после прошивки. Фьюзы установлены по умолчанию в утилите STM32 ST Link Utility. Для примера можно порекомендовать прошить отладочную плату STM32VLDiscovery, подключив динамическую головку к выводам PA2 и PA3 через токоограничивающий резистор сопротивлением около 200 Ом.

Оба варианта печатной платы устройства были разведена и откатаны ЛУТом за один вечер, а исходники первого варианта печатной платы, к сожалению, утеряны. Версий второго варианта 2; полная и обрезанная. В обрезанной версии удалены площадки под неиспользуемыми выводами микросхем для облегчения монтажа.

Используемые интернет ресурсы:

Используемое ПО:

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 Участие в конкурсе 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (5) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
Влад #
Круто получилось, еще бы позицию в файле запоминать, что бы после остановки продолжать с того же места. Да и MP3 плеер можно на этом же принципе сделать. Т.к. тут сама идея с ручкой просто класс!
Ответить
0

[Автор]
ksan #
Позицию запомнить легко, десяток строчек кода и ионистор на VBat и хранить в батарейном домене, если хранить во флеш - у МК он быстро износится и всё... Разрабы из ST не предусмотрели EPROM. А МРЗ плеер - не интересно, сама соль в написании алгоритма DSP. Идея с ручкой принадлежит супруге
Ответить
0
Вадим #
Применение такого подшипника обусловлено высокими радиальными нагрузками при вращении ручки привода....
Вам 100 жизней не хватит, чтобы вручную износить самый дрянный подшипник хотя бы на 1%
Ответить
0

[Автор]
ksan #
Изначально предполагалось, что стальной вал будет вращаться в алюминии основания и быстро его протрёт
Отредактирован 06.07.2017 08:35
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Конструктор УНЧ 60 Вт на LM3886
Конструктор УНЧ 60 Вт на LM3886
Паяльная станция Hakko 936 Мини гравер 125 Ватт
вверх