Forum: Mikrocontroller und Digitale Elektronik Winstar WH1602B Initialisierung


von BaeumeKommunizierenElektromagnetisch (Gast)


Angehängte Dateien:

Lesenswert?

Guten Abend,

habe hier LCD´s zum Ansteuern von Winstar vpm Typ 1602B bei der die 
Initialisierungsroutine nicht funktioniert. Verbaut ist ein Controller 
vom Typ ST7066, ein passendes Datenblatt habe ich nach etwas Suchen 
gefunden, siehe Anhang 2723615.pdf fuer das LCD.

Im Anhang, WH1602B_INIT.jpg, ist der Flow abgebildet fuer die Routine, 
doch bekomme ich staendig das selbe Ergebnis habe bereits viele 
Bitmoeglichkeiten sowie Delays ausprobiert, es sind immer "32" schwarze 
Balken abgebildet.

Was laeuft da falsch in diesem Programm mit dem LCD? Bitmuster sowie 
Enableimpuls liegen korrekt an, validiert mit Oszi. Zwischen den 
Kommandos (RS auf GND laut Datenblatt) wird 5ms gewartet in dem 
Programm.

D0 - D3 µC == DB4 - DB7 LCD
Pin 3(Kontrast) und 5(R/W) liegen auf GND
1
 ;Um Platz zu sparen µC Initialisierung weg gelassen...
2
3
       ldi    r16, 0b00000011
4
       out    PORTD, r16 
5
       rcall  E_AnAus
6
       rcall  mS_5_Pause
7
8
       rcall  E_AnAus
9
       rcall  mS_5_Pause    
10
       rcall  E_AnAus     ; Nach Erfahrungen drei mal senden...
11
       rcall  mS_5_Pause
12
13
       ldi    r16, 0b00001110
14
       out    PORTD, r16 
15
       rcall  E_AnAus
16
       rcall  mS_5_Pause
17
18
       ldi    r16, 0b00001110
19
       out    PORTD, r16 
20
       rcall  E_AnAus
21
       rcall  mS_5_Pause
22
23
       ldi    r16, 0b00001111
24
       out    PORTD, r16 
25
       rcall  E_AnAus
26
       rcall  mS_5_Pause
27
28
       ldi    r16, 0b00000001
29
       out    PORTD, r16 
30
       rcall  E_AnAus
31
       rcall  mS_5_Pause
32
33
       ldi    r16, 0b00000111
34
       out    PORTD, r16 
35
       rcall  E_AnAus
36
       rcall  mS_5_Pause
37
loop:
38
           rjmp loop
39
40
41
42
E_AnAus:
43
           sbi PORTD, 5          
44
       nop
45
       nop
46
       nop
47
       nop
48
       nop
49
       nop
50
       nop
51
       nop
52
       nop
53
       nop
54
       nop
55
       nop
56
       nop
57
           cbi PORTD, 5          
58
           ret                          
59
60
mS_5_Pause:
61
    ldi  r18, 52
62
    ldi  r19, 242
63
L1: dec  r19
64
    brne L1
65
    dec  r18
66
    brne L1
67
    nop
68
  ret

von Teo D. (teoderix)


Lesenswert?

Sind den die 15ms Wartezeit, nach anlegen der Betriebsspannung, 
gewährleistet?!
Ansonsten sehe ich hier, nämlich erstmal nichts auffälliges.

von BaeumeKommunizierenElektromagnetisch (Gast)


Lesenswert?

Teo D. schrieb:
> Sind den die 15ms Wartezeit, nach anlegen der Betriebsspannung,
> gewährleistet?!
> Ansonsten sehe ich hier, nämlich erstmal nichts auffälliges.

ja sind sie..

habe ein Projekt in C gefunden mit dem Display auf einem ST µC, der 
Initialisiert das entgegen dem Datenblatt...
1
  GPIO_WriteHigh(LCDLightPort, LCDLightPin);
2
  
3
  _lcd_delay(400); // Wait after power on
4
  
5
  GPIO_WriteHigh(LCDDataPort, LCDDB4|LCDDB5);
6
  
7
  _lcd_strob();
8
  _lcd_delay(5);
9
  _lcd_strob();
10
  _lcd_delay(1);
11
  _lcd_strob();
12
  _lcd_delay(1);
13
  /*** 4 bit Init ***/
14
  GPIO_WriteLow(LCDDataPort, LCDDB4);
15
  _lcd_strob();
16
  _lcd_delay(5);
17
  
18
  /*** LCD config ***/
19
  _lcd_write(0x28, CMD); // 2 line 5x7 dots
20
  _lcd_write(0x0C, CMD); // Display on/Cursor off/Blinking off
21
  _lcd_write(0x06, CMD); // Set cursor move direction Increase


Seltsame Sache, er sendet weniger Bytes fuer die Routine.

von Spess53 (Gast)


Lesenswert?

Hi

>Pin 3(Kontrast) und 5(R/W) liegen auf GND

Zwischen VCC und PIN3 des Displays sollen ca. 3,7V anliegen. Bei dir 
liegen etwa 5V an. Meinst du die Schaltung, unten auf S.6, ist zum Spaß 
da?

MfG Spess

von BaeumeKommunizierenElektromagnetisch (Gast)


Lesenswert?

Spess53 schrieb:
> Hi
>
>>Pin 3(Kontrast) und 5(R/W) liegen auf GND
>
> Zwischen VCC und PIN3 des Displays sollen ca. 3,7V anliegen. Bei dir
> liegen etwa 5V an. Meinst du die Schaltung, unten auf S.6, ist zum Spaß
> da?
>
> MfG Spess

Danke fuer den Ansatz, so kann man sich auch seine Stunden vertreiben... 
Schlechter Plan es auf GND zu legen. Erkenne nun das etwas passiert das 
LCD springt von 1-Zeilen Funktion auf 2-Zeilen Funktion nach Reset, der 
blinke Cursor fehlt noch bedeutet die Initialisierungsroutine ist nicht 
abgeschlossen.

von BaeumeKommunizierenElektromagnetisch (Gast)


Angehängte Dateien:

Lesenswert?

Weiss Jemand wie man diese zwei Zeilen interpretieren soll? Wieso steht 
in der ersten Zeile bit DB5 auf High?

von Spess53 (Gast)


Lesenswert?

Hi

>Weiss Jemand wie man diese zwei Zeilen interpretieren soll? Wieso steht
>in der ersten Zeile bit DB5 auf High?

Weil 0 0 1 DL N F    der Befehl fur Funktion Set ist.

MfG Spess

von BaeumeKommunizierenElektromagnetisch (Gast)


Lesenswert?

Spess53 schrieb:
> Hi
>
>>Weiss Jemand wie man diese zwei Zeilen interpretieren soll? Wieso steht
>>in der ersten Zeile bit DB5 auf High?
>
> Weil 0 0 1 DL N F    der Befehl fur Funktion Set ist.
>
> MfG Spess


Hallo Herr Spess,

danke fuer den Ansatz, doch bringt dieser mehr Schatten als Licht. 
Lassen wir die zwei "0" ohne "" weg -> 1 DL N F (4-bit..)

Das Bit DL (was soll das sein?) habe ich bisher in keinem LCD Datenblatt 
gefunden, woher kommt dieser "Shift", es wird im 4-bit Modus 
initialisiert dann wuerde in dem Kontext entgegengesetzt dem Datenblatt 
bedeuten, dass Bit DB5 (Bit 1 in 4-Bit) nicht als N (1 oder 2 Zeilig) 
fungiert?

von Teo D. (teoderix)


Lesenswert?

BaeumeKommunizierenElektromagnetisch schrieb:
> Das Bit DL (was soll das sein?) habe ich bisher in keinem LCD Datenblatt
> gefunden, woher kommt dieser "Shift", es wird im 4-bit Modus
> initialisiert

Na, ausgeschlafen? :)))
DL == Data length, 4/8 Bit.....

Und laß dich nicht von der komischen "0" irritieren. Da wurde im 
Beispie einfach DL bereits auf "0" gesetzt.


PS: Das "DL" haste aber doch mittlerweile in JEDEM Dabla gefunden?!

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.