AVR STN-Display-Tester (320x240)

#748836
Lesenswert?

Hallo,
Die beiden Programme im Anhang dienen dazu ein Controllerloses 
230x340-STN-Display, wie es z.B: Pollin unter den Bestellnummern 120 460 
und 120 471 verkauft, zu testen.
Die Programme sind für einen Tiny26 geschrieben. Mit einem etwas 
ressourcenstärkeren AVR ließe sich auch durchaus ein "richtiger" 
Display-Controller realisieren (In Arbeit).
Die beiden Programme dienten aber wirklich nur zum Test+Zeitvertreib, 
bevor die Displays im Lager auf ihre eigentliche Bestimmung warten.

Das erste Programm (stn-display-test-extended.asm) erzeugt nacheinander 
verschiedene Muster, die "Abspielgeschwindigkeit" ist im Quelltext 
einstellbar.

Das zweite Programm (stn-display-test-grafik.asm) gibt ein im Flash 
gespeichertes Bild wieder, aus Faulheit ist dieses "Bild" momentan eine 
Text- und Musterzeile, welche 8 Pixelzeilen einnimmt, und dann 
Programmseitig 30 mal widerholt wird. Ein BilddatenByte enthält 8 
Bildpunkte.

Die beiden Eingangs erwähnten Displays wurden gemäß folgendem Datenblatt 
angeschlossen:
http://www.mark-products.com/pdf/g320x240/159/159%20spec.pdf

Die Belegung des AVR befindet sich im Quelltextkopf

Vielleicht kann ja jemand was damit anfangen...
Angehängte Dateien:
Gast #749036
Lesenswert?

Danke für den Tipp, laut Datenblatt braucht die CCFL 280V Spannung bei 
5mA.

Wie ich bei Pollin gesehen hab,
ist Dein Display weisse Pixel auf schwarzem Grund.
Dann müsste theoretisch Dein Code auch bei dem anderen Display
mit schwarz auf weiss funzen.

Ein Test wäre es wert.

Werde mal so ein Display bestellen und ein wenig experimentieren.
Gast #749284
Lesenswert?

Also mir gefällt das schwarz auf weiss irgendwie besser,
ist aber Geschmackssache.

Jetzt könnte man den Code von Assembler auf C umstricken (mag ich 
lieber) und mit kompletter Grafikbibliothek in z.B. einen Mega128 
packen.

Dem schickt man per UART was er darstellen soll und den Rest macht er 
dann selbst.

So hat man den "Hauptcontroller" frei und kosten tut der Mega128 auch 
nicht die Welt.

Gefällt mir, ist mal was anderes als nur Charakterdisplays oder kleine 
GLCDs.

thnx für die Bilder
#749331
Lesenswert?

Deswegen wird der richtige Controller auf einem AT32UC3A0512 entstehen 
:), der hat genug RAM an Bord, und wenn mir das nicht reicht habe ich 
genug SDRAMS zum dranhängen.Und weil der so schön schnell ist bleibt 
auch noch genug Zeit für die eigentliche Aufgabe.
Verstehe ich das eigentlich richtig, dass du im Textmodus nur immer 
jeweils eine Zeile berechnest, oder machst du das nur, wenn du zu wenig 
Arbeitsspeicher hast?

Zum Thema Code in C umstricken:
Ich denke bei diesem kurzen Code ist man schneller fertig, wenn man 
nochmal von Null anfängt...
Zumindest ist das im Nachhinein mein Eindruck, denn die Basis dieser 
Programme war ein VGA-Testbildgenerator, den ich mal geschrieben hatte.
#749358
Lesenswert?

Tobias L. wrote:
> Verstehe ich das eigentlich richtig, dass du im Textmodus nur immer
> jeweils eine Zeile berechnest, oder machst du das nur, wenn du zu wenig
> Arbeitsspeicher hast?

