I have now invested some time to install Atmel Studio on a Windows 7
partition, and to check how Atmel Studio writes to eeprom.
Short Summary
-------------
- Installing and getting started with Atmel Studio is a pain in the
neck if you are used to nice avrdude and to installing rpm packages
(and, why does Studio use -v for specifying options with 2 perfectly
different semantics in a single line?).
- The effort to install Atmel Studio is nevertheless worth while, even
if, later, you only use avrdude: it allows you to get the latest
firmware update for your jtagice3 (for me that meant an upgrade from
firmware version 1.37 to version 2.21).
- However, the firmware upgrade does not solve the problem discussed
here.
- Failures on single-byte eeprom write operations do not only occur
with Avrdude, but also with Atmel Studio - maybe somewhat less
frequently than with Avrdude, but so often that the jtagice3 is
practically useless if you want to write to eeprom positions.
- It looks like the problem is not necessarily due to the
implementation of Avrdude (or Atmel Studio) but could just as well
be a flaw in the implementation of the firmware of the jtagice3.
- To be repeated here: corresponding single-byte operations work
perfectly when using a JTAG ICE mkII - nevertheless, I will now
confection a new target board with a new processor to make sure that
the problem is not a due to the specific processor I am using.
Detailed description
--------------------
In the attachment, I join a file into which I have pasted the console
I/O for both a single-byte read and a single-byte write, and both for
Avrdude and for Atmel Studio. Atmel Studio only has a simple -v option,
which does not provide much information on how Studio proceeds when it
writes to eeprom.
Juergen
Opening interactive avrdude session (with -vvvv debug option)
=============================================================
<harms@pcjuergen ~> avrdude -vvvv -p AT90CAN128 -c jtag3 -P usb -t
avrdude: Version 6.0.1, compiled on Dec 14 2013 at 14:56:08
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "/etc/avrdude/avrdude.conf"
User configuration file is "/home/harms/.avrduderc"
User configuration file does not exist or is not a regular file,
skipping
Using Port : usb
Using Programmer : jtag3
avrdude: jtag3_open()
avrdude: usbdev_open(): Found JTAGICE3, serno: J30200021991
avrdude: jtag3_getsync()
avrdude: Sending sign-on command:
avrdude: jtag3_send(): sending 3 bytes
avrdude: Sent: . [0e] . [00] . [00] . [00] . [01] . [10] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [00] . [00] . [01] . [80] . [00]
avrdude: jtag3_recv(): Got message seqno 0 (command_sequence == 0)
Raw message:
01 80 00
[general] OK
AVR Part : AT90CAN128
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW
MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ -----
----- ---------
eeprom 65 20 8 0 no 4096 8 0 9000
9000 0xff 0xff
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW
MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ -----
----- ---------
flash 65 6 256 0 yes 131072 256 512 4500
4500 0xff 0xff
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW
MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ -----
----- ---------
lfuse 0 0 0 0 no 1 0 0 9000
9000 0x00 0x00
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW
MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ -----
----- ---------
hfuse 0 0 0 0 no 1 0 0 9000
9000 0x00 0x00
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW
MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ -----
----- ---------
efuse 0 0 0 0 no 1 0 0 9000
9000 0x00 0x00
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW
MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ -----
----- ---------
lock 0 0 0 0 no 1 0 0 9000
9000 0x00 0x00
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW
MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ -----
----- ---------
calibration 0 0 0 0 no 1 0 0 0
0 0x00 0x00
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
Programmer Type : JTAGICE3
Description : Atmel AVR JTAGICE3 in JTAG mode
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x01, section 0, parm 0) command:
avrdude: jtag3_send(): sending 6 bytes
avrdude: Sent: . [0e] . [00] . [01] . [00] . [01] . [02] . [00] . [00] . [00] .
[05]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [01] . [00] . [01] . [84] . [01] . [02] . [01] % [25] .
[bf] . [00] . [00]
avrdude: jtag3_recv(): Got message seqno 1 (command_sequence == 1)
Raw message:
01 84 01 02 01 25 bf 00 00
[general] Data returned:
0x01 0x02 0x01 0x25 0xbf 0x00 0x00
avrdude: Sending get info (serial number) command:
avrdude: jtag3_send(): sending 4 bytes
avrdude: Sent: . [0e] . [00] . [02] . [00] . [00] . [00] . [00] . [81]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [02] . [00] . [00] . [81] . [00] J [4a] 3 [33] 0 [30] 2
[32] 0 [30] 0 [30] 0 [30] 2 [32] 1 [31] 9 [39] 9 [39] 1 [31]
avrdude: jtag3_recv(): Got message seqno 2 (command_sequence == 2)
Raw message:
00 81 00 4a 33 30 32 30 30 30 32 31 39 39 31
[info] Info returned:
\000J30200021991
ICE hardware version: 2
ICE firmware version: 1.37 (rel. 191)
Serial number : J30200021991
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x01, section 1, parm 0) command:
avrdude: jtag3_send(): sending 6 bytes
avrdude: Sent: . [0e] . [00] . [03] . [00] . [01] . [02] . [00] . [01] . [00] .
[02]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [03] . [00] . [01] . [84] . [01] . [0f] . [13] . [00]
avrdude: jtag3_recv(): Got message seqno 3 (command_sequence == 3)
Raw message:
01 84 01 0f 13 00
[general] Data returned:
0x01 0x0f 0x13 0x00
Vtarget : 4.88 V
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x12, section 1, parm 32) command:
avrdude: jtag3_send(): sending 6 bytes
avrdude: Sent: . [0e] . [00] . [04] . [00] . [12] . [02] . [00] . [01] [20] .
[02]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [04] . [00] . [12] . [84] . [00] . [e8] . [03] . [00]
avrdude: jtag3_recv(): Got message seqno 4 (command_sequence == 4)
Raw message:
12 84 00 e8 03 00
[AVR] Data returned:
0x00 0xe8 0x03 0x00
JTAG clock megaAVR/program: 1000 kHz
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x12, section 1, parm 33) command:
avrdude: jtag3_send(): sending 6 bytes
avrdude: Sent: . [0e] . [00] . [05] . [00] . [12] . [02] . [00] . [01] ! [21] .
[02]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [05] . [00] . [12] . [84] . [00] . [e8] . [03] . [00]
avrdude: jtag3_recv(): Got message seqno 5 (command_sequence == 5)
Raw message:
12 84 00 e8 03 00
[AVR] Data returned:
0x00 0xe8 0x03 0x00
JTAG clock megaAVR/debug: 1000 kHz
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x12, section 1, parm 48) command:
avrdude: jtag3_send(): sending 6 bytes
avrdude: Sent: . [0e] . [00] . [06] . [00] . [12] . [02] . [00] . [01] 0 [30] .
[02]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [06] . [00] . [12] . [84] . [00] . [e8] . [03] . [00]
avrdude: jtag3_recv(): Got message seqno 6 (command_sequence == 6)
Raw message:
12 84 00 e8 03 00
[AVR] Data returned:
0x00 0xe8 0x03 0x00
JTAG clock Xmega: 1000 kHz
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x12, section 1, parm 49) command:
avrdude: jtag3_send(): sending 6 bytes
avrdude: Sent: . [0e] . [00] . [07] . [00] . [12] . [02] . [00] . [01] 1 [31] .
[02]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [07] . [00] . [12] . [84] . [00] . [e8] . [03] . [00]
avrdude: jtag3_recv(): Got message seqno 7 (command_sequence == 7)
Raw message:
12 84 00 e8 03 00
[AVR] Data returned:
0x00 0xe8 0x03 0x00
PDI clock Xmega : 1000 kHz
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x01, section 0, parm 1) command:
avrdude: jtag3_send(): sending 6 bytes
avrdude: Sent: . [0e] . [00] . [08] . [00] . [01] . [02] . [00] . [00] . [01] .
[02]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [08] . [00] . [01] . [84] . [01] . [01] % [25] . [00]
avrdude: jtag3_recv(): Got message seqno 8 (command_sequence == 8)
Raw message:
01 84 01 01 25 00
[general] Data returned:
0x01 0x01 0x25 0x00
avrdude: jtag3_setparm()
avrdude: Sending set parameter (scope 0x12, section 0, parm 0) command:
avrdude: jtag3_send(): sending 7 bytes
avrdude: Sent: . [0e] . [00] . [09] . [00] . [12] . [01] . [00] . [00] . [00] .
[01] . [02]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [09] . [00] . [12] . [80] . [00]
avrdude: jtag3_recv(): Got message seqno 9 (command_sequence == 9)
Raw message:
12 80 00
[AVR] OK
avrdude: jtag3_setparm()
avrdude: Sending set parameter (scope 0x12, section 0, parm 1) command:
avrdude: jtag3_send(): sending 7 bytes
avrdude: Sent: . [0e] . [00] . [0a] . [00] . [12] . [01] . [00] . [00] . [01] .
[01] . [01]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [0a] . [00] . [12] . [80] . [00]
avrdude: jtag3_recv(): Got message seqno 10 (command_sequence == 10)
Raw message:
12 80 00
[AVR] OK
avrdude: jtag3_setparm()
avrdude: Sending set parameter (scope 0x12, section 1, parm 0) command:
avrdude: jtag3_send(): sending 7 bytes
avrdude: Sent: . [0e] . [00] . [0b] . [00] . [12] . [01] . [00] . [01] . [00] .
[01] . [04]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [0b] . [00] . [12] . [80] . [00]
avrdude: jtag3_recv(): Got message seqno 11 (command_sequence == 11)
Raw message:
12 80 00
[AVR] OK
avrdude: jtag3_initialize(): trying to set JTAG daisy-chain info to 0,0,0,0
avrdude: jtag3_setparm()
avrdude: Sending set parameter (scope 0x12, section 1, parm 1) command:
avrdude: jtag3_send(): sending 10 bytes
avrdude: Sent: . [0e] . [00] . [0c] . [00] . [12] . [01] . [00] . [01] . [01] .
[04] . [00] . [00] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [0c] . [00] . [12] . [80] . [00]
avrdude: jtag3_recv(): Got message seqno 12 (command_sequence == 12)
Raw message:
12 80 00
[AVR] OK
avrdude: jtag3_setparm()
avrdude: Sending set parameter (scope 0x12, section 2, parm 0) command:
avrdude: jtag3_send(): sending 37 bytes
avrdude: Sent: . [0e] . [00] . [0d] . [00] . [12] . [01] . [00] . [02] . [00] .
[1f] . [00] . [01] . [00] . [00] . [02] . [00] . [00] . [00] . [00] . [00] .
[00] . [fe] . [00] . [00] . [00] . [00] . [00] . [10] . [08] . [03] . [01] .
[00] . [00] . [00] 1 [31] " [22] ! [21] . [1f] [20] W [57] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [0d] . [00] . [12] . [80] . [00]
avrdude: jtag3_recv(): Got message seqno 13 (command_sequence == 13)
Raw message:
12 80 00
[AVR] OK
avrdude: Sending AVR sign-on command:
avrdude: jtag3_send(): sending 4 bytes
avrdude: Sent: . [0e] . [00] . [0e] . [00] . [12] . [10] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [0e] . [00] . [12] . [84] . [00] ? [3f] . [10] x [78] .
[09] . [00]
avrdude: jtag3_recv(): Got message seqno 14 (command_sequence == 14)
Raw message:
12 84 00 3f 10 78 09 00
[AVR] Data returned:
0x00 0x3f 0x10 0x78 0x09 0x00
avrdude: JTAG ID returned: 0x3f 0x10 0x78 0x09
avrdude: AVR device initialized and ready to accept instructions
Reading | | 0% 0.00savrdude:
jtag3_read_byte(.., signature, 0x0, ...)
avrdude: Sending enter progmode command:
avrdude: jtag3_send(): sending 3 bytes
avrdude: Sent: . [0e] . [00] . [0f] . [00] . [12] . [15] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [0f] . [00] . [12] . [80] . [00]
avrdude: jtag3_recv(): Got message seqno 15 (command_sequence == 15)
Raw message:
12 80 00
[AVR] OK
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [10] . [00] . [12] ! [21] . [00] . [b4] . [00] .
[00] . [00] . [00] . [03] . [00] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [10] . [00] . [12] . [84] . [00] . [1e] . [97] . [81] .
[00]
avrdude: jtag3_recv(): Got message seqno 16 (command_sequence == 16)
Raw message:
12 84 00 1e 97 81 00
[AVR] Data returned:
0x00 0x1e 0x97 0x81 0x00
avrdude: jtag3_read_byte(.., signature, 0x1, ...)
Reading | ################# | 33%
0.07savrdude: jtag3_read_byte(.., signature, 0x2, ...)
Reading | ################################################## | 100% 0.07s
avrdude: Device signature = 0x1e9781
avrdude: jtag3_read_byte(.., lfuse, 0x0, ...)
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [11] . [00] . [12] ! [21] . [00] . [b2] . [00] .
[00] . [00] . [00] . [01] . [00] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [11] . [00] . [12] . [84] . [00] . [ef] . [00]
avrdude: jtag3_recv(): Got message seqno 17 (command_sequence == 17)
Raw message:
12 84 00 ef 00
[AVR] Data returned:
0x00 0xef 0x00
avrdude: safemode read 1, lfuse value: ef
avrdude: jtag3_read_byte(.., lfuse, 0x0, ...)
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [12] . [00] . [12] ! [21] . [00] . [b2] . [00] .
[00] . [00] . [00] . [01] . [00] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [12] . [00] . [12] . [84] . [00] . [ef] . [00]
avrdude: jtag3_recv(): Got message seqno 18 (command_sequence == 18)
Raw message:
12 84 00 ef 00
[AVR] Data returned:
0x00 0xef 0x00
avrdude: safemode read 2, lfuse value: ef
avrdude: jtag3_read_byte(.., lfuse, 0x0, ...)
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [13] . [00] . [12] ! [21] . [00] . [b2] . [00] .
[00] . [00] . [00] . [01] . [00] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [13] . [00] . [12] . [84] . [00] . [ef] . [00]
avrdude: jtag3_recv(): Got message seqno 19 (command_sequence == 19)
Raw message:
12 84 00 ef 00
[AVR] Data returned:
0x00 0xef 0x00
avrdude: safemode read 3, lfuse value: ef
avrdude: safemode: lfuse reads as EF
avrdude: jtag3_read_byte(.., hfuse, 0x0, ...)
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [14] . [00] . [12] ! [21] . [00] . [b2] . [01] .
[00] . [00] . [00] . [01] . [00] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [14] . [00] . [12] . [84] . [00] . [11] . [00]
avrdude: jtag3_recv(): Got message seqno 20 (command_sequence == 20)
Raw message:
12 84 00 11 00
[AVR] Data returned:
0x00 0x11 0x00
avrdude: safemode read 1, hfuse value: 11
avrdude: jtag3_read_byte(.., hfuse, 0x0, ...)
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [15] . [00] . [12] ! [21] . [00] . [b2] . [01] .
[00] . [00] . [00] . [01] . [00] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [15] . [00] . [12] . [84] . [00] . [11] . [00]
avrdude: jtag3_recv(): Got message seqno 21 (command_sequence == 21)
Raw message:
12 84 00 11 00
[AVR] Data returned:
0x00 0x11 0x00
avrdude: safemode read 2, hfuse value: 11
avrdude: jtag3_read_byte(.., hfuse, 0x0, ...)
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [16] . [00] . [12] ! [21] . [00] . [b2] . [01] .
[00] . [00] . [00] . [01] . [00] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [16] . [00] . [12] . [84] . [00] . [11] . [00]
avrdude: jtag3_recv(): Got message seqno 22 (command_sequence == 22)
Raw message:
12 84 00 11 00
[AVR] Data returned:
0x00 0x11 0x00
avrdude: safemode read 3, hfuse value: 11
avrdude: safemode: hfuse reads as 11
avrdude: jtag3_read_byte(.., efuse, 0x0, ...)
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [17] . [00] . [12] ! [21] . [00] . [b2] . [02] .
[00] . [00] . [00] . [01] . [00] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [17] . [00] . [12] . [84] . [00] . [f5] . [00]
avrdude: jtag3_recv(): Got message seqno 23 (command_sequence == 23)
Raw message:
12 84 00 f5 00
[AVR] Data returned:
0x00 0xf5 0x00
avrdude: safemode read 1, efuse value: f5
avrdude: jtag3_read_byte(.., efuse, 0x0, ...)
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [18] . [00] . [12] ! [21] . [00] . [b2] . [02] .
[00] . [00] . [00] . [01] . [00] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [18] . [00] . [12] . [84] . [00] . [f5] . [00]
avrdude: jtag3_recv(): Got message seqno 24 (command_sequence == 24)
Raw message:
12 84 00 f5 00
[AVR] Data returned:
0x00 0xf5 0x00
avrdude: safemode read 2, efuse value: f5
avrdude: jtag3_read_byte(.., efuse, 0x0, ...)
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [19] . [00] . [12] ! [21] . [00] . [b2] . [02] .
[00] . [00] . [00] . [01] . [00] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [19] . [00] . [12] . [84] . [00] . [f5] . [00]
avrdude: jtag3_recv(): Got message seqno 25 (command_sequence == 25)
Raw message:
12 84 00 f5 00
[AVR] Data returned:
0x00 0xf5 0x00
avrdude: safemode read 3, efuse value: f5
avrdude: safemode: efuse reads as F5
Reading a byte in an interactive Avrdude session (-vvvv option)
===============================================================
avrdude> read eeprom 0x014 1
>>> read eeprom 0x014 1
avrdude: jtag3_read_byte(.., eeprom, 0x14, ...)
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [1a] . [00] . [12] ! [21] . [00] . [b1] . [10] .
[00] . [00] . [00] . [08] . [00] . [00] . [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [1a] . [00] . [12] . [84] . [00] . [a8] . [00] . [ff] .
[ff] . [10] . [ff] . [02] . [ff] . [00]
avrdude: jtag3_recv(): Got message seqno 26 (command_sequence == 26)
Raw message:
12 84 00 a8 00 ff ff 10 ff 02 ff 00
[AVR] Data returned:
0x00 0xa8 0x00 0xff 0xff 0x10 0xff 0x02 0xff 0x00
0014 10 |. |
Failed write of a byte in an interactive Avrdude session (-vvvv option)
=======================================================================
avrdude> write eeprom 0x014 0x11
>>> write eeprom 0x014 0x11
avrdude: jtag3_write_byte(.., eeprom, 0x14, ...)
avrdude: jtag3_read_byte(.., eeprom, 0x14, ...)
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [1b] . [00] . [12] ! [21] . [00] . [b1] . [10] .
[00] . [00] . [00] . [08] . [00] .. [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [1b] . [00] . [12] . [84] . [00] . [a8] . [00] . [ff] .
[ff] . [10] . [ff] . [02] . [ff] .
avrdude: jtag3_recv(): Got message seqno 27 (command_sequence == 27)
Raw message:
12 84 00 a8 00 ff ff 10 ff 02 ff 00
[AVR] Data returned:
0x00 0xa8 0x00 0xff 0xff 0x10 0xff 0x02 0xff 0x00
avrdude: jtag3_paged_write(.., eeprom, 8, 8)
avrdude: jtag3_paged_write(): block_size at addr 16 is 8
avrdude: Sending write memory command:
avrdude: jtag3_send(): sending 21 bytes
avrdude: Sent: . [0e] . [00] . [1c] . [00] . [12] # [23] . [00] . [b1] . [10] .
[00] . [00] . [00] . [08] . [00] .. [00] . [00] . [a8] . [00] . [ff] . [ff] .
[11] . [ff] . [02] . [ff]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [1c] . [00] . [12] . [80] . [00]
avrdude: jtag3_recv(): Got message seqno 28 (command_sequence == 28)
Raw message:
12 80 00
[AVR] OK
avrdude: jtag3_read_byte(.., eeprom, 0x14, ...)
avrdude: Sending read memory command:
avrdude: jtag3_send(): sending 12 bytes
avrdude: Sent: . [0e] . [00] . [1d] . [00] . [12] ! [21] . [00] . [b1] . [10] .
[00] . [00] . [00] . [08] . [00] .. [00]
avrdude: jtag3_recv():
avrdude: Recv: . [0e] . [1d] . [00] . [12] . [84] . [00] . [a8] . [00] . [ff] .
[ff] . [10] . [ff] . [02] . [ff] .
avrdude: jtag3_recv(): Got message seqno 29 (command_sequence == 29)
Raw message:
12 84 00 a8 00 ff ff 10 ff 02 ff 00
[AVR] Data returned:
0x00 0xa8 0x00 0xff 0xff 0x10 0xff 0x02 0xff 0x00
avrdude (write): error writing 0x11 at 0x00014 cell=0x10
Reading a byte with Atmel Studio (with debug option)
====================================================
C:\Users\Juergen\Documents>atprogram -v -t jtagice3 -i jtag -d at90can128 read
-ee -s 1 -o 0x14
[DEBUG] Starting execution of "read"
[DEBUG] Starting process 'C:\Program Files (x86)\Atmel\Atmel Studio
6.1\atbackend\atbackend.exe'
[DEBUG] Connecting to TCP:127.0.0.1:49332
[INFO] Connected to jtagicemk3, fw version: 2.21
[INFO] Firmware check OK
:0100140010DB
:00000001FF
[DEBUG] Command "read" finished with return code 0
[DEBUG] Exit successfully.
Failed write of a byte with Atmel Studio (with debug option)
============================================================
C:\Users\Juergen\Documents>atprogram -v -t jtagice3 -i jtag -d at90can128 write
-ee -v -o 0x15 --values 0x37
[DEBUG] Starting execution of "write"
[DEBUG] Starting process 'C:\Program Files (x86)\Atmel\Atmel Studio
6.1\atbackend\atbackend.exe'
[DEBUG] Connecting to TCP:127.0.0.1:49354
[INFO] Connected to jtagicemk3, fw version: 2.21
[INFO] Firmware check OK
[DEBUG] Writing eeprom...
[DEBUG] Writing 1 byte(s) to offset 21
[DEBUG] Verifying write...
An error occured executing a command (write):
Verification failed!
[DEBUG] Exit successfully.
_______________________________________________
AVR-chat mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/avr-chat