Hallo,
ich habe heute mal versucht einen seriellen EEPROM über I²C/TWI
anzusteuern. Das ist ein 16kbit Typ und sollte somit 2048 Bytes
speichern können.
Jetzt würde ich gerne mal durch einen kleinen Test überprüfen ob auch
alle Speicherstellen richtig angesprochen werden. Dazu habe ich
folgenden Code verwendet, doch der hat Lücken. :-(
(Prinzipiell sollte es funktionieren, das was ich reinschreibe kann ich
auch wieder auslesen.)
Spätestens nach 256 Bytes sind die Werte im Speicherplatz x+256, x+512,
x+768, x+1024... usw. immer gleich.
Wenn ich nun schon an der falschen Adresse schreibe und dann auch an der
falschen wieder Lese ist meine Routine murx...
SET_LED_X und CLR_LED_X = Signalisierung über eine LED
Schreib doch einen Block Daten, lies und prüfe den gesamten Speicher,
lösche den Block, schreibe den nächsten Block und lies und prüfe wieder
den gesamten Speicher usw.
hp-freund schrieb:> Dann kannst Du immer noch 2Bytes der Zählvariable hintereinander> speichern. ... Wenn Du das einmal> mit nicht invertierten und einmal mit invertierten Werten machst, prüfst> Du dabei sogar die Funktion jedes einzelnen bits im Speicher...
Das würde ich sehr gene verstehen, ich muss gestehen das habe ich aber
nicht... :-(
Ich habe nun nochmal einen 2. Test gemacht und über 256 Byte immer den
gleichen Wert eingeschrieben und ausgelesen.
Wenn was falsch angesprocehn wird, sollte es doch mit den beiden Test's
zu sehen sein oder?
Gruß AVRli...
hp-freund schrieb:> Schreib doch einen Block Daten, lies und prüfe den gesamten Speicher,> lösche den Block, schreibe den nächsten Block und lies und prüfe wieder> den gesamten Speicher usw.
Aber dann weiß ich ja wieder nicht ob der Block im richtigen Bereich
gespeichert wurde... :(
Ich habe nun den Quelltext etwas erweitert um über den UART eine Art
HEXDUMP vom EEPROM zu bekommen. Wenn ich aber ganz ehrlich bin sieht es
zwar toll aus, dennoch ist völlig unklar ob der Bereich vielfaches von
256 wirklich auf 512, 1024 und so weiter liegt.
grübel
AVRli...
Dann kannst Du immer noch 2Bytes der Zählvariable hintereinander
speichern. Das ergibt dann ein eindeutiges Muster. Wenn Du das einmal
mit nicht invertierten und einmal mit invertierten Werten machst, prüfst
Du dabei sogar die Funktion jedes einzelnen bits im Speicher...
Bitte nicht steinigen, ich habe schon geantwortet aber das könnte man
übersehen da durch die Zeitumstellung mein Beitrag VOR hp-freund seinen
Beitrag gelandet ist.
hp-freund schrieb:> Dann kannst Du immer noch 2Bytes der Zählvariable hintereinander> speichern.
0x0000: 00 01 FF FE 00 02 FF ED 00 03 FF FC 00 04 FF FD
So?
Schönes WE AVRli...
d1.txt enthält den ersten Durchlauf, d2.txt den zweiten invertierten.
Wie Du das machst ist eigentlich egal, hauptsache es ergeben sich
verschiedene auswertbare Ergebnisse.
Hi,
und danke für Deine Hilfe.
Ich habe nun folgenden DUMP im EEPROM schreiben sowie lesen können.
Würde sagen, "das passt"! :-D
Bei 0x0400 sieht man den Umsprung im Zähler von 00 auf 01...
Das sollte für den Test der Schreib/Lese Zugriffe ausreichen oder hat es
noch Lücken?
Gruß AVRli...