Hallo,
ich versuche mich gerade in EEPROMs einzuarbeiten. Aus einer alten
Festplatte habe ich mir einen M25P05-AV geklaut.
Schaltung:
1 Chip Select auf GPIO von µC
2 MISO
3 Write Protect mit 10 kOhm auf 3 V
4 GND
5 MOSI
6 Clock
7 Hold mit 10 kOhm auf 3 V
8 VCC 3 V
Lesen funktioniert. Da der Chip vorher in der HDD verbaut war konnte ich
die Daten die darauf gespeichert waren lesen.
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); //Slave Select High (Inaktiv)
22
23
HAL_Delay(1000);
Das Statusregister (RDSR 0x03) spuckt mir 0x02 aus. Also nach Datenblatt
sämtliche Protections aufgehoben und Schreibmodus aktiviert. Warum
werden keine Daten geschrieben?
Ich habe mich mal am zweiten Sektor vergriffen. Dort funktionierte das
schreiben, so wie es sollte. Aber halt nur so lang, bis alles 0 ist.
Nach dem löschen steht überall ff, aber lässt sich nicht beschreiben.
Also ist der Fehler beim Löschen, nicht beim Schreiben. Muss ich noch
etwas freigeben?
Heinz M. schrieb:> Nach dem löschen steht überall ff
Wo steht das?
Beachte das ein Datenpuffer vorgeschaltet ist, der dann mit der
richtigen Sequenz in den Speicher übernommen wird.
Im Speicher steht in jeder Page 0xFF.
Datenpuffer dürfte nicht interessieren, weil:
1. Vor dem löschen ging das schreiben.
2. Wenn man beim löschen zu früh auf den Speicher zugreift gibt 0x00.
Wenn er fertig ist mit löschen, dann 0xFF. An dem Puffer komme ich
ungewollte nicht vorbei.