Hallo Habe ein ALPS NEA02040AA. Auch LSSDB3011A steht drauf. Es sind 3 OKI M5260 und ein OKI 5298A drauf (Steuerung) Hat ihrgendjemand Daten zur Anschaltung ?? plz mail me Dirk
Ich glaub ich hab das selbe. Kann dir morgen das Datenblatt schicken. MfG Torsten
Ähm, ich habs geschenkt bekommen... Und wollt ein bisschen rumspielen. Hab aber leider noch nix hinbekommen, bzw. überhaupt probiert. Habs leider in der Firma, deshalb erst morgen früh. MfG Torsten
Hallo, ich habe einige solcher displays ... hierbei handelt es sich um passive displays die keinen eigenen controller haben. man muß sich um die ansteuerung selbst kümmern, sprich das horizontalsignal, das vertikalsignal, den pixeltakt, die pixeldaten und das umschalten der lcd-spannung selber machen. ich habe für einen TS80c32X2 einen lauffähigen code geschrieben der im x2 modus bei 22Mhz etwa 50% der rechnenzeit frist. hier die pinbelegung: 1. Contrast (0-18V) 2. DI (shiftdata für X-lines) 3. CP (clockline für DI-shifting) 4. LOAD (latch out DI-data) 5. DI (shiftdata für Y-Line) 6. DF (controlliert das refresh der LCD-spannung) 7. +5V 8. GND wenn intresse besteht kann ich mal den sourcecode schicken ! CA Dirk
jo den Code nehm ich natürlich auch gern. mit allem was noch zu sammeln ist. THX Dirk
Habe auch Interesse an dem Code. Könntest Du den bitte hier im Forum als Anhang posten? Danke. Gruß Michael
hiho ... ich habe gerade mal nach den code geschaut, ich kann ihn hier alleine nicht posten sonst funktioniert er nicht mehr. Er ist leider in einen µkernel für den TS80c32x2 gepackt, der auch gleich alle funktionen des Controllers als Systemaufrufe hat, da wären: - RS232 Ringbuffer - I2C Routinen - PWM erzeuger - LCD-Bildaufbau + Basic GFX-routinen (Punkt setzen/löschen(240*64Pixel), Zeichen ausgeben(60*8 Zeichen), Fenster Zeichnen) Wenn interesse besteht kann ich den µkernbel mal posten, ich werde aber noch versuchen den code für das LCD zu extrahieren am heutigen abend. CA Dirk
so ... hier die reinen GFX-routinen ... hoffentlich es ist lesbar (habst schnell mal eben extrahiert), der wichtigste teil ist die Interruptroutine, dort findet der bildaufbau statt. es werden 2 Kbyte XRAM benötigt. CA
Ähm, kann das mal jemand in "atmel" c übersetzen??? :-) Naja, das Prinzip wird ja deutlich. Thx Torsten
hi, wenn du noch ein bischen warten tust, ich will dämnachst das ganze für den atmega64 schreiben, aber in asm. und versuche die zeitkritischen sachen in inline-asm, in c wird es meist etwas länger weil das handling des carrys schwerer ist als in asm, der rest kann dann komfortabel in c gecodet werden. CA dirk
Hallo zusammen, ich hab es in C versucht ... bin gescheitert dann hab ich versucht, den Assambler von Dirk in C umzusetzen ... Display flackert nur und wenn man den Code per Debugger anhält, zeigt das Display ein Schachbrett-ähnliches Bild: ######## . ######## . ######## . ######## . ################# ################# ################# ################# nach jedem Aufruf von K_shiftline() verschiebt sich die horizontale Linie. [@ Dirk] Kann es sein, dass Dein Pinning vom dem im Datenblatt abweicht? -> hab es jedenfalls mit beiden versucht ... :( Ich habe das komplette Projekt als RAR gepackt - bin für jeden Tip dankbar!
Hallo, ich habe mich Anfang diesen Jahres mal wieder mit den Displays beschäftigt weil ich die beim Aufräumen wiedergefunden haben. Ich habe auch C-Code dafür geschrieben, siehe Anfang. Es sind aber noch keine Funktionen wie Pixelsetzen oder so eingebaut. Er zeigt einfach nur den Grafikspeicher an. Der Code ist für einen ATmega644 geschrieben. Er erzeugt auch noch ein PWM-Signal zum erzeugen der LCD-Spannung. Schau einfach mal rein. Und ja, du hast recht, beim Pinning war glaube ich ein Fehler drin gewesen. CA Dirk
flackert immer noch vor sich hin, ist aber schon mal komplett dunkel wie ist dieser Port mit dem Display verdrahtet? wird das noch per HW mit DF oder FRMB ver-xor-t ?
1 | // LCD-Spannung erzeugen am Ausgang OC2a
|
2 | PORTD &= ~(1<<PD7); // clear port |
3 | DDRD |= (1<<PD7); // set as output |
4 | |
5 | TCCR2A = ( 0<<WGM21 ) | ( 1<<WGM20 ) | ( 1<<COM2A1 ); |
6 | TCCR2B = ( 0<<WGM22 ) | ( 1<<CS20 ); |
7 | |
8 | TCNT2=0; |
9 | |
10 | OCR2A=43; |
Im Datenblatt werden die Signale anders benannt - stimmt diese Zuordnung mit Deinem Code? DI_X D - Input Data CP_X CLP - shift Clock of Display LOAD LIP - Latch impulse of display and shift clock for common driver DI_Y FRP - Frame pulse forcommon driver DF FRMB - Switch signal to convert LCD drive waveform into AC Welches Puls-Pause-Verhältnis und welche Periodendauer hat Deine PWM?
Die PWM ist nur für die Negative LCD-Spannung. Dazu wird aber noch eine kleine Schaltung am OC2A-Pin benötig. Anbei die verwendete Schaltung von mir. JP4 ist direkt mit dem LCD verbunden. CA Dirk
also erstmal Prima Support! Danke! ich hab's jetzt ... hab mal ein anderes (baugleiches) drangehängt und siehe da - das Testbild! Gruß, Kay
A. K. schrieb:
> @Dirk: D3 gefällt mir. Und Q3 und IC3 wirkt auf mich etwas doppelt.
D3 sollte sein. Q3 finde ich nicht, aber ich denke mal du meinst Q2 :-).
Q2 und IC3 sind da um die negative Spannung für das LCD zu erzeugen.
Wobei Q2 für das erzeugen einer positiven Spannung zwischen 0 - 14V da
ist (per PWM an OC2A) und IC3 daraus eine negative Spannung macht.
@Kay
gerne geschehen, ist zwar schon ein echt alter Thread, aber was solls
:-)
CA Dirk
Ich habe mir mal noch erlaubt, das array zweidimensional zu definieren und initialisiere den Video-Buffer so, dass ausgefüllte Dreiecke zu sehen sind. Leider wird die untere Zeile nicht dargestellt und die obere enthält irgendwelche komischen Daten?? Anhand Deines Treibers konnte ich nicht feststellen warum das so ist - im Datenblatt ist ja erklärt, in welcher Reihenfolge die Zeilen getaktet werden... da sind wohl immer Daten und Takt (zeilenweise) verschoben. Könnte das ein Grund sein? Oder habe ich einfach den Video-Buffer falsch initialisiert?
Dirk Broßwick schrieb:
> D3 sollte sein.
Jo. Ich finde auch dass sie sein sollte. Unbedingt genau so, auf
garkeinen Fall anders herum!
Dirk Broßwick schrieb: > Wobei Q2 für das erzeugen einer positiven Spannung zwischen 0 - 14V da > ist (per PWM an OC2A) und IC3 daraus eine negative Spannung macht. Schon klar. Aber erstens frage ich mich, warum du den Schaltwandler nicht gleich als Inverter betreibst. Zweitens ob du mal ins Datasheet vom ICL7660 reingesehen hast. Weil der offiziell nur 10V abkann.
Dirk Broßwick schrieb: > Wobei Q2 für das erzeugen einer positiven Spannung zwischen 0 - 14V da > ist (per PWM an OC2A) und IC3 daraus eine negative Spannung macht. Über die negative Spannung freut sich C1, falls IC3 die 14V überhaupt überlebt... PS: Und wie der Stepup 0V liefern soll ist mir auch ein Rätsel. So mache ich das immer: http://www.mikrocontroller.net/attachment/33345/lcdcon_txt.gif Da der MC34063 die Spannung selbst regelt, ist die Spannung auch nahezu unabhängig von Betriebsspannungs und Lastschwankungen. Über R1/C1 erzeuge ich per PWM eine Spannung zwischen 0V und Vcc und kann damit die Ausgangsspannung um 5V verschieben, also den Kontrast anpassen. Bei -14V reicht für den 34063 sogar der interne Transistor aus, die Schaltung wird also nochmals deutlich einfacher.
Benedikt K. schrieb: > Dirk Broßwick schrieb: > >> Wobei Q2 für das erzeugen einer positiven Spannung zwischen 0 - 14V da >> ist (per PWM an OC2A) und IC3 daraus eine negative Spannung macht. > > Über die negative Spannung freut sich C1, falls IC3 die 14V überhaupt > überlebt... Die Schaltung war nur ein Hack gewesen mit den Teilen die ich da habe um ein bisschen zu Probieren. Hat funktioniert, und ist auch nix in die Luft geflogen :-). Außerdem habe habe ich geschrieben das der Stepup bis 14V kann ... aber das er auch mit 14V läuft habe ich nicht beschrieben. Demzufolge ist das schon Okay. Und Stimmt. C1 ist falsch rum drin und D3 ist falsch herrum. > PS: Und wie der Stepup 0V liefern soll ist mir auch ein Rätsel. In dem man die PWM fast auf 100% bringt? > So mache ich das immer: > http://www.mikrocontroller.net/attachment/33345/lcdcon_txt.gif > Da der MC34063 die Spannung selbst regelt, ist die Spannung auch nahezu > unabhängig von Betriebsspannungs und Lastschwankungen. > Über R1/C1 erzeuge ich per PWM eine Spannung zwischen 0V und Vcc und > kann damit die Ausgangsspannung um 5V verschieben, also den Kontrast > anpassen. > Bei -14V reicht für den 34063 sogar der interne Transistor aus, die > Schaltung wird also nochmals deutlich einfacher. Klingt interessant, vor allem hat er einen schicken Spannungsbereich. @A.K. Weil ich eine per Controller einstellbare negative Spannung über 5V haben wollte. Und das der ICL7660 nur 10V abkann ist doch kein Problem. Ich habe ja auch geschrieben das ich bis 14V mit dem Stepup erzeugen kann, aber den ICL7660 nicht so betreibe. Das war mit den Teilen die beste Lösung für mich. Und das D3 falsch herum drin ist kann mal passieren, in der Schaltung war er richtig herum eingebaut. Und C3 habe ich mal schlichtweg übersehen. CA Dirk
Dirk Broßwick schrieb: > Hat funktioniert, und ist auch nix in die > Luft geflogen :-). Außerdem habe habe ich geschrieben das der Stepup bis > 14V kann ... aber das er auch mit 14V läuft habe ich nicht beschrieben. Ich bin immer vorsichtig bei Stepups ohne feste Last: Es reicht bereits wenn das LCD mal nicht angeschlossen ist, und die Leerlaufspannung läuft am Stepup hoch bis der 7660 die Spannung (mehr oder weniger destruktiv) begrenzt. Zumindest eine Z-Diode parallel zur Ausgangsspannung halte ich daher für sinnvoll. >> PS: Und wie der Stepup 0V liefern soll ist mir auch ein Rätsel. > > In dem man die PWM fast auf 100% bringt? Nahezu 100% wäre auch nahezu unendlich hohe Spannung.
Benedikt K. schrieb: > Dirk Broßwick schrieb: > >> Hat funktioniert, und ist auch nix in die >> Luft geflogen :-). Außerdem habe habe ich geschrieben das der Stepup bis >> 14V kann ... aber das er auch mit 14V läuft habe ich nicht beschrieben. > > Ich bin immer vorsichtig bei Stepups ohne feste Last: Es reicht bereits > wenn das LCD mal nicht angeschlossen ist, und die Leerlaufspannung läuft > am Stepup hoch bis der 7660 die Spannung (mehr oder weniger destruktiv) > begrenzt. Zumindest eine Z-Diode parallel zur Ausgangsspannung halte ich > daher für sinnvoll. > >>> PS: Und wie der Stepup 0V liefern soll ist mir auch ein Rätsel. >> >> In dem man die PWM fast auf 100% bringt? > > Nahezu 100% wäre auch nahezu unendlich hohe Spannung. Wahrscheinlich. In der Schaltung ist die Spannung aber zusammengebrochen durch den ICL7660. Den höchsten Spannungspegel hatte man erreicht mit den Step-Up bei etwa 75% PWM, dort hatte man im Leerlauf ca 13,9V. Danach ist die Spannung herunter gegangen bis sie bei ca 99% komplett zusammengebrochen ist bis auf 0.25V. Die eigentliche Schaltung die ich dafür mal hatte waren zwei ICL7660, der ersten als Verdoppler und den zweiten als Inverter. Die Schaltung war von 2003 gewesen. Und da ich die Teile noch hatte ... Würde ich heute die Schaltung noch mal neu entwickeln, würde ich wahrscheinlich auch ein mc34063 oder ähnlich nehmen, obwohl mir das eigentlich schon fast zu viel drumherum ist. CA Dirk
Muss mich nochmal zu Wort melden ... @ Dirk: Hast Du eine Idee, wie man die oberste Zeile des Displays korrekt anspricht? hier nochmals der Code: http://www.mikrocontroller.net/attachment/54204/LCD_alps.c
@Kay, sehe gerade das da wohl ein Fehler im Program steckt. Mach mal in der Funktion Update die Abfrage ob if(Line == 0) ist hinter den Aufbau für die Zeile. Sonst sind die Daten für die Zeile im Eimer. Kann es jetzt aber leider nicht probieren. Habe leider auch gerade nix zu testen da, dazu müsste ich erst mal wieder das Board in Betrieb nehmen. CA Dirk p.s.: sehe ich das richtig, du hast die Displays auch aus HiCom Telefonen geklaut ? :-)
Ahja .. genau richtig! Hier nochmals für alle das gesamte Projekt. Und hier noch ein paar Begriffe, damit dieser Thread auch von den Suchmaschinen gefunden wird:
1 | /*
|
2 | display driver for
|
3 | ALPS NEA02040AA
|
4 | HCN-111
|
5 | 94V-0
|
6 | LSSDB3011A
|
7 | OKI M5260 2369702
|
8 | OKI M5298A
|
9 | */
|
p.s. ... ertappt ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.