[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first byte
From: |
Joerg Wunsch |
Subject: |
[avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page |
Date: |
Wed, 19 Nov 2014 15:49:23 +0000 |
User-agent: |
Mozilla/5.0 (X11; FreeBSD amd64; rv:33.0) Gecko/20100101 Firefox/33.0 |
Follow-up Comment #19, bug #41561 (project avrdude):
I traced the ISP traffic with a logic analyzer, and decoded
the data stream back into ISP commands. See the attachment
for the full trace. The bug is that the "write memory page"
command is issued twice:
Time 393.416 ms: MOSI Load program memory page, address 0x007f, low byte,
value 0x6d
Time 393.910 ms: MOSI Load program memory page, address 0x007f, high byte,
value 0x6d
Time 394.370 ms: MOSI Write program memory page, address 0x007f
Time 394.804 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 395.218 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 395.688 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 396.131 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 396.538 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 397.013 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 397.427 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 397.903 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 398.368 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 398.805 ms: MOSI Read program memory, address 0x007f, high byte, value
0x6d
Time 399.222 ms: MOSI Write program memory page, address 0x007f
Time 399.686 ms: MOSI Read program memory, address 0x007f, high byte, value
0x6d
Time 401.510 ms: MOSI Load program memory page, address 0x0080, low byte,
value 0x6f
Time 402.139 ms: MOSI Load program memory page, address 0x0080, high byte,
value 0x72
After filling the page buffer, the page is being programmed at time
394.370 ms. Then, USBasp polls the page for a response != 0xff, which
indicates the end of the write operation (time 398.805 ms). However,
just after this, it issues another "write page" command at 399.222 ms,
but then proceeds to fill the page buffer again for the next page.
Apparently, the old devices (ATmega64/128) respond to the second page
write immediately with a poll value of "OK" (i.e., they return the
correct value), yet they are still busy programming afterwards. In
contrast, the newer devices (like ATmega1281) correctly respond again
with 0xff for the second page write operation:
Time 391.417 ms: MOSI Load program memory page, address 0x007f, low byte,
value 0x6d
Time 391.910 ms: MOSI Load program memory page, address 0x007f, high byte,
value 0x6d
Time 392.371 ms: MOSI Write program memory page, address 0x007f
Time 392.806 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 393.218 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 393.689 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 394.130 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 394.539 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 395.014 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 395.428 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 395.903 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 396.369 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 396.806 ms: MOSI Read program memory, address 0x007f, high byte, value
0x6d
Time 397.222 ms: MOSI Write program memory page, address 0x007f
Time 397.687 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 398.130 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 398.539 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 399.013 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 399.431 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 399.903 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 400.368 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 400.805 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 401.218 ms: MOSI Read program memory, address 0x007f, high byte, value
0xff
Time 401.688 ms: MOSI Read program memory, address 0x007f, high byte, value
0x6d
Time 403.640 ms: MOSI Load program memory page, address 0x0080, low byte,
value 0x6f
Time 404.155 ms: MOSI Load program memory page, address 0x0080, high byte,
value 0x72
which explains why they can be programmed fine.
But obviously, the second page write operation is completely unnecessary.
(file #32475, file #32476)
_______________________________________________________
Additional Item Attachment:
File name: usbasp-trace-64.txt Size:388 KB
File name: usbasp-trace-1281.txt Size:394 KB
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?41561>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, (continued)
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Randy Perkins, 2014/11/16
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Randy Perkins, 2014/11/16
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Joerg Wunsch, 2014/11/16
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Randy Perkins, 2014/11/16
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Joerg Wunsch, 2014/11/18
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Randy Perkins, 2014/11/18
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Randy Perkins, 2014/11/18
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Randy Perkins, 2014/11/18
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Randy Perkins, 2014/11/19
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Joerg Wunsch, 2014/11/19
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page,
Joerg Wunsch <=
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Joerg Wunsch, 2014/11/19
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Joerg Wunsch, 2014/11/19
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Randy Perkins, 2014/11/19
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Randy Perkins, 2014/11/19
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Joerg Wunsch, 2014/11/20
- [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Randy Perkins, 2014/11/20
- Re: [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, Joerg Wunsch, 2014/11/21
- Re: [avrdude-dev] [bug #41561] AVRDUDE 6.0.1/USBasp doesn't write first bytes of flash page, axel . wachtler, 2014/11/21