2012/usb12

USB Bootcamp

Members: Asha Gopinathan, Bernabe Linares-Barranco, Christian Brandli, Christoph Maier, Daniel B. Fasnacht, Frederic Broccard, federico corradi, Giacomo Indiveri, Jongkil Park, Kevin Mazurek, Kwabena Boahen, Magdalena Kogutowska, Mostafa Rahimi Azghadi, Sadique Sheik, Kent Slaney, Siddharth Rajaram, Sudarshan Ramenahalli, Thomas Murray, Tobi Delbruck, Terry Stewart, Theodore Yu

Leader: Daniel B. Fasnacht

Learn how to use USB (Universal Serial Bus - the thing you have on every PC) to interface to neuromorphic chips and actuators. Write your own USB driver, make a robot that uses a silicon retina, write microcontroller firmware for the first time. Unlock the power of combining ubiquitous PC digital computation with your own hardware. This year participants will program and use the AVR32 board that they assemble and we also intend to explore the capabilities of the new Cypress FX3 device that enables developing your own Superspeed devices.

Check out the 2011 USB Tutorial page.

Random Notes

$ find /opt -name avr32-objcopy
$ .../avr32-objcopy -O ihex usb-rgb-ldr.elf usb-rgb-ldr.hex

Programming a new Firmware

Power up the PCB with DFU button pressed or press and relese the RESET button while keeping the DFU button pressed.

The device should come up in DFU mode with USB Vendor / Product IDs: 03eb:2ff6

$ dfu-programmer at32uc3b1256 erase
$ dfu-programmer at32uc3b1256 flash --suppress-bootloader-mem usb-rgb-ldr.hex
$ dfu-programmer at32uc3b1256 reset

Press the RESET button and the device should come up with the new IDs 03eb:2300 instead of the DFU IDs 03eb:2ff6

DFU / device mode

enter DFU mode

Power up the PCB with DFU button pressed or press and relese the RESET button while keeping the DFU button pressed. The device should come up in DFU mode with IDs 03eb:2ff6

exit DFU mode

1. run:

$ dfu-programmer at32uc3b1256 reset

2. press the RESET button.

The device shoud now boot the firmware (if programmed) and come up with IDs 03eb:2300

Check device status

At any point to check the status of the USB device:

$ lsusb -d 03eb: -v

You can see whether it is in DFU mode or not for the IDs and interface descriptor info.

Attachments