Hi Leuts, ich habe einen Raspberry Pi B+ und ein vierzeiliges LCD-Modul mit der Bezeichnung EA DIP203-4. Hier sind Links zu den Datenblättern des LCD-Moduls http://www.lcd-module.de/fileadmin/pdf/doma/dip203-4.pdf http://www.lcd-module.de/fileadmin/eng/pdf/zubehoer/ssd1803_2_0.pdf Ich möchte das Modul via SPI mit dem Raspberry PI verbinden. Auf der Rückseite des LCD-Bausteins ist eine Lötbrücke für SPI, die habe ich geschlossen. SPI hat vier Datenleitungen. Auf dem Raspi heissen sie CS, SCL, MISO und MOSI. Auf dem EA Dip... sind die Bezeichnungen ein bißchen anders - SCLK, CS, SOD und SID. Ich habe sie jetzt so verbunden CS ------> CS SCL -----> SCLK MOSI ----> SID MISO <---- SOD Dann noch VCC an 3,3V vom Rasp., GND an GND Rasp. Ich hab jetzt ein kleines Python-Programm geschrieben, um das anzusteuern, aber es klappte nicht. Das Python-Programm sieht so aus: <c> import spidev spi = spidef.SpiDev() spi.open(0,0) spi.xfer2([0x0F]) spi.close() </C> Die Sequenz 0x0F steht für: Display ein, Cursor ein, Cursor blinken Leider funktioniert nichts, was kann ich falsch gemacht haben?
Hi >Die Sequenz 0x0F steht für: Display ein, Cursor ein, Cursor blinken >Leider funktioniert nichts, was kann ich falsch gemacht haben? Und was ist mit dem Rest der Initialisierung (Datenblatt S.3)? MfG Spess
Ja sorry, dass hätte ich auch schreiben müssen - ich hab natürlich auch an VEE mit Hilfe eines Potis und eines Kondensators verbunden, wie auf dem Bild zu sehen.
> was kann ich falsch gemacht haben? Wie spess53 schon schrieb : Und was ist mit dem Rest der Initialisierung Ich habe mal vor Urzeiten einen SPI Treiber für Ethernut für dieses Display gemacht. Ist zwar nicht für den Rasp-Pi, abere die Initialisierungssequenz solltes du dir da raus klauen können. http://www.tklinux.de/ks0073.html
Hi >abere die >Initialisierungssequenz solltes du dir da raus klauen können. >http://www.tklinux.de/ks0073.html Das Display hat aber einen SSD1803 Controller. MfG Spess
Ok, danke für die Infos - aber der Rest ist dann schon mal richtig, dass ich MOSI mit SID verbunden hab und MISO mit SID? Und die Startsequenz wäre dann das hier alles hintereinander gesendet: <<c>> ... spi.xfer2([0x34)] sleep(0.001) spi.xfer2([0x09)] sleep(0.001) spi.xfer2([0x30)] sleep(0.001) spi.xfer2([0x0F)] sleep(0.001) spi.xfer2([0x01)] sleep(0.001) spi.xfer2([0x06)] ... <</c>>
Hi
>Und die Startsequenz wäre dann das hier alles hintereinander gesendet:
Dann sieh dir mal das Datenblatt vom SSD1803 an. Das ganze ist etwas
komplizierter als du dir das vorstellst.
MfG Spess
Ups - sorry habe das EA DIP203-4 mit dem EA DIP204-4 verwechselt.
Hi >Ups - sorry >habe das EA DIP203-4 mit dem EA DIP204-4 verwechselt. Ich habe mal auf die Schnelle die Datenblätter des KS0073 und des SSD1803 verglichen. Die scheinen mindestens ähnlich, wenn nicht gar mehr, gestrickt zu sein. MfG Spess
spess53 schrieb: > Dann sieh dir mal das Datenblatt vom SSD1803 an. Das ganze ist etwas > komplizierter als du dir das vorstellst. > > MfG Spess Ich weis einfach nicht, wo ich da schauen soll in dem Datenblatt des SSD1803. Die Hauptfrage, die mich grade beschäftigt ist die, ob ich es denn überhaupt richtig an den Raspberry Pi angeschlossen habe und ob ich so gleich über SPI anfangen kann, Sequenzen zu verschicken. Ich hab auch noch nicht mal im Datenblatt gefunden, mit welcher Übertragungsrate man via SPI Daten senden kann. Es steht dort auch nichts explizit für SPI, sondern irgendwie immer für 8bit oder 4bit-Modus und ich weis garnicht, wie ich da überhaupt starten soll.
Hallo meine , allgemeine Empfehlung: Gönne dir mal einen Logic Analyser, etwa ZeroPlus Logicube, o.ä. Damit kann besser die Grundsätzlichen Dinge klären: - sende ich auf dem Bus etwas - was dachte ich gesendet zu haben -> was habe ich gesendet Gruß
Hi >Ich weis einfach nicht, wo ich da schauen soll in dem Datenblatt des >SSD1803. Wie wäre es mit INTERFACE WITH MPU IN SERIAL MODE ab S.26? >Gönne dir mal einen Logic Analyser, etwa ZeroPlus Logicube, o.ä. >Damit kann besser die Grundsätzlichen Dinge klären: Der erklärt aber niemand das Datenblatt. MfG Spess
spess53 schrieb: > ab S.26? Ja, hab mal auf Seite 26 geschaut. Ich hab sogar auch mal eine Seite weiter geschaut, auf Seite 27. Ich habe es leider noch garnicht sonderlich gut verstanden. In "Figure 7-11 Timing Diagram of Serial Data Transfer" auf Seite 27 ist zu sehen, dass eine Kommunikation mit 3*8bit-Dingern stattfinden tut. Ich will jetzt z.B. den Befehl "Display ON" an mein Display senden. Der HexCode dafür beträgt 0x0F oder in Bitschreibweise 00001111. In dem Bild auf Seite 27 ist von drei 8-Bit-Sequenzen die Rede. Das erste heisst Initbit, dann kommt LowerDataSequenz, dann UpperDataSequenz. Bei den Upper-Lower-Sequenzen sind die letzten 4bit immer Null. Nehm ich jetzt als Upper/Lower einfach die vier Bits von meinem HexCode? Ich würde es jetzt so hinsenden: Initsequenz = 1111 1010 LowerDataSequenz = 1111 0000 UpperDataSequenz = 0000 0000 Ist das so richtig vom Aufbau her? Und als Python-Befehl würde ich dann das hier machen?
1 | spi.xfer2([0b11111010, 0b11110000, 0b00000000]) |
Hi >Ist das so richtig vom Aufbau her? Nicht ganz. Dein RS-Bit muss für Befehle 0 sein. >Und als Python-Befehl würde ich dann das hier machen? >spi.xfer2([0b11111010, 0b11110000, 0b00000000]) Wie erfolgt die Steuerung der CS-Leitung? MfG Spess
hab' jetzt nicht alles im Detail gelesen. Bist Du Dir sicher, dass Dein spi.xfer auch den SPI Chip Select bedient?
Die CS-Leitung wird "automatisch" gesetzt, ich habe zwei CS-Leitungen auf dem Raspberry PI (CE0, CE1) und beim Öffnen des SPI-Ports gibt es den Befehl spi.open (0,0). Dabei steht die erste Ziffer für die SPI-Schnittstelle und die zweite für den dazugehörigen Chipselect-Port. Wird spi.xfer2 ausgeführt, dann wird CS0 oder CS1 automatisch vorher von HIGH auf LOW gesetzt.
Ich würde ja mal ganz einfach die Miso und Mosi Leitung tauschen ;) Also: MISO <--> SID MOSI <--> SOD SPI verhält sich nicht wie UART wo RX<->TX und TX<->RX ist.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.