Evertool

Evertool is an AVRISP/STK500-protocol and JTAGICE compatible Programmer/JTAG debugger.

Intro

The ATMEL AVRISP In-System Programmer is a small device to program ATMEL AVR microcontrollers. The original ATMEL AVRISP device is described here. To avoid misunderstandings: ATMEL's AVRISP is a "small STK500". Evertool which emulates an AVRISP is not a "bit-bang-programmer" or an AVR910-type-programmer. Evertool "talks" STK500-protocol on the RS232-port since the STK500-firmware ATMEL delivers with the AVRStudio is used. From the programming interface the AVRISP is compatible with the Atmel STK500 in low-voltage serial programming mode.
The ATMEL JTAGICE is a device to program and debug ATMEL AVR microcontrollers with JTAG-Interface (ATmega16, ATmega32, ATmega64, ATmega128...) The ATMEL JTAGICE is described here.

This is a rebuild of both devices on a single board. The main advantage of such a programmer is the compatibility with the ATMEL AVRstudio since it uses the original ATMEL firmware code supplied with AVRStudio on an ATmega16 (JTAG) and ATmega8535 (ISP). So the front-end software (AVRStudio) and programmer firmware are supported by the makers of the target-controllers and new devices should be supported as soon as a new AVRStudio gets released with the new firmware-files for STK500/AVRISP or JTAGICE. With the AVRStudio AVRISP/STK500-plug-in programming of flash, eeprom, fuse- and lockbits is an easy task. The JTAG part of Evertool is compatible with AVRstudio's JTAGICE plug-in. And yes, it is possible "to jtag" the AVR Butterfly with Evertool.

Before you start you may concider this:

Evertool has some extra functions:



Changelog

License

Here commercial use is meant as: building and/or selling devices with the Evertool PCB-Layout with or without a preinstalled Evertool-Bootloader or selling the Evertool-Bootloader itself without hardware (as binary, source-code or programmed in a controller). Or just simply: If you earn money with my work, you owe me a part of your profit.

Hardware

Schematic

Evertool V 0.9 Schematic


enlarge (2400*1600 png-Graphics)

Board


Evertool V 0.6 JMP Board - Thanks to Mark Pepper for makeing the prototype-PCB. @0lmx: first ;-) )

Remarks:

Florian Schenk has created a device based on the Evertool-design with an USB-Interface (FTDI232-IC) and created a layout. See below.

Main Parts:

During development:

Since Evertool can be powered by the target-system the MAX3232 (or compatible 3.3V RS-232-interface-IC) is preferred for reliable programming and debugging of 3.3V target systems. Some "5Volt-MAX232" (or compatible) ICs are known to work at 3.3V. But I do not have any reliable source of information.

Two remarks about low-voltage ("L"-type) AVRs:

Development-Prototype-Board

Picture Gallery

Software



