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?
Hat noch niemand dieses EEPROM benutzt? :-/
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
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!
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....
> 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 ...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.