Closed DaleMitchell closed 3 years ago
I was able to fix this issue by uncommenting #define DISABLE_HOST_TIMEOUT
in sys.h for jtag2updi. I also had to use interactive mode (-F -t
), because a straight erase (-F -e
) did not work. I wish it was more obvious in README.md.
C:\Users\dalem>C:\Users\dalem\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino18/bin/avrdude -CC:\Users\dalem\AppData\Local\Arduino15\packages\DxCore\hardware\megaavr\1.3.6/avrdude.conf -v -v -pavr32da28 -cjtag2updi -PCOM11 -F -t -v -v -v -v
avrdude: Version 6.3-20201216
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\dalem\AppData\Local\Arduino15\packages\DxCore\hardware\megaavr\1.3.6/avrdude.conf"
Using Port : COM11
Using Programmer : jtag2updi
avrdude: jtagmkII_open_pdi()
avrdude: jtagmkII_getsync()
avrdude: jtagmkII_getsync(): Sending sign-on command:
avrdude: jtagmkII_send(): sending 1 bytes
avrdude: Send: . [1b] . [00] . [00] . [01] . [00] . [00] . [00] . [0e] . [01] . [f3] . [97]
avrdude: jtagmkII_recv():
avrdude: Recv: . [1b]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [1d]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [0e]
avrdude: Recv: . [86] . [01] . [01] . [00] . [06] . [01] . [01] . [00] . [06] . [01] . [00] . [00] . [00] . [00] . [00] . [00] J [4a] T [54] A [41] G [47] I [49] C [43] E [45] [20] m [6d] k [6b] I [49] I [49] . [00]
avrdude: Recv: < [3c]
avrdude: Recv: . [7f]
avrdude: jtagmkII_recv(): Got message seqno 0 (command_sequence == 0)
Raw message:
0x86 0x01 0x01 0x00 0x06 0x01 0x01 0x00 0x06 0x01 0x00 0x00 0x00 0x00 0x00 0x00
0x4a 0x54 0x41 0x47 0x49 0x43 0x45 0x20 0x6d 0x6b 0x49 0x49 0x00
Sign-on succeeded
JTAG ICE mkII sign-on message:
Communications protocol version: 1
M_MCU:
boot-loader FW version: 1
firmware version: 6.00
hardware version: 1
S_MCU:
boot-loader FW version: 1
firmware version: 6.00
hardware version: 1
Serial number: 00:00:00:00:00:00
Device ID: JTAGICE mkII
avrdude: jtagmkII_getsync(): Using a 298-byte device descriptor
avrdude: jtagmkII_setparm()
avrdude: jtagmkII_setparm(): Sending set parameter command (parm 0x03, 1 bytes):
avrdude: jtagmkII_send(): sending 3 bytes
avrdude: Send: . [1b] . [01] . [00] . [03] . [00] . [00] . [00] . [0e] . [02] . [03] . [06] $ [24] 1 [31]
avrdude: jtagmkII_recv():
avrdude: Recv: . [1b]
avrdude: Recv: . [01]
avrdude: Recv: . [00]
avrdude: Recv: . [01]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [0e]
avrdude: Recv: . [80]
avrdude: Recv: . [cd]
avrdude: Recv: . [83]
avrdude: jtagmkII_recv(): Got message seqno 1 (command_sequence == 1)
Raw message:
0x80
OK
avrdude: jtagmkII_getsync(): Sending get sync command:
avrdude: jtagmkII_send(): sending 1 bytes
avrdude: Send: . [1b] . [02] . [00] . [01] . [00] . [00] . [00] . [0e] . [0f] . [e2] u [75]
avrdude: jtagmkII_recv():
avrdude: Recv: . [1b]
avrdude: Recv: . [02]
avrdude: Recv: . [00]
avrdude: Recv: . [01]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [0e]
avrdude: Recv: . [80]
avrdude: Recv: . [1d]
avrdude: Recv: . [09]
avrdude: jtagmkII_recv(): Got message seqno 2 (command_sequence == 2)
Raw message:
0x80
OK
AVR Part : AVR32DA28
Chip Erase delay : 0 us
PAGEL : P00
BS2 : P00
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 0
StabDelay : 0
CmdexeDelay : 0
SyncLoops : 0
ByteDelay : 0
PollIndex : 0
PollValue : 0x00
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
prodsig 0 0 0 0 no 125 125 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
fuses 0 0 0 0 no 9 16 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
fuse0 0 0 0 0 no 1 0 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
fuse1 0 0 0 0 no 1 0 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
fuse2 0 0 0 0 no 1 0 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
fuse4 0 0 0 0 no 1 0 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
fuse5 0 0 0 0 no 1 0 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
fuse6 0 0 0 0 no 1 0 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
fuse7 0 0 0 0 no 1 0 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
fuse8 0 0 0 0 no 1 0 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
lock 0 0 0 0 no 4 1 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
data 0 0 0 0 no 0 0 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
flash 0 0 0 0 no 32768 512 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 0 0 0 0 no 512 32 0 0 0 0x00 0x00
Memory Ops:
Oeration Inst Bit Bit Type Bitno Value
----------- -------- -------- ----- -----
Programmer Type : JTAGMKII_PDI
Description : JTAGv2 to UPDI bridge
avrdude: jtagmkII_getparm()
avrdude: jtagmkII_getparm(): Sending get parameter command (parm 0x01):
avrdude: jtagmkII_send(): sending 2 bytes
avrdude: Send: . [1b] . [03] . [00] . [02] . [00] . [00] . [00] . [0e] . [03] . [01] . [d3] . [99]
avrdude: jtagmkII_recv():
avrdude: Recv: . [1b]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [0e]
avrdude: Recv: . [81] . [01] . [01]
avrdude: Recv: . [ed]
avrdude: Recv: . [cd]
avrdude: jtagmkII_recv(): Got message seqno 3 (command_sequence == 3)
Raw message:
0x81 0x01 0x01
parameter values:
0x01 0x01
avrdude: jtagmkII_getparm()
avrdude: jtagmkII_getparm(): Sending get parameter command (parm 0x02):
avrdude: jtagmkII_send(): sending 2 bytes
avrdude: Send: . [1b] . [04] . [00] . [02] . [00] . [00] . [00] . [0e] . [03] . [02] . [aa] B [42]
avrdude: jtagmkII_recv():
avrdude: Recv: . [1b]
avrdude: Recv: . [04]
avrdude: Recv: . [00]
avrdude: Recv: . [05]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [0e]
avrdude: Recv: . [81] . [00] . [06] . [00] . [06]
avrdude: Recv: . [ca]
avrdude: Recv: . [db]
avrdude: jtagmkII_recv(): Got message seqno 4 (command_sequence == 4)
Raw message:
0x81 0x00 0x06 0x00 0x06
parameter values:
0x00 0x06 0x00 0x06
M_MCU hardware version: 1
M_MCU firmware version: 6.00
S_MCU hardware version: 1
S_MCU firmware version: 6.00
Serial number: 00:00:00:00:00:00
avrdude: jtagmkII_getparm()
avrdude: jtagmkII_getparm(): Sending get parameter command (parm 0x06):
avrdude: jtagmkII_send(): sending 2 bytes
avrdude: Send: . [1b] . [05] . [00] . [02] . [00] . [00] . [00] . [0e] . [03] . [06] s [73] I [49]
avrdude: jtagmkII_recv():
avrdude: Recv: . [1b]
avrdude: Recv: . [05]
avrdude: Recv: . [00]
avrdude: Recv: . [03]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [0e]
avrdude: Recv: . [81] . [88] . [13]
avrdude: Recv: x [78]
avrdude: Recv: M [4d]
avrdude: jtagmkII_recv(): Got message seqno 5 (command_sequence == 5)
Raw message:
0x81 0x88 0x13
parameter values:
0x88 0x13
Vtarget : 5.0 V
avrdude: jtagmkII_initialize(): trying to set baudrate to 115200
avrdude: jtagmkII_setparm()
avrdude: jtagmkII_setparm(): Sending set parameter command (parm 0x05, 1 bytes):
avrdude: jtagmkII_send(): sending 3 bytes
avrdude: Send: . [1b] . [06] . [00] . [03] . [00] . [00] . [00] . [0e] . [02] . [05] . [07] . [88] . [b0]
avrdude: jtagmkII_recv():
avrdude: Recv: . [1b]
avrdude: Recv: . [06]
avrdude: Recv: . [00]
avrdude: Recv: . [01]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [0e]
avrdude: Recv: . [80]
avrdude: Recv: . [c3]
avrdude: Recv: . [1f]
avrdude: jtagmkII_recv(): Got message seqno 6 (command_sequence == 6)
Raw message:
0x80
OK
avrdude: jtagmkII_set_devdescr(): Sending set device descriptor command:
avrdude: jtagmkII_send(): sending 299 bytes
avrdude: Send: . [1b] . [07] . [00] + [2b] . [01] . [00] . [00] . [0e] . [0c] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [0b] . [00] . [02] [20] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [80] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] @ [40] . [00] . [00] . [00] . [00] . [00] . [00] . [01] . [02] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] h [68] . [fb]
avrdude: jtagmkII_recv():
avrdude: Recv: . [1b]
avrdude: Recv: . [07]
avrdude: Recv: . [00]
avrdude: Recv: . [01]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [0e]
avrdude: Recv: . [80]
avrdude: Recv: | [7c]
avrdude: Recv: . [9e]
avrdude: jtagmkII_recv(): Got message seqno 7 (command_sequence == 7)
Raw message:
0x80
OK
avrdude: jtagmkII_initialize(): Cannot locate "flash" and "boot" memories in description
avrdude: jtagmkII_reset(): Sending reset command:
avrdude: jtagmkII_send(): sending 2 bytes
avrdude: Send: . [1b] . [08] . [00] . [02] . [00] . [00] . [00] . [0e] . [0b] . [01] . [de] . [fe]
avrdude: jtagmkII_recv():
avrdude: Recv: . [1b]
avrdude: Recv: . [08]
avrdude: Recv: . [00]
avrdude: Recv: . [02]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [0e]
avrdude: Recv: . [a5] . [83]
avrdude: Recv: + [2b]
avrdude: Recv: l [6c]
avrdude: jtagmkII_recv(): Got message seqno 8 (command_sequence == 8)
Raw message:
0xa5 0x83
Illegal MCU state
avrdude: jtagmkII_reset(): bad response to reset command: RSP_ILLEGAL_MCU_STATE
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x656570
avrdude: Expected signature for AVR32DA28 is 1E 95 34
avrdude> erase
>>> erase
avrdude: erasing chip
avrdude: jtagmkII_chip_erase(): Sending Xmega chip erase command:
avrdude: jtagmkII_send(): sending 6 bytes
avrdude: Send: . [1b] . [09] . [00] . [06] . [00] . [00] . [00] . [0e] 4 [34] . [00] . [00] . [00] . [00] . [00] . [f0] ` [60]
avrdude: jtagmkII_recv():
avrdude: Recv: . [1b]
avrdude: Recv: . [09]
avrdude: Recv: . [00]
avrdude: Recv: . [01]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [0e]
avrdude: Recv: . [80]
avrdude: Recv: q [71]
avrdude: Recv: . [ae]
avrdude: jtagmkII_recv(): Got message seqno 9 (command_sequence == 9)
Raw message:
0x80
OK
avrdude> quit
>>> quit
avrdude: jtagmkII_close()
avrdude: jtagmkII_close(): Sending GO command:
avrdude: jtagmkII_send(): sending 1 bytes
avrdude: Send: . [1b] . [0a] . [00] . [01] . [00] . [00] . [00] . [0e] . [08] . [e1] , [2c]
avrdude: jtagmkII_recv():
avrdude: Recv: . [1b]
avrdude: Recv: . [0a]
avrdude: Recv: . [00]
avrdude: Recv: . [01]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [0e]
avrdude: Recv: . [80]
avrdude: Recv: . [a1]
avrdude: Recv: $ [24]
avrdude: jtagmkII_recv(): Got message seqno 10 (command_sequence == 10)
Raw message:
0x80
OK
avrdude: jtagmkII_close(): Sending sign-off command:
avrdude: jtagmkII_send(): sending 1 bytes
avrdude: Send: . [1b] . [0b] . [00] . [01] . [00] . [00] . [00] . [0e] . [00] . [16] ! [21]
avrdude: jtagmkII_recv():
avrdude: Recv: . [1b]
avrdude: Recv: . [0b]
avrdude: Recv: . [00]
avrdude: Recv: . [01]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [00]
avrdude: Recv: . [0e]
avrdude: Recv: . [80]
avrdude: Recv: . [1e]
avrdude: Recv: . [a5]
avrdude: jtagmkII_recv(): Got message seqno 11 (command_sequence == 11)
Raw message:
0x80
OK
avrdude done. Thank you.
After writing the lock fuse to an AVR32DA28 I can no longer do anything over UPDI. Remarkably, the chip still runs its program I flashed prior to locking, so it isn't completely bricked. This issue is repeatable for me, I have done this to two chips now.
I use this command to set the lock:
When I attempt to do anything over UPDI, e.g. attempting to enter interactive mode with
-t
and-F
:Verbose output: