Hallo,
Ich habe hier Arduino-Code zum Auslesen der Signatur-Bytes von AVRs.
Es werden die letzten 4 Bytes der Signatur (hier vom Tiny85) korrekt
ausgelesen, aber ich habe Verständnisprobleme bei den verwendeten
SPI-Kommandos.
Lt. der Adresstabelle aus dem Datenblatt müssten mit den verwendeten
Kommandos andere Informationen ausgelesen werden.
Anstatt zuerst der Adresse 0x01 müsste es doch 0x00 bzw. 0x04 sein.
Blöderweise ist auch die Tabelle 20-7 im Datenblatt fehlerhaft.
Danke für eure Hilfe :)
Martin B. schrieb:> Signature ist Byte 0,2,4>> Oder hab ich das falsch verstanden?
Ja 😅 Also die Byte-Indizierung ist schon 0 bis 2.
Aber die eigentlichen Adressen, die gelesen werden müssen sind 0x00,
0x02 und 0x04.
Das passt aber nicht zu den angegebenen SPI-Kommandos
S. Landolt schrieb:> Vielleicht hilft die Zeile 'Read Signature Byte' im Anhang zum> Verständnis.
Das ist ja verstanden, was passiert, nur passen die Kommandos
nicht zu der Tabelle 20-6 (siehe Screenshot im ersten Post).
Oder sendet man als Kommando tatsächlich den Byteindex, den man auslesen
will, anstatt der Adresse?
Übrigens ein weiterer Tippfehler auf angehängtem Bild 🙄
Und lt. Microchip ist die Byteindizierung in der Tabelle von links nach
rechts aufsteigend.
> passen die Kommandos ... nicht zu der Tabelle 20-6
?
Dort steht 'Signature byte 0,1,2', und genau so wird im SPI-Befehl $30
adressiert.
Dass die 3 Bytes auf 3 Worte verteilt sind, steht (wortwörtlich) auf
einem anderen Blatt.
Vor langer Zeit, zum Beispiel beim AT90S8515, war von einer 'Signature
Imprint Table' nicht die Rede, man kam gar nicht auf die Idee, beim
Auslesen der Signatur etwas anderes als 0, 1 und 2 zu benutzen.