mikrocontroller.net

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


Autor: Jens (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat noch niemand dieses EEPROM benutzt? :-/

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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....

Autor: stephan_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.