hi, ich programmiere gerade einen Controller der über SPI ab und zu Daten auf einen EEPROM schreibt. Ich will jetzt testen wie sich das ganze verhält wenn während dem Schreibvorgang die Stromversorgung einbricht, also z.B. ob die Daten beim nächsten Starten als korrupt erkannt werden. Jetzt müsste ich am besten einfach im richtigen Momemt, also genau während die zu schreibenden Daten am SPI Bus liegen, die Stromversorgung unterbrechen. Dafür bin ich allerdings natürlich viel zu langsam. Wie testet man sowas also am besten?
>Jetzt müsste ich am besten einfach im richtigen Momemt, also genau >während die zu schreibenden Daten am SPI Bus liegen, die Stromversorgung >unterbrechen. Dafür bin ich allerdings natürlich viel zu langsam. > >Wie testet man sowas also am besten? Nimm ein Software SPI. Da kannst du quasi bei jedem Bit einfach mal anhalten und dann die Spannung abschalten.
Besser ist den Spannungseinbruch am Eingang zu ueberwachen.Mit genuegend Reserve im Elko kannst du dann gemuetlich alle Datenuebertragungen abschliessen.
Ups, ein EEPROM wird ca. 5ms brauchen, um einen Bereich zu beschreiben. Das fängt aber erst an, wenn der ganze Block per I2C oder SPI übertragen wurde. Das läuft dann self-timed und wird nur durch setzen eines Bits verraten. Du schreibst also etwas in das EEPROM und schaltest 2,3,4 ms danach die Versorgung des EEPROMs ab. Da hilft evtl. ein Portpin und ein PNP-Transistor (BC556???).
gerhard kempf schrieb: > also z.B. ob die Daten beim nächsten Starten als korrupt > erkannt werden. Das musst du schon selber nachprüfen, mittels Checksum oder CRC. Und das ist dann ganz unabhängig von der Technologie, geht auch im RAM, macht aber nur bei Datenblöcken Sinn, nicht bei einzelenen Bytes. Festplatten u.Ä. haben CRC-Prüfung für die Sektoren, EEProms nicht, da sind alle Daten gültig die drinstehen können. Gruss Reinhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.