351
7682C–AUTO–04/08
AT90CAN32/64/128
Notes:
1. All bytes are represented by binary digits (0b...).
25.9
JTAG Programming Overview
Programming through the JTAG interface requires control of the four JTAG specific pins: TCK,
TMS, TDI, and TDO. Control of the reset and clock pins is not required.
To be able to use the JTAG interface, the JTAGEN Fuse must be programmed. The device is
default shipped with the fuse programmed. In addition, the JTD bit in MCUCR must be cleared.
Alternatively, if the JTD bit is set, the external reset can be forced low. Then, the JTD bit will be
cleared after two chip clocks, and the JTAG pins are available for programming. This provides a
means of using the JTAG pins as normal port pins in Running mode while still allowing In-Sys-
tem Programming via the JTAG interface. Note that this technique can not be used when using
Load
EEPROM Memory
Page (page access)
1100 0001
0000 0000
0000 0bbb
iiii iiii
Load data i to EEPROM memory page buffer. After
data is loaded, program EEPROM page.
Write
EEPROM Memory
Page (page access)
1100 0010
000x aaaa
bbbb b000
xxxx xxxx
Write EEPROM page at address a:b.
Read Lockbits
0101 1000
0000 0000
xxxx xxxx
xxoo oooo
Read Lock bits. “0”=programmed, “1”=unprogrammed.
Write
Lock bits
1010 1100
111x xxxx
xxxx xxxx
11ii iiii
Write Lock bits. Set bits = “0” to program Lock bits.
Read
Signature Byte
0011 0000
000x xxxx
xxxx xxbb
oooo oooo
Read Signature Byte o at address b.
Write
Fuse Low bits
1010 1100
1010 0000
xxxx xxxx
iiii iiii
Set bits = “0” to program, “1” to unprogram.
Write
Fuse High bits
1010 1100
1010 1000
xxxx xxxx
iiii iiii
Set bits = “0” to program, “1” to unprogram.
Write
Extended Fuse Bits
1010 1100
1010 0100
xxxx xxxx
xxxx iiii
Set bits = “0” to program, “1” to unprogram.
Read
Fuse Low bits
0101 0000
0000 0000
xxxx xxxx
oooo oooo
Read Fuse bits. “0”=programmed, “1”=unprogrammed.
Read
Fuse High bits
0101 1000
0000 1000
xxxx xxxx
oooo oooo
Read Fuse High bits.
“0”=programmed, “1”=unprogrammed.
Read
Extended Fuse Bits
0101 0000
0000 1000
xxxx xxxx
oooo oooo
Read Extended Fuse bits.
“0”=programmed, “1”=unprogrammed.
Read
Calibration Byte
0011 1000
000x xxxx
0000 0000
oooo oooo
Read Calibration Byte
Poll RDY/BSY
1111 0000
0000 0000
xxxx xxxx
xxxx xxxo
If o = “1”, a programming operation is still busy. Wait
until this bit returns to “0” before applying another
command.
Table 25-15. Serial Programming Instruction Set (Continued)
Set a = address high bits, b = address low bits, H = 0 - Low byte, 1 - High Byte, o = data out, i = data in, x = don’t care
Instruction
Instruction Format(1)
Operation(1)
Byte 1
Byte 2(2)
Byte 3
Byte4