Forum: Mikrocontroller und Digitale Elektronik SPI: MISO/MOSI an einem PIN


von Philipp B. (philipp_b993)


Lesenswert?

Hi,

ich bin gerade dabei einen Treiber fuer ein epaper display zu 
implementieren. Eigentlich soll das Display SPI haben. Allerdings hat es 
nur einen data, chip select und clock pin. Ob gelesen oder geschrieben 
wird, wird durch einen anderen Pin fest gestellt, der jeweils auf HIGH 
oder LOW gestellt ist. So, nun dachte ich, dass das dann eigentlich kein 
Problem sein duerfte den data pin einfach sowohl an MISO, als auch MOSI 
zu haben. Immerhin setze ich ja read und write mit einem anderen pin 
selbst. So, ich wollte einfach mal nachfragen, ob ich mit dieser Annahme 
richtig liege. Es geht um das GDEW0213C38 epaper display.

/e Datenblatt: 
http://www.good-display.com/download_detail/downloadsId=575.html

gruss
Philipp

: Bearbeitet durch User
von g457 (Gast)


Lesenswert?

> So, nun dachte ich, dass das dann eigentlich kein Problem sein duerfte
> den data pin einfach sowohl an MISO, als auch MOSI zu haben.

Ja, das geht im Allgemeinen, wenn..

> Immerhin setze ich ja read und write mit einem anderen pin selbst.

..jener Pin auch MISO und MOSI adäquat durchverbindet/trennt, z.B. mit 
einem 2:1 mux oder Analogschalter.

von Opti Mator (Gast)


Lesenswert?

Philipp B. schrieb:
> Es geht um das GDEW0213C38 epaper display.

... und wir sollen uns das Datenblatt verdammt gefälligst
selbst suchen?

von Philipp B. (philipp_b993)


Lesenswert?

g457 schrieb:
>> Immerhin setze ich ja read und write mit einem anderen pin selbst.
>
> ..jener Pin auch MISO und MOSI adäquat durchverbindet/trennt, z.B. mit
> einem 2:1 mux oder Analogschalter.

Ahh, okay. Das klingt plausibel. Interessante Idee. Den Mux koennte ich 
doch mit demselben pin verbinden, der dann bei dem epaper display auch 
auf HIGH und LOW schaltet. Also wechselt der gleich die Lane mit, wenn 
ich bei dem paper auf read oder write schalte.

: Bearbeitet durch User
von Philipp B. (philipp_b993)


Lesenswert?

Opti Mator schrieb:
> Philipp B. schrieb:
>> Es geht um das GDEW0213C38 epaper display.
>
> ... und wir sollen uns das Datenblatt verdammt gefälligst
> selbst suchen?

Nope: http://www.good-display.com/download_detail/downloadsId=575.html

von user (Gast)


Lesenswert?

MISO mit MOSI über einen Widerstand verbinden. Schau mal bei MDIO von 
Ethernet PHYs die machen das auch so.

von Philipp B. (philipp_b993)


Lesenswert?

user schrieb:
> MISO mit MOSI über einen Widerstand verbinden. Schau mal bei MDIO von
> Ethernet PHYs die machen das auch so.

Hast du vielleicht auch eine Schematic parat?

von Wolfgang (Gast)


Lesenswert?

Philipp B. schrieb:
> So, nun dachte ich, dass das dann eigentlich kein
> Problem sein duerfte den data pin einfach sowohl an MISO, als auch MOSI
> zu haben.

Das Problem wird dann sein, dass beim Lesen vom Display zwei Ausgänge 
aufeinander prallen, nämlich Data vom Display Controller und MOSI.

von Philipp B. (philipp_b993)


Lesenswert?

Wolfgang schrieb:
> Philipp B. schrieb:
>> So, nun dachte ich, dass das dann eigentlich kein
>> Problem sein duerfte den data pin einfach sowohl an MISO, als auch MOSI
>> zu haben.
>
> Das Problem wird dann sein, dass beim Lesen vom Display zwei Ausgänge
> aufeinander prallen, nämlich Data vom Display Controller und MOSI.

