Hi ich habe vor ein Display an meinen Mikrocontroller anzuschließen den DOGXL dabei habe ich die Auswahl zwischen 4 verschiedenen Übertragungsmöglichkeiten unteranderem auch SPI. Ich habe gelesen das ich die Pins benutzen muss welche ich auch für die ISP Programmierung benutze. Kann ich diese Pins denn so einfach doppelt belegen? Hier der Display: http://www.lcd-module.de/deu/pdf/grafik/dogxl160-7.pdf Die Routinen in den Datenblatt meinen Controllers sehen recht simple aus und das ist es wahrscheinlich auch. Welche Pins braucht man denn in dem Fall.. Clock ist mir klar das sind SCK auf Clock des Displays. Aber wo schließe ich MISO und MOSI an? und kann ich für Chipselect einen beliebigen PIN am Controller nehmen? jbob
Hi >Hi ich habe vor ein Display an meinen Mikrocontroller anzuschließen den >DOGXL dabei habe ich die Auswahl zwischen 4 verschiedenen >Übertragungsmöglichkeiten unteranderem auch SPI. Um welchen Controller handelt es sich denn? MfG Spess
CS geht an einen beliebigen Pin am uC. MISO/MOSI sind die Datenleitungen: MISO - Master In Slave Out MOSI - Master Out Slave In Wenn du das Display fest an den Pins verdrahtest, du auch zur Programmierung des uCs gedacht sind, dann kann es zu Problemen kommen (es sei denn du benutzt den Chipselect klug, um das Display beim Programmieren des uCs zu deaktivieren).
jbob schrieb: > Aber wo schließe > ich MISO und MOSI an? MOSI (Master out, Slavwe in) des µC an den Pin 31 (SI - Slave in) des Displays. MISO des µC brauchst Du nicht mit dem Display verbinden, da nicht beötigt. > kann ich für Chipselect einen beliebigen PIN > am Controller nehmen? Ja, kannst Du. Falls Du nur ein Display und keine weiteren Geräte am SPI-Bus hast, kannst Du das Display auch im 3-Wire-SPI-Modus betreiben. Dann brauchst Du gar keinen Chipselect am µC. Was Du aber machen musst: Einen beliebigen Pin des µC mit dem Pin 27 (CD) des Displays verbinden. Hier wird signalisiert, ob Befehle oder Daten übertragen werden.
>Kann ich diese Pins denn so einfach doppelt belegen? ISP und Display brauchst Du nicht gleichzeitig...! MOSI an SI des Displays SI = Slave In MISO brauchst Du nicht, weil > Das bedeutet, dass Daten nur geschrieben, nicht aber wieder > gelesen werden können. >und kann ich für Chipselect einen beliebigen PIN >am Controller nehmen? Ja, wenn kein dedizierter SPI CS vorhanden. Wenn Du "3 WIRE, 8-BIT SPI-MODE" verwendest, brauchst Du kein SPI, aber ein CD (auch von einem GPIO)
Danke für die Infos. Das hat mir weiter geholfen. Ich nehme jetzt 3 Bit SPI und habe das Diagramm nach programmiert, da ich solche ähnlichen Routinen schonmal geschrieben habe. Der Hersteller hat auch solche Beispiele für andere Displays aus der Familie online gestellt das sollte denke ich mal komplatibel sein. Ist es denn in der Regel ratsam das SPI des Controller zu verwenden und die interenen Register anzusprechen oder halt solche Diagramme nach zu programmieren? Hier ist meine Routine:
1 | void display_out(unsigned char out) |
2 | {
|
3 | unsigned char mask = 0x80; |
4 | |
5 | while(mask) |
6 | {
|
7 | DISPLAY_PORT &= ~(1 << CLK); |
8 | if(mask & out) |
9 | {
|
10 | DISPLAY_PORT |= (1 << SDA); |
11 | }
|
12 | else
|
13 | {
|
14 | DISPLAY_PORT &= ~(1 << SDA); |
15 | }
|
16 | DISPLAY_PORT |= (1 << CLK); |
17 | mask = mask >> 1; |
18 | }
|
19 | }
|
Der SPI-Controller ist extra Hardware und somit schneller. Das Software-SPI frisst uC-Resourcen.
Ok ich werde denke ich mal beide Varianten ausprobieren. Aber für Hardware SPI muss ich dann MISO und soweiter nehmen und für Software kann ich mir das dann aussuchen oder?
Hi >Ist es denn in der Regel ratsam das SPI des Controller zu verwenden und >die interenen Register anzusprechen oder halt solche Diagramme nach zu >programmieren? Kommt darauf an, wie schnell du dein Display beschreiben willst. Hardware-SPI kann bis zum halben Controllertakt arbeiten. Wenn dein unbekannter Controller ein neuerer (Mega)AVR mit einer oder mehren USARTs ist, kann man diese auch im SPI-Mode verwenden. MfG Spess
Ich benutze einen Atmega16 noch mit internem Takt die Quarze kommen erst noch die Tage. Ich denke dann werde ich auch auf internen SPI umsteigen. Danke euch. Aber an meiner Routine ist nichts falsch oder?
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.