Hi everyone,
TLDNR:
- How do I set up MIDI descriptors for MIDI over USB so that I can get my PC to recognize my F5510 as a class-compliant MIDI device, either using the TI USB Dev package, api, and descriptor tool, or manually?
I'm working on my first MSP430 project and hoping to get some help setting up the USB interface in CCS. I'm working with an MSP430F5510 on a custom board and trying to set it up so that it's recognized as a class-compliant midi device on the PC - then I will send midi messages to the PC to control music programs, etc. I'm stuck on where to start for configuring the USB on the MSP430 and setting up the MIDI descriptors.
So far, I've managed to run the empty USB example from TI's USB Developers Package using HID settings from the TI Descriptor Tool - my PC recognized it as an HID device and installed it. It shows in device manager (yet has an error, which I suspect is just due to not running any code yet: "This device cannot start. (Code 10)"). Okay, this seems good - I imagine my hardware is working then.
Now how do I set it up to be recognized as a MIDI device? The TI examples and descriptor tool don't support MIDI, but I was hoping I could possibly modify the code to make it work - to save re-inventing some of the wheel. Their code seems quite convoluted and abstracted which is making it difficult for me to figure out what I need to do. I've found some resources on MIDI over USB such as the ones below, but am looking for some direction on how to actually implement it.
Resources I've found:
- MIDI descriptor from microchip: http://www.microchip.com/forums/m297214.aspx
- Forum question on basics of MIDI over USB: http://electronics.stackexchange.com/questions/87601/implementing-a-class-compliant-usb-midi-device
- All of TI's USB Dev stuff: http://www.ti.com/tool/msp430usbdevpack http://www.ti.com/lit/an/slaa457a/slaa457a.pdf
- MIDI over USB Spec for knowing what to put in descriptors: http://www.usb.org/developers/docs/devclass_docs/midi10.pdf
Main questions on the topic:
- Should I be trying to use TI's examples? Also the API?
- Where do I put the descriptors and how?
- Are there other resources I should be following?
Thanks heaps in advance for any insight you can give! Congrats if you read this far - you're the best =).
Thanks,
Josh