AVR ATmega ICSP Algorithmus

26/12/2012 - 01:10 von Johannes Bauer | Report spam
Hallo Gruppe,

ich werde schier verrückt beim Implementieren des ICSP-Algorithmus für
einen ATmega8. Keine Ahnung was ich falsch mache, aber ich frickel seid
Stunden ergebnislos herum. Hier der Stand:

Ich will das Ding neu flashen. Dafür sende ich zuerst das Programming
Enable:

SPI TX 4: ac 53 00 00

Das 0x53 echot zurück (also OK laut Datenblatt). Dann lese ich die
Signatur aus:

SPI TX 4: 30 00 00 00
SPI TX 4: 30 00 01 00
SPI TX 4: 30 00 02 00

Funktioniert perfekt, 0x1e9307 kommt zurück (byteweise natürlich).

Dann programmiere ich die Shadow-Page (hier einfach nur ein Testpattern
00..3f):

SPI TX 4: 40 00 00 00
SPI TX 4: 48 00 00 01
SPI TX 4: 40 00 01 02
SPI TX 4: 48 00 01 03
[...]
SPI TX 4: 48 00 1e 3d
SPI TX 4: 40 00 1f 3e
SPI TX 4: 48 00 1f 3f

und sende dann das Programmier-Kommando (hier Page 0):

SPI TX 4: 4c 00 00 00

Und warte 5ms. Passieren tut folgendes: Die Page 0 wird offenbar
programmiert (0x4c geht also), aber mit Müll. Also scheinbar steht in
der Shadow-Page Müll. Also konkret:

00000000000000000000000000000c0000000002100100000000080008000400
0000200020002001000108012001280120013001300104011020183a08251420

Auslesen kann ich den ganzen Chip einwandfrei (mit anderem Programmer
Testpattern reingeschrieben und dann in meinem Zielsystem ausgelesen --
alles einwandfrei). Habe den SPI-Clock auf 125 kHz runtergedreht, ohne
Verànderung der Situation. Spannung sind 5V (Labornetzteil),
Blockkondensatoren 100nF überall dran. Ich hab keine Ahnung woran das
noch liegen könnte.

Hat jemand eine Idee?

Viele Grüße,
Johannes



Wo hattest Du das Beben nochmal GENAU vorhergesagt?


Zumindest nicht öffentlich!


Ah, der neueste und bis heute genialste Streich unsere großen
Kosmologen: Die Geheim-Vorhersage.
- Karl Kaos über Rüdiger Thomas in dsa <hidbv3$om2$1@speranza.aioe.org>
 

Lesen sie die antworten

#1 Michael Schwingen
26/12/2012 - 09:25 | Warnen spam
On 2012-12-26, Johannes Bauer wrote:
Und warte 5ms. Passieren tut folgendes: Die Page 0 wird offenbar
programmiert (0x4c geht also), aber mit Müll. Also scheinbar steht in
der Shadow-Page Müll. Also konkret:

00000000000000000000000000000c0000000002100100000000080008000400
0000200020002001000108012001280120013001300104011020183a08251420



Hast Du das Flash vorher gelöscht? Beim Programmieren kann man nur Bits von
1 auf 0 schreiben, nicht zurück.

cu
Michael

Ähnliche fragen