Автор Тема: USB-MIDI  (Прочитано 11853 раз)

0 Пользователей и 1 Гость просматривают эту тему.

EternalEngine

  • Гость
USB-MIDI
« : Июля 20, 2009, 06:38:20 pm »
Господа, очень нужна ваша помощь. Поделитесь пожалуйста схемкой и прошивкой/исходником USB-MIDI адаптера. Лучше для ATmega, можно и на PIC. Или хотябы исходник для хоть какого нибудь контроллера. Уде месяц ищу, всё облазил - нигде не могу найти. :wacko:  :(  

AceessTI

  • Гость
USB-MIDI
« Ответ #1 : Июля 20, 2009, 11:42:30 pm »
http://ucapps.de/mbhp_usb_gm5.html
http://ucapps.de/mbhp_usb.html
http://ucapps.de/mbhp_usb_pic.html
там только реализовано вроде через vcom....хотя видел в сети проект который был на hid ....вот только не помню где ))
« Последнее редактирование: Июля 20, 2009, 11:46:41 pm от AceessTI »

EternalEngine

  • Гость
USB-MIDI
« Ответ #2 : Июля 21, 2009, 02:37:14 pm »
c vcom то всё просто... а вот как через hid?))))

AceessTI

  • Гость
USB-MIDI
« Ответ #3 : Июля 22, 2009, 05:53:42 am »
а наверное так
 

EternalEngine

  • Гость
USB-MIDI
« Ответ #4 : Июля 22, 2009, 03:20:44 pm »
и так смотрел - пусто))). может у кого есть прямая ссылка или собственные разработки?

Sonic

  • Гость
USB-MIDI
« Ответ #5 : Июля 22, 2009, 04:26:55 pm »
Привет!
Зимой собирал себе драм-контроллер по схеме с http://www.megadrum.info/ . Там МИДИ реализовано на PIC 18F2550, вроде, специально для ЮСБ-МИДИ разработанный контроллер. Там и схема и прошивка. Может поможет.
« Последнее редактирование: Июля 22, 2009, 04:31:00 pm от Sonic »

EternalEngine

  • Гость
USB-MIDI
« Ответ #6 : Июля 23, 2009, 04:22:08 pm »
Цитировать
Привет!
Зимой собирал себе драм-контроллер по схеме с http://www.megadrum.info/ . Там МИДИ реализовано на PIC 18F2550, вроде, специально для ЮСБ-МИДИ разработанный контроллер. Там и схема и прошивка. Может поможет.
спасибо, посмотрю! :)

Мне интересно исходники посмотреть какие нибудь, чтою портировать их на мегу...
« Последнее редактирование: Июля 23, 2009, 04:47:41 pm от EternalEngine »

Diz

  • Гость
USB-MIDI
« Ответ #7 : Июля 25, 2009, 03:32:50 pm »
HID и CDC (виртуальный ком-порт) - неудачный вариант, ибо потребуют
написания драйверов с комповой стороны. Стоит реализовать стандартный
USB класс MIDI Streaming (подкласс USB Audio Device), тогда драйверов
под любой операционкой не потребуется, полный plug&play :-)

Ближе к теме - берем любой контроллер с железным usb на борту,
качаем к нему usb framework от производителя, добиваемся работы
примеров. После этого останется заполнить таблицу дескрипторов для USB-MIDI, реализовать два bulk endpoint-а (на отправку и получение) и написать
простенький парсер для разбора миди-команд.

EternalEngine

  • Гость
USB-MIDI
« Ответ #8 : Июля 25, 2009, 04:33:07 pm »
У Diz как всегда всё элегантно))). а можешь примерчик какой  нибудь посмотреть дать (например для AT90usb)? не разу с юсб контроллерами дело иметь не приходилось, а в интернете информационный вакуум по данномк вопросу...
« Последнее редактирование: Июля 25, 2009, 04:34:59 pm от EternalEngine »

Diz

  • Гость
USB-MIDI
« Ответ #9 : Июля 25, 2009, 04:58:26 pm »
Хехе.

