Hilfe bei EEPROM-Timing benötigt! Verständnisproblem.

Gast #1731272
Lesenswert?

Morgen alle zusammen!

Ich habe ein kleines Problem mit einem EEPROM. Es ist ein 93LC76 von 
Microchip. Im Bild habe ich den Teil zum Lesen des EEPROMS angehängt.

Das Problem ist hierbei, dass ich in meinem USCI-Modul ja einstellen 
muss, wann Daten geändert und wann übernommen werden.

Im Bild sieht man aber jetzt, dass in den Dateneingang die Bits mit 
positiver Flanke reingeclockt werden und nachdem OP-Code und Adresse 
drinne sind, kommen die Daten bei fallender Flanke aus dem EEPROM raus.

Das Problem ist jetzt, dass ich halt 3 Bytes senden muss, um den Inhalt 
zu erhalten.

1. Byte:  START-Bit|OP-Code|OP-Code|egal|Adresse|Adresse|Adresse|Adresse

2. Byte:  Adresse|Adresse|Adresse|Adresse|Adresse|Adresse|egal|egal

3. Byte:  egal|egal|egal|egal|egal|egal|egal|egal|

Die Daten kommen nun ab dem letzten Adressbit raus. Das dritte Byte 
brauche ich, um die restlichen 6Bit des Ergebnisses rauszuclocken.

Danach setze ich das Ergebnis aus den 2Bit des RX-Buffers vom 2. Byte 
und den 6Bit vom 3. Byte zusammen.

Generell kommt auch das richtige raus, das sehe ich auf dem Oszilloskop, 
aber halt immer mit fallender Flanke - mein USCI bekommt das natürlich 
nicht auf die Kette, weil es andersrum eingestellt ist.

Wie macht ihr das?
Angehängte Dateien:
(Firma: DC3AX) #1731564
Lesenswert?

Also...

Ich habe ja schon vieles gesehen, aber das toppt es mal wieder. 
Microchip bekommt ja schon kein vernünftiges I2C hin und nun verbaseln 
sie auch noch SPI. Wenn man die ungeraden Commands wenigstens auf gerade 
vielfache von 8 Bit aufrunden könnte, so könnte man ja zwischen dem 
Senden der Commands und dem Lesen der Daten das SPI umkonfigurieren, 
aber so sehe ich da außer einer Lösung mit einem CPLD wenig Optionen. 
Oder man wechselt auf Bitbanging SPI.

MC hat sich wohl gedacht, dass man das ganze zweiphasig nutzen kann, 
also senden auf steigender und Empfangen auf fallender Flanke. Im 
Datenblatt steht aber auf den ersten Blick nichts, dass man neue 
Commands schon in der Auslaufphase des aktuellen Commands senden darf. 
Damit wäre der Sinn dahin.

Echt murks, wenn man so einen Speicher an einen einfachen Controller 
adaptieren will.

Vielleicht findest Du ja noch eine App-Note bei MC, die eventuell ein 
Beispiel für einen kleinen Controller beihaltet.

Gruß, Ulrich
Gast #1731850
Lesenswert?

Ulrich P. schrieb:
> Wenn man die ungeraden Commands wenigstens auf gerade
> vielfache von 8 Bit aufrunden könnte, so könnte man ja zwischen dem
> Senden der Commands und dem Lesen der Daten das SPI umkonfigurieren

Das habe ich mir auch erst gedacht, aber man kann es drehen und wenden 
wie man will, das geht nicht!
Gast #1731853
Lesenswert?

Es funktioniert jetzt, wenn ich das zuammengesetzte Byte am Ende um eine 
Stelle weiter nach links schifte - aber ich denke, das ist grad einfach 
Glück, dass der Controller da noch so gerade vorm Bitwechsel das 
bestehende abfragen kann....
Gast #1732161
Lesenswert?

> Microchip bekommt ja schon kein vernünftiges I2C hin und nun verbaseln

Gibt es denn da ein Problem? Ich habe etliche Microchip-EEPROMS in allen 
möglichen Grössen in Gebrauch (alle I2C) und keinerlei Probleme ...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren