Реклама ⓘ
Главная » Звук
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

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

Устройство представляет собой плеер 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 Участие в конкурсе 1
x

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

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

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

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

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

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

[Автор]
ksan #
Изначально предполагалось, что стальной вал будет вращаться в алюминии основания и быстро его протрёт
Отредактирован 06.07.2017 08:35
Ответить
0
Pit #
Очень интересный проект! Хотелось бы попробовать его повторить. Никто не поможет переделать прошивку под STM32F103C8T6 ? Может автор откликнется?
Ответить
0

[Автор]
ksan #
Здесь я. Прошивка для stm32f103c8 в прикрепленном файле.
Прикрепленный файл: music_cube_stm32f103c8.zip
Ответить
0
Pit #
Вот спасибо! Даже и не ожидал такого оперативного ответа! Думал, что проект заглох давно, и на совсем. Есть у меня свободная платка на таком контроллере для пробы, хотя уже и STM32F100RBT6B прикуплен был. Я так понимаю, что можно и свой MOD-файл вставить в прошивку. Вот только как быть с темпом воспроизведения? Мелодия может быть медленнее оригинала, или наоборот, более быстрая (хотя ваша мне очень нравится). Да и шестерёнки, какие удастся найти для генератора, будут с другим соотношением передачи. Может можно как то задействовать свободные ножки контроллера, для изменения темпа воспроизведения? Сделать программный коммутатор на джамперах?
Ответить
0

[Автор]
ksan #
Определитесь для начала с механикой, а прошивку подрихтуем
Ответить
0
Pit #
Попробую собрать макетный вариант схемы без генераторного питания, с платой blue pill и драйверами IR4427, с тактированием от внешнего генератора. Надо проверить, запустится ли вообще это чудо! Похоже, что никто сей девайс больше не собирал. Прошивка, которую вы дали для stm32f103c8 слишком большая, у контроллера всего 64к флеш памяти. Надеюсь, что вход для тактирования остался на PA8? И нет ли необходимости защитить вход от возможного повышенного напряжения хотя бы парой диодов?
Ответить
0

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

МиниПК MK809V - 4 ядра, Android 4.4.2
МиниПК MK809V - 4 ядра, Android 4.4.2
Паяльная станция Hakko 936 Катушка Тесла
вверх