Electronic – USB MIDI Host on a microcontroller

microcontrollermidiusb-host

I need to interface a USB MIDI keyboard to a microcontroller host.
The microcontroller will be receiving MIDI commands from the USB and occasionally sending MIDI commands.

I'm wondering if there are any implementations on popular microcontrollers like STM32, PIC24 / 32, FTDI etc. that already exist.

I found a company called Hobbytronics that used to make such a board based on the PIC24FJ64GB002,

http://www.hobbytronics.co.uk/usb-host-board-v2

so it seems possible to do it, however I can't find additional info regarding the USB MIDI Host stack on Microchip's website.

I won't mind going for a FTDI midi to serial chip if anything like that exists.

Best Answer

I'd recommend taking a look at Vinculum chip by FTDI. It is specifically designed as external host hardware running USB stack so that your MCU doesn't have to do it.

Another, somewhat harder to use, solution is SL811HS from Cypress.

Both are available on convenient breakout boards, like this one for Vinculum or this for Cypress.

I can't find additional info regarding the USB MIDI Host stack on Microchip's website.

What info are you looking for? If you buy that HobbyTronic board all you have to do is download and install their free MIDI host software. Then the board will convert between USB MIDI data and Serial TTL packets, which you can read/write using any MCU of your choice.

UPDATE:

Just out of curiosity, why don't you use some of the off shelf converters with USB host functionality, like Cerebel, Kenton or iConnectMIDI4+? They all can convert USB MIDI to normal serial MIDI, easily connectable to any MCU. Admittedly, they could be pricey, but if you count time you need to make hardware, write software and cost of parts, they quickly begin to look rather on a cheap side.