Forum: Projekte & Code AVR STN-Display-Tester (320x240)


von Tobias L. (morslucis)


Angehängte Dateien:

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...

von Tobias L. (morslucis)


Angehängte Dateien:

Lesenswert?

Und hier noch der zweite Anhang

von Thomas (Gast)


Lesenswert?

Welchen Inverter hast Du für die Hintergrundbeleuchtung benutzt?
Kann Pollin den auch liefern?

von Tobias L. (morslucis)


Lesenswert?

Jo, den Inverter hatte Pollin auch im Programm: 120 290
Aber der ist wohl mittlerweile ausverkauft.
Naja, die kann man ja auch sonstwo kaufen, oder aus alten Laptops 
ausschlachten.

von Thomas (Gast)


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.

von Tobias L. (morslucis)


Lesenswert?

Ich habe beide Displays, und der Code funktioniert auch mit beiden. Ich 
hatte mir zuerst das billigere gekauft, und dann, als der Preis runter 
ging noch das teurere. Mir gefällt das Billigere (weiß auf schwarz) aber 
ein bissel besser für das angedachte Projekt. Mal sehen, was am Schluss 
wirklich besser ist.

von Benedikt K. (benedikt)


Lesenswert?

Das weiß auf schwarz Display hat meiner Meinung nach einen recht guten 
Kontrast (für ein passives STN). Es ist aber recht glänzend, d.h. man 
spiegelt sich schön darin.
Wie ist eigentlich das andere ? Kann man dieses auch ohne backlight gut 
erkennen ?

von Tobias L. (morslucis)


Lesenswert?

schnelltest
Aber Hallo!
Extrem viel sogar...
Hätte ich nicht gedacht...
Ist wie bei den "normalen" Handy- und Uhrendisplays.

PS: mein Dank geht natürlich auch an Benedikt, ohne den ich die Belegung 
nicht kennen würde...

von Thomas (Gast)


Lesenswert?

Könntet Ihr mal ein paar Bilder posten,
damit man mal einen kleinen Eindruck bekommt.

Danke

von Tobias L. (morslucis)


Angehängte Dateien:

Lesenswert?

Biddeschön
Die spiegeln echt brutal, das war mir bisher nicht aufgefallen, weil ich 
die Folie noch draufhatte...

von Benedikt K. (benedikt)


Lesenswert?

Das weis.... ist das teurere LCD ? Sieht nicht schlecht aus...

von Tobias L. (morslucis)


Lesenswert?

Ja genau...
Kommt halt auf den Verwendungszweck an, welches von beiden besser ist
Das Weiße sieht ja ohne Hintergrundbeleuchtung fast besser aus als 
mit...

von Thomas (Gast)


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

von Benedikt K. (benedikt)


Lesenswert?

Das Problem ist dabei nur der SRAM.
Im Grafikmodus: 320x240=76800bits=9600Byte
Im Textmodus (8x8): 40x30=1200Zeichen

Im Textmodus würde ein mega16 aufwärts ausreichen. Für den Grafikmodus 
benötigt man ein externes RAM, und kann dann direkt die Schaltung von 
meinem 640x480 Controller nehmen (der kann dieses Display auch 
ansteuern.)

von Tobias L. (morslucis)


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.

von Benedikt K. (benedikt)


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.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Best.Nr. 530 858
Sollte als Inverter passen... die Röhren kann man ja wegwerfen...

von Benedikt K. (benedikt)


Lesenswert?

Läubi Mail@laeubi.de wrote:
> Best.Nr. 530 858
> Sollte als Inverter passen... die Röhren kann man ja wegwerfen...

Würde ich nicht wegwerfen: Die Röhre ist verdammt hell, für so wenig 
Leistung.

von Nik B. (nikbamert)


Lesenswert?

Coole Sache das! Werde mir wahrscheinlich auch eins bestellen, wenn mir 
jemand verraten kann, wie man den Folienverbinder angeschlossen bekommt 
:)
(Leider kann ich nicht bei Farnell bestellen)

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Woher kommen eigentlich die pixelfehler auf dem weiß auf schwarz 
display?

Ansonsten: Sehr gutes Projekt, bei ner entwicklung zu nem richtigen LCD 
Controller wär ich direkt dabei ;)

von Tobias L. (morslucis)


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.

von Benedikt K. (benedikt)


Lesenswert?

Man kann das Folienkabel auch auslöten und stattdessen ein normales 
Flachbandkabel anlöten. Es wird zwar ein bischen eng, da es glaube ich 
1mm Raster sind und keine 1,27mm, aber es geht. Es werden ja nur 11 Pins 
benötigt, die letzten 3 kann man weglassen.

von Nik Bamert (Gast)


Lesenswert?

Danke euch beiden! Habe den Verbinder nun gefunden und bestelle dann 
morgen, hoffentlich sind dann noch ein paar verfügbar...
Eine Frage habe ich aber noch: Wie kommt ihr auf die Kontrastspannung 
von ~21Volt? Ich nehme an, die wird nicht schon vom Display selbst 
erzeugt.(?)

von Tobias L. (morslucis)


Lesenswert?

Ich habe ein Netzteil, das 8,5V Gleichspannung, und 12V Wechselspannung 
ausgibt. Aus den 8,5VDC erzeuge ich +5VDC, und versorge den Inverter, 
und aus den 12VDC erzeuge ich mittels Spannungsverdoppler, Zenerdiode, 
Dioden, PNP-Transistor und einigen Widerständen meine Kontrastspannung. 
Nen Selbstbau-Spannungsregler halt..

von Tobias L. (morslucis)


Angehängte Dateien:

Lesenswert?

Hier noch ein kleines Java-Programm, das S/W-Pixmaps (*.xpm) zu 
Assemblercode verarbeitet und wenn gewünscht die Zeilen gleich 
durchnummeriert und/oder das Bild invertiert.
Größeninformationen werden aus dem Dateiheader gewonnen.

von Nik B. (nikbamert)


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..

von Nik B. (nikbamert)


Angehängte Dateien:

Lesenswert?

..Anhang vergessen

von Tobias L. (morslucis)


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

von Nik B. (nikbamert)


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.. ;)

von Tobias L. (morslucis)


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.

von Benedikt K. (benedikt)


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.

von Claude (Gast)


Angehängte Dateien:

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

von Tobias L. (morslucis)


Lesenswert?

Das freut mich :)

von Nik B. (nikbamert)


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.(?)

von Benedikt K. (benedikt)


Angehängte Dateien:

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.

von numen (Gast)


Lesenswert?

kann man das display auch so anschliessen, damit man es mit LCDHype o.ä. 
verwenden kann?

gruss Numen

von Benedikt K. (benedikt)


Lesenswert?

Ja, die Uhrezit/Datum auf dem Foto kam glaube ich sogar über LCDHype 
oder ein ähnliches Programm.

von Kai B. (kaib) Benutzerseite


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

von numen (Gast)


Lesenswert?

kannst du mir erklären wie das genau funktioniert? grafik anzeigen wäre 
auch nicht schlecht.

So dass ich das display wie ein normales Grafikdisplay mit kontroller 
verwenden kann am besten einfach mit usb

Gruss Numen

von Benedikt K. (benedikt)


Lesenswert?

Ich habe das Programm hier reingestellt:
Beitrag "Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus"

Alle Fragen dazu bitte in dem andren Thread posten, ich will diesen hier 
nicht komplett übrnehmen...

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.