Forum: Mikrocontroller und Digitale Elektronik AVR PWM zur LCD-Kontrastregelung


von Kermit (Gast)


Lesenswert?

Hallo,
ich möchte den Kontrast der Pollin Wintek LCD über PWM ansteuern. Ich 
habe es probiert. Bei "geringeren" (gemessen mit Oszi: 1,2kHz und 5kHz) 
PWM-Frequenzen "flimmert" es etwas im Halbsekunden- bis Sekundentakt 
jeweils einmal. Bei höherer PWM-Frequenz (gemessen mit Oszi: 20kHz) 
flimmert es nicht mehr, aber es ist so eine Art "Geisterbild" zu 
erkennen.
Mit welcher PWM-Frequenz muss man den Kontrast ansteuern? Oder benötigt 
das LCD eine Zusatzschaltung (=Tiefpass)? Andere LCD werden laut 
Schaltplan auch ohne Zusatzbeschaltung über PWM angesteuert.


Aber vielleicht habe ich auch im AVR softwaremäßig was falsch gemacht? 
So ganz habe ich nämlich nicht verstanden, wie die PWM-Frequenzen, die 
ich nachgemessen habe, zustanden kommen. Vielleicht kann mir das jemand 
erklären:
- Clock ist ein 20MHz Quarz
- genutzt wird Timer1 eines Atmega644
- diesen habe ich in Mode1 geschaltet: PWM, Phase Correct, 8-bit 
(WGM10-Bit in TCCR1A gesetzt)
- Prescaler habe ich mit den Bits CS10 und CS11 in TCCR1B versuchsweise 
auf 64, 8 und 1 gesetzt.
- In OCR1A wird das Tastverhältnis eingstellt (0-255)

Mit Prescaler 64 habe ich eine PWM-Frequenz von ~1,2kHz gemessen
Mit Prescaler 8 habe ich eine PWM-Frequenz von ~5kHz gemessen
Mit Prescaler 1 habe ich eine PWM-Frequenz von ~20kHz gemessen

Wie komme ich da mathematisch darauf bei einer Clock von 20MHz?
Eigentlich dachte ich "Clock  Prescale  512" (512=2x256, weil er ja 
bis 255 up und down counted und jeweils bei OCR1A den Ausgang ändert?) 
Aber das haut nicht hin (außer bei Prescaler 8), also muss ich irgendwo 
einen Denkfehler haben?


Danke im voraus,
Kermit

von Kermit (Gast)


Lesenswert?

Hm, irgendwie sind die Slashes verschwunden. Kann den Beitrag leider 
nicht editieren (auch sorry für die furchtbaren, grammatikalischen 
Flüchtigkeitsfehler - ich denke man kann es aber trotzdem verstehen).

Da die Slashes fehlen, hier noch mal die Formel, womit ich nur bei 
Prescaler 8 auf den richtigen Wert komme:

PWM-Frequenz = Clock : Prescaler : 512

von Kermit (Gast)


Lesenswert?

Noch vergessen zu erwähnen : Bit COM1A1 in TCCR1A ist auch gesetzt.

von Falk B. (falk)


Lesenswert?

@  Kermit (Gast)

>PWM-Frequenzen "flimmert" es etwas im Halbsekunden- bis Sekundentakt
>jeweils einmal.

Komisch.

>Mit welcher PWM-Frequenz muss man den Kontrast ansteuern?

Gar nicht! Der muss analog eingestellt werden, meist manuell per Poti.

> Oder benötigt das LCD eine Zusatzschaltung (=Tiefpass)?

Ja. Siehe

http://www.mikrocontroller.net/articles/Pulsweitenmodulation#DA-Wandlung_mit_PWM

> Andere LCD werden laut
>Schaltplan auch ohne Zusatzbeschaltung über PWM angesteuert.

Sicher? Oder verwechselst du das nicht mit der Hintergrundbeleuchtung?

MFG
Falk

von Kermit (Gast)


Lesenswert?

Per Poti funktioniert das Display natürlich einwandfrei. Aber das wollte 
ich gerade weg haben und den Kontrast digital regeln.
Dafür habe ich schon eine fertige Software, nur ist die PWM-Frequenz für 
mein Wintek Display wohl zu niedrig, bzw. das geht so nicht ohne 
Tiefpass. Ein Tiefpass ist für das Display nicht vorgesehen und bei den 
normalerweise eingesetzten 2x16 Dotmatrix-LCDs scheint es so auch keine 
Probleme gegeben zu haben.

Mein Problem ist nun, wie ich den Tiefpass dimensioniere? Der Link hilft 
mir dabei auch nicht wirklich weiter (warum soll ich V_Ripple 
ausrechnen? Ich möchte den Werte für RC haben). Mit den im Beispiel 
gezeigten 100K und 22n geht das Display gar nicht erst an. Selbst wenn 
ich R um einiges verkleinere, wird der Kontrast sehr schwach im 
Gegensatz zu keinem R. Am Kontrastpin fließt ein Strom von 0,5mA, wenn 
ich ihn direkt gegen Masse schalte.


Vielen Dank,
Kermit

von Kermit (Gast)


Lesenswert?

Hm, ich habe nun mit mehreren RC-Werten experimentiert. Es ist nahezu 
immer so, dass ich kein sauberes GND mehr kriege, sobald ein RC-Glied 
drin ist (selbst bei 0% PWM also 0V am uC).
Folgenden Kompromiss habe ich nun:


uC-Ausgang --- R=1K --- LCD-Contrasteingang
                     |
                    === C = 330nF
                     |
                    --- GND

Wenn ich den PWM auf 0 stelle, dann habe ich einen vernünftigen Kontrast 
(Direkt gegen Ground ohne RC-Glied habe ich viel stärkeren, bzw. zu 
starken Kontrast). Da ich das Display aber im KFZ einsetzen will, wo es 
im Winter -10Grad und im Sommer +50 sein können, weiß ich nicht ob man 
bei jeder Temperatur den Kontrast noch vernünftig regulieren kann, wenn 
ich das RC-Glied reinsetze? Ein OP-Amp oder ähnliches will ich auch 
Platzgründen aber keinesfalls mehr einsetzen!

von spess53 (Gast)


Lesenswert?

Hi

>Da ich das Display aber im KFZ einsetzen will, wo es im Winter -10Grad

Optimist. Wenn das keins mit erweitertem Temperaturbereich ist, solltest 
du mit 0..50° rechnen.

MfG Spess

von Kermit (Gast)


Lesenswert?

Ja, es ist eines mit angegebener Betriebstemperatur von 0..50Grad. Aber 
die 0Grad sollten auch im Winter hoffentlich recht schnell erreicht 
werden. Lagertemperatur ist mit -20 bis +70 Grad angegeben.

von Michael K. (mmike)


Angehängte Dateien:

Lesenswert?

Anbei mal meine Schaltung für den Kontrast ... funktioniert wunderbar 
...

Grüße,
Michael

von Falk B. (falk)


Lesenswert?

@  Kermit (Gast)

>ich das RC-Glied reinsetze? Ein OP-Amp oder ähnliches will ich auch
>Platzgründen aber keinesfalls mehr einsetzen!

Wirst du wahrscheinlich aber müssen. Die gibte es aber recht klein im 
SO8 Gehäuse, wenn man will auch SOT23.

MFG
Falk

von Martin (Gast)


Angehängte Dateien:

Lesenswert?

@Michael

Deinen Schaltungsvorschlag möchte ich gerne einsetzen, bekomme jedoch 
"komische" Simulationsergebnisse. Hab' ich etwas übersehen?

von Falk B. (falk)


Lesenswert?

@  Martin (Gast)

>Deinen Schaltungsvorschlag möchte ich gerne einsetzen, bekomme jedoch
>"komische" Simulationsergebnisse. Hab' ich etwas übersehen?

Ja. Dein Tiefpass wird im Wesentlichen aus R2 und C1 gebildet. Macht 
50µs Zeitkonstante. Bissel wenig für 3kHz PWM-Frequenz.

MFG
Falk

von Martin (Gast)


Lesenswert?

@ Falk

Bei C1 = 10 µ und R2 4.7 K sieht das Signal ganz koscher aus. Aber wie 
ist denn der Schaltplan von Michael zu verstehen?

von Martin (Gast)


Lesenswert?

@Michael K.

Wie ist denn deine Schaltung zu verstehen? In der Simulation zeigt sie 
keinen glatten Verlauf der Spannung 
(http://www.mikrocontroller.net/attachment/52937/LCD.gif).

von zwieblum (Gast)


Lesenswert?

mach den kondensator größer, so um das 50-fache, oder dreh die 
pwm-frequenz rauf, so um das 50-fache.

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.