V-USB Reference Implementations
AVR-Doper is an STK500 compatible In-System Programmer (ISP) and High Voltage Serial Programmer (HVSP). It comes with a built-in USB to Serial adaptor to connect directly to USB.
- HVSP allows using RESET pin for I/O, which is especially beneficial on 8 and 14 pin devices.
- Simple hardware which can be built on a single sided PCB. No special USB chips are needed.
- Compatible to Atmel’s STK500 with built-in USB to Serial converter.
- Adjustable ISP clock allows flashing of devices clocked at very low rate, e.g. 32 kHz.
- ISP clock can be lowered with a jumper (if the programmer software does not support setting the ISP clock).
- Second USB to Serial converter for processing debug output from the target.
- HVSP connector compatible with HVProg, another STK500 compatible programmer (see www.der-hammer.info/hvprog/index_en.htm).
- Uses USB power supply, no external supply required.
- Firmware can be compiled to run on metaboard hardware and USBasp hardware.
- Open Source (including firmware and schematics).
More information about the project and all the sources for hardware, software and firmware can be found in the download below.
Note: Implementing a USB CDC device with V-USB violates some aspects of USB 1.1. CDC-Mode may therefore fail or be unreliable on some operating systems or computer hardware. Please look at the compatibility list included in the AVR-CDC project or test a simplified prototype on breadboard with your computer if you want to use CDC mode.
We recommend that you use AVR-Doper in HID mode instead, which has no such problem. This mode is supported by avrdude. More information about interface modes and their relative advantages can be found in the project description.
There are many ways to improve AVR-Doper. Some people have modified the circuit to fit particular needs:
- www.rototron.info: This is a simplified version without the High Voltage Serial Programming part.
- hobbyelektronik.org (German description only): A somewhat smaller PCB for AVR-Doper.
- www.kreuzholen.de: This version omits the High Voltage Serial Programming part, but adds ESD protection and has a PCB which fits well into a commercial case. This site also offers an alternative debug terminal which utilizes AVR-Doper’s built-in serial interface.
- www.z-v.si: This is an alternative to the board above, but with a single sided PCB.
- Opto-Isolated AVR-Doper: This is an ISP-only version with opto-isolation between host and target.
- AVR tiny Doper SE: This is a German construction manual for a tiny version with full set of features.
To download an archive with firmware and circuit diagram, please click one of the files below.
- Fixed interrupt vector name for ATMega48/88/168 for USART Rx.
- Turn on green LED on first USB packet.
- Added some delays in hvspExecute() to conform to datasheet.
- Fixed two bugs in ispProgramMemory() which affected completion polling.
- Improved UART Rx interrupt so that global interrupts are not disabled for an extended period of time.
- Updated to newest version of v-usb.
- Modernized code for current avr-gcc.
- Added patch from Sjors Hettinga to avrdebug. This patch adds HID support for Windows in avrdebug-hid.exe.
- Fixed report ID for debug data HID interface. This interface is not yet in use because no host side driver has been written.
- Fixed interface detection for Metaboard/USBasp hardware.
- Don’t configure Timer 1 for USBasp hardware.
- Fixed bug from previous release: LED pin was not configured as output on AVR-Doper hardware.
- Assigned a serial number. This should help to assign a consistent COM device regardless of the USB port used.
- Improved ISP speed.
- This version can be compiled for metaboard and USBasp hardware
- Reverted to old algorithm for entering HVSP mode.
- Added .inf file for Windows Vista. This is required for CDC mode.
- Fixed a serious bug in ISP mode! Reading fuse values and similar commands with avrdude could have unpredictable results on the chip, including chip erase etc. Please upgrade to this version!
- Fixed HVSP mode for ATTiny24, 44 and 84 in circuit: Pins 11, 12 and 13 of the programming socket must be connected to GND.
- HVSP mode is now tested with ATTiny11, 12, 13, 44 and 85.
- Transmit high address bits for devices with more than 64 kB of Flash.
- The command line tool "avrdebug" accepts keyboard input now which is sent to the target device over the serial interface.
- The "avrdebug" tool checks for both modes now: CDC and HID.
- Connected pins 2 and 3 of the 8 pin programming socket. These pins are swapped on some 8 pin devices.
- Fixed bug in ISP value polling. Value polling is used when programming older devices such as the AT90S8515.
- Always round timer delay values up, never down.
- Added patch for avrdude to support HID mode.
- Updated Readme file with information about HID mode and avrdude.
- Added compatibility macros to allow ATMega88 instead of ATMega8.
- Ignore synchLoops parameter in ISP mode since avrdude sometimes sends 0.
- Changed default ISP clock speed to 2 (instead of fastest).