www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI Mode und EEPROM


Autor: Mille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich verwende die SPI Schnittstelle zur Kommunikation mit mehreren 
Bausteinen (z.B. Infineon TLE8102, Infineon TLE6244).
Nun bin ich erst dahinter gekommen, dass es mehrere SPI Modes (1-4) 
gibt, die sich aufgrund der Parameter CPOL (SCLK Idle Low oder High) und 
CPHA (Daten werden bei der ersten oder zweiten Flanke übernommen, 
nachdem SS auf Low gezogen wird) unterscheiden.
Wenn ich nun mehrere SPI Bausteine auf einer Schnittstelle betreiben 
möchte (und dabei nicht zur Laufzeit die Schnittstellenparameter von 
meinem µC ändern will), muss ich zwangsweise Bauteile des selbem Modis 
verwenden?
Nun ist bei meinem Bausteinen (TLE8102 und TLE6244) nicht der Mode im 
Datenblatt angegeben, jedoch sollte dieser Mode "0" sein - lieg ich da 
richtig? (SCLK Low im Idle und Daten werden bei der ersten fallenden 
Flanke übertragen). Ist das normal, dass man sich das vom 
Timing-Diagramm selbst rauslesen muss oder habe ich das sonst wo im 
Datenblatt übersehen?

Kann mir jemand vielleicht ein SPI E²PROM im Mode "0" nennen?
Bräuchte eines mit ~32kByte Speicher...

Danke und LG,
Mille

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mille schrieb:

> muss ich zwangsweise Bauteile des selbem Modis verwenden?

Nein, das kann man ad hoc umschalten.

Autor: Mille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok danke, ich möchte aber zur Laufzeit keine Umschaltung des Mods, da 
ich mir lieber ein E²PROM mit dem selben Mode suchen möchte.

Meine eingesetzten Bausteine haben glaube ich doch Mode "1", da sie beim 
empfangen auf die fallende Flanke gehen und das bei CPOL=0 ja die zweite 
sein muss. Ist der Mode "1" dann damit konsistent, dass beim Senden von 
Daten diese mit der steigenden Flanke gesendet werden?

Danke und LG;
Mille

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

Bewertung
0 lesenswert
nicht lesenswert
Das Timing der SPI-Übertragung ist wie im Dateianhang definiert...

Vielleicht kann mir ja jemand bestätigen, dass es sich um Mode "1" 
handelt?

lg mille

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na sieh mal im Datenblatt deines µC wie da welche SPI modes definiert 
und benannt sind.
Die Namen der einzelnen Modes sind NICHT allgemein gültig definiert, die 
Beschreibungen , zb MSB first schon.

Da wird dir nichts anderes übrig bleiben wie zu allen Bausteinen die 
Datenblätter zusammen zu suchen und die Timing Diagramme zu vergleichen.

Autor: Mille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort Ralph...

Die Sache mit den Modes ist mir nun klar, ich verwende Mode "1" bei der 
Kommunikation mit meinen Bausteinen.
Leider finde ich nur EEPROM's mit Mode "0" oder "3"... um so eines 
verwenden zu können (und softwareseitig die SPI Schnittstelle nicht 
verändern zu wollen) muss ich wohl den Clock invertieren, um von Mode 
"1" auf Mode "3" hardwaremäßig switchen zu können. Liege ich da richtig?

Wieso gibt es eigentlich kein EEPROM mit Mode "1"? Gibts dafür einen 
Grund?

lg mille

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mille schrieb:
> (und dabei nicht zur Laufzeit die Schnittstellenparameter von
> meinem µC ändern will)

Warum diese rein persönliche Abneigung?

Einen triftigen Grund gibt es jedenfalls nicht. Irgendwo mußt Du ja das 
Chip-Select des gewünschten ICs setzen. Und davor eben noch ein Zugriff 
auf das SPI-Moderegister, fertig.


Peter

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch für diesen Fall gibts ne Lösung. Nimm 2 weitere Portpins und mach 
nen 2. SPI Bus auf der mit Soft SPI läuft. Oder mache alles mit Soft 
SPI. Dann hast Du eben 2 SPI Routinen. 1000 Wege führen nach Rom. Das 
einfachste wäre trotzdem sich ein Flag zu setzen und dieses vor dem 
Senden der Daten auszuwerten und das Config Register dann zu setzen.

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.