Das passiert ja nicht zur gleichen Zeit. Sollte zumindest nicht. Das 
Datenblatt beschreibt das so in etwa: Du schreibst dein read command mit 
read parametern und hast dabei read pin auf LOW. Dann schickst du alles 
ab und schaltest auf HIGH auf dem read pin und dann kommen die Daten 
rueber. Natuerlich muss man den flow bei dem eigenen MCU beachten. Ich 
halte die Loesung mit dem MUX aber fuer geeigneter. Dann treffen die 
Lanes nicht aufeinander.

von Philipp B. (philipp_b993)


Lesenswert?

g457 schrieb:
>> So, nun dachte ich, dass das dann eigentlich kein Problem sein duerfte
>> den data pin einfach sowohl an MISO, als auch MOSI zu haben.
>
> Ja, das geht im Allgemeinen, wenn..
>
>> Immerhin setze ich ja read und write mit einem anderen pin selbst.
>
> ..jener Pin auch MISO und MOSI adäquat durchverbindet/trennt, z.B. mit
> einem 2:1 mux oder Analogschalter.

Hast du da vielleicht eine Empfehlung fuer einen MUX?

von Opti Mator (Gast)


Lesenswert?

Philipp B. schrieb:
> Hast du da vielleicht eine Empfehlung fuer einen MUX?

Man braucht keinen Multiplexer.

Es genügt seinen SPI-Datenpin auf Open Collector zu schalten
und darauf zu achten dass der Pin im Empfangsfall auf 1
gesetzt wird. So würde man das im Bitbanging-Modus zumindest
machen. Ob das für einen dezidierten SPI Pin auch funktioniert
(STM32*) weiss ich jetzt nicht griffbereit.

Wenn die Pin Architektur das nicht erlaubt dann funktioniert
das zur Not auch mit zwei zusammengeschalteten Pins bei
denen der Ausgangspin mit einer Schottky-Diode mit dem
Eingangspin verbunden wird. So kann man die normalen
MOSI/MISO Pins verwenden und muss halt 0.3 Volt Pegelverlust
im Low-Zustand "verkraften".

von Karl K. (karl2go)


Lesenswert?

Ich würd mir erstmal ganz genau anschauen, ob ich überhaupt vom Display 
lesen muss. Zumal das Ding offenbar noch ein Busy-Pin hat.

von Wolfgang (Gast)


Lesenswert?

Philipp B. schrieb:
> Das passiert ja nicht zur gleichen Zeit.

Was passiert nicht zur gleichen Zeit?
Bei normalem SPI ist MOSI immer ein Ausgang des Masters.

von Opti Mator (Gast)


Lesenswert?

Wolfgang schrieb:
> Was passiert nicht zur gleichen Zeit?

Die Kommandierung und ein eventuell zu lesendes Datum. Beides
findet in/unter getrennten Clock-Paketen statt.

von Philipp B. (philipp_b993)


Lesenswert?

Karl K. schrieb:
> Ich würd mir erstmal ganz genau anschauen, ob ich überhaupt vom Display
> lesen muss. Zumal das Ding offenbar noch ein Busy-Pin hat.

Waere ganz huebsch, ja. Unbedingt erforderlich ist es aber tatsaechlich, 
durch den Busy PIN nicht. Beim senden der schwarzen und roten bytes 
bekommt man eine 1 oder 0 als Response, die aussagt, ob alles geklappt 
hat und alle bytes angekommen sind. Mindestens das wuerde ich gerne 
lesen.


Aber ich habe jetzt genug Input bekommen und werde mal ein paar Sachen 
ausprobieren. Ich koennte auch ein Soft-SPI nutzen, um nur auf einen PIN 
zu setzten. Ich wuerde nur gerne ein Board designen, dass nach draussen 
ein moeglichst sauberes SPI hat. Also mit MOSI/MISO PIN. Ausserdem 
duerfte das hard-SPI schon etwas schneller sein. Okay, bei den paar 
Pixeln und epaper (sprich da sendet man nicht permament neue Pixel 
rueber) duerfte das mit Soft-SPI auch kein riesen Thema sein.

von Frank K. (fchk)


Lesenswert?

Philipp B. schrieb:

>> ..jener Pin auch MISO und MOSI adäquat durchverbindet/trennt, z.B. mit
>> einem 2:1 mux oder Analogschalter.
>
> Hast du da vielleicht eine Empfehlung fuer einen MUX?

74lvc2g125

fchk

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.