Step-by-Step Guide to Software-Installation

  1. Build the board and double-check it.
  2. Set the reset-select jumper near the ATMega16 to "ISP ATmega16".
  3. Set the reset-select jumper near the ATMega8535 to "ISP ATmega8535".
  4. Connect your programmer (STK200-dongle or whatever) to the ATmega16 ISP-Port.
  5. Connect an external power supply to the Evertools board if STK200-PPI, AVRISP or AVR910-type programmer is used.
  6. Upload the Evertool bootloader into the ATmega16 flash using PonyProg or avrdude or whatever software can talk to you programmer.
  7. Program the ATmega16 fuses and lock-bits (external high freq. crystal, boot-reset, boot-size 1024 words, SPM in boot-section locked).
  8. Connect your programmer (STK200-dongle or whatever) to the ATmega8535 ISP-Port.
  9. Program the ATmega8535 fuses (external high freq. crystal, AT90S8535-compatibility flag (not needed - but can not do any harm)).
  10. Set the reset-select jumper near the ATmega16 to "Normal/ATmega8535 programming".
  11. Power-down the Evertool board.
  12. Connect your PCs serial port to the Evertool board with a serial/RS232 cable.
  13. Select the UART-Jumpers/Switch to connect to the ATmega16.
  14. Close the "enable Bootloader (BL)" Jumper near the ATmega16.
  15. Connect the ATmega16 ISP Pin-Header ("ISP mega16") to the ATmega8535 ISP Pin-Header ("ISP mega8535") with a 10-wire cable (You will need such a cable to connect Evertool to you target boards - so this is no extra part).
  16. Power-up the board.
  17. Start AVRStudio, start Tools/AVRProg. (2)
  18. Select "ATmega16 boot" from the AVRProg device selection.
  19. Select [Browse] and browse to /programs/Atmel/AVR Tools/JTAGICE in the file-dialog, select the file Upgrade.ebn (set filter to *.*).
  20. Press the [Program] button in the "Flash" frame. Now the JTAGICE firmware gets uploaded into the ATmega16 via "self-programming" aka bootloader-programming and verified from the Evertool-bootloader.
  21. Select "ATmega8515 boot" (yes: no typo. It's 8515 not 8535) from the AVRProg device selection.(3)
  22. Select [Browse] and browse /programs/Atmel/AVR Tools/STK500, select the file stk500.ebn (set filter to *.*).
  23. Press the [Program]-Flash button. AVRProg will ask to continue since the Flash "overwrites boot", select "continue". The next message box will ask if the file should be truncated: say "no". Now the Evertool-bootloader uploads and verifies the AVRISP firmware into the ATmega8535 via serial-(in-system-)programming.(4)
  24. Power-down the board
  25. Remove the cable between ATmega16 ISP-connector and ATmega8535 ISP-connector.
  26. Open the Bootloader-Enable ("enable BL") Jumper near the ATmega16
  27. Set the reset-select jumper near the ATMega8535 to "normal/AVRISP mode"
  28. Done.
Remarks:
(1) n.t.
(2) If the message box "No supported board found" appears on the screen verify that no user software uses the COM-port, the UART-select jumpers/switch are/is set to ATmega16/JTAG, the Evertool bootloader is programmed into the ATmega16, the board is powered and the "enable Bootloader"-jumper is set. You may also read the AVRProg user guide.
(3) You may verify that the ISP connection between the ATmega16 and the ATmega8535 is established by pressing the [Advanced] button while the device "ATmega8515 boot" is selected. The Advanced Screen should show the ATmega8535 device signature (see the ATmega8535 datasheet).
(4) If you get verify-errors after the ATmega8535 programming first verify that all connections and jumper settings are correct and the signature-bytes can be read (Advanced Button). If there are still problems press the Chip-Erase button in the advance stettings Chip Erase for the Mega8535 is implemented in bootloader version 0.7 and above.

The steps 1-10 are only needed for the first time to prepare the "virgin" ATmegas. The binary-distribution of the Evertool bootloader includes a setup-routine which will partly automate the steps 1-10 (flash upload and fuse-settings). All other steps are needed every time the AVRStudio whants to update an AVRISP or JTAGICE to a new firmware. Avoid letting AVRStudio do the updates automatically (it will not work). Just cancel the "upgrade-dialogs" and follow the "AVRProg-procedure" (Steps 11 to end) above.

A description how to program the ATmega16- and ATmega8535-fuses with PonyProg provided by Jeff Havens can be found on this page.

The commercial version of the bootloader comes preprogrammed on an ATMega16. No additional programmer ist needed for the initial Evertool setup. There are no "overwrite" and "truncate" dialogs during ATmega8535 programming when using the commercial version and the ATmega8535 fuses are set to the correct values by the bootloader.

Operation

Depending on the UART-Jumpers/switch and the connection to the target the board now acts as an AVRISP or as a JTAGICE.

The operation is described in the AVRStudio online-help. The AVRISP parts acts exactly as the original. The only extension is the "Target Reset" button.
The JTAGICE-Part works as described in the AVRStudio online-help. You may also use the JTAG-section with the AVaRICE interface-software to the gnu-debugger (gdb) on non-MS-Windows machines.

Questions and Answers

Are ready-made Evertools available?
Yes, see the Myevertool-Page. The page is in German but you can contact Mr. Büttner by e-mail in English. Myevertool is a sligthly modified version of the Evertool-design and has a licensed version of the "commercial" Evertool-Bootloader preinstalled.

Are printed circuit-boards available?
Yes, see the Myevertool-Page. The page is in German but you can contact Mr. Büttner by e-mail in English (info (AT) myevertool [D O T] de).

Can I have the Eagle-files?
No, I do not offer Eagle-Files neither schematic nor layout.

Why two controllers?
Since the original Atmel firmwares are used, there have to be two controllers. One for each task. It may be possible to extend the Evertool-bootloader to emulate an STK500/AVRISP or AVR910-type programmer but I do not have enough time and knowledge to keep this software up-to-date with every new AVR-device.

Why no USB interface?
An USB to serial (RS232) converter has been tested succesfully with the Evertool prototyp-board. This converter is avaialable for only 13EUR inlcuding cable at www.reichelt.de. A FT232/245 with USB-socket and cable is not cheaper in small amounts. For a device similar to the Evertool but with USB-Interace see below.

Why SMD?
Well, no reason. It's my first SMD-project. Thought Evertool might be "nicer" in SMD.

Does Evertool support Debugwire?
No. So far no MKII schematic is available for "inspiration" and the MKII Firmware coming with AVRStudio seems to have another format than the ebn-files.

AVRProg shows "No supported board found" - what's wrong?
Please double check your board and double check that all configuration-steps have been done as described above before sending me an e-mail. You can test if the Bootloader is installed, the fuses are set correctly and the bootloader is active by using a terminal software (Hyperterm, Bray Terminal...). Set the terminal to: 19200, 8N1, no flowcontrol, mount the "enable Bootloader (BL)"-Jumper, apply power to the board, make sure the RS232-level-shifter is connected to the ATmega16 and send a S (capital S) to the Evertool. If everything is o.k. the bootloader will answer with the characters: AVRBOOT. If not: double check...

Does Evertool work with AVR Studio 5? (4/2012)
Since I have bought a JTAGICE-MK2 in the meantime I no longer use my Evertool-boards. As far as I know the old JTAGICE is no longer supported in AVR Studio 5 an so the Evertools will not be supported either. Two users informed my that their Evertools do not Work with AVR Studio 5 but do work with AVR Studio 4


"Evertool-Light"

"Evertool-Light" is a stripped down version of Evertool which emulates the JTAGICE only. The design has been done by Rainer Rakow. The schematic is based on my Evertool design. Basicly this is an extended version of the "BOOTICE"-design which can be found somewhere else.


Click on the images for higher resolution pictures.

zip-Archive including schematic and PCB-layout (Postscript-files) of Evertool-Light (ca. 180kB)
(9.Jul.2004: Message from Rainer: the free end of resistor R2 should be connected to GND in his layout.)

Software-Installation on Evertool LIGHT

  1. Build the board and double-check it.
  2. Connect your programmer (STK200-dongle or whatever) to the ISP-Port.
  3. Connect an external power supply to the Evertool-Light board if STK200-PPI, AVRISP or AVR910-type programmer is used.
  4. Upload the Evertool bootloader (which can also be used for Evertool-Light) into the ATmega16 flash using PonyProg or avrdude or whatever software can talk to you programmer.
  5. Program the ATmega16 fuses and lock-bits (external high freq. crystal, boot-reset, boot-size 1024 words, SPM in boot-section locked - lfuse: 0xff hfuse: 0xd8:m lock: 0x2f).
  6. Power-down the Evertool-Light board.
  7. Connect your PCs serial port to the board with a serial/RS232 cable.
  8. Close the "enable Bootloader (BL)" (JP3) Jumper
  9. Power-up the board.
  10. Start AVRStudio, start Tools/AVRProg. (1)
  11. Select "ATmega16 boot" from the AVRProg device selection.
  12. Select [Browse] and browse to /programs/Atmel/AVR Tools/JTAGICE in the file-dialog, select the file Upgrade.ebn (set filter to *.*).
  13. Press the [Program] button in the "Flash" frame. Now the JTAGICE firmware gets uploaded into the ATmega16 via "self-programming" aka bootloader-programming and verified from the Evertool-bootloader.
  14. Power-down the board
  15. Open the Bootloader-Enable ("enable BL"/JP3) Jumper
  16. Done.
Remarks:
(1) If the message box "No supported board found" appears on the screen verify that no user software uses the COM-port, the UART-select jumpers/switch are/is set to ATmega16/JTAG, the Evertool bootloader is programmed into the ATmega16, the board is powered and the "enable Bootloader"-jumper is set. You may also read the AVRProg user guide.

The steps 1-5 are only needed for the first time to prepare the new ATmega16. The binary-distribution of the Evertool bootloader includes a setup-routine which will partly automate the steps 1-5 (flash upload and fuse-settings). All other steps are needed every time the AVRStudio whants to update the JTAGICE to a new firmware. Avoid letting AVRStudio do the updates automatically (it will not work). Just cancel the "upgrade-dialogs" and follow the "AVRProg-procedure" (Steps 6 to end) above.


"Evertool-USB"

Florian Schenk has extended the Evertool with an USB-Interface (FTDI232-USB-to-serial IC). He has also created a layout. The schematic and the Eagle-files (.brd and .sch) can be downloaded from [here] (timestamp 20060908). If you have questions you may ask Florian Schenk directly by e-mail (schenk (At) schema2000 (Dot) de).

I (M.Thomas) do not offer any support for this ET-USB-design. I have not reviewed the layout and I do not own such a device. Anyway, at least a remark from my side: Take care about the voltage-supply. When the jumper near the USB-connector of "ET-USB" is closed VCC for the complete device is 5V and the levels at the ISP- and JTAG-connectors are also near 5V. This is a "no-no" when connecting to a 3,3V target. If in doubt leave the supply-jumper near the USB-connector open and supply the ET-USB from the target-board.


back to my AVR projects page


Martin Thomas
e-mail: mthomas (AT) rhrk (D O T) uni-kl (DOT) de


209051 hits since
Last mod.: Wednesday, 25-Apr-2012 19:28:47 CEST