Guten abend. Ich kämpfe seit einigen Tagen mit dem Datenblatt vom Dog162 und mit google. Die Beschaltung im Datenblatt ist ja nicht so klar dargestellt, wie ich finde. Daher bitte ich um eure Hilfe. Das Display würde ich gerne im 4-Bit Modus an 3,3V betreiben. Anschluss wie folgt: -Display- -Mega8- D7 PD4 (XCK/T0) D6 PD5(T1) D5 PD6(AIN0) D4 PD7(AIN1) D3 - D0 an VCC E PD3(INT1) RS PD2(INT0) R/W ??? Kann ich R/W an GND anschließen? Fürs Schreiben muss eine 0 gesetzt werden (Datenblatt ST7036)
Harley schrieb: > Guten abend. > > Ich kämpfe seit einigen Tagen mit dem Datenblatt vom Dog162 und mit > google. Die Beschaltung im Datenblatt ist ja nicht so klar dargestellt, > wie ich finde. Daher bitte ich um eure Hilfe. > > Das Display würde ich gerne im 4-Bit Modus an 3,3V betreiben. Anschluss > wie folgt: > > -Display- -Mega8- > D7 PD4 (XCK/T0) > D6 PD5(T1) > D5 PD6(AIN0) > D4 PD7(AIN1) Das ist keine gute Idee. Halte die Reihenfolge gleich. Wenn das eine aufsteigend nummeriert ist, dann lass auch das ander in gleicher Reihenfolge nummeriert sein. Ja, man kann das natürlich in Software wieder ausgleichen. Aber wenn du sowieso auf Kriegsfuss stehst, musst du dir nicht auch noch Prügel zwischen die Beine werfen. > D3 - D0 an VCC Steht das im Datenblatt, dass du das tun sollst? > E PD3(INT1) > RS PD2(INT0) > R/W ??? > Kann ich R/W an GND anschließen? Fürs Schreiben muss eine 0 gesetzt > werden (Datenblatt ST7036) Wenn du Write nicht brauchst, dann kannst du das machen.
Wo liegt nun eigentlich genau dein Problem? Den R/W Pin kannst du ja einfach mitanschließen, auch wenn du diesen in der Display Ansteuerung vernachlässigst.
D0 - D3 sind im Datenblatt an 3,3V angeschlossen. Also: -Display- -Mega8- D7 PD7(AIN1) D6 PD6(AIN0) D5 PD5(T1) D4 PD4 (XCK/T0) D0 - D3 VCC E PD3(INT1) RS PD2(INT0) R/W GND Kann ich das Dog so beschalten, ohne große Probleme bei der Proragmmierung zu bekommen oder sollte ich mit E an PD0 und RS an PD1 anfangen und dann bis PD7 der Reihe nach die Pins belegen?
ATMEL schrieb: > D0 - D3 sind im Datenblatt an 3,3V angeschlossen. ok. dann mach das auch so. Im Zweifel weiß der Hersteller immer besser wies geht. > Kann ich das Dog so beschalten, ohne große Probleme bei der > Proragmmierung zu bekommen oder sollte ich mit E an PD0 und RS an PD1 > anfangen und dann bis PD7 der Reihe nach die Pins belegen? Das ist wiederrum egal. Bei den Datenbits gehts nur darum, dass du nicht 4 Bits in sich spiegeln musst um sie am Port auszugeben. Bei den Steuerleitungen wird sowieso an jeder Leitung einzeln gewackelt. Und da ist es dann wurscht, ob du an D1 oder an D3 wackelst. Ein PORTD |= ( 1 << PD1 ); unterscheidet sich nicht gravierend von einem PORTD |= ( 1 << PD3 ); eine Zahl ist anders, aber der Vorgang an sich ist ja derselbe. Aber zu derartigen Standard-LCD gibt es doch Tutorien und auch fertigen Code zu Hauf. Normalerweise ist das eine Sache auf ein paar Minuten, je nachdem wie 'kompatibel' das LCD wirklich ist.
Harley schrieb: > Ich kämpfe seit einigen Tagen mit dem Datenblatt vom Dog162 und mit > google. Die Beschaltung im Datenblatt ist ja nicht so klar dargestellt, > wie ich finde. Darf man wissen, was du vermißt? Der ST7036 ist ja weitestgehend kompatibel zum HD44780, der der Industriestandard für alphanumerische LCD ist. Und zun diesem Controller gibt es nun wirklich mehr als genug Tutorials, Anleitungen, fertige Libraries etc. Siehe z.B. hier: HD44780 > Das Display würde ich gerne im 4-Bit Modus an 3,3V betreiben. Anschluss > wie folgt: > > -Display- -Mega8- > D7 PD4 (XCK/T0) > D6 PD5(T1) > D5 PD6(AIN0) > D4 PD7(AIN1) Blöde Idee. So mußt du nicht nur das Low-Nibble verschieben, um eine 8-Bit Übertragung in zwei Zyklen zu realisieren, du mußt auch noch einzelne Bits jonglieren. Was spricht gegen D7..D4 = PD7..PD4 ? > E PD3(INT1) > RS PD2(INT0) > R/W ??? > > Kann ich R/W an GND anschließen? Fürs Schreiben muss eine 0 gesetzt > werden (Datenblatt ST7036) Kann man machen. Allerdings kann man dann nicht vom Display lesen. Weder aus dem Display-RAM noch aus dem Character-RAM. Und man kann insbesondere das Busy-Flag nicht auslesen, weswegen man nach jedem Befehl der länger dauert (z.B. CLR oder auch HOME) die maximale Ausführungszeit abwarten muß. Auch wenn das Display eigentlich viel schneller wäre. Mich würde das stören. XL
Hi Warum tut man sich den 4-Bit-Mode an, wenn man das Display mit weniger Leitungen über SPI ansteuern kann? MfG Spess
Es geht hier eher um die Hardwareplanung. Bevor ich ätze möchte ich sicher gehen, das meine Displaybeschaltung so auch korrekt ist. Da ich in dieser Materie nicht so bzw. gar nicht fit bin suche ich Hilfe, damit ich "Verdrahtungsfehler" ausschließen kann, da ich denke, das die Programmierung für einen absoluten Anfänger haarsträubend wird.
Um die Kommunikation auf Datenebene zu vereinfachen solltest du die Datenpins des Display in passender Korrespondenz beschalten (Wie es Karl beschrieben hat) D7 - PX7 D6 - PX6 D5 - PX5 D4 - PX4 Für E/RS/R!W kannst du dir beliebige Pins aussuchen und passend definieren. Du musst dann nur dann deine Ansteuerungsroutine daran anpassen ohne dich großartig auf dem Kopfstellen zu müssen. Ein einfaches Beispiel:
1 | #define LCD_RS PD4 |
2 | #define LCD_EN PD3 |
3 | #define LCD_RW PD2 |
4 | |
5 | #define LCD_IODDR DDRD |
6 | #define LCD_IOPORT PORTD |
7 | #define LCD_DATAPORT DDRC |
8 | #define LCD_DATAPORT DDRC |
Kannst dir hier mal was dazu ansehen: Vielleicht hilft es dir dann eine Vorstellung davon zu bekommen wie man das ganze clever verschalten kann: (Der ST Controller ist abgesehen von ein paaar Sonder Features zum HD kompatibel wie Axel es schon beschrieben hat) http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung Harley schrieb: > Es geht hier eher um die Hardwareplanung. Bevor ich ätze möchte ich > sicher gehen, das meine Displaybeschaltung so auch korrekt ist. Da ich > in dieser Materie nicht so bzw. gar nicht fit bin suche ich Hilfe, damit > ich "Verdrahtungsfehler" ausschließen kann, da ich denke, das die > Programmierung für einen absoluten Anfänger haarsträubend wird. Warum tust du dir dann eine 4Bit Ansteuerung an um dir noch mehr Probleme zu machen? :>
Harley schrieb: > Es geht hier eher um die Hardwareplanung. Bevor ich ätze Bevor man ätzt, probiert man das Zeug erst mal so aus! So ein Display ist doch mit einem Flachbandkabel ruck zuck angeschlossen. Dann probiert man das mal, programmiert sich eine Ansteuerung (oder benutzt eine fertige) und erst dann, wenn man gesehen hat, dass es so funktioniert, dann ätzt man sich eine Platine!
Das stimmt auch wieder. Jedenfalls habt ihr mir schon sehr weitergeholfen und ich werde mir morgen ganz in Ruhe das Tutorial zur LCD-Ansteuerung durchlesen. Danke!
Hi
>Die 4-Bit Ansteuerung war eine Empfehlung.
Manche wissen es halt nicht besser.
MfG Spess
Im Anhang ist eine Ansteuerungsroutine für das DOGM Display. Inklusive das Laden von Benutzerdefinierten (8) Zeichen im CGRAM welche man praktisch im Flash des Mikrocontrollers abspeichern kann, sowie der Einstellung des Double Height Fonts. Du musst nur noch die Funktion LCD_Data() und LCD_Command() für dich entsprechend anpassen. Ich garantiere aber nicht das alles Funktioniert da diese Routine für ein EA DOGM163 ist.
>Um die Kommunikation auf Datenebene zu vereinfachen solltest du die >Datenpins des Display in passender Korrespondenz beschalten (Wie es Karl >beschrieben hat) > >D7 - PX7 >D6 - PX6 >D5 - PX5 >D4 - PX4 Wozu? Wenn das LCD Tutorial von dieser Seite einfach mal konsequent eine Routine mit beliebiger Pin und Portbelegung zeigen würde, wären wahrscheinlich 90% der Threads zu Problemen mit LCDs unnötig. Das kostet einen Witz von Flash mehr. Ist nur meine Meinung.
holger schrieb: >>Um die Kommunikation auf Datenebene zu vereinfachen solltest du die >>Datenpins des Display in passender Korrespondenz beschalten (Wie es Karl >>beschrieben hat) >> >>D7 - PX7 >>D6 - PX6 >>D5 - PX5 >>D4 - PX4 > > Wozu? Lass uns froh sein, wenn sie das erst mal so hinkriegen und das LCD korrekt durch die Initialisierung bringen. Selbst mit fertigen Tutorial-Routinen ist das ja nicht immer als gegeben anzunehmen.
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.