<tr><tdvalign="middle"align="left">[<ahref="avrdude_20.html#Platform-Dependent-Information"title="Beginning of this chapter or previous chapter"><<</a>]</td>
<tdvalign="middle"align="left">[<ahref="avrdude_38.html#Documentation"title="Previous section in reading order"><</a>]</td>
<tdvalign="middle"align="left">[ Up ]</td>
<tdvalign="middle"align="left">[ > ]</td>
<tdvalign="middle"align="left">[ >> ]</td>
<tdvalign="middle"align="left"> </td>
<tdvalign="middle"align="left"> </td>
<tdvalign="middle"align="left"> </td>
<tdvalign="middle"align="left"> </td>
<tdvalign="middle"align="left">[<ahref="avrdude.html#Introduction"title="Cover (top) of document">Top</a>]</td>
<tdvalign="middle"align="left">[<ahref="avrdude_toc.html#SEC_Contents"title="Table of contents">Contents</a>]</td>
<p>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 <code>drivers/char/serial.c</code>.
Search the file for <code>UART_FCR_TRIGGER_8</code> and replace it with <code>UART_FCR_TRIGGER_1</code>. 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.
</p>
</li><li>
Problem: I’m not using Linux and my AVR910 programmer is really slow.
<p>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.
</p>
</li><li>
Problem: Updating the flash ROM from terminal mode does not work with the
JTAG ICEs.
<p>Solution: None at this time. Currently, the JTAG ICE code cannot
write to the flash ROM one byte at a time.
</p>
</li><li>
Problem: Page-mode programming the EEPROM (using the -U option) does
not erase EEPROM cells before writing, and thus cannot overwrite any
previous value != 0xff.
<p>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.
</p>
</li><li>
Problem: How do I turn off the <var>DWEN</var> fuse?
<p>Solution: If the <var>DWEN</var> (debugWire enable) fuse is activated,
the <var>/RESET</var> 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.
</p>
<p>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
<var>/RESET</var> pin is activated initially using a 12 V pulse (thus the
name <em>high voltage</em>), so the target AVR can subsequently be
reprogrammed, and the <var>DWEN</var> fuse can be cleared. Typically, this
operation cannot be performed while the AVR is located in the target
circuit though.
</p>
<p>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 <var>jtag2isp</var> 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 <var>DWEN</var> fuse can be cleared.
</p>
<p>The pin mapping for the JTAG-to-ISP adapter is:
<tr><tdvalign="middle"align="left">[<ahref="avrdude_20.html#Platform-Dependent-Information"title="Beginning of this chapter or previous chapter"><<</a>]</td>
<tdvalign="middle"align="left">[<ahref="avrdude_38.html#Documentation"title="Previous section in reading order"><</a>]</td>
<tdvalign="middle"align="left">[ Up ]</td>
<tdvalign="middle"align="left">[ > ]</td>
<tdvalign="middle"align="left">[ >> ]</td>
<tdvalign="middle"align="left"> </td>
<tdvalign="middle"align="left"> </td>
<tdvalign="middle"align="left"> </td>
<tdvalign="middle"align="left"> </td>
<tdvalign="middle"align="left">[<ahref="avrdude.html#Introduction"title="Cover (top) of document">Top</a>]</td>
<tdvalign="middle"align="left">[<ahref="avrdude_toc.html#SEC_Contents"title="Table of contents">Contents</a>]</td>