??? 01/30/08 06:40 Read: times |
#150069 - Start with easier examples Responding to: ???'s previous message |
Do you want to write your custom USB bootloader on AT89C5131A for your study?
Do I need add another OUT endpoint or another interface or another configuration to get command or data from host? a) As of adding another OUT endpoint or OUT report, when your are working on Windows, Windows grab keyboard and mouse as system devices. The access from your PC app to these devices (interfaces) are limited to the exchange of FEATURE report. Then, the OUT endpoint and OUT report to the keyboard interface doesn't work for bootloading. "The HID FAQ" by J.Axelson "Why do I receive "Access denied" when attempting to access my HID?" http://www.lvr.com/hidfaq.htm b) As of another interface, Composite device of HID keyboard and vendor specific HID will work for bootloading. Actually, any interface will work in combination with the HID keyboard. Because you've started on the HID keyboard example, I recommend you to apply vendor-specific HID for the bootloader. On the Atmel site, you'll find these examples. "USB Generic Implementation Based on HID Class" "USB PC Drivers Based on Generic HID Class" http://www.atmel.com/dyn/produ...rt_id=3570 As of configuration of composite device, see this post on SiLabs forum "USB Composite Device" http://www.cygnal.org/ubb/Forum9/HTML/001050.html c) As of another configuration, Windows doesn't accept alternate configuration for HID device. I've shown above Atmel example. But, I don't think the Atmel examples for AT89C5131/5132 are good for USB beginners. These examples are well established, and have nearly production quality. Good for professionals. But the completeness makes it too difficult to learn the handling of the USB engine for beginners on these examples. Start with more easier examples on other USB MCUs, which is not so 'complete' :-) As the USB spec defines the behavior of the USB engine in details, the implementation of USB engine is much the same among USB MCUs, though the detailed registers may be different. Then, once you master one of the USB MCU, this experience is easily applied to other chips. Therefore, starting with easy example is the key to master USB. For ARM, LPCUSB on NXP LPC214x provides you clear view. http://wiki.sikken.nl/index.php?title=LPCUSB For '51, SiLabs examples for C8051F34x are straightforward. These examples are included in SiLabs IDE update. http://www.silabs.com/tgwWebApp..._IDESR.htm Tsuneo |
Topic | Author | Date |
USB firmware update | 01/01/70 00:00 | |
on-chip USB Bootloader firmware | 01/01/70 00:00 | |
Thanks but my question is... | 01/01/70 00:00 | |
Start with easier examples | 01/01/70 00:00 | |
Thanks for detailed answer and example. | 01/01/70 00:00 | |
Composite Device![]() | 01/01/70 00:00 |