Hi guys, I'm preparing to start USB development. Can I use the CDC class for things like keyboards and mass storage?
I'm waiting on a book called "Embedded USB".
Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756
Bunch of old projects with AVR's: http://www.hoevendesign.com
you might enjoy this monster:
Lightweight USB Framework for AVRs (LUFA)
When in the dark remember-the future looks brighter than ever. I look forward to being able to predict the future!
Can I use the CDC class for things like keyboards and mass storage?
Jesus clawson, you don't expect me to read all that specification?
need a drink now.
I gave you a link to a very good reference. You’ve not read it yet?
PS ah sorry, I guess there is of course the "millennial exemption rule" to be applied: The internet always delivers on the "I want it and I want it now" promise as we all know (this usually involves someone else reading the manual out to you!)
PPS and you still probably can't beat the books by Jan Axelson as a "primer" for USB.
I use WinUSB. It was written by someone with an IQ above zero. The problem with WinUSB, or the portable LibUSB is the host interface. It's easy to hook up to a serial port, which is how you use CDC. There ought to be an easy way to hook up to WinUSB but I'm not sure there is. I wrote my own which works with my own GUI program, and Jan Axelson has one that is imbedded in a .net program using C sharp.
My biggest problem with CDC is there is no way for the host to tell the device where the end of message is when the host sends one to the device. In my mind, that's stupider than stupid. Also when you reboot the device, you need to disconnect the host program from the fake serial port before it will work again. With Windows 7 it's even worse. I think you have to disconnect it before you reboot the device. You also need to install a driver for CDC. Winusb's driver gets installed automatically.
With Winusb, you can assign a GUID to each device, actually to each interface of the device. The host program can search for those. The VID and PID are not used. There are a lot more GUIDs than VIDs and PIDs. GUIDs are much cheaper too.
If you haven't read these yet :-
Then the USB 2.0 spec.
Some chapters are quite readable, particularly if you ignore the chapters on USB hub, and ignore High Speed stuff.
© 2020 Microchip Technology Inc.