kasbah Posted October 31, 2011 Report Share Posted October 31, 2011 I have been looking through the MIOS code (specifically the LPC17XX part) as I am interested in how it implements a composite device with a virtual serial port and a midi interface. I am trying to do a dual implementation like this using LUFA on an Atmega chip. As I understood it the composite device should have two interfaces linked by a single Interface Association Descriptor (IAD). This is not the way it seems to be done in MIOS however. If you look at the descriptor definitions in mios32_usb.c it seems the overall device descriptor is 0x00 (which is undefined) or 0x02 which is a virtual serial device. IAD would be 0xEF. Can someone shed some light on why it is done this way? Especially how it manages to enumerate two separate interfaces on the same USB device without using IAD? Quote Link to comment Share on other sites More sharing options...
TK. Posted October 31, 2011 Report Share Posted October 31, 2011 To be honest: I never tried this function on the LPC17xx variant of the USB driver due to bad experiences that I made with the STM32 variant, which implements Virtual COM and USB MIDI correctly. The parallel usage of both protocols is only possible under Linux (tested ca. 2 years ago, I'm unsure if it's still working) and MacOS 10.5..7 WinXP crashed with blue screen, I haven't tried it on Vista or Win7. Due to the (extremely) fast USB MIDI handling, and due to the possibility to embed strings into SysEx streams (thats what I'm doing to communicate with the MIOS Terminal), I don't see a need for the virtual COM feature anymore. Meanwhile I consider to remove it from the driver. Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.