Ну, для начала стоит почитать о USB вообще - http://www.beyondlogic.org/usbnutshell/usb1.htm  Там же есть примеры для пика. На русском есть книжка
Агурова (хотя и дюже отстойная).

А потом на сайт атмела, качать примеры реализации какого-нибудь USB serial - их проще адаптировать, те же два bulk endpoint-а + control endpoint (для миди не нужен).

Таблицу дескрипторов для USB-MIDI можно содрать прямо из официальной
спецификации класса с usb.org

Будут конкретные вопросы - помогу :-)

EternalEngine

  • Гость
USB-MIDI
« Ответ #10 : Июля 25, 2009, 07:37:54 pm »
спасибо! :D  

EternalEngine

  • Гость
USB-MIDI
« Ответ #11 : Июля 27, 2009, 02:18:55 am »
посмотрел. то что знал -  и так понятно, то что не знал - так и не понял)))). видать опыта у меня пока маловато чтоб самостоятельно разобраться. может всётаки завалялся у кого какой-нибудь исходник - хоть понять как алгоритм организован.

с USB как таковым всё ясно.

скачал примеры на AT90USB - шифровки на вражеском языке...непонятно(

по самим AT90USB тоже информационный вакуум (даже на вражеском)

скачал специффикацию юсб для аудио - сейчас пытаюсь воткнуть, пока безрезультатно.

Diz

  • Гость
USB-MIDI
« Ответ #12 : Июля 27, 2009, 01:07:58 pm »
Да, посмотрел - framework у атмела явно писали индусы :-)

А так суть очень проста. Разбираешься с примером CDC, не залезая в
дебри их библиотеки - достаточно понять, как и откуда вызываются высокоуровневые функции отправки и приема байта.

В usb-midi будет тоже самое, только читать надо не байт, а пакеты по 4 байта (три из них - готовое сообщение 'традиционного' serial midi, и один добавочный, обозначающий номер кабеля).

Останется заполнить таблицу дескрипторов и выкинуть все лишнее.

PS Могу показать проект двухканального адаптера USB<->Serial MIDI на
древнем и снятом с производства CY7C64613 (EZ-USB, 51-й камешек).
Впрочем, это мало поможет :-)
« Последнее редактирование: Июля 27, 2009, 01:33:05 pm от Diz »

EternalEngine

  • Гость
USB-MIDI
« Ответ #13 : Июля 27, 2009, 05:51:12 pm »
Diz, я скачал книжечку Агурова о USB. Сейчас читаю про организацию передачи данных. Я вот думаю - возможно ли сделать софтверный УСБ например на той-же меге48?

Diz

  • Гость
USB-MIDI
« Ответ #14 : Июля 27, 2009, 06:02:28 pm »
Можно сделать кривой low-speed (для midi требуется full-speed), но зачем ?
Это же изврат !  Камешки с железным usb стоят недорого и никаких проблем.

PS http://www.obdev.at/products/vusb/index.html

EternalEngine

  • Гость
USB-MIDI
« Ответ #15 : Июля 27, 2009, 08:06:24 pm »
хм, незнал. я думал что 1,5Мб будет достаточно...

З.Ы. спасибо за ссылку.

Diz

  • Гость
USB-MIDI
« Ответ #16 : Июля 27, 2009, 08:32:21 pm »
В принципе, достаточно, т.к. MIDI нужно 31.25 кБит. Но low speed usb не могут иметь bulk endpoints, используемых в MIDI-USB.

EternalEngine

  • Гость
USB-MIDI
« Ответ #17 : Июля 27, 2009, 08:35:41 pm »
т.е. если я всё правильно понял стандартный драйвер с ними работать не сможет?

Diz

  • Гость
USB-MIDI
« Ответ #18 : Июля 27, 2009, 08:49:37 pm »
Не пробовал, но думаю, что хост просто отвегнет такое устройство
(low-speed и с bulk endpoints).

EternalEngine

  • Гость
USB-MIDI
« Ответ #19 : Июля 27, 2009, 08:56:06 pm »
я тоже так теперь думаю. придёся дальше голову ломать...