From ded30f86bcb61cc82e2c1e3ede1cff2baf42358c Mon Sep 17 00:00:00 2001
From: Joerg Wunsch [Index]
[ ? ]
+
@@ -103,11 +121,11 @@ by the Free Software Foundation.
@@ -304,7 +322,7 @@ utility, but it also contains some performance improvements included in
Spence Konde’s DxCore Arduino core (https://github.com/SpenceKonde/DxCore).
In a nutshell, this programmer consists of simple USB->UART adapter, diode
and couple of resistors. It uses serial connection to provide UPDI interface.
-See section SerialUPDI programmer for more details and known issues.
+See section SerialUPDI programmer for more details and known issues.
-4 Configuration File
5 Programmer Specific Information
+
-5 Programmer Specific Information
Appendix A Platform Dependent Information
+
-Appendix A Platform Dependent Information
Appendix B Troubleshooting
+ Appendix B Troubleshooting
The jtag2updi programmer is supported, and can program AVRs with a UPDI interface. @@ -336,10 +354,18 @@ below for Teensy specific options.
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_1.html b/docs/avrdude_1.html
index 0e592464..ee104d84 100644
--- a/docs/avrdude_1.html
+++ b/docs/avrdude_1.html
@@ -1,6 +1,6 @@
-
@@ -65,6 +82,7 @@ ul.no-bullet {list-style: none}
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_10.html b/docs/avrdude_10.html
index 141b143c..e32942ed 100644
--- a/docs/avrdude_10.html
+++ b/docs/avrdude_10.html
@@ -1,6 +1,6 @@
-
@@ -55,7 +72,7 @@ ul.no-bullet {list-style: none}
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_11.html b/docs/avrdude_11.html
index 35ba4254..4ce8a7f8 100644
--- a/docs/avrdude_11.html
+++ b/docs/avrdude_11.html
@@ -1,6 +1,6 @@
-
@@ -55,7 +72,7 @@ ul.no-bullet {list-style: none}
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_12.html b/docs/avrdude_12.html
index b79fbe3e..b500b781 100644
--- a/docs/avrdude_12.html
+++ b/docs/avrdude_12.html
@@ -1,6 +1,6 @@
-
@@ -54,8 +71,8 @@ ul.no-bullet {list-style: none}
4.3.1 Parent Part | + | |
4.3.1 Parent Part | ||
4.3.2 Instruction Format | + | |
4.3.2 Instruction Format |
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | @@ -187,107 +204,9 @@ ul.no-bullet {list-style: none} | [Index] | [ ? ] |
Parts can also inherit parameters from previously defined parts -using the following syntax. In this case specified integer and -string values override parameter values from the parent part. New -memory definitions are added to the definitions inherited from the -parent. -
-part parent <id> # quoted string - id = <id> ; # quoted string - <any set of other parameters from the list above> - ; -
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
Instruction formats are specified as a comma separated list of string -values containing information (bit specifiers) about each of the 32 bits -of the instruction. Bit specifiers may be one of the following formats: -
-1
The bit is always set on input as well as output -
-0
the bit is always clear on input as well as output -
-x
the bit is ignored on input and output -
-a
the bit is an address bit, the bit-number matches this bit specifier’s -position within the current instruction byte -
-aN
the bit is the Nth address bit, bit-number = N, i.e., a12
-is address bit 12 on input, a0
is address bit 0.
-
i
the bit is an input data bit -
-o
the bit is an output data bit -
-Each instruction must be composed of 32 bit specifiers. The instruction -specification closely follows the instruction data provided in Atmel’s -data sheets for their parts. For example, the EEPROM read and write -instruction for an AT90S2313 AVR part could be encoded as: -
--read = "1 0 1 0 0 0 0 0 x x x x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - -write = "1 1 0 0 0 0 0 0 x x x x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - -
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_13.html b/docs/avrdude_13.html
index 1d4c75ea..e3232ce3 100644
--- a/docs/avrdude_13.html
+++ b/docs/avrdude_13.html
@@ -1,6 +1,6 @@
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | @@ -65,70 +82,27 @@ ul.no-bullet {list-style: none} | [Index] | [ ? ] |
devicecode
parameter is the device code used by the STK500
-and is obtained from the software section (avr061.zip
) of
-Atmel’s AVR061 application note available from
-http://www.atmel.com/dyn/resources/prod_documents/doc2525.pdf.
-
-flash
, eeprom
, fuse
,
-lfuse
(low fuse), hfuse
(high fuse), efuse
-(extended fuse), signature
, calibration
, lock
.
-
-pwroff_after_write
flag causes AVRDUDE to attempt to power
-the device off and back on after an unsuccessful write to the affected
-memory area if VCC programmer pins are defined. If VCC pins are not
-defined for the programmer, a message indicating that the device needs a
-power-cycle is printed out. This flag was added to work around a
-problem with the at90s4433/2333’s; see the at90s4433 errata at:
-
-http://www.atmel.com/dyn/resources/prod_documents/doc1280.pdf +
Parts can also inherit parameters from previously defined parts +using the following syntax. In this case specified integer and +string values override parameter values from the parent part. New +memory definitions are added to the definitions inherited from the +parent.
-The boot loader implements the “chip erase” function by erasing the -flash pages of the application section. -
-Reading fuse and lock bits is fully supported. -
-part parent <id> # quoted string + id = <id> ; # quoted string + <any set of other parameters from the list above> + ; +
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_14.html b/docs/avrdude_14.html
index df085ed8..02b7cba8 100644
--- a/docs/avrdude_14.html
+++ b/docs/avrdude_14.html
@@ -1,6 +1,6 @@
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | @@ -65,29 +82,83 @@ ul.no-bullet {list-style: none} | [Index] | [ ? ] |
Instruction formats are specified as a comma separated list of string +values containing information (bit specifiers) about each of the 32 bits +of the instruction. Bit specifiers may be one of the following formats: +
+1
The bit is always set on input as well as output +
+0
the bit is always clear on input as well as output +
+x
the bit is ignored on input and output +
+a
the bit is an address bit, the bit-number matches this bit specifier’s +position within the current instruction byte +
+aN
the bit is the Nth address bit, bit-number = N, i.e., a12
+is address bit 12 on input, a0
is address bit 0.
+
i
the bit is an input data bit +
+o
the bit is an output data bit +
+Each instruction must be composed of 32 bit specifiers. The instruction +specification closely follows the instruction data provided in Atmel’s +data sheets for their parts. For example, the EEPROM read and write +instruction for an AT90S2313 AVR part could be encoded as: +
++read = "1 0 1 0 0 0 0 0 x x x x x x x x", + "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; + +write = "1 1 0 0 0 0 0 0 x x x x x x x x", + "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; + +
5.1 Atmel STK600 | - | |
5.2 Atmel DFU bootloader using FLIP version 1 | - | |
5.3 SerialUPDI programmer | - |
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] |
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_15.html b/docs/avrdude_15.html
index c4f0c0ac..5c6e9d49 100644
--- a/docs/avrdude_15.html
+++ b/docs/avrdude_15.html
@@ -1,6 +1,6 @@
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +|||||
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | @@ -65,105 +82,79 @@ ul.no-bullet {list-style: none} | [Index] | [ ? ] |
The following devices are supported by the respective STK600 routing -and socket card: -
-Routing card | Socket card | Devices |
---|---|---|
| STK600-ATTINY10 | ATtiny4 ATtiny5 ATtiny9 ATtiny10 |
STK600-RC008T-2 | STK600-DIP | ATtiny11 ATtiny12 ATtiny13 ATtiny13A ATtiny25 ATtiny45 ATtiny85 |
STK600-RC008T-7 | STK600-DIP | ATtiny15 |
STK600-RC014T-42 | STK600-SOIC | ATtiny20 |
STK600-RC020T-1 | STK600-DIP | ATtiny2313 ATtiny2313A ATtiny4313 |
| STK600-TinyX3U | ATtiny43U |
STK600-RC014T-12 | STK600-DIP | ATtiny24 ATtiny44 ATtiny84 ATtiny24A ATtiny44A |
STK600-RC020T-8 | STK600-DIP | ATtiny26 ATtiny261 ATtiny261A ATtiny461 ATtiny861 ATtiny861A |
STK600-RC020T-43 | STK600-SOIC | ATtiny261 ATtiny261A ATtiny461 ATtiny461A ATtiny861 ATtiny861A |
STK600-RC020T-23 | STK600-SOIC | ATtiny87 ATtiny167 |
STK600-RC028T-3 | STK600-DIP | ATtiny28 |
STK600-RC028M-6 | STK600-DIP | ATtiny48 ATtiny88 ATmega8 ATmega8A ATmega48 ATmega88 ATmega168 ATmega48P ATmega48PA ATmega88P ATmega88PA ATmega168P ATmega168PA ATmega328P |
| QT600-ATTINY88-QT8 | ATtiny88 |
STK600-RC040M-4 | STK600-DIP | ATmega8515 ATmega162 |
STK600-RC044M-30 | STK600-TQFP44 | ATmega8515 ATmega162 |
STK600-RC040M-5 | STK600-DIP | ATmega8535 ATmega16 ATmega16A ATmega32 ATmega32A ATmega164P ATmega164PA ATmega324P ATmega324PA ATmega644 ATmega644P ATmega644PA ATmega1284P |
STK600-RC044M-31 | STK600-TQFP44 | ATmega8535 ATmega16 ATmega16A ATmega32 ATmega32A ATmega164P ATmega164PA ATmega324P ATmega324PA ATmega644 ATmega644P ATmega644PA ATmega1284P |
| QT600-ATMEGA324-QM64 | ATmega324PA |
STK600-RC032M-29 | STK600-TQFP32 | ATmega8 ATmega8A ATmega48 ATmega88 ATmega168 ATmega48P ATmega48PA ATmega88P ATmega88PA ATmega168P ATmega168PA ATmega328P |
STK600-RC064M-9 | STK600-TQFP64 | ATmega64 ATmega64A ATmega128 ATmega128A ATmega1281 ATmega2561 AT90CAN32 AT90CAN64 AT90CAN128 |
STK600-RC064M-10 | STK600-TQFP64 | ATmega165 ATmega165P ATmega169 ATmega169P ATmega169PA ATmega325 ATmega325P ATmega329 ATmega329P ATmega645 ATmega649 ATmega649P |
STK600-RC100M-11 | STK600-TQFP100 | ATmega640 ATmega1280 ATmega2560 |
| STK600-ATMEGA2560 | ATmega2560 |
STK600-RC100M-18 | STK600-TQFP100 | ATmega3250 ATmega3250P ATmega3290 ATmega3290P ATmega6450 ATmega6490 |
STK600-RC032U-20 | STK600-TQFP32 | AT90USB82 AT90USB162 ATmega8U2 ATmega16U2 ATmega32U2 |
STK600-RC044U-25 | STK600-TQFP44 | ATmega16U4 ATmega32U4 |
STK600-RC064U-17 | STK600-TQFP64 | ATmega32U6 AT90USB646 AT90USB1286 AT90USB647 AT90USB1287 |
STK600-RCPWM-22 | STK600-TQFP32 | ATmega32C1 ATmega64C1 ATmega16M1 ATmega32M1 ATmega64M1 |
STK600-RCPWM-19 | STK600-SOIC | AT90PWM2 AT90PWM3 AT90PWM2B AT90PWM3B AT90PWM216 AT90PWM316 |
STK600-RCPWM-26 | STK600-SOIC | AT90PWM81 |
STK600-RC044M-24 | STK600-TSSOP44 | ATmega16HVB ATmega32HVB |
| STK600-HVE2 | ATmega64HVE |
| STK600-ATMEGA128RFA1 | ATmega128RFA1 |
STK600-RC100X-13 | STK600-TQFP100 | ATxmega64A1 ATxmega128A1 ATxmega128A1_revD ATxmega128A1U |
| STK600-ATXMEGA1281A1 | ATxmega128A1 |
| QT600-ATXMEGA128A1-QT16 | ATxmega128A1 |
STK600-RC064X-14 | STK600-TQFP64 | ATxmega64A3 ATxmega128A3 ATxmega256A3 ATxmega64D3 ATxmega128D3 ATxmega192D3 ATxmega256D3 |
STK600-RC064X-14 | STK600-MLF64 | ATxmega256A3B |
STK600-RC044X-15 | STK600-TQFP44 | ATxmega32A4 ATxmega16A4 ATxmega16D4 ATxmega32D4 |
| STK600-ATXMEGAT0 | ATxmega32T0 |
| STK600-uC3-144 | AT32UC3A0512 AT32UC3A0256 AT32UC3A0128 |
STK600-RCUC3A144-33 | STK600-TQFP144 | AT32UC3A0512 AT32UC3A0256 AT32UC3A0128 |
STK600-RCuC3A100-28 | STK600-TQFP100 | AT32UC3A1512 AT32UC3A1256 AT32UC3A1128 |
STK600-RCuC3B0-21 | STK600-TQFP64-2 | AT32UC3B0256 AT32UC3B0512RevC AT32UC3B0512 AT32UC3B0128 AT32UC3B064 AT32UC3D1128 |
STK600-RCuC3B48-27 | STK600-TQFP48 | AT32UC3B1256 AT32UC3B164 |
STK600-RCUC3A144-32 | STK600-TQFP144 | AT32UC3A3512 AT32UC3A3256 AT32UC3A3128 AT32UC3A364 AT32UC3A3256S AT32UC3A3128S AT32UC3A364S |
STK600-RCUC3C0-36 | STK600-TQFP144 | AT32UC3C0512 AT32UC3C0256 AT32UC3C0128 AT32UC3C064 |
STK600-RCUC3C1-38 | STK600-TQFP100 | AT32UC3C1512 AT32UC3C1256 AT32UC3C1128 AT32UC3C164 |
STK600-RCUC3C2-40 | STK600-TQFP64-2 | AT32UC3C2512 AT32UC3C2256 AT32UC3C2128 AT32UC3C264 |
STK600-RCUC3C0-37 | STK600-TQFP144 | AT32UC3C0512 AT32UC3C0256 AT32UC3C0128 AT32UC3C064 |
STK600-RCUC3C1-39 | STK600-TQFP100 | AT32UC3C1512 AT32UC3C1256 AT32UC3C1128 AT32UC3C164 |
STK600-RCUC3C2-41 | STK600-TQFP64-2 | AT32UC3C2512 AT32UC3C2256 AT32UC3C2128 AT32UC3C264 |
STK600-RCUC3L0-34 | STK600-TQFP48 | AT32UC3L064 AT32UC3L032 AT32UC3L016 |
| QT600-AT32UC3L-QM64 | AT32UC3L064 |
Ensure the correct socket and routing card are mounted before
-powering on the STK600. While the STK600 firmware ensures the socket
-and routing card mounted match each other (using a table stored
-internally in nonvolatile memory), it cannot handle the case where a
-wrong routing card is used, e. g. the routing card
-STK600-RC040M-5
(which is meant for 40-pin DIP AVRs that have
-an ADC, with the power supply pins in the center of the package) was
-used but an ATmega8515 inserted (which uses the “industry standard”
-pinout with Vcc and GND at opposite corners).
+
devicecode
parameter is the device code used by the STK500
+and is obtained from the software section (avr061.zip
) of
+Atmel’s AVR061 application note available from
+http://www.atmel.com/dyn/resources/prod_documents/doc2525.pdf.
+
+flash
, eeprom
, fuse
,
+lfuse
(low fuse), hfuse
(high fuse), efuse
+(extended fuse), signature
, calibration
, lock
.
+
+pwroff_after_write
flag causes AVRDUDE to attempt to power
+the device off and back on after an unsuccessful write to the affected
+memory area if VCC programmer pins are defined. If VCC pins are not
+defined for the programmer, a message indicating that the device needs a
+power-cycle is printed out. This flag was added to work around a
+problem with the at90s4433/2333’s; see the at90s4433 errata at:
+
+http://www.atmel.com/dyn/resources/prod_documents/doc1280.pdf
-Note that for devices that use the routing card STK600-RC008T-2
,
-in order to use ISP mode, the jumper for AREF0
must be removed
-as it would otherwise block one of the ISP signals. High-voltage
-serial programming can be used even with that jumper installed.
+
The boot loader implements the “chip erase” function by erasing the +flash pages of the application section.
-The ISP system of the STK600 contains a detection against shortcuts -and other wiring errors. AVRDUDE initiates a connection check before -trying to enter ISP programming mode, and display the result if the -target is not found ready to be ISP programmed. -
-High-voltage programming requires the target voltage to be set to at -least 4.5 V in order to work. This can be done using -Terminal Mode, see Terminal Mode Operation. +
Reading fuse and lock bits is fully supported.
+[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +||||||||
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] |
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_16.html b/docs/avrdude_16.html
index 2b3a353e..c6989b35 100644
--- a/docs/avrdude_16.html
+++ b/docs/avrdude_16.html
@@ -1,6 +1,6 @@
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +|||||
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | @@ -65,42 +82,23 @@ ul.no-bullet {list-style: none} | [Index] | [ ? ] |
Bootloaders using the FLIP protocol version 1 experience some very -specific behaviour. -
-These bootloaders have no option to access memory areas other than -Flash and EEPROM. -
-When the bootloader is started, it enters a security mode where -the only acceptable access is to query the device configuration -parameters (which are used for the signature on AVR devices). The -only way to leave this mode is a chip erase. As a chip erase -is normally implied by the ‘-U’ option when reprogramming the -flash, this peculiarity might not be very obvious immediately. -
-Sometimes, a bootloader with security mode already disabled seems to -no longer respond with sensible configuration data, but only 0xFF for -all queries. As these queries are used to obtain the equivalent of a -signature, AVRDUDE can only continue in that situation by forcing the -signature check to be overridden with the ‘-F’ option. -
-A chip erase might leave the EEPROM unerased, at least on some -versions of the bootloader. -
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -
5.1 Atmel STK600 | + | |
5.2 Atmel DFU bootloader using FLIP version 1 | + | |
5.3 SerialUPDI programmer | + |
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_17.html b/docs/avrdude_17.html
index 5eebbc1b..4f5d9d71 100644
--- a/docs/avrdude_17.html
+++ b/docs/avrdude_17.html
@@ -1,6 +1,6 @@
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +|||||
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | @@ -65,114 +82,114 @@ ul.no-bullet {list-style: none} | [Index] | [ ? ] |
SerialUPDI programmer can be used for programming UPDI-only devices -using very simple serial connection. -You can read more about the details here -https://github.com/SpenceKonde/AVR-Guidance/blob/master/UPDI/jtag2updi.md +
The following devices are supported by the respective STK600 routing +and socket card:
-SerialUPDI programmer has been tested using FT232RL USB->UART interface -with the following connection layout (copied from Spence Kohde’s page linked -above): -
--------------------- To Target device - DTR| __________________ - Rx |--------------,------------------| UPDI---\/\/----------> - Tx---/\/\/\---Tx |-------|<|---' .--------| Gnd 470 ohm - resistor Vcc|---------------------------------| Vcc - 1k CTS| .` |__________________ - Gnd|--------------------' --------------------- -
Routing card | Socket card | Devices |
---|---|---|
| STK600-ATTINY10 | ATtiny4 ATtiny5 ATtiny9 ATtiny10 |
STK600-RC008T-2 | STK600-DIP | ATtiny11 ATtiny12 ATtiny13 ATtiny13A ATtiny25 ATtiny45 ATtiny85 |
STK600-RC008T-7 | STK600-DIP | ATtiny15 |
STK600-RC014T-42 | STK600-SOIC | ATtiny20 |
STK600-RC020T-1 | STK600-DIP | ATtiny2313 ATtiny2313A ATtiny4313 |
| STK600-TinyX3U | ATtiny43U |
STK600-RC014T-12 | STK600-DIP | ATtiny24 ATtiny44 ATtiny84 ATtiny24A ATtiny44A |
STK600-RC020T-8 | STK600-DIP | ATtiny26 ATtiny261 ATtiny261A ATtiny461 ATtiny861 ATtiny861A |
STK600-RC020T-43 | STK600-SOIC | ATtiny261 ATtiny261A ATtiny461 ATtiny461A ATtiny861 ATtiny861A |
STK600-RC020T-23 | STK600-SOIC | ATtiny87 ATtiny167 |
STK600-RC028T-3 | STK600-DIP | ATtiny28 |
STK600-RC028M-6 | STK600-DIP | ATtiny48 ATtiny88 ATmega8 ATmega8A ATmega48 ATmega88 ATmega168 ATmega48P ATmega48PA ATmega88P ATmega88PA ATmega168P ATmega168PA ATmega328P |
| QT600-ATTINY88-QT8 | ATtiny88 |
STK600-RC040M-4 | STK600-DIP | ATmega8515 ATmega162 |
STK600-RC044M-30 | STK600-TQFP44 | ATmega8515 ATmega162 |
STK600-RC040M-5 | STK600-DIP | ATmega8535 ATmega16 ATmega16A ATmega32 ATmega32A ATmega164P ATmega164PA ATmega324P ATmega324PA ATmega644 ATmega644P ATmega644PA ATmega1284P |
STK600-RC044M-31 | STK600-TQFP44 | ATmega8535 ATmega16 ATmega16A ATmega32 ATmega32A ATmega164P ATmega164PA ATmega324P ATmega324PA ATmega644 ATmega644P ATmega644PA ATmega1284P |
| QT600-ATMEGA324-QM64 | ATmega324PA |
STK600-RC032M-29 | STK600-TQFP32 | ATmega8 ATmega8A ATmega48 ATmega88 ATmega168 ATmega48P ATmega48PA ATmega88P ATmega88PA ATmega168P ATmega168PA ATmega328P |
STK600-RC064M-9 | STK600-TQFP64 | ATmega64 ATmega64A ATmega128 ATmega128A ATmega1281 ATmega2561 AT90CAN32 AT90CAN64 AT90CAN128 |
STK600-RC064M-10 | STK600-TQFP64 | ATmega165 ATmega165P ATmega169 ATmega169P ATmega169PA ATmega325 ATmega325P ATmega329 ATmega329P ATmega645 ATmega649 ATmega649P |
STK600-RC100M-11 | STK600-TQFP100 | ATmega640 ATmega1280 ATmega2560 |
| STK600-ATMEGA2560 | ATmega2560 |
STK600-RC100M-18 | STK600-TQFP100 | ATmega3250 ATmega3250P ATmega3290 ATmega3290P ATmega6450 ATmega6490 |
STK600-RC032U-20 | STK600-TQFP32 | AT90USB82 AT90USB162 ATmega8U2 ATmega16U2 ATmega32U2 |
STK600-RC044U-25 | STK600-TQFP44 | ATmega16U4 ATmega32U4 |
STK600-RC064U-17 | STK600-TQFP64 | ATmega32U6 AT90USB646 AT90USB1286 AT90USB647 AT90USB1287 |
STK600-RCPWM-22 | STK600-TQFP32 | ATmega32C1 ATmega64C1 ATmega16M1 ATmega32M1 ATmega64M1 |
STK600-RCPWM-19 | STK600-SOIC | AT90PWM2 AT90PWM3 AT90PWM2B AT90PWM3B AT90PWM216 AT90PWM316 |
STK600-RCPWM-26 | STK600-SOIC | AT90PWM81 |
STK600-RC044M-24 | STK600-TSSOP44 | ATmega16HVB ATmega32HVB |
| STK600-HVE2 | ATmega64HVE |
| STK600-ATMEGA128RFA1 | ATmega128RFA1 |
STK600-RC100X-13 | STK600-TQFP100 | ATxmega64A1 ATxmega128A1 ATxmega128A1_revD ATxmega128A1U |
| STK600-ATXMEGA1281A1 | ATxmega128A1 |
| QT600-ATXMEGA128A1-QT16 | ATxmega128A1 |
STK600-RC064X-14 | STK600-TQFP64 | ATxmega64A3 ATxmega128A3 ATxmega256A3 ATxmega64D3 ATxmega128D3 ATxmega192D3 ATxmega256D3 |
STK600-RC064X-14 | STK600-MLF64 | ATxmega256A3B |
STK600-RC044X-15 | STK600-TQFP44 | ATxmega32A4 ATxmega16A4 ATxmega16D4 ATxmega32D4 |
| STK600-ATXMEGAT0 | ATxmega32T0 |
| STK600-uC3-144 | AT32UC3A0512 AT32UC3A0256 AT32UC3A0128 |
STK600-RCUC3A144-33 | STK600-TQFP144 | AT32UC3A0512 AT32UC3A0256 AT32UC3A0128 |
STK600-RCuC3A100-28 | STK600-TQFP100 | AT32UC3A1512 AT32UC3A1256 AT32UC3A1128 |
STK600-RCuC3B0-21 | STK600-TQFP64-2 | AT32UC3B0256 AT32UC3B0512RevC AT32UC3B0512 AT32UC3B0128 AT32UC3B064 AT32UC3D1128 |
STK600-RCuC3B48-27 | STK600-TQFP48 | AT32UC3B1256 AT32UC3B164 |
STK600-RCUC3A144-32 | STK600-TQFP144 | AT32UC3A3512 AT32UC3A3256 AT32UC3A3128 AT32UC3A364 AT32UC3A3256S AT32UC3A3128S AT32UC3A364S |
STK600-RCUC3C0-36 | STK600-TQFP144 | AT32UC3C0512 AT32UC3C0256 AT32UC3C0128 AT32UC3C064 |
STK600-RCUC3C1-38 | STK600-TQFP100 | AT32UC3C1512 AT32UC3C1256 AT32UC3C1128 AT32UC3C164 |
STK600-RCUC3C2-40 | STK600-TQFP64-2 | AT32UC3C2512 AT32UC3C2256 AT32UC3C2128 AT32UC3C264 |
STK600-RCUC3C0-37 | STK600-TQFP144 | AT32UC3C0512 AT32UC3C0256 AT32UC3C0128 AT32UC3C064 |
STK600-RCUC3C1-39 | STK600-TQFP100 | AT32UC3C1512 AT32UC3C1256 AT32UC3C1128 AT32UC3C164 |
STK600-RCUC3C2-41 | STK600-TQFP64-2 | AT32UC3C2512 AT32UC3C2256 AT32UC3C2128 AT32UC3C264 |
STK600-RCUC3L0-34 | STK600-TQFP48 | AT32UC3L064 AT32UC3L032 AT32UC3L016 |
| QT600-AT32UC3L-QM64 | AT32UC3L064 |
There are several limitations in current SerialUPDI/AVRDUDE integration, -listed below. +
Ensure the correct socket and routing card are mounted before
+powering on the STK600. While the STK600 firmware ensures the socket
+and routing card mounted match each other (using a table stored
+internally in nonvolatile memory), it cannot handle the case where a
+wrong routing card is used, e. g. the routing card
+STK600-RC040M-5
(which is meant for 40-pin DIP AVRs that have
+an ADC, with the power supply pins in the center of the package) was
+used but an ATmega8515 inserted (which uses the “industry standard”
+pinout with Vcc and GND at opposite corners).
At the end of each run there are fuse values being presented to the user. -For most of the UPDI-enabled devices these definitions (low fuse, high -fuse, extended fuse) have no meaning whatsoever, as they have been -simply replaced by array of fuses: fuse0..9. Therefore you can simply -ignore this particular line of AVRDUDE output. +
Note that for devices that use the routing card STK600-RC008T-2
,
+in order to use ISP mode, the jumper for AREF0
must be removed
+as it would otherwise block one of the ISP signals. High-voltage
+serial programming can be used even with that jumper installed.
Currently available devices support only UPDI NVM programming model 0 -and 2, but there is also experimental implementation of model 3 - not -yet tested. +
The ISP system of the STK600 contains a detection against shortcuts +and other wiring errors. AVRDUDE initiates a connection check before +trying to enter ISP programming mode, and display the result if the +target is not found ready to be ISP programmed.
-One of the core AVRDUDE features is verification of the connection by -reading device signature prior to any operation, but this operation -is not possible on UPDI locked devices. Therefore, to be able to -connect to such a device, you have to provide ‘-F’ to override -this check. -
-Please note: using ‘-F’ during write operation to locked device -will force chip erase. Use carefully. -
-Another issue you might notice is slow performance of EEPROM writing -using SerialUPDI for AVR Dx devices. This can be addressed by changing -avrdude.conf section for this device - changing EEPROM page -size to 0x20 (instead of default 1), like so: -
-#------------------------------------------------------------ -# AVR128DB28 -#------------------------------------------------------------ - -part parent ".avrdx" - id = "avr128db28"; - desc = "AVR128DB28"; - signature = 0x1E 0x97 0x0E; - - memory "flash" - size = 0x20000; - offset = 0x800000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "eeprom" - size = 0x200; - offset = 0x1400; - page_size = 0x1; - readsize = 0x100; - ; -; -
USERROW memory has not been defined for new devices except for -experimental addition for AVR128DB28. The point of USERROW is to -provide ability to write configuration details to already locked -device and currently SerialUPDI interface supports this feature, -but it hasn’t been tested on wide variety of chips. Treat this as -something experimental at this point. Please note: on locked devices -it’s not possible to read back USERROW contents when written, so -the automatic verification will most likely fail and to prevent -error messages, use ‘-V’. -
-Please note that SerialUPDI interface is pretty new and some -issues are to be expected. In case you run into them, please -make sure to run the intended command with debug output enabled -(‘-v -v -v’) and provide this verbose output with your -bug report. You can also try to perform the same action using -pymcuprog (https://github.com/microchip-pic-avr-tools/pymcuprog) -utility with ‘-v debug’ and provide its output too. -You will notice that both outputs are pretty similar, and this -was implemented like that on purpose - it was supposed to make -analysis of UPDI protocol quirks easier. +
High-voltage programming requires the target voltage to be set to at +least 4.5 V in order to work. This can be done using +Terminal Mode, see Terminal Mode Operation.
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +||||||||
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] |
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_18.html b/docs/avrdude_18.html
index 9b97acf5..807ca22d 100644
--- a/docs/avrdude_18.html
+++ b/docs/avrdude_18.html
@@ -1,6 +1,6 @@
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +|||||
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | @@ -65,27 +82,36 @@ ul.no-bullet {list-style: none} | [Index] | [ ? ] |
A.1 Unix | - | |
A.2 Windows | - |
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -
Bootloaders using the FLIP protocol version 1 experience some very +specific behaviour. +
+These bootloaders have no option to access memory areas other than +Flash and EEPROM. +
+When the bootloader is started, it enters a security mode where +the only acceptable access is to query the device configuration +parameters (which are used for the signature on AVR devices). The +only way to leave this mode is a chip erase. As a chip erase +is normally implied by the ‘-U’ option when reprogramming the +flash, this peculiarity might not be very obvious immediately. +
+Sometimes, a bootloader with security mode already disabled seems to +no longer respond with sensible configuration data, but only 0xFF for +all queries. As these queries are used to obtain the equivalent of a +signature, AVRDUDE can only continue in that situation by forcing the +signature check to be overridden with the ‘-F’ option. +
+A chip erase might leave the EEPROM unerased, at least on some +versions of the bootloader. +
+
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_19.html b/docs/avrdude_19.html
index 47712fc3..f4c348f8 100644
--- a/docs/avrdude_19.html
+++ b/docs/avrdude_19.html
@@ -1,6 +1,6 @@
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +|||||
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | @@ -65,80 +82,111 @@ ul.no-bullet {list-style: none} | [Index] | [ ? ] |
A.1.1 Unix Installation | - | |
A.1.2 Unix Configuration Files | - | |
A.1.3 Unix Port Names | - | |
A.1.4 Unix Documentation | - |
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
To build and install from the source tarball on Unix like systems: +
SerialUPDI programmer can be used for programming UPDI-only devices +using very simple serial connection. +You can read more about the details here +https://github.com/SpenceKonde/AVR-Guidance/blob/master/UPDI/jtag2updi.md +
+SerialUPDI programmer has been tested using FT232RL USB->UART interface +with the following connection layout (copied from Spence Kohde’s page linked +above):
$ gunzip -c avrdude-6.99-20211218.tar.gz | tar xf - -$ cd avrdude-6.99-20211218 -$ ./configure -$ make -$ su root -c 'make install' +-------------------- To Target device + DTR| __________________ + Rx |--------------,------------------| UPDI---\/\/----------> + Tx---/\/\/\---Tx |-------|<|---' .--------| Gnd 470 ohm + resistor Vcc|---------------------------------| Vcc + 1k CTS| .` |__________________ + Gnd|--------------------' +--------------------
The default location of the install is into /usr/local
so you
-will need to be sure that /usr/local/bin
is in your PATH
-environment variable.
+
There are several limitations in current SerialUPDI/AVRDUDE integration, +listed below.
-If you do not have root access to your system, you can do the -following instead: +
At the end of each run there are fuse values being presented to the user. +For most of the UPDI-enabled devices these definitions (low fuse, high +fuse, extended fuse) have no meaning whatsoever, as they have been +simply replaced by array of fuses: fuse0..9. Therefore you can simply +ignore this particular line of AVRDUDE output. +
+Currently available devices support only UPDI NVM programming model 0 +and 2, but there is also experimental implementation of model 3 - not +yet tested. +
+One of the core AVRDUDE features is verification of the connection by +reading device signature prior to any operation, but this operation +is not possible on UPDI locked devices. Therefore, to be able to +connect to such a device, you have to provide ‘-F’ to override +this check. +
+Please note: using ‘-F’ during write operation to locked device +will force chip erase. Use carefully. +
+Another issue you might notice is slow performance of EEPROM writing +using SerialUPDI for AVR Dx devices. This can be addressed by changing +avrdude.conf section for this device - changing EEPROM page +size to 0x20 (instead of default 1), like so:
$ gunzip -c avrdude-6.99-20211218.tar.gz | tar xf - -$ cd avrdude-6.99-20211218 -$ ./configure --prefix=$HOME/local -$ make -$ make install +#------------------------------------------------------------ +# AVR128DB28 +#------------------------------------------------------------ + +part parent ".avrdx" + id = "avr128db28"; + desc = "AVR128DB28"; + signature = 0x1E 0x97 0x0E; + + memory "flash" + size = 0x20000; + offset = 0x800000; + page_size = 0x200; + readsize = 0x100; + ; + + memory "eeprom" + size = 0x200; + offset = 0x1400; + page_size = 0x1; + readsize = 0x100; + ; +;
A.1.1.1 FreeBSD Installation | - | |
A.1.1.2 Linux Installation | - |
USERROW memory has not been defined for new devices except for +experimental addition for AVR128DB28. The point of USERROW is to +provide ability to write configuration details to already locked +device and currently SerialUPDI interface supports this feature, +but it hasn’t been tested on wide variety of chips. Treat this as +something experimental at this point. Please note: on locked devices +it’s not possible to read back USERROW contents when written, so +the automatic verification will most likely fail and to prevent +error messages, use ‘-V’. +
+Please note that SerialUPDI interface is pretty new and some +issues are to be expected. In case you run into them, please +make sure to run the intended command with debug output enabled +(‘-v -v -v’) and provide this verbose output with your +bug report. You can also try to perform the same action using +pymcuprog (https://github.com/microchip-pic-avr-tools/pymcuprog) +utility with ‘-v debug’ and provide its output too. +You will notice that both outputs are pretty similar, and this +was implemented like that on purpose - it was supposed to make +analysis of UPDI protocol quirks easier. +
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +|||||
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | @@ -148,223 +196,9 @@ $ make install | [Index] | [ ? ] |
AVRDUDE is installed via the FreeBSD Ports Tree as follows: -
-% su - root -# cd /usr/ports/devel/avrdude -# make install -
If you wish to install from a pre-built package instead of the source, -you can use the following instead: -
-% su - root -# pkg_add -r avrdude -
Of course, you must be connected to the Internet for these methods to -work, since that is where the source as well as the pre-built package is -obtained. -
-[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
On rpm based Linux systems (such as RedHat, SUSE, Mandrake, etc.), you -can build and install the rpm binaries directly from the tarball: -
-$ su - root -# rpmbuild -tb avrdude-6.99-20211218.tar.gz -# rpm -Uvh /usr/src/redhat/RPMS/i386/avrdude-6.99-20211218-1.i386.rpm -
Note that the path to the resulting rpm package, differs from system -to system. The above example is specific to RedHat. -
-[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
When AVRDUDE is build using the default ‘--prefix’ configure
-option, the default configuration file for a Unix system is located at
-/usr/local/etc/avrdude.conf
. This can be overridden by using the
-‘-C’ command line option. Additionally, the user’s home directory
-is searched for a file named .avrduderc
, and if found, is used to
-augment the system default configuration file.
-
A.1.2.1 FreeBSD Configuration Files | - | |
A.1.2.2 Linux Configuration Files | - |
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
When AVRDUDE is installed using the FreeBSD ports system, the system
-configuration file is always /usr/local/etc/avrdude.conf
.
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
When AVRDUDE is installed using from an rpm package, the system
-configuration file will be always be /etc/avrdude.conf
.
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
The parallel and serial port device file names are system specific. -The following table lists the default names for a given system. -
-System | Default Parallel Port | Default Serial Port |
FreeBSD | /dev/ppi0 | /dev/cuad0 |
Linux | /dev/parport0 | /dev/ttyS0 |
Solaris | /dev/printers/0 | /dev/term/a |
On FreeBSD systems, AVRDUDE uses the ppi(4) interface for -accessing the parallel port and the sio(4) driver for serial port -access. -
-On Linux systems, AVRDUDE uses the ppdev interface for -accessing the parallel port and the tty driver for serial port -access. -
-On Solaris systems, AVRDUDE uses the ecpp(7D) driver for -accessing the parallel port and the asy(7D) driver for serial port -access. -
-[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
AVRDUDE installs a manual page as well as info, HTML and PDF
-documentation. The manual page is installed in
-/usr/local/man/man1
area, while the HTML and PDF documentation
-is installed in /usr/local/share/doc/avrdude
directory. The
-info manual is installed in /usr/local/info/avrdude.info
.
-
Note that these locations can be altered by various configure options -such as ‘--prefix’. -
-[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_2.html b/docs/avrdude_2.html
index 7f9bf837..ac327979 100644
--- a/docs/avrdude_2.html
+++ b/docs/avrdude_2.html
@@ -1,6 +1,6 @@
-
@@ -65,6 +82,7 @@ ul.no-bullet {list-style: none}
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_20.html b/docs/avrdude_20.html
index 0f704262..6404c70c 100644
--- a/docs/avrdude_20.html
+++ b/docs/avrdude_20.html
@@ -1,6 +1,6 @@
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +|||||
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | @@ -65,311 +82,21 @@ ul.no-bullet {list-style: none} | [Index] | [ ? ] |
A.2.1 Installation | + | |
A.1 Unix | ||
A.2.2 Configuration Files | - | |
A.2.3 Port Names | - | |
A.2.4 Documentation | + | |
A.2 Windows |
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
A Windows executable of avrdude is included in WinAVR which can be found at -http://sourceforge.net/projects/winavr. WinAVR is a suite of executable, -open source software development tools for the AVR for the Windows platform. -
-There are two options to build avrdude from source under Windows. -The first one is to use Cygwin (http://www.cygwin.com/). -
-To build and install from the source tarball for Windows (using Cygwin): -
-$ set PREFIX=<your install directory path> -$ export PREFIX -$ gunzip -c avrdude-6.99-20211218.tar.gz | tar xf - -$ cd avrdude-6.99-20211218 -$ ./configure LDFLAGS="-static" --prefix=$PREFIX --datadir=$PREFIX ---sysconfdir=$PREFIX/bin --enable-versioned-doc=no -$ make -$ make install -
Note that recent versions of Cygwin (starting with 1.7) removed the
-MinGW support from the compiler that is needed in order to build a
-native Win32 API binary that does not require to install the Cygwin
-library cygwin1.dll
at run-time. Either try using an older
-compiler version that still supports MinGW builds, or use MinGW
-(http://www.mingw.org/) directly.
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
A.2.2.1 Configuration file names | - | |
A.2.2.2 How AVRDUDE finds the configuration files. | - |
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
AVRDUDE on Windows looks for a system configuration file name of
-avrdude.conf
and looks for a user override configuration file of
-avrdude.rc
.
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
AVRDUDE on Windows has a different way of searching for the system and -user configuration files. Below is the search method for locating the -configuration files: -
-<directory from which application loaded>/../etc/avrdude.conf
-
-SYSTEM32
.
-
-SYSTEM
.
-
-[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
A.2.3.1 Serial Ports | - | |
A.2.3.2 Parallel Ports | - |
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
When you select a serial port (i.e. when using an STK500) use the -Windows serial port device names such as: com1, com2, etc. -
-[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
AVRDUDE will accept 3 Windows parallel port names: lpt1, lpt2, or -lpt3. Each of these names corresponds to a fixed parallel port base -address: -
-lpt1
0x378 -
-lpt2
0x278 -
-lpt3
0x3BC -
-On your desktop PC, lpt1 will be the most common choice. If you are -using a laptop, you might have to use lpt3 instead of lpt1. Select the -name of the port the corresponds to the base address of the parallel -port that you want. -
-If the parallel port can be accessed through a different
-address, this address can be specified directly, using the common C
-language notation (i. e., hexadecimal values are prefixed by 0x
).
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -- | - | - | - | [Top] | -[Contents] | -[Index] | -[ ? ] | -
AVRDUDE installs a manual page as well as info, HTML and PDF
-documentation. The manual page is installed in
-/usr/local/man/man1
area, while the HTML and PDF documentation
-is installed in /usr/local/share/doc/avrdude
directory. The
-info manual is installed in /usr/local/info/avrdude.info
.
-
Note that these locations can be altered by various configure options -such as ‘--prefix’ and ‘--datadir’. -
- -[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_21.html b/docs/avrdude_21.html
index 85572e55..6711637b 100644
--- a/docs/avrdude_21.html
+++ b/docs/avrdude_21.html
@@ -1,6 +1,6 @@
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | +|||||
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | @@ -65,328 +82,25 @@ ul.no-bullet {list-style: none} | [Index] | [ ? ] |
In general, please report any bugs encountered via
-
-https://github.com/avrdudes/avrdude/issues.
-
avrdude: serial_open(): can't set attributes for device "com1"
,
-
Solution: This problem seems to appear with certain versions of Cygwin. Specifying
-"/dev/com1"
instead of "com1"
should help.
-
Solution (short): setserial port low_latency
-
Solution (long): -There are two problems here. First, the system may wait some time before it -passes data from the serial port to the program. Under Linux the following -command works around this (you may need root privileges for this). -
-setserial port low_latency
-
Secondly, the serial interface chip may delay the interrupt for some time.
-This behaviour can be changed by setting the FIFO-threshold to one. Under Linux this
-can only be done by changing the kernel source in drivers/char/serial.c
.
-Search the file for UART_FCR_TRIGGER_8
and replace it with UART_FCR_TRIGGER_1
. Note that overall performance might suffer if there
-is high throughput on serial lines. Also note that you are modifying the kernel at
-your own risk.
-
Solutions: The reasons for this are the same as above. -If you know how to work around this on your OS, please let us know. -
-Solution: None at this time. Currently, the JTAG ICE code cannot -write to the flash ROM one byte at a time. -
-Solution: None. This is an inherent feature of the way JTAG EEPROM -programming works, and is documented that way in the Atmel AVR -datasheets. -In order to successfully program the EEPROM that way, a prior chip -erase (with the EESAVE fuse unprogrammed) is required. -This also applies to the STK500 and STK600 in high-voltage programming mode. -
-Solution: If the DWEN (debugWire enable) fuse is activated, -the /RESET pin is not functional anymore, so normal ISP -communication cannot be established. -There are two options to deactivate that fuse again: high-voltage -programming, or getting the JTAG ICE mkII talk debugWire, and -prepare the target AVR to accept normal ISP communication again. -
-The first option requires a programmer that is capable of high-voltage -programming (either serial or parallel, depending on the AVR device), -for example the STK500. In high-voltage programming mode, the -/RESET pin is activated initially using a 12 V pulse (thus the -name high voltage), so the target AVR can subsequently be -reprogrammed, and the DWEN fuse can be cleared. Typically, this -operation cannot be performed while the AVR is located in the target -circuit though. -
-The second option requires a JTAG ICE mkII that can talk the debugWire -protocol. The ICE needs to be connected to the target using the -JTAG-to-ISP adapter, so the JTAG ICE mkII can be used as a debugWire -initiator as well as an ISP programmer. AVRDUDE will then be activated -using the jtag2isp programmer type. The initial ISP -communication attempt will fail, but AVRDUDE then tries to initiate a -debugWire reset. When successful, this will leave the target AVR in a -state where it can accept standard ISP communication. The ICE is then -signed off (which will make it signing off from the USB as well), so -AVRDUDE has to be called again afterwards. This time, standard ISP -communication can work, so the DWEN fuse can be cleared. -
-The pin mapping for the JTAG-to-ISP adapter is: -
-JTAG pin | ISP pin | |||||||||||
1 | 3 | |||||||||||
2 | 6 | |||||||||||
3 | 1 | |||||||||||
4 | 2 | |||||||||||
6 | 5 | |||||||||||
9 | 4 |
A.1.1 Unix Installation | + | |
A.1.2 Unix Configuration Files | + | |
A.1.3 Unix Port Names | + | |
A.1.4 Unix Documentation | + |
Solution: The USBtinyISP code supports distinguishing multiple -programmers based on their bus:device connection tuple that describes -their place in the USB hierarchy on a specific host. This tuple can -be added to the -P usb option, similar to adding a serial number -on other USB-based programmers. -
-The actual naming convention for the bus and device names is -operating-system dependent; AVRDUDE will print out what it found -on the bus when running it with (at least) one -v option. -By specifying a string that cannot match any existing device -(for example, -P usb:xxx), the scan will list all possible -candidate devices found on the bus. -
-Examples: -
avrdude -c usbtiny -p atmega8 -P usb:003:025 (Linux) -avrdude -c usbtiny -p atmega8 -P usb:/dev/usb:/dev/ugen1.3 (FreeBSD 8+) -avrdude -c usbtiny -p atmega8 \ - -P usb:bus-0:\\.\libusb0-0001--0x1781-0x0c9f (Windows) -
Solution: debugWire mode imposes several limitations. -
-The debugWire protocol is Atmel’s proprietary one-wire (plus ground) -protocol to allow an in-circuit emulation of the smaller AVR devices, -using the /RESET line. -DebugWire mode is initiated by activating the DWEN -fuse, and then power-cycling the target. -While this mode is mainly intended for debugging/emulation, it -also offers limited programming capabilities. -Effectively, the only memory areas that can be read or programmed -in this mode are flash ROM and EEPROM. -It is also possible to read out the signature. -All other memory areas cannot be accessed. -There is no -chip erase -functionality in debugWire mode; instead, while reprogramming the -flash ROM, each flash ROM page is erased right before updating it. -This is done transparently by the JTAG ICE mkII (or AVR Dragon). -The only way back from debugWire mode is to initiate a special -sequence of commands to the JTAG ICE mkII (or AVR Dragon), so the -debugWire mode will be temporarily disabled, and the target can -be accessed using normal ISP programming. -This sequence is automatically initiated by using the JTAG ICE mkII -or AVR Dragon in ISP mode, when they detect that ISP mode cannot be -entered. -
-Solution: Use the following pin mapping: -
-JTAGICE | Target | Squid cab- | PDI |
mkII probe | pins | le colors | header |
1 (TCK) | Black | ||
2 (GND) | GND | White | 6 |
3 (TDO) | Grey | ||
4 (VTref) | VTref | Purple | 2 |
5 (TMS) | Blue | ||
6 (nSRST) | PDI_CLK | Green | 5 |
7 (N.C.) | Yellow | ||
8 (nTRST) | Orange | ||
9 (TDI) | PDI_DATA | Red | 1 |
10 (GND) | Brown |
Solution: Use the 6 pin ISP header on the Dragon and the following pin mapping: -
-Dragon | Target |
ISP Header | pins |
1 (MISO) | PDI_DATA |
2 (VCC) | VCC |
3 (SCK) | |
4 (MOSI) | |
5 (RESET) | PDI_CLK / RST |
6 (GND) | GND |
Solution: Use the following pin mapping: -
-AVRISP | Target | ATtiny |
connector | pins | pin # |
1 (MISO) | TPIDATA | 1 |
2 (VTref) | Vcc | 5 |
3 (SCK) | TPICLK | 3 |
4 (MOSI) | ||
5 (RESET) | /RESET | 6 |
6 (GND) | GND | 2 |
Solution: Since TPI has only 1 pin for bi-directional data transfer, both -MISO and MOSI pins should be connected to the TPIDATA pin -on the ATtiny device. -However, a 1K resistor should be placed between the MOSI and TPIDATA. -The MISO pin connects to TPIDATA directly. -The SCK pin is connected to TPICLK. -
-In addition, the Vcc, /RESET and GND pins should -be connected to their respective ports on the ATtiny device. -
-Solution: When connecting the FT232 directly to the pins of the target Atmel device,
-the polarity of the pins defined in the programmer
definition should be
-inverted by prefixing a tilde. For example, the dasa programmer would
-look like this when connected via a FT232R device (notice the tildes in
-front of pins 7, 4, 3 and 8):
-
programmer - id = "dasa_ftdi"; - desc = "serial port banging, reset=rts sck=dtr mosi=txd miso=cts"; - type = serbb; - reset = ~7; - sck = ~4; - mosi = ~3; - miso = ~8; -; -
Note that this uses the FT232 device as a normal serial port, not using the -FTDI drivers in the special bitbang mode. -
-Solution: Mind the limited programming supply voltage range of these -devices. -
-In-circuit programming through TPI is only guaranteed by the datasheet -at Vcc = 5 V. -
-Solution: None by this time (2010 Q1). -
-It is said that the AVR Dragon can only program devices from the A4 -Xmega sub-family. -
-Solution: This is a bug caused by an incorrect handling of zero-length -packets (ZLPs) in some versions of the libusb 0.1 API wrapper that ships -with libusb 1.x in certain Linux distributions. All Linux systems with -kernel versions < 2.6.31 and libusb >= 1.0.0 < 1.0.3 are reported to be -affected by this. -
-See also: http://www.libusb.org/ticket/6 -
-CLKPR
register), further ISP connection
-attempts fail.
-
-Solution: Even though ISP starts with pulling /RESET low, the -target continues to run at the internal clock speed as defined by the -firmware running before. Therefore, the ISP clock speed must be -reduced appropriately (to less than 1/4 of the internal clock speed) -using the -B option before the ISP initialization sequence will -succeed. -
-As that slows down the entire subsequent ISP session, it might make
-sense to just issue a chip erase using the slow ISP clock
-(option -e
), and then start a new session at higher speed.
-Option -D
might be used there, to prevent another unneeded
-erase cycle.
-
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_22.html b/docs/avrdude_22.html
new file mode 100644
index 00000000..e30c6e96
--- /dev/null
+++ b/docs/avrdude_22.html
@@ -0,0 +1,130 @@
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
To build and install from the source tarball on Unix like systems: +
+$ gunzip -c avrdude-6.99-20211218.tar.gz | tar xf - +$ cd avrdude-6.99-20211218 +$ ./configure +$ make +$ su root -c 'make install' +
The default location of the install is into /usr/local
so you
+will need to be sure that /usr/local/bin
is in your PATH
+environment variable.
+
If you do not have root access to your system, you can do the +following instead: +
+$ gunzip -c avrdude-6.99-20211218.tar.gz | tar xf - +$ cd avrdude-6.99-20211218 +$ ./configure --prefix=$HOME/local +$ make +$ make install +
A.1.1.1 FreeBSD Installation | + | |
A.1.1.2 Linux Installation | + |
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
AVRDUDE is installed via the FreeBSD Ports Tree as follows: +
+% su - root +# cd /usr/ports/devel/avrdude +# make install +
If you wish to install from a pre-built package instead of the source, +you can use the following instead: +
+% su - root +# pkg_add -r avrdude +
Of course, you must be connected to the Internet for these methods to +work, since that is where the source as well as the pre-built package is +obtained. +
+
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
On rpm based Linux systems (such as RedHat, SUSE, Mandrake, etc.), you +can build and install the rpm binaries directly from the tarball: +
+$ su - root +# rpmbuild -tb avrdude-6.99-20211218.tar.gz +# rpm -Uvh /usr/src/redhat/RPMS/i386/avrdude-6.99-20211218-1.i386.rpm +
Note that the path to the resulting rpm package, differs from system +to system. The above example is specific to RedHat. +
+
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
When AVRDUDE is build using the default ‘--prefix’ configure
+option, the default configuration file for a Unix system is located at
+/usr/local/etc/avrdude.conf
. This can be overridden by using the
+‘-C’ command line option. Additionally, the user’s home directory
+is searched for a file named .avrduderc
, and if found, is used to
+augment the system default configuration file.
+
A.1.2.1 FreeBSD Configuration Files | + | |
A.1.2.2 Linux Configuration Files | + |
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
When AVRDUDE is installed using the FreeBSD ports system, the system
+configuration file is always /usr/local/etc/avrdude.conf
.
+
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
When AVRDUDE is installed using from an rpm package, the system
+configuration file will be always be /etc/avrdude.conf
.
+
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
The parallel and serial port device file names are system specific. +The following table lists the default names for a given system. +
+System | Default Parallel Port | Default Serial Port |
FreeBSD | /dev/ppi0 | /dev/cuad0 |
Linux | /dev/parport0 | /dev/ttyS0 |
Solaris | /dev/printers/0 | /dev/term/a |
On FreeBSD systems, AVRDUDE uses the ppi(4) interface for +accessing the parallel port and the sio(4) driver for serial port +access. +
+On Linux systems, AVRDUDE uses the ppdev interface for +accessing the parallel port and the tty driver for serial port +access. +
+On Solaris systems, AVRDUDE uses the ecpp(7D) driver for +accessing the parallel port and the asy(7D) driver for serial port +access. +
+
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
AVRDUDE installs a manual page as well as info, HTML and PDF
+documentation. The manual page is installed in
+/usr/local/man/man1
area, while the HTML and PDF documentation
+is installed in /usr/local/share/doc/avrdude
directory. The
+info manual is installed in /usr/local/info/avrdude.info
.
+
Note that these locations can be altered by various configure options +such as ‘--prefix’. +
+
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
For the XBee programmer the target MCU is to be programmed wirelessly over a ZigBee mesh using the XBeeBoot bootloader. The ZigBee 64-bit @@ -991,10 +1009,18 @@ accepting extended parameters.
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_30.html b/docs/avrdude_30.html
new file mode 100644
index 00000000..f148a03a
--- /dev/null
+++ b/docs/avrdude_30.html
@@ -0,0 +1,109 @@
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
A.2.1 Installation | + | |
A.2.2 Configuration Files | + | |
A.2.3 Port Names | + | |
A.2.4 Documentation | + |
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
A Windows executable of avrdude is included in WinAVR which can be found at +http://sourceforge.net/projects/winavr. WinAVR is a suite of executable, +open source software development tools for the AVR for the Windows platform. +
+There are two options to build avrdude from source under Windows. +The first one is to use Cygwin (http://www.cygwin.com/). +
+To build and install from the source tarball for Windows (using Cygwin): +
+$ set PREFIX=<your install directory path> +$ export PREFIX +$ gunzip -c avrdude-6.99-20211218.tar.gz | tar xf - +$ cd avrdude-6.99-20211218 +$ ./configure LDFLAGS="-static" --prefix=$PREFIX --datadir=$PREFIX +--sysconfdir=$PREFIX/bin --enable-versioned-doc=no +$ make +$ make install +
Note that recent versions of Cygwin (starting with 1.7) removed the
+MinGW support from the compiler that is needed in order to build a
+native Win32 API binary that does not require to install the Cygwin
+library cygwin1.dll
at run-time. Either try using an older
+compiler version that still supports MinGW builds, or use MinGW
+(http://www.mingw.org/) directly.
+
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
A.2.2.1 Configuration file names | + | |
A.2.2.2 How AVRDUDE finds the configuration files. | + |
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
AVRDUDE on Windows looks for a system configuration file name of
+avrdude.conf
and looks for a user override configuration file of
+avrdude.rc
.
+
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
AVRDUDE on Windows has a different way of searching for the system and +user configuration files. Below is the search method for locating the +configuration files: +
+<directory from which application loaded>/../etc/avrdude.conf
+
+SYSTEM32
.
+
+SYSTEM
.
+
+
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
A.2.3.1 Serial Ports | + | |
A.2.3.2 Parallel Ports | + |
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
When you select a serial port (i.e. when using an STK500) use the +Windows serial port device names such as: com1, com2, etc. +
+
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
AVRDUDE will accept 3 Windows parallel port names: lpt1, lpt2, or +lpt3. Each of these names corresponds to a fixed parallel port base +address: +
+lpt1
0x378 +
+lpt2
0x278 +
+lpt3
0x3BC +
+On your desktop PC, lpt1 will be the most common choice. If you are +using a laptop, you might have to use lpt3 instead of lpt1. Select the +name of the port the corresponds to the base address of the parallel +port that you want. +
+If the parallel port can be accessed through a different
+address, this address can be specified directly, using the common C
+language notation (i. e., hexadecimal values are prefixed by 0x
).
+
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
AVRDUDE installs a manual page as well as info, HTML and PDF
+documentation. The manual page is installed in
+/usr/local/man/man1
area, while the HTML and PDF documentation
+is installed in /usr/local/share/doc/avrdude
directory. The
+info manual is installed in /usr/local/info/avrdude.info
.
+
Note that these locations can be altered by various configure options +such as ‘--prefix’ and ‘--datadir’. +
+ +
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
In general, please report any bugs encountered via
+
+https://github.com/avrdudes/avrdude/issues.
+
avrdude: serial_open(): can't set attributes for device "com1"
,
+
Solution: This problem seems to appear with certain versions of Cygwin. Specifying
+"/dev/com1"
instead of "com1"
should help.
+
Solution (short): setserial port low_latency
+
Solution (long): +There are two problems here. First, the system may wait some time before it +passes data from the serial port to the program. Under Linux the following +command works around this (you may need root privileges for this). +
+setserial port low_latency
+
Secondly, the serial interface chip may delay the interrupt for some time.
+This behaviour can be changed by setting the FIFO-threshold to one. Under Linux this
+can only be done by changing the kernel source in drivers/char/serial.c
.
+Search the file for UART_FCR_TRIGGER_8
and replace it with UART_FCR_TRIGGER_1
. Note that overall performance might suffer if there
+is high throughput on serial lines. Also note that you are modifying the kernel at
+your own risk.
+
Solutions: The reasons for this are the same as above. +If you know how to work around this on your OS, please let us know. +
+Solution: None at this time. Currently, the JTAG ICE code cannot +write to the flash ROM one byte at a time. +
+Solution: None. This is an inherent feature of the way JTAG EEPROM +programming works, and is documented that way in the Atmel AVR +datasheets. +In order to successfully program the EEPROM that way, a prior chip +erase (with the EESAVE fuse unprogrammed) is required. +This also applies to the STK500 and STK600 in high-voltage programming mode. +
+Solution: If the DWEN (debugWire enable) fuse is activated, +the /RESET pin is not functional anymore, so normal ISP +communication cannot be established. +There are two options to deactivate that fuse again: high-voltage +programming, or getting the JTAG ICE mkII talk debugWire, and +prepare the target AVR to accept normal ISP communication again. +
+The first option requires a programmer that is capable of high-voltage +programming (either serial or parallel, depending on the AVR device), +for example the STK500. In high-voltage programming mode, the +/RESET pin is activated initially using a 12 V pulse (thus the +name high voltage), so the target AVR can subsequently be +reprogrammed, and the DWEN fuse can be cleared. Typically, this +operation cannot be performed while the AVR is located in the target +circuit though. +
+The second option requires a JTAG ICE mkII that can talk the debugWire +protocol. The ICE needs to be connected to the target using the +JTAG-to-ISP adapter, so the JTAG ICE mkII can be used as a debugWire +initiator as well as an ISP programmer. AVRDUDE will then be activated +using the jtag2isp programmer type. The initial ISP +communication attempt will fail, but AVRDUDE then tries to initiate a +debugWire reset. When successful, this will leave the target AVR in a +state where it can accept standard ISP communication. The ICE is then +signed off (which will make it signing off from the USB as well), so +AVRDUDE has to be called again afterwards. This time, standard ISP +communication can work, so the DWEN fuse can be cleared. +
+The pin mapping for the JTAG-to-ISP adapter is: +
+JTAG pin | ISP pin |
1 | 3 |
2 | 6 |
3 | 1 |
4 | 2 |
6 | 5 |
9 | 4 |
Solution: The USBtinyISP code supports distinguishing multiple +programmers based on their bus:device connection tuple that describes +their place in the USB hierarchy on a specific host. This tuple can +be added to the -P usb option, similar to adding a serial number +on other USB-based programmers. +
+The actual naming convention for the bus and device names is +operating-system dependent; AVRDUDE will print out what it found +on the bus when running it with (at least) one -v option. +By specifying a string that cannot match any existing device +(for example, -P usb:xxx), the scan will list all possible +candidate devices found on the bus. +
+Examples: +
avrdude -c usbtiny -p atmega8 -P usb:003:025 (Linux) +avrdude -c usbtiny -p atmega8 -P usb:/dev/usb:/dev/ugen1.3 (FreeBSD 8+) +avrdude -c usbtiny -p atmega8 \ + -P usb:bus-0:\\.\libusb0-0001--0x1781-0x0c9f (Windows) +
Solution: debugWire mode imposes several limitations. +
+The debugWire protocol is Atmel’s proprietary one-wire (plus ground) +protocol to allow an in-circuit emulation of the smaller AVR devices, +using the /RESET line. +DebugWire mode is initiated by activating the DWEN +fuse, and then power-cycling the target. +While this mode is mainly intended for debugging/emulation, it +also offers limited programming capabilities. +Effectively, the only memory areas that can be read or programmed +in this mode are flash ROM and EEPROM. +It is also possible to read out the signature. +All other memory areas cannot be accessed. +There is no +chip erase +functionality in debugWire mode; instead, while reprogramming the +flash ROM, each flash ROM page is erased right before updating it. +This is done transparently by the JTAG ICE mkII (or AVR Dragon). +The only way back from debugWire mode is to initiate a special +sequence of commands to the JTAG ICE mkII (or AVR Dragon), so the +debugWire mode will be temporarily disabled, and the target can +be accessed using normal ISP programming. +This sequence is automatically initiated by using the JTAG ICE mkII +or AVR Dragon in ISP mode, when they detect that ISP mode cannot be +entered. +
+Solution: Use the following pin mapping: +
+JTAGICE | Target | Squid cab- | PDI |
mkII probe | pins | le colors | header |
1 (TCK) | Black | ||
2 (GND) | GND | White | 6 |
3 (TDO) | Grey | ||
4 (VTref) | VTref | Purple | 2 |
5 (TMS) | Blue | ||
6 (nSRST) | PDI_CLK | Green | 5 |
7 (N.C.) | Yellow | ||
8 (nTRST) | Orange | ||
9 (TDI) | PDI_DATA | Red | 1 |
10 (GND) | Brown |
Solution: Use the 6 pin ISP header on the Dragon and the following pin mapping: +
+Dragon | Target |
ISP Header | pins |
1 (MISO) | PDI_DATA |
2 (VCC) | VCC |
3 (SCK) | |
4 (MOSI) | |
5 (RESET) | PDI_CLK / RST |
6 (GND) | GND |
Solution: Use the following pin mapping: +
+AVRISP | Target | ATtiny |
connector | pins | pin # |
1 (MISO) | TPIDATA | 1 |
2 (VTref) | Vcc | 5 |
3 (SCK) | TPICLK | 3 |
4 (MOSI) | ||
5 (RESET) | /RESET | 6 |
6 (GND) | GND | 2 |
Solution: Since TPI has only 1 pin for bi-directional data transfer, both +MISO and MOSI pins should be connected to the TPIDATA pin +on the ATtiny device. +However, a 1K resistor should be placed between the MOSI and TPIDATA. +The MISO pin connects to TPIDATA directly. +The SCK pin is connected to TPICLK. +
+In addition, the Vcc, /RESET and GND pins should +be connected to their respective ports on the ATtiny device. +
+Solution: When connecting the FT232 directly to the pins of the target Atmel device,
+the polarity of the pins defined in the programmer
definition should be
+inverted by prefixing a tilde. For example, the dasa programmer would
+look like this when connected via a FT232R device (notice the tildes in
+front of pins 7, 4, 3 and 8):
+
programmer + id = "dasa_ftdi"; + desc = "serial port banging, reset=rts sck=dtr mosi=txd miso=cts"; + type = serbb; + reset = ~7; + sck = ~4; + mosi = ~3; + miso = ~8; +; +
Note that this uses the FT232 device as a normal serial port, not using the +FTDI drivers in the special bitbang mode. +
+Solution: Mind the limited programming supply voltage range of these +devices. +
+In-circuit programming through TPI is only guaranteed by the datasheet +at Vcc = 5 V. +
+Solution: None by this time (2010 Q1). +
+It is said that the AVR Dragon can only program devices from the A4 +Xmega sub-family. +
+Solution: This is a bug caused by an incorrect handling of zero-length +packets (ZLPs) in some versions of the libusb 0.1 API wrapper that ships +with libusb 1.x in certain Linux distributions. All Linux systems with +kernel versions < 2.6.31 and libusb >= 1.0.0 < 1.0.3 are reported to be +affected by this. +
+See also: http://www.libusb.org/ticket/6 +
+CLKPR
register), further ISP connection
+attempts fail.
+
+Solution: Even though ISP starts with pulling /RESET low, the +target continues to run at the internal clock speed as defined by the +firmware running before. Therefore, the ISP clock speed must be +reduced appropriately (to less than 1/4 of the internal clock speed) +using the -B option before the ISP initialization sequence will +succeed. +
+As that slows down the entire subsequent ISP session, it might make
+sense to just issue a chip erase using the slow ISP clock
+(option -e
), and then start a new session at higher speed.
+Option -D
might be used there, to prevent another unneeded
+erase cycle.
+
[ << ] | +[ < ] | +[ Up ] | +[ > ] | +[ >> ] | ++ | + | + | + | [Top] | +[Contents] | +[Index] | +[ ? ] | +
+
+ This document was generated on March 16, 2022 using texi2html 5.0.
+
+
+
+
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_5.html b/docs/avrdude_5.html
index d8ebc355..d31e9fa6 100644
--- a/docs/avrdude_5.html
+++ b/docs/avrdude_5.html
@@ -1,6 +1,6 @@
-
@@ -65,6 +82,7 @@ ul.no-bullet {list-style: none}
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_6.html b/docs/avrdude_6.html
index 9de6d20f..8034fe4f 100644
--- a/docs/avrdude_6.html
+++ b/docs/avrdude_6.html
@@ -1,6 +1,6 @@
-
@@ -65,6 +82,7 @@ ul.no-bullet {list-style: none}
[ << ] | -[ < ] | -[ Up ] | -[ > ] | -[ >> ] | -
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_7.html b/docs/avrdude_7.html
index 4b2f681f..530b35e6 100644
--- a/docs/avrdude_7.html
+++ b/docs/avrdude_7.html
@@ -1,6 +1,6 @@
-
@@ -65,6 +82,7 @@ ul.no-bullet {list-style: none}
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_8.html b/docs/avrdude_8.html
index 89a282bb..1fea3296 100644
--- a/docs/avrdude_8.html
+++ b/docs/avrdude_8.html
@@ -1,6 +1,6 @@
-
@@ -65,6 +82,7 @@ ul.no-bullet {list-style: none}
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_9.html b/docs/avrdude_9.html
index 23536848..c4c436cd 100644
--- a/docs/avrdude_9.html
+++ b/docs/avrdude_9.html
@@ -1,6 +1,6 @@
-
@@ -55,7 +72,7 @@ ul.no-bullet {list-style: none}
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_abt.html b/docs/avrdude_abt.html
index a1e23c9b..652b534b 100644
--- a/docs/avrdude_abt.html
+++ b/docs/avrdude_abt.html
@@ -1,6 +1,6 @@
-
@@ -56,10 +73,11 @@ ul.no-bullet {list-style: none}
- This document was generated on March 13, 2022 using texi2html 5.0. + This document was generated on March 16, 2022 using texi2html 5.0.
The buttons in the navigation panels have the following meaning: @@ -167,7 +185,7 @@ ul.no-bullet {list-style: none}
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.
diff --git a/docs/avrdude_toc.html b/docs/avrdude_toc.html
index 18149e9d..3fc6b389 100644
--- a/docs/avrdude_toc.html
+++ b/docs/avrdude_toc.html
@@ -1,6 +1,6 @@
-
@@ -56,6 +73,7 @@ ul.no-bullet {list-style: none}
- This document was generated on March 13, 2022 using texi2html 5.0.
+ This document was generated on March 16, 2022 using texi2html 5.0.