Scanning the web on microcontroller based USB solutions, I stumbled over Objective Development’s freeware USB solution based on Atmel’s AVR architecture. I decided to build up their reference design PowerSwitch with an ATTiny2313 MCU.
Since I never used AVR chips before, the first challenge was to set up a code development environment enabling me to modify the firmware to my needs and get it into the MCU chip.
Amazingly enough, I found excellent freeware tools to get this accomplished:
WinAVR and PonyProg work nicely from within AVR Studio as plug-ins.
Beware that in order to make PowerSwitch (and my own application) work, the fuse bits of the MCU need to be reprogrammed, since the factory default lets the MCU run on the internal RC-oscillator, but for the USB-firmware it’s crucial that the MCU is clocked with a 12 MHz crystal.
Here are the correct fuse bit settings as seen in PonyProg:
After successfully having set up the software development environment for AVRs and having managed to get the AVR-USB reference project PowerSwitch to work properly, I decided to modify it to interface Analog Devices Direct Digital Synthesizer (DDS) chips. On top, any Port pin can be configured and used through the host software as logical input or output widening the possible applications without mofification of the firmware.
The below schematic shows, that the hardware is still basically identical with OD’s PowerSwitch.
For more detail: Atmel AVR-firmware based universal USB-Interface using ATTiny2313
This free embedded project also found using:
- atmel 2313