mikrocontroller.net

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


Autor: Kermit (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kermit (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kermit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch vergessen zu erwähnen : Bit COM1A1 in TCCR1A ist auch gesetzt.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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/Pulsweiten...

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

Sicher? Oder verwechselst du das nicht mit der Hintergrundbeleuchtung?

MFG
Falk

Autor: Kermit (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kermit (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kermit (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael K. (mmike)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anbei mal meine Schaltung für den Kontrast ... funktioniert wunderbar 
...

Grüße,
Michael

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Michael

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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: zwieblum (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.