Ich mache das unterschiedlich, je nach Bedarf:
Wenn ich genügend RAM habe (bei kleineren LCDs oder beim 640x480 
Controller), dann rechne ich den Text in Grafik um, und schreibe diese 
Daten ins RAM, wo es dann direkt vom Display ausgegeben wird.
Bei dem TV Controller (40x25 Zeichen Text auf TV) habe ich den 
Zeichensatz entsprechend im Flash angeordnet, dass zuerst die 256Byte 
der ersten Pixelzeile gespeichert sind, dann die zweite Pixelzeile usw. 
Die Daten werden dann in Echtzeit (d.h. während der Ausgabe) 
entsprechend der ASCII Codes aus dem TextRAM gelesen und ausgegeben. 
Spart 1/8 vom Speicher, dafür ist aber eben nur Text notwendig.
#751595
Lesenswert?

Die Pixelfehler liegen entweder an ner kalten Lötstelle an der 
CP-Leitung, oder daran, dass der CP-Eingang mal die Kontrastspannung 
genascht hat...
Waren am Anfang net... und sind auch weiterhin beim Mustertest nicht da.
Durch "Handauflegen" wird es besser...

@Nik
Folienleiter kann man entweder löten (Flachbandkabel dran), oder man 
schlachtet die Verbinder aus alten Platinen aus. Bei Pollin kann man die 
auch bestellen... sind halt zu "vielpolig", aber das ist nicht weiter 
tragisch.
#790061
Lesenswert?

So, nach über 4 Wochen sind meine Displays nun auch endlich angekommen 
:-)
Hab' natürlich gleich mal eine Testschaltung aufgebaut und den Code von 
Tobias rübergebrannt - funktioniert! :-) Vielen Dank!

Ich habe noch einige Pixelfehler, die verschwinden aber per, wie oben 
schon gesagt, Hand auflegen.
Zudem habe ich noch so ein komisches Flimmern über das Display, als ob 
der Kontrast sich andauernd ändern würde. Meine -23V kommen aus einem 
MC34063 mit genügend grossem Kondensator am Ende also eigentlich sollten 
da keine Störungen drauf sein...überprüfen kann ichs aber auch nicht da 
ich kein Oszi besitze. Kann das Flimmern des Kontrastes (nicht 
Hintergrundhelligkeit) irgendwie von meinem 'losen' Aufbau (siehe Anhang 
:-)) kommen?

Morgen werde ich dann mal eine sauber(-ere) Schaltung aufbauen mit Sram 
usw..
#790203
Lesenswert?

Hallo Nik,
Welche Taktfrequenz hast du deinem Mega16 gegönnt?
Bei mir sind es 14.318180Hz, ich hatte auch die ganzen internen 
Frequenzen duchprobiert, die sind alle zu niedrig für ein flimmerfreies 
Bild.
Hier kommt es aber auch auf den Blickwinkel an, Frontal kann das Bild 
perfekt sein, und ab nem bestimmten Winkel sieht man dann die Streifen 
laufen...
Gruß Tobias
#790237
Lesenswert?

Auf der Unterseite der Platine ist noch ein 16Mhz Quarz versteckt :-) 
...

Ich glaube aber meinen Übeltäter gefunden zu haben und zwar ist es wohl 
meine Schaltung für die Kontrastspannung. Irgendwie scheint die nicht 
soo stabil zu sein, denn je nachdem welches Muster gerade angezeigt wird 
gibt meine Wandlerschaltung eine andere Spannung aus, ich dachte 
eigentlich für den Kontrast benötige man nur einige mA, ich schau dann 
lieber nochmal im Datenblatt.. ;)
#790269
Lesenswert?

Du kannst ja mal parallel zu dem "großen Kondensator" noch nen kleinen 
Kerko mit einigen 10nF (bei mir sind es 33nF) schalten.
Eine Grundlast von wenigen mA habe ich meiner Kontrastspannung auch noch 
gegönnt, so wirken sich Änderungen der Nutzlast prozentual nicht ganz so 
stark auf den Regelkreis aus.
Mein Kontrast geht beim Mustertest aber auch zeitweise in die Knie, und 
zwar bei den einzeiligen Horizontalstreifen.
#790400
Lesenswert?

Ich würde mal drauf tippen, dass die Dimensionierung vom 34063 ein wenig 
daneben ist. Versuch mal folgendes: Betreiben den nicht mit 5V sondern 
mit 7-10V. Dann sollten die Probleme nahezu weg sein.
Das Problem am 34063 ist, dass dessen maximales Tastverhältnis begrenzt 
ist. Daher ist dieser bei 5V -> -20V sehr an der Grenze, vor allem da 
dieser einen NPN Darlingtontransistor hat. D.h. von den 5V kommen nur 
noch etwa 3,5V wirklich an der Spule an.
Gast #791394
Lesenswert?

Der STN Tester läuft auch mit einem LCD was mal vor längerer Zeit bei 
Pollin verkauft wurde. Dem Wintek WD-G32249.
Hatte mir ein paar davon besorgt.
Die LCDs haben einen Touch Digitizer + Blauer EL und brauchen nur 5V + 
EL Spannung.
Die Anschlussbelegung (ohne Garantie!)
1
1  VCC5V
2
2  GND
3
3  Contrast IN (bei mir 920k R nach Contrast OUT)
4
4  Contrast OUT
5
5  /DISOFF
6
6  D0
7
7  D1
8
8  D2
9
9  D3
10
10 GND
11
11 Pixel Clock
12
12 GND
13
13 LP
14
14 Frame
15
17 + 20 EL
16
Rest NC
Angehängte Dateien:
#791608
Lesenswert?

Wow, der kleine Kondensator hat echt noch einiges gebracht! (Habe gleich 
einige Werte paralell gehängt, mitlerweilen sinds so an die 5 
Kondensatoren + den dicken Elko... :-)

Mitlerweilen habe ich mir ein Programm in C(!) geschrieben das den 
Inhalt eines 1200 Byte (40x30 Zeichen) Arrays auf das Display ausgibt. 
Der Schriftsatz dazu liegt im Flash eines ATmega32.
Hinzu kommen soll noch eine Empfansroutine für die UART, dann kann ich 
das Display für diverse Debugzwecke an anderen Projekten verwenden...

Am Frame Ausgang messe ich jetzt noch 44 Hz, falls ich das richtig 
interpretiere bedeutet dies doch, dass ich 44 Bilder / Sekunde habe, 
oder? ;-)

Interessant ist noch, dass der Kontrast stabiler wird, wenn man die 
Daten noch schneller ausgibt... Obwohls im Moment nicht flimmert, wird 
der Kontrast besser, wenn ich zum Beispiel ein zufälliges Zeichen aus 
dem Ram ausgebe. (über 60Bilder/sek)


@Benedikt:
Versuchsweise habe ich die Spannung am 34063 mal auf 10V hochgeschraubt, 
ohne sichtbare Verbesserung. Wie oben schon geschrieben liegt es aber 
wahrscheinlich an der zu langsamen Refresh Rate, aber mehr als meine 
~45Hz liegen mit C wahrscheinlich nicht drin.(?)
#791669
Lesenswert?

Nik Bamert wrote:

> Wie oben schon geschrieben liegt es aber
> wahrscheinlich an der zu langsamen Refresh Rate, aber mehr als meine
> ~45Hz liegen mit C wahrscheinlich nicht drin.(?)

45Hz ist relativ gering, das kann (je nach Reaktionszeit des Displays) 
schon etwas flimmern. Üblicherweise verwendet man etwa 70-80Hz, damit es 
einerseits flimmerfrei ist, andererseits man auch weit genug von 50/60Hz 
weg ist, um Interferenzen mit Netzbetriebenen Leuchtstofflampen zu 
vermeiden.

Ich hätte hier Assemblerprogramm für einen mega8, das auf diesem LCD 
40x20 Zeichen Text anzeigt. Ansteuerung via UART, aber auch beliebig auf 
SPI oder I2C umänderbar. Ich brauche rund 640 Takte pro Bildzeile. Das 
sollte theoretisch 100Hz ermöglichen.
Falls interesse besteht, kann ich die komplette Software mal posten.
Angehängte Dateien:
Persönliche Seite #794913
Lesenswert?

Hallo Benedikt,

Hätte interesse an deinem Programm.
Habe mir auch solche Displays bestellt und mit dem Display Tester läuft 
momentan nur das mit weissem Hintergrund richtig. Auf dem Schwarzen 
bekommt man zumindest mit dem Testprogramm welches Text ausgibt nur 
Wirres Zeug dragestellt. Bei deinem Bild sieht das ja soweit ok aus.
Naja ich muss mal mein kleines Testboard für den S1D13700 fertig 
layouten, um dann mit dem Divesen "Dummen" Displays rumspielen zu können 
:-)

MfG Kai

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren