Forum: Mikrocontroller und Digitale Elektronik SPI Bus Display


von SPI (Gast)


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

von Karl H. (kbuchegg)


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

von SPI (Gast)


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.

von SPI (Gast)


Lesenswert?

>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.

von Michael U. (amiga)


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

von display (Gast)


Lesenswert?

Schon mal ins Datenblatt des Displays geschaut? Da steht doch alles 
harklein drin.

von Maxim B. (max182)


Lesenswert?

Master muss oft BUSY ablesen.

von Karl H. (kbuchegg)


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.

von Karl H. (kbuchegg)


Lesenswert?

SPI schrieb:

> oder haben alle Displays keine MISO Leitung und
> dadurch nimmt das Display nur Daten auf.

Manche haben eine, manche haben keine.

von Karl H. (kbuchegg)


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.

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
Noch kein Account? Hier anmelden.