Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550


Как сделать самому USB to MIDI адаптер для подключения синтезаторов к компьютеру

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

Зачем нужен MIDI порт в наше время?

Описываемый MIDI адаптер предназначен для подключения к компьютеру MIDI оборудования, не имеющего собственного USB порта. В основном это MIDI клавиатуры, «железные» синтезаторы и звуковые модули, выпущенные несколько лет назад. Поскольку музыкальная индустрия это отрасль довольно консервативная, огромное количество таких (нужно сказать прекрасных) инструментов до сих пор успешно используется в профессиональных и домашних студиях, и я уверен, будут использоваться не одну пятилетку в будущем. Например я в своей студии использую отличную полноразмерную MIDI — клавиатуру Roland A33 более чем десятилетнего возраста, и она прекрасно работает, но конечно же на ней нет никаких USB портов, а только MIDI вход и 2 MIDI выхода.

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

MIDI клавиатура Roland A33

Сейчас музыканты все чаще уходят от «железных» синтезаторов в сторону использования в своем творчестве исключительно виртуальных VST инструментов, так как мощность современных процессоров это позволяет, но даже в этом случае для ввода в компьютер музыкальной информации нужна внешняя клавиатура — контроллер, которую можно подключить к компьютеру с помощью описываемого MIDI адаптера. Иногда такое классическое MIDI — подключение даже довольно современных инструментов предпочтительнее с точки зрения надежности работы. Например у меня есть отличный синтезатор Roland Juno G, который уже оборудован USB, но я нашел что надежнее работать не через его USB порта а через его обычный классический MIDI — порт.

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

Синтезатор Roland Juno G

Кроме того, такой MIDI адаптер может стать основой для подключения к компьютеру самодельных музыкальных и экспериментальных устройств, работающих по протоколу MIDI — синтезаторов, устройств управления сценическим светом, я даже встречал конструкции «умный дом», которые управлялись по MIDI. Дело в том, что MIDI соединение — это старый, надежный, отработанный до мелочей стандарт. С программной точки зрения это обычный UART (последовательный интерфейс) который на аппаратном уровне поддерживают даже самые «древние» микроконтроллеры. Поэтому он очень прост в программировании. Единственное отличие MIDI от обычного UART — это нестандартная скорость передачи данных. Если в стандартном UART мы имеем сетку вроде 2400, 4800, 9600, 19200, 38400, 57600 и 115 200 бит/с, то для превращения его в совместимый с MIDI оборудованием достаточно настроить порт на частоту 31250 бит/с. Именно с такой фиксированной скоростью работает МИДИ интерфейс. нужно сказать, что в 80-х годах прошлого века, когда вместе с цифровыми синтезаторами появился MIDI, это была довольно высокая скорость. С аппаратной точки зрения MIDI порт это соединение по двум проводам типа «токовая петля».

Зачем делать MIDI порт, если можно купить китайский на Алиэкспресс за 300 рублей?

Действительно, можно заказать в китае миди адаптер по минимальной цене примерно за 5 долларов. Например вот такой:

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

и он может даже будет работать. Однако последний вариант адаптера, который описывается в этой статье, я сделал для моего знакомого музыканта как раз на замену вот такого китайского, который он купил за 300 рублей. Китайский более-менее работал под Windows 7 но наотрез отказался корректно работать под Win 10. То есть он определялся системой но работал некорректно, программы — секвенсоры работали с ним некорректно, некоторые просто зависали при нажатии на клавишу миди клавиатуры, а некоторые выдавали двойные ноты, не передавалось событие окончания ноты и возникали другие ошибки. Работать было невозможно.

В конце концов я сделал человеку описываемый адаптер, взяв из его китайского варианта только кабели с разъемами MIDI. Теперь у человека все работает отлично под десятой виндой. Не факт, что любой купленный на Али подобный адаптер будет глючить, но я с этим сталкивался уже раза три. То есть это — лотерея. Я разобрал китайский адаптер и как оказалось на его плате не была установлена стандартная для MIDI — портов оптронная развязка, MIDI вход был реализован на паре транзисторов. Это не есть хорошо.

Качественные (не китайский ноу-нэйм) адаптеры стоят уже не 5 долларов а намного дороже. Например вот этот будет работать без проблем, но стоит он в несколько раз дороже

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

Самой дорогой деталью описываемого в статье миди адаптера является микроконтроллер 18F2550 Заказать микроконтроллер можно по этой ссылке

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

Принципиальная схема MIDI адаптера

Основой устройства является микроконтроллер Microchip PIC18F2550. Данный микроконтроллер имеет аппаратную поддержку USB.

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

Принципиальная схема адаптера MIDI To USB (кликните на картинке чтобы увеличить)

MIDI IN и MIDI OUT — пятиконтактные разъемы стандарта DIN (нем. Deutsches Institut für Normung, DIN). такие использовались раньше в советских магнитофонах и назывались «ОНЦ-ВГ»

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

MIDI — порт синтезатора на разъемах DIN

Конструктивно миди адаптер может быть выполнен в двух вариантах — коробочка с двумя гнездами DIN (MIDI IN и MIDI OUT), либо с гнездами «мама» на коробочке (как на фото выше) так и в варианте китайского или M-audio, о которых я рассказывал ранее, то есть в виде маленькой коробочки с выходящими из нее кабелями и штеккерами DIN — «папа» на этих кабелях. USB гнездо можно также установить в коробке — корпусе, либо использовать кусок USB провода с разъемом от старой мышки или от чего-то другого. Я сделал именно второй вариант, так как были в наличии все кабеля от того самого негодного китайского миди-адаптера.

В качестве коробочки для корпуса адаптера вы можете приспособить любую небольшую унифицированную пластиковую коробочку из радиомагазина, мыльницу или в крайнем случае, оставить его в виде «просто платы» (крайне не рекомендуется). Если у вас есть 3D принтер, то ы можете поступить так, как сделал я — напечатать корпус на 3D принтере. Ссылку на скачивание моделек я поместил в конце этой статьи.

При сборке адаптера важно правильно распаять миди — гнезда и/или кабеля. MIDI порт — это интерфейс типа «токовая петля» и он чувствителен к полярности соединения проводов. То есть если вы перепутаете провода в кабеле то порт работать не будет. На принципиальной схеме показано правильное соединение выходных пинов платы контроллера с гнездами DIN типа «мама» (с дырочками)). На схеме показана правильная распайка для гнезда при условии если вы смотрите на это гнездо сзади, то есть со стороны лепестков для пайки:

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

Имейте в виду, что на принципиальной схеме указана распайка именно для разъема «мама».

В случае со штеккером «папа», который припаивается на кабель, получится наоборот, нужно смотреть на этот штеккер спереди:

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

Вообще контакты разъема DIN пронумерованы и можно просто следовать правильной нумерации (На рисунке изображена нумерация контактов если смотреть на разъемы спереди:

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

Оптрон U2 использован типа 4N36 d 6-пиновом корпусе. Можно применить любой совместимый по распиновке оптрон этой серии. Для стабильной работы MIDI входа, возможно, придется подобрать сопротивление резистора R6. В случае с 4N36 у меня получилось оптимальное сопротивление в районе 1…1,2кОм. Дополнительные пины, обозначенные на схеме как THHG_5 и THHG_4 я применял для установки дополнительного гнезда MIDI THROUG. Это гнездо служит для непосредственной передачи MIDI сигнала с MIDI IN на этот самый MIDI THROUGH, и по моему мнению в случае с компьютерным интерфейсом особого смысла не имеет, поэтому можно его не устанавливать.

На плате он не предусмотрен, и для его реализации я устанавливал дополнительную микросхему 561ЛА7 навесным монтажом на проводах, так как не хотелось разводить под этот вариант печатную плату. наличие такого выхода являлось желанием заказчика, не понятно зачем оно ему может пригодиться, обычно гнезда THROUG устанавливают на MIDI инструментах чтобы соединять их в цепочки. Дополнительная микросхема просто играла роль буфера, так свойства соединения «токовая петля» таковы, что просто подключить дополнительное гнездо MIDI TROUG к контактам THHG_5 и THHG_4 нельзя, дополнительное соединение «посадит сигнал» и вход перестанет работать. Повторю еще раз, я считаю MIDI TROUG в таком адаптере бессмысленным, поэтому не привожу схему его соединения, а дополнительные контакты удалять из проекта просто лень. Каких — либо других особенностей схема адаптера не имеет, это обычное простое микроконтроллерное устройство. Микроконтроллер очень желательно устанавливать на панельке. перед установкой микроконтроллера в схему его необходимо запрограммировать (прошить) с помощью любого программатора PIC контроллеров, например вот этого или этого. Ссылку на файлы прошивки вы найдете в конце этой статьи. Если все сделано правильно и без ошибок из исправных компонентов, то схема не нуждается в настройке и начинает работать сразу.

Печатная плата

Печатная плата разведена в программе DipTrace. несколько таких миди адаптеров в свое время я сделал просто навесным монтажом на унифицированных макетных печатных платах. особого значения это не имеет.

Интерактивный 3D просмотр.
Кликните в центре изображения, дождитесь загрузки 3D модели. Крутить: левая кнопка мыши; Размер: колесо мыши.

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

Корпус

В моей версии корпус адаптера напечатан на 3D принтере. Он состоит из 2 частей — коробки и крышки. Модели разработаны в SolidWorks. В качестве корпуса можно использовать любую пластмассовую коробочку, например мыльницу.

Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550
Самодельный USB MIDI адаптер для компьютера на микроконтроллере PIC18F2550

Файлы

СКАЧАТЬ архив со всеми файлами проекта (прошивка, схема, печатная плата и модели для печати корпуса)


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *