Forum: Mikrocontroller und Digitale Elektronik Hilfe bei EEPROM-Timing benötigt! Verständnisproblem.


von Jens (Gast)


Angehängte Dateien:

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?

von Jens (Gast)


Lesenswert?

Hat noch niemand dieses EEPROM benutzt? :-/

von Ulrich P. (uprinz)


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

von Jens (Gast)


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!

von Jens (Gast)


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....

von stephan_ (Gast)


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 ...

von Jens (Gast)


Lesenswert?

Ich hab ja die SPI (bzw. Microwire) Variante - wie gesagt, es geht, aber 
ich hoffe, ich habe jetzt nicht nur gerade Glück dabei.

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
Noch kein Account? Hier anmelden.