Forum: Mikrocontroller und Digitale Elektronik PIC im sleep LCD abschalten


von Kostia G. (Gast)


Lesenswert?

Hallo,

wie kann ich mit einem PIC die Spannungsversorgung eines LCD-Displays 
schalten? Vor Sleep-Modus soll das Display abgeschaltet, nach dem 
Aufwachen eingeschaltet werden. Habe direkt über die Ports versucht, 
funktioniert aber leider nicht, das Display zeigt ein unvorhersagbares 
Verhalten. Mal gehts, mal nicht.

Hat das schonmal jemand gemacht und kann eventuell einen Schaltplan 
hochladen? Wäre es mit MOSFET machbar, oder was würdet ihr empfehlen?

Wünsche ein frohes Fest!

Kostja

von Anja (Gast)


Lesenswert?

Kostia G. schrieb:
> Mal gehts, mal nicht.

Hast Du auch die Ansteuersignale (DB0-DB7,CS,RW) mit "0" vor dem Sleep 
initialisiert? oder Versorgt sich das Display aus den Datenleitungen?

Gruß Anja

von Anja (Gast)


Lesenswert?

BTW: Hängt das Kontrastpoti auch am geschalteten Pin?

Gruß Anja

von Kostia G. (Gast)


Lesenswert?

nein, die Datenleitungen hab ich nicht auf Null gesetzt. Ich muß 
gestehen, dass ich die nicht mal als Ausgänge initialisiert habe. Hab 
ich schlichtweg vergessen. Es funktioniert mit Versordung über den 
Spannungswandler aber einwandfrei.

Nur wenn ich ich die Versorgung über den Pin laufen lasse geht es nicht 
richtig. Und ja, das Poti hängt auch am Pin.

von Kostia G. (Gast)


Lesenswert?

Die Ausgänge werden in der lcd_init gesetzt. Die Versorgung erfolgt 
separat über die Standardanschlüsse. Werde morgen gleich mal das mit den 
Datenleitungen versuchen. Danke!

von Timmo H. (masterfx)


Lesenswert?

Du kannst das Display auch über einen Ausgangspin des PICs versorgen. 
Dieser wird im Sleep auf Tristate gesetzt. Das Display braucht ja nur 
ein paar mA ohne Beleuchtung. Mosfet wäre die andere Möglichkeit

von Kostja G. (Gast)


Lesenswert?

So ich hab jetzt mal alle drei Eingänge des Displays separat an jeweils 
einen Ausgang gehangen. Vdd an RC6, LDA an RC5 und Vo an RC4.

Das Problem ist jetzt, das RC6 mit Vdd nicht auf 5V schaltet wenn das 
Display dranhängt. Nur wenn Vdd nicht dranhängt geht es. Bei Vo und LDA 
klappt es problemlos. Woran könnte das liegen?

1
    PORTDbits.RD0 = 0; //Datenleitungen
2
    PORTDbits.RD0 = 0;
3
    PORTDbits.RD0 = 0;
4
    PORTDbits.RD0 = 0;
5
    
6
    PORTAbits.RA1 = 0; //Steuerleitungen
7
    PORTAbits.RA2 = 0;
8
    PORTAbits.RA3 = 0;
9
10
    PORTCbits.RC4 = 0; //Vo
11
    PORTCbits.RC5 = 0; //LEDA
12
    PORTCbits.RC6 = 0; //Vdd
13
    
14
    Sleep();
15
16
    _asm
17
      NOP
18
      NOP  
19
      NOP
20
      NOP
21
    _endasm
22
23
24
    PORTCbits.RC6 = 1;
25
    PORTCbits.RC5 = 1;
26
    PORTCbits.RC4 = 1;

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.