SPI Bus Display

Gast #4365789
Lesenswert?
• ▲
▼
Hallo

ich arbeite mich gerade in SPI ein. Dabei habe ich gemerkt dass man bei 
einem Sensor ein Dummy Byte schicken muss um die Daten vom Sensor zu 
empfangen. Mich würde jetzt interessieren wie das bei einem Display 
abläuft.

Muss das Display auch ein Dummy Byte schicken um aus dem Master die 
Daten zu empfangen oder werden die Daten per SCK weiter geschoben. Was 
befindet sich im Puffer vom Display.

MfG
#4365808
Lesenswert?
• ▲
▼
SPI schrieb:

> Muss das Display auch ein Dummy Byte schicken um aus dem Master die
> Daten zu empfangen

Der Satz ergibt technisch keinen Sinn.
EIn Söave kann bei SPI grundsätzlich von sich aus überhaupt nichts 
schicken. Es ist immer der Master der die Hoheit über die Kommunikation 
hat.

Bei SPI kann man nicht von dezidiertem Sender bzw. Empfänger sprechen. 
SPI ist grundsätzlich immer ein Austausch von Bytes. Während 1 Byte vom 
Master zum Slave wandert, wandert gleichzeitig ein Byte vom Slave zum 
Master. Ob, wann und wie schnell das passiert ist ausschliesslich die 
Sache des Masters. Der Slave hat hier kein Mitspracherecht sondern hat 
nur die Bits eines Bytes entgegen zu nehmen bzw. auf der anderen Leitung 
gleichzeitig seine Bits zu liefern. Mit jedem Taktpuls das jeweils 
nächste Bit. Und der Takt wird ausschliesslich vom Master generiert.

SPI
Gast #4365835
Lesenswert?
• ▲
▼
-Ein Slave kann bei SPI grundsätzlich von sich aus überhaupt nichts 
schicken.

Das ist mir klar dass der Master das ansteuert. Aber es werden ja Daten 
vom Master zum Slave geschickt. Somit müssten auch Daten vom Slave zum 
Master geschickt werden oder haben alle Displays keine MISO Leitung und 
dadurch nimmt das Display nur Daten auf.
#4365851
Lesenswert?
• ▲
▼
Hallo,

SPI ist einfach nur ein Schieberegister wie schon oben gesagt.
Wenn der Master ein Byte raustaktet wir gleichzeitig immer MISO in des 
Empfangsregister geschoben. Egal, ob da überhaupt was dran ist, ob die 
Daten sinnvoll sind, ob ein Slave was sinnvolles in sein 
Ausgangsregister gelegt hat. Das sagt das Datenblatt des jeweiligen 
Slave-ICs.
Man muß auch kein Dummybyte senden, um was zu empfangen. Man muß nur die 
nötige Anzahl Takte auf SCK zum Slave schicken. Das geht nunmal mit SPI 
in Hardware am einfachsten, indem man ein beliebiges Byte rausschickt.

Gruß aus Berlin
Michael
#4365871
Lesenswert?
• ▲
▼
SPI schrieb:
> -Ein Slave kann bei SPI grundsätzlich von sich aus überhaupt nichts
> schicken.
>
> Das ist mir klar dass der Master das ansteuert. Aber es werden ja Daten
> vom Master zum Slave geschickt. Somit müssten auch Daten vom Slave zum
> Master geschickt werden

Du stellst dir das ein wenig zu wörtlich vor.
Der Master hat eine Leitung, einen Draht, auf dem er bei jedem Taktpuls 
nachsieht welcher Pegel da gerade vorliegt.
Ob der Slave da auf diesem Draht 0V oder 5V auch wirklich angelegt hat, 
oder ob der Draht einfach nur in der Luft hängt, das kann der Master 
nicht wissen und er wille s auch gar nicht wissen. Was immer an dieser 
Leitung sich nach 8 Taktpulsen an Pegeln ergeben hat, das kriegt dein 
Programm dann als Ergebnis präsentiert. Ob das irgendetwas damit zu tun 
hat, dass ein Display die Leitung bedient hat, oder ob die in der Luft 
hing oder ob die mit Masse verbunden war und deshalb alle 8 Bits als 0 
geliefert hat, das weiss dein Programm, weil es die Verschaltung kennt. 
Wenn es die MISO Leitun zum Display physikalisch nicht gibt, dann kann 
auch das Display logischerweise im Gegenzug nichts sinnvolles geliefert 
haben. Das weiss aber dein Porogramm, und damit ist auch klar, dass da 
nichts sinnvolles rauskommen kann.
#4365881
Lesenswert?
• ▲
▼
SPI schrieb:
>>wandert gleichzeitig ein Byte vom Slave zum Master.
>
> Da hat es mich interessiert was das für ein Byte beim Display ist. Das
> Display benötigt ja nur Daten und sendet keine wie ein Sensor.

Das kann man so nicht sagen.
Bei einem Graphikdisplay ist es schon gut, wenn der Master abfragen 
kann, welche Farbe das Pixel an der Position X/Y gerade hat. Aber auch 
sonst gibt es Dinge, die für den Master interessant sein können.

Ein Display wird typischerweise von sich aus nichts preisgeben, so wie 
ein Sensor der laufend beispielsweise die Temperatur liefert. Das heisst 
aber nicht, dass es nicht auf Anfrage Auskunft über verschiedene Dinge 
geben könnte.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.