Новости

10-Центовый микроконтроллер создает музыку для трекера

В наши дни мы до нелепости избалованы нашими микроконтроллерами. Возьмем семейство CH32V00X — они были увековечены мемом как «ten cent micro», но с тактовой частотой 48 МГц и 32-разрядными регистрами для работы, они являются удивительно производительными машинами даже по стандартам о былых домашних компьютерах. Это и побудило [Тима] посмотреть, сможет ли он использовать его для воспроизведения файлов модов с минимальным количеством дополнительных деталей и, в частности, без ЦАП.

Ну, это отчасти и побудило его. Другая часть состояла в том, чтобы увидеть, как в Hackaday кто-то использует CH32V003, издающий звуковые сигналы, похожие на чиптюн. [Тим], по-видимому, воспринял этот пост как брошенную перчатку и воспользовался еще более мелкой фишкой: CH32V002, которую он превратил в мод-плеер. Для тех из вас, кто проспал 80-е и начало 90-х (или для тех не по годам развитых младенцев, которые читают эту книгу и которые тогда еще не родились), MOD files — это формат электронной музыки, впервые представленный на домашних компьютерах Amiga. Как и в случае с MIDI, файл определяет, когда воспроизводить определенные голоса, а не кодирует звук напрямую. В отличие от MIDI, файлы MOD являются автономными, а используемые сэмплы/голоса хранятся внутри файла. Оригинальная версия была ориентирована на четырехканальный звук, и именно это [Тим] использует здесь.

Как вы можете видеть из демонстрационного видео, звучит великолепно. Он справился с этим, используя встроенный в чип ШИМ-таймер. Поскольку рабочий цикл таймера определяется переменной, которая может быть изменена с помощью DMA, процессору в конечном итоге приходится выполнять не так уж много работы. В худшем случае, когда все данные хранятся во флэш-памяти, а не в SRAM, нагрузка на процессор составляет всего 24%, так что есть много возможностей добавить графику для полноценной демонстрации. Используя существующую библиотеку MODPlay, проигрыватель [Tim] помещается в 4 Кбайт памяти, оставляя 12 Кбайт для файла мода. Что касается необходимых внешних компонентов, то это всего лишь RC-фильтр для устранения шума ШИМ. [Тим] выложил свой код на GitHub для всех желающих и, возможно, непреднамеренно бросил еще одну вызов всем, кто хочет использовать эти маленькие микропроцессоры RISC V для музыкальных задач. Если вы можете сделать лучше, пожалуйста, дайте нам знать.


Другие статьи: