EEPROM 93C66 Dummy-Bit-Problem?

Könnte jemand bitte den Grund erklären, warum das 93C66-EEPROM während eines Lesevorgangs eine Dummy-0 ausgibt?

Aus Datenblatt:

5.1 Daten aus dem Speicher lesen Der Befehl „Daten aus dem Speicher lesen“ (READ) gibt Daten am seriellen Datenausgang (Q) aus. Wenn die Anweisung empfangen wird, werden der Operationscode und die Adresse decodiert, und die Daten aus dem Speicher werden zu einem Ausgangsschieberegister übertragen. Zuerst wird ein Dummy-0-Bit ausgegeben, gefolgt vom 8-Bit-Byte oder 16-Bit-Wort, wobei das höchstwertige Bit zuerst kommt. Ausgangsdatenänderungen werden durch die ansteigende Flanke von Serial Clock (C) ausgelöst. Der M93Cx6 inkrementiert automatisch das interne Adressregister und taktet das nächste Byte (oder Wort) aus, solange der Chip-Select-Eingang (S) hoch gehalten wird. In diesem Fall wird das Dummy-0-Bit nicht zwischen Bytes (oder Wörtern) ausgegeben und es kann ein kontinuierlicher Datenstrom gelesen werden.

Wenn die Eingabe/Ausgabe byteorientiert ist und das erste Bit eines Lesevorgangs ein Dummy-Bit 0 ist, werden alle Daten danach um ein Bit verschoben (verzögert), um Platz für dieses Dummy-Bit zu schaffen.

Wenn zum Beispiel die im EEPROM gespeicherten Daten sind:

byte1:[000000001] byte2:[000000001] 

es wird aus dem EEPROM gelesen als:

byte1:[000000000] byte2:[100000000] byte3:[100000000]

Ich würde gerne einige Daten im EEPROM speichern, aber diese Verschiebung ist das Problem, was nützt dieses Teufelsding namens Dummy 0?

BEARBEITEN:

Ich möchte nur einen Kommentar zu meiner Lösung hinterlassen. Da ich in meinem Fall IC ändern konnte, habe ich weiterhin 25LC640A-I/P DIL verwendet, es verhält sich so, wie ich es wollte, also wenn jemand einen Hinweis braucht, hier ist es.

Ich habe keine Ahnung, warum sie es tun, aber da es im Datenblatt steht, müssen Sie damit leben. Es scheint ein ziemlich dummes Design zu sein. Ärgern Sie sich nicht über das „Warum“. Wenn Sie sich das Datenblatt ansehen, müssen Sie anscheinend das Dummy-Bit 0 beim Schreiben nicht senden.
aber es beschneidet meine Werte und korrumpiert sie. Ich versuche herauszufinden, warum, um zu sehen, ob es einen Grund dafür gibt.
@ user505160 Der Chip beschädigt Ihre Daten nicht, indem er ein Dummy-Bit einfügt, es ist Ihr Programm, das die Daten beschädigt, indem es das Dummy-Bit nicht ignoriert.

Antworten (1)

Wir verwenden den 9346 für mehrere unserer Produkte, und er hat dasselbe Dummy-„0“-Teufelsding.

Ich denke, der Grund dafür ist, dass das letzte Adressbit (A0) eingetaktet sein muss, bevor es die Daten liest und beginnt, die angeforderten Daten auszutakten. Wenn Sie sich das Datenblatt ansehen, können Sie sehen, dass das Dummy-Bit das A0-Adressbit überlappt.

Sie können dies beheben, indem Sie Feuer mit Feuer bekämpfen :-). Fügen Sie Ihr eigenes Dummy-Teufelsbit am Ende des Adressworts hinzu (verlängern Sie die Länge um eins), sodass Ihr SPI-Port das erste Bit der Antwort ignoriert und beginnt, die Antwort an der richtigen Grenze zu takten.

Außerdem muss ich immer genau hinschauen, um zu sehen, ob meine CPOL- und CPHA-Einstellungen korrekt sind. Manchmal funktionieren die Dinge fast, wenn diese Einstellungen falsch sind, aber um ein Bit abweichen (falsches CPHA) oder manchmal einfach unzuverlässig (falsches CPOL).