mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ruhezustand an SPI-Datenleitungen definiert??


Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle!

Es geht um die Datenübertragung per SPI mit einem MSP340. Wenn ich ein 
Zeichen übertrage, bei dem das letzte Bit HIGH ist, dann bleibt die 
entsprechende Datenleitung bis zum nächsten Zeichen auf HIGH nachdem das 
Zeichen übertragen wurde. Wenn aber bei dem zu übertragenden Zeichen das 
letzte Bit LOW ist, dann bleibt die Leitung auf LOW. Ist das normal? 
Gibt es bei SPI keinen definierten Ruhezustand, den die Datenleitungen 
annehmen, wenn gerade keine Übertragung erfolgt?

Danke schon mal für jede Antwort!!!

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nein, gibt es nicht.

Den Zustand der Taktleitung kann man festlegen, je nach gewünschtem 
SPI-Mode. Der Zustand der Datenleitung ist doch uninteressant, weil ohne 
passende Taktflanke sich dafür ja keiner interessiert.

Gruß aus Berlin
Michael

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antwort!

Was ist aber, wenn mehrere Slaves auf der SOMI-Leitung hängen und einer 
die Leitung nach der Übertragung auf HIGH hält und der nächtste 
Übertragen will?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noips schrieb:

> Was ist aber, wenn mehrere Slaves auf der SOMI-Leitung hängen und einer
> die Leitung nach der Übertragung auf HIGH hält und der nächtste
> Übertragen will?

Es gibt Slaves mit Select-Leitung und welche ohne. Mit solcher Leitung 
wird die Leitung vom Slave bei inaktivem Select hochohmig geschaltet und 
das Problem tritt nicht auf. Ohne solche Leitung ist dieser SPI-Bus 
ausschliesslich für diesen einen Slave verwendbar. Das hängt nicht vom 
Pegel ab, ob low oder high ist dabei egal.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noips schrieb:
> Was ist aber, wenn mehrere Slaves auf der SOMI-Leitung hängen und einer
> die Leitung nach der Übertragung auf HIGH hält

Das darf er nicht, jeder Slave muß nach /CE = 1 in tristate gehen.
Und der Master muß natürlich für jeden Slave ein eigenes /CE erzeugen.
Es darf immer nur ein /CE = 0 sein.


Peter

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke!
Ich verwende eben einen Slave mit Select-Leitung (low active) und auch 
nachdem das Zeichen übetragen wurde und die zugehörige Select-Leitung 
wieder auf HIGH gesetzt wurde bleibt die Datenleitung auf HIGH. Der 
zuletzt übertragende Slave ist eigentlich schon deaktiviert hält die 
Leitung aber trotzdem auf HIGH.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aktiv auf high gezogen, oder passiver Pullup? Manche SPI-Slaves haben 
schwache Pullups an den Pins, bei der Select-Leitung ist das auch sehr 
nützlich.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pull up in den Datenleitungen?
Um was für einen Slave handelt es sich?
Wie hast du das "Die Leitung ist aber trotzdem auf HIGH" gemessen?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn aktiver Pullup: Was für ein Slave ist das?
Abhilfe dann: 74HC125 dazwischen.

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Aktiv auf high gezogen, oder passiver Pullup? Manche SPI-Slaves haben
>schwache Pullups an den Pins, bei der Select-Leitung ist das auch sehr
>nützlich.

Aktiv, mit einem µC-Portpin.

>Pull up in den Datenleitungen?
>Um was für einen Slave handelt es sich?
>Wie hast du das "Die Leitung ist aber trotzdem auf HIGH" gemessen?

Kein Pull up in den Datenleitungen. Slave ist ein Serial Interface des 
MSP430 im SPI-Slave-Mode. Gemessen mit Oszi.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noips schrieb:

> Kein Pull up in den Datenleitungen. Slave ist ein Serial Interface des
> MSP430 im SPI-Slave-Mode. Gemessen mit Oszi.

Der MSP430 gibt also die MISO-Leitung bei inaktivem SS nicht frei? 
Schande über ihn und Pech für dich.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> und die zugehörige Select-Leitung wieder auf HIGH gesetzt wurde bleibt die 
Datenleitung auf HIGH.

Was mir eben erst aufgefallen ist. Die Select Leitung sollte doch eher 
auf LOW gehen nach der Kommunikation.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manual vom nächstbesten MSP430 ('149) sagt aber: "When STE is high, 
RX/TX operation of the slave is disabled and SOMI is forced to the input 
direction.". Wie es sich gehört.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gast schrieb:

> Was mir eben erst aufgefallen ist. Die Select Leitung sollte doch eher
> auf LOW gehen nach der Kommunikation.

Andersrum, die ist üblicherweise active low.

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Was mir eben erst aufgefallen ist. Die Select Leitung sollte doch eher
>auf LOW gehen nach der Kommunikation.

Sie ist als low active konfiguriert, also das müsste passen.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok ihr dürft meinen letzten Post getrost ignorieren. Das HIGH LOW hat 
mich etwas vom rechten Pfad abgebracht :)

Funktioniert das Senden und Empfangen der Daten eigentlich korrekt?

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt die Pause zwischen den Zeichen länger gemacht und sehe, 
dass die Spannung an der Datenleitung abfällt (Kondensatorentladekurve). 
Wenn ich einen Pull down an sie hänge, dann fällt die Spannung schneller 
ab.

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Funktioniert das Senden und Empfangen der Daten eigentlich korrekt?

Ja, das schon, mit einem Slave allerdings. Geplant sind aber mehrere.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noips schrieb:

> Ich habe jetzt die Pause zwischen den Zeichen länger gemacht und sehe,
> dass die Spannung an der Datenleitung

Dann ist doch alles ok, und es ist eben kein aktiver Pullup, nicht mal 
ein passiver, sondern das natürliche Verhalten einer offen hängenden 
Leitung. Kein Konflikt mit anderen Slaves zu erwarten.

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK! Danke an alle!!!

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.