Hallo, bitte nicht gleich steinigen, wenn ihr der Meinung seid, daß das Thema behandelt wurde. Ähnliche Fragen wurden bereits gestellt, Antworten jedoch keine gegeben, bzw. die gegeben wurden haben mein Problem nicht gelöst. Es geht um die Initialisierung eines EA DOG-M 162, im Modus 5V 8bit welche mit einem ATMEGA16 fehlschlägt. (Andere LCDs konnte ich mit dem ATMEGA16 bisher erfolgreich ansteuern.) Leider bin ich mir nicht sicher ob es an der Schaltung selbst oder am Programm liegt (z.B. Wartezeiten zu kurz, wobei ich dort schon experimentiert habe). Anschlußbelegung: Die Anschlußbelegung ist bei mir wie folgt, angelehnt an das Datenblatt des DOG-M. Kondensatoren oder andere Teile habe ich nicht zwischengeschaltet Pin23 PSB an 5V (Labornetzteil) Pin24 VOUT an 5V Pin25 VIN an 5V Pin26 VDD an 5V Pin27 VSS an Masse Pin28 D7 an PortC 7 (ATMega16) Pin29 D6 an PortC 6 Pin30 D5 an PortC 5 Pin31 D4 an PortC 4 Pin32 D3 an PortC 3 Pin33 D2 an PortC 2 Pin34 D1 an PortC 1 Pin35 D0 an PortC 0 Pin36 E an PortB 2 Pin37 RW an PortB 1 Pin38 CSB an Masse Pin39 RS an PortB 0 Pin40 Reset an 5V A1 an 5V (vorerst ohne Widerstand) A2 an 5V (vorerst ohne Widerstand) C1 an Masse C2 an Masse Die wesentlichen Bestandteile meines Programms für das DOG-M sehen wie folgt aus, auch angelehnt an die Initialisierung aus dem Datenblatt des DOG-M: lcd_lade: sbi PORTB, 2 nop nop nop cbi PORTB, 2 ret ;Schleife 50us vz50us: ldi temp3, 66 vz50us_:dec temp3 brne vz50us_ ret ; Schleife 2,1ms vz2100us: ldi temp3, 14 ; WGLOOP0: ldi temp4, 201 ; WGLOOP1: dec temp4 brne WGLOOP1 dec temp3 brne WGLOOP0 ret ;Schleife 40ms vz40ms: ldi temp3, 230 WGLOOP0_: ldi temp4, 250 WGLOOP1_: dec temp4 brne WGLOOP1_ dec temp3 brne WGLOOP0_ ret start: ; Einstellung der Ports ldi r16,0xFF nop out DDRB, r16 nop out DDRC, r16 ; nop ; Stackpointer initialisieren ldi temp, LOW(RAMEND) out SPL, temp ldi temp, HIGH(RAMEND) out SPH, temp ; Initialisierung LCD Typ EA DOGM162 für 5V ;#################################### ;# # ;# RS auf Port B Pin0 (0b0000000x) # ;# RW auf Port B Pin1 (0b000000x0) # ;# E auf Port B Pin2 (0b00000x00) # ;# Datepins an Port C (0bxxxxxxxx) # ;# # ;#################################### rcall vz40ms rcall vz40ms ldi lcds, 0b00000000 ; RW= 0 RS =0 out PORTB, lcds nop ;LCD Function SET ldi lcdd, 0b00111001 ; 8bit,2-Zeilen, kleine Schrift, usw. out PORTC, lcdd rcall lcd_lade rcall vz2100us ; Instruction Table 1 an ldi lcdd, 0b00011100 ; Standard out PORTC, lcdd nop rcall lcd_lade rcall vz50us usw. Wie geschrieben genau nach Initialisierungsbsp. des Datenblattes. Woran liegt es daß die Initialisierung fehlschlägt? Im Voraus danke für Eure Antworten.
Zur Info. Das DOG-M habe ich jetzt initalisiert und kann es ansteuern. Ich werde nochmal genau analysieren ob es tatsächlich an den Timings lag und dann das Ergebnis inkl. einer lauffähigen Initialisierungssequenz 8bit 5V für Assembler einstellen.
Na prima! Pflege es doch bitte gleich ins ASM-Tut ein, da fehltes nämlich noch Danke Klaus
Hi Ist zwar ein bischen off-topic aber vielleicht weiß ja jemand bescheid. Muss ich das Display auf 3,3V geregelt halten oder läuft das auch problemlos bei 3,8V oder gar 4V. Im Datenblatt steht unter Versorgungsspannung 3.3...5V. Das würde ich als 3.3V bis 5V interpretieren. Weiter oben steht jedoch "3.3V oder 5V". Gruß, Christian
Hi Wenn du das Datenblatt halbwegs aufmerksam gelesen hättest, wäre dir aufgefallen, das 3,3V- und 5V-Betrieb unterschiedliche Beschaltungen benötigen. Bei 3,3V werden interne Spannungen über Ladungspumpen erzeugt. Also entweder 3,3V oder 5V. Im Interesse der Lebensdauer des Displays wurde ich die Spanunngen auch halbwegs genau einhalten. MfG Spess
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.