You Are Here: Home » AVR ATmega Projects » Atmel AVR-firmware based universal USB-Interface using ATTiny2313

Atmel AVR-firmware based universal USB-Interface using ATTiny2313

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:


AVR-C-Compiler:  WinAVR
IDE including simulator: AVR Studio 4.13, build 528 (Release)  Download 75 MB
AVR flashing tool: PonyProg2000 (for simple hardware for flashing AVRs look here)

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:

DG8SAQ-DDS application:

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

Leave a Comment

You must be logged in to post a comment.

Read previous post:
2-Channel Digital Potentiometer

Description The DS1868B has two 256-position potentiometers, with wiper positions each set as 8-bit values. The potentiometers can be used...

Scroll to top