352
7679H–CAN–08/08
AT90CAN32/64/128
Notes:
1. All bytes are represented by binary digits (0b...).
2. Address bits exceeding PCMSB and EEAMSB (see
and
) are don’t care.
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 0
bbb 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 xx
oo oooo
Read Lock bits. “0”=programmed, “1”=unprogrammed.
See
for details.
Write
Lock bits
1010 1100 111x xxxx xxxx xxxx 11
ii iiii
Write Lock bits. Set bits = “0” to program Lock bits.
See
for details.
Read
Signature Byte
0011 0000 000x xxxx xxxx xx
bb 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.
See
for details.
Write
Fuse High bits
1010 1100 1010 1000 xxxx xxxx
iiii iiii
Set bits = “0” to program, “1” to unprogram.
See
for details.
Write
Extended Fuse Bits
1010 1100 1010 0100 xxxx xxxx
xxxx iiii
Set bits = “0” to program, “1” to unprogram.
See
for details.
Read
Fuse Low bits
0101 0000 0000 0000 xxxx xxxx
oooo oooo
Read Fuse bits. “0”=programmed, “1”=unprogrammed.
See
for details.
Read
Fuse High bits
0101 1000 0000 1000 xxxx xxxx
oooo oooo
Read Fuse High bits.
“0”=programmed, “1”=unprogrammed.
See
for details.
Read
Extended Fuse Bits
0101 0000 0000 1000 xxxx xxxx
oooo oooo
Read Extended Fuse bits.
“0”=programmed, “1”=unprogrammed.
See
for details.
Read
Calibration Byte
0011 1000 000x xxxx 0000 0000
oooo oooo
Read Calibration Byte
Poll RDY/BSY
1111 0000 0000 0000 xxxx xxxx xxxx xxx
o
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