Datum:
Angehängte Dateien:Wie der Betreff schon sagt, die Schaltung ist extrem einfach (nur ein mega8 und ein Spannungswandler auf -20V) und kann 40x20 Zeichen Text auf einem 320x240 LCD anzeigen. Für eine hohe Geschwindigkeit ist die Software in Assembler geschrieben. Allerdings hat die Schaltung aber auch ihre Grenzen: Es ist nur Text möglich, keine Grafik, nichtmal benutzerdefinierten Zeichen. Momentan wird eine Schriftart von 8x12 verwendet, es kann auch auf 8x10 umgeschaltet werden (mit CSize=10), was dann 40x24 Zeichen ergibt, allerdings sieht diese Schriftart meiner Meinung nach nicht gut aus. Der eingebaute Befehlssatz ist angelehnt an die Befehle der seriellen LCDs von Crystalfontz, da diese von vielen Programmen wie LCDsmartie oder LCDHype unterstützt werden. Im Moment ist 57600Baud eingestellt, für maximale Kompatibiliät mit anderen Programmen sollte man auf 19200Baud umstellen. Momentan werden die Zeichen via Uart empfangen. Um Wartezeiten zu vermeiden ist ein 32Byte empfangs FIFO verhanden, das im Normalfall eigentlich nie überlaufen sollte, außer man sendet dauerhaft solche Befehle wie alles löschen (Befehl 12). Der Datenemfpang kann auch leicht auf andere Schnittstellen (SPI, I2C usw.) umgestellt werden, daher sind die Empfangsfunktionen in uart_getchar und UART_RX_int ausgelagert. Da die LCD Ansteuerung im Interrupt erfolgt, kann man sich bei den Empfangsfunktionen voll austoben, ohne das man die LCD Ansteuerung stört (solange man nicht zuviel Zeit im Interrupt verbringt). Zur Schaltung ist eigentlich nicht viel zu sagen, außer vielleicht zur VLCD Spannungsabschaltung. Über den LCD OnOff Pin schalte ich einen Optomosfet um die negative Spannung für das LCD zu schalten. Anstelle des Optomosfets kann man auch Transistoren verwenden, ist dann nur ein kleinwenig aufwendiger. Notfalls kann kan die Abschaltung auch ganz weglassen. Die VCLD Spannung ist über PWM per Software ein wenig regelbar.
Datum:
Angehängte Dateien:Hier noch ein Foto von dem Aufbau. Wie man sieht: Auf der Platine ist wirklich fast nichts drauf.
Datum:
Kann man das ding nicht so umbauen, dass man auch bilder damit in LCDHype übertragen kann? so wie dein grosser Display controller. Am besten über usb. Gruss Numen
Datum:
Kannst Du Bezugsquellen und Datenblätter für das Display nennen?
Datum:
Das sieht ja schon mal sehr vielversprechend aus. Der genaue Displaytyp würde mich auch interessieren.
Datum:
das sollten alles passende displays sein http://www.pollin.de/shop/detail.php?pg=OA==&a=NDM... http://www.pollin.de/shop/detail.php?pg=OA==&a=ODI... http://www.pollin.de/shop/detail.php?pg=OA==&a=OTM... http://www.pollin.de/shop/detail.php?pg=OA==&a=MTg... Gruss Numen
Datum:
Hallo das Blaue LCD was es momentan bei Pollin für 19Euro gibt hat übrigens ein Displaycontroller drauf es handelt sich um den S1D13305 das datenblatt was es zur Version B bei Winstar gibt ist allesdings für den neuen Epson Controller S1D13700 gedacht. Zum Spielen hab ich mir ein Pollin Programm angepasst. Das einzige was stört ist das flimmern des Displays beim Daten übertragen. Kann heute abend bei bedarf gerne mal ein Bild von anhängen. MfG Kai
Datum:
Ich fang mal oben an: Numen B. wrote: > Kann man das ding nicht so umbauen, dass man auch bilder damit in > LCDHype übertragen kann? so wie dein grosser Display controller. Am > besten über usb. Nein. Denn dazu fehlt ganz einfach der Speicher (8kByte für 320x240). Das funktioniert nur mit den ganz großen AVRs, oder einem mit externem RAM. Dann ist man wieder bei dem großen LCD Controller. Ich wollte die Schaltung jetzt aber so einfach wie möglich machen, und das geht leider nur im Text Modus. Ein serielles oder I2C 40x20 Display ist aber auch schon ganz nett. Christian J. wrote: > Kannst Du Bezugsquellen und Datenblätter für das Display nennen? Pollin, die Links hat Numen ja schon angegeben. Die NAN YA LCDs habe ich beide schon getestet, die sind meiner Meinung nach nicht schlecht (guter Kontrast). Beide haben die gleiche Pinbelegung wie das hier: http://www.mark-products.com/pdf/g320x240/159/159%20spec.pdf Das Sharp LCD ist auch nicht schlecht, benötigt aber die ganzen Teilspannungen einzeln. Ist ein wenig aufwand mit ein paar OPs. Ansonsten ist es auch nicht schlecht, läuft aber mit 3,3V anstelle von 5V. Auch wenn ich dieses Display von Pollin nicht ausprobiert habe, die blau/weißen gefallen mir persönlich nicht so gut, da deren Kennlinie etwas komisch ist. Die Schwarz/weißen gehen von schwarz nach weiß und dann zu gelb (wenn man den Kontrast zu hoch einstellt), während die blau weißen von blau zu schwarz und dann erst nach weiß wechseln (und danach auch ins gelbe gehen). Man hat also quasi einen Umweg beim fabwechsel, und das sieht teilweise komisch aus. Kai B. wrote: > Das einzige was stört ist das flimmern des Displays beim Daten > übertragen. Das ist diese dumme Kennlinie die ich beschrieben habe und ein "Bug" im 13505: Sobald der CS\ Pin auf Low gezogen wird, werden keine Daten mehr zum Display ausgegeben, sondern nur noch 0en gesendet. Dadurch spart man sich ein Busy Flag wie beim T6963 oder KS0108. Ich bin daher schnell auf andere Controller übergewechselt. Der 13700 ist da etwas besser, dafür aber etwas empfindlicher gegenüber Spikes auf den Leitungen.
Datum:
@benedikt wie muss man den grossen kontroller anpassen, dass er mit dem display funktioniert? bei mir ist es ein sp14q002. Also damit ich grafik darstellen kann. Gruss Numen
Datum:
Numen B. wrote: > wie muss man den grossen kontroller anpassen, dass er mit dem display > funktioniert? bei mir ist es ein sp14q002. > > Also damit ich grafik darstellen kann. So: http://www.mikrocontroller.net/attachment/8471/lcd4bit.gif http://www.mikrocontroller.net/attachment/8489/lcd...
Datum:
und wie wird da usb angeschlossen? über nen ft245? gruss numen
Datum:
Ich hatte schon mal überlegt, die 8K RAM für ein quadratisches Bild, also etwas Oszilloskop-artiges auszunutzen und den Rest des LCD-Bilds aus dem EEPROM zu holen. Da könnten neben dem schnell veränderlichen Diagramm irgendwelche einstrellbaren Parameter stehen, die nach jeder Änderung ins EEPROM übernommen werden. Damit werden die 100000 Zyklen nicht so schnell erreicht. Das geht am einfachsten mit LCDs die im Hochformat angeordnet sind, also 320 Zeilen zu je 240 Pixeln. Dann muß die Umschaltung vom EEPROM aufs Ram nur einmal pro Frame passieren. Mit 8k EEPROM wären sogar 4 Grauwerte möglich für das Menü, denn QVGA sind ja nur 9600 Byte.
Datum:
nein, 4 K EEPROM haben die ATmega1280 oder 2560, damit sind dann aber wie gesagt 2 Bit pro Pixel möglich.
Datum:
Für was ist eigentlich der hc157? kann man das ganze nicht einfach als 4bit version aufbauen? also nur 4 datenleitungen und 4 dann hinten den mux weg lassen? Gruss numen
Datum:
Numen B. wrote: > Für was ist eigentlich der hc157? Zum Umschalten zwischen High und Low Nibble eines Bytes. > kann man das ganze nicht einfach als > 4bit version aufbauen? also nur 4 datenleitungen und 4 dann hinten den > mux weg lassen? Könnte man. Allerdings muss man dann die Software anpassen, und man verschwendet die Hälfte des Speichers.
Datum:
der speicher ist nicht das Problem kannst du mich mal in icq kontaktieren? 199567474 Gruss Florian
Datum:
würdest du die software entsprechend anpassen? könnte dir dafür ein display geben. Gruss
Datum:
Hallo zusammen, bin gerade auf der Suche nach einem großen Display. @Kai.B Welches Pollin Display meinst du? Das einzige blaue, welches ich gefunde habe, hat laut Beschreibung keinen Controller. @Benedikt K. Hast du deine Software von anderen Sourcen abgeleitet? Habe keine Ahnung von AVRs und möchte mich nicht durch die Assembler Syntax kämpfen. Eigentlich würde es auch ein alphanumerisches Display tun allerdings wird es ab 8x40 Zeichen sehr sehr übersichtlich in der Auswahl. Habe auch schon über 4 S65-Displays nachgedacht, aber als total bescheuert verworfen (sieht halt auch so aus).
Datum:
Angehängte Dateien:Es ist das Grafik-LCD WINSTAR WG320240B-FMC-VZ Best.Nr. 120 565 Ein datenblatt findet man ansonsten über archive.org es sollte halt im Datenblatt SED1335 drinstehen. Die Belegung stimmt dann auch. Ich habe mal ein paar Bilder angehängt vom dem Blauen Display. Ich finde es hat so einen Guten Kontrast und funktioniert auch noch mit 3,3Volt da ich das Display an einem Flexis HCS08 angeschlossen habe. MfG Kai
Datum:
Danke KAI, da zeigt sich mal wieder, dass man die Angaben von Pollin getrost in die Tonne kloppen kann. Werde ich mal ordern, für den Preis unschlagbar. Hast Du zufällig nen Datenbaltt (archive.org mag mich nicht) oder Code zur Hand? Der Kontrast ist schon sehr gut!
Datum:
Angehängte Dateien:Hi hab das Datenblatt mit dem SED1335 Controller angehängt die Anschlussbelegung stimmt soweit. Das Display hätte gerne den 8080 Modus ist ne Lötbrücke mit nem 0R Widerstand. Die Negative Spannung für den Kontrast wird mit einem DCDC vom Display bereitgestellt. Einfach ein Poti an GND und Vee und Mittelabzapfung an V0. Code hab ich jetzt nicht direkt, aber ich habe ein Pollin Testprogramm etwas angepasst um ein bissel rumzuspielen. Kann dieses ja gerne mal bereitstellen. Mfg Kai
Datum:
Angehängte Dateien:@benedikt kannst du das schema mal überprüfen plz und kontrollieren, ob das so passt? Danke Vorallem die belegung des LCD's prüfen, bin mir nicht sicher ob ich die signale richtig zugeordnet habe. Gruss Numen
Datum:
Angehängte Dateien:und hier noch das datenblatt
Datum:
Angehängte Dateien:Hier noch als Bild, für die nicht eagle benutzer Gruss Numen
Datum:
Hallo Benedikt, ich wollte mit das NÁN Ya bestellen. Weisst Du zufällig welcher Epson Controller da ansteuern kann? Ich glaube wir haben mal über den S1D113705 gesprochen. Bei dem bin ich mir jedoch nicht sicher. Meine 640x480m Displays habe ich wegen fehlender Backlight wieder eingestampft. PS: Hat mal jemand versucht orginal Datenblätter für diese NANYA aufzutreiben? Ist ja der Horror. Gruss, Christian
Datum:
Numen B. wrote: > @benedikt > > kannst du das schema mal überprüfen plz und kontrollieren, ob das so > passt? Sollte in etwa passen. Wenn du für den FT245 einen FT245RL einsetzt, brauchst du keinen Quarz. Christian J. wrote: > ich wollte mit das NÁN Ya bestellen. Weisst Du zufällig welcher Epson > Controller da ansteuern kann? Ich glaube wir haben mal über den > S1D113705 gesprochen. Bei dem bin ich mir jedoch nicht sicher. SED1330, SED1335, S1D13305 sind die Klassiker für 320x240. S1D13700 ist der Nachfolger von denen und dürfte die beste Wahl sein. > PS: Hat mal jemand versucht orginal Datenblätter für diese NANYA > aufzutreiben? Ist ja der Horror. Ich konnte nichtmal eine Webseite von der Firma finden. Nach ein paar Stunden Suche hatte ich keine Lust mehr. Dann habe ich alle anderen NAN YA Datenblätter runtergeladen die ich finden konnte, und ein wenig ausprobiert. Das angegeben Datenblatt ist das einzige mit gleicher Pinbelegung das ich gefunden habe.
Datum:
Hallo Benedikt, dch die Firma gibt es noch aber sie stellt keine Displays mehr her. Direkte Frage: Da ich den S1D13705 bereits gekauft habe und weiss wie er innen funktioniert, bzw ich Layout etc alles fertig habe, glaubst Du der kann das auch? Er bietet ja Support für "Passive Displays 320x240" an. Ich weiss jetzt nicht ob dieses NAN Dingsda ein passive Display ist oder TFT.
Datum:
@benedikt würdest du die software an meinen schaltplan anpassen, wenn ich dir dafür ein farb lcd gebe? Gruss Numen
Datum:
Ichn weiss, wir ballern Dich mit Fragen tot :-) Aber Du bringst auch immer so nette Sachen hier ;-) Aber auch an die anderen: Welches von den Pollin Displays der Fa NAN wäre denn besser hinsichtlich Ablesbarkeit: Das graue mit Hintergrundbeleuchtung oder das schwarze? Drehe derzeit etwas ab, weil ich durch die Vielfalt der Displays nicht mehr durchblicke und meine schöne Ansteuerplatine nicht verwerfen will, die seinerzeit für ein altes Monochrom 640x0480 gemacht wurde.
Datum:
Christian J. wrote: > dch die Firma gibt es noch aber sie stellt keine Displays mehr her. Ist das diese Firma ? http://www.npc.com.tw/ > Direkte Frage: Da ich den S1D13705 bereits gekauft habe und weiss wie er > innen funktioniert, bzw ich Layout etc alles fertig habe, glaubst Du der > kann das auch? Er bietet ja Support für "Passive Displays 320x240" an. Das funktioniert. Damit sind dann sogar 16 Graustufen möglich (zumindest theoretisch.) Meine NAN YA LCDs zeigen ein deutliches Muster wenn ich Graustufen anzeige. Entweder sind das Reste von Druckstellen aufgrund der super Verpackung von Pollin, oder der Hersteller hatte ein kleines Qualitätsproblem bei der Fertigung. Zum Glück ist der Kontrast so gut, dass man diese nicht sieht, wenn man das Display ganz normal Schwarz/weiß ohne Graustufen betreibt. > Ich weiss jetzt nicht ob dieses NAN Dingsda ein passive Display ist oder > TFT. passive Singlescan mit 4bit (oder so ähnlich heißt das in dem Datenblatt). > Aber auch an die anderen: Welches von den Pollin Displays der Fa NAN > wäre denn besser hinsichtlich Ablesbarkeit: Das graue mit > Hintergrundbeleuchtung oder das schwarze? Schwer zu sagen. Ich würde schwarze nehmen, das gefällt mir persönlich besser, und der Kontrast ist dank weiß auf schwarz meiner Meinung nacht nicht schlecht. Das graue hat aber den Vorteil, dass es auch bei hellem Umgebungslicht noch ablesbar ist, da es das Umgebungslicht ausnutzt, während das schwarze nur die Hintergrundbeleuchtung nutzt. Numen B. wrote: > @benedikt > > würdest du die software an meinen schaltplan anpassen, wenn ich dir > dafür ein farb lcd gebe? Nein. Ich hab von letztem mal noch kein Display bekommen. Da von angeblich 3 weggeschickten Pakten bei mir keines angekommen ist, naja...
Datum:
display voraus und bei erhalt passt du das zeug an?
Datum:
Ja, das ist die Firma. Habe der mal ein Mail geschrieben: http://www.eu.nanya.com/index.aspx Danke für die Infos, werde dann mal drangehen meinen Grafikcontroller mit PIC18 auf ARM umzurouten und das Display Interface etwas universeller gestalten. Leider ist die ganze Chose mit Grafik Software ja doch viel Arbeit, die ich gern umgehen würde. Naja, vielleicht reicht ja auch erstmal Textmodus..... Eben mal bei Pollin bestellen, am besten beide Displays...
Datum:
Numen B. wrote:
> display voraus und bei erhalt passt du das zeug an?
Ja, OK.
Datum:
gut schick mir deine adresse in icq. thx
Datum:
gib mir deine adresse ;) sonst reichts heute nicht mehr gruss
Datum:
@kaib: Könntest du das Pollin testprogramm bitte einmal hochladen? MIch würde das Winstar Display auch interessieren. Wäre echt nett.
Datum:
Hallo Benedikt, die Schaltung sieht ja wirklich einfach aus. Nur finde ich nicht den Schaltplan für den Nachbau und auch die Angabe für den Spannungswandler! Ist der in einem anderen Forum?
Datum:
In der zip ist der Schaltplan enthalten: lcdcon_txt.gif
Datum:
Danke! Bei der Datei hatte sich bei mir immer nur der Texteditor geöffnet.
Datum:
Hallo Benedikt, hast Du vielleicht einen Schaltplan für das CCFL Backlight? Ich möchte das mit auf die Platine bringen. Wie hast Du das denn gemacht? Gruss, Christian
Datum:
Ich verwende entweder die Linfinity CCFL Inverter die es mal bei Pollin für 1,95 gab, oder andere von Hitachi (gab es glaube ich mal bei Oppermann), die noch besser zu dem LCD passen, und sogar den passenden Anschluss für den Stecker von der LCD CCFL haben. Selber bauen würde ich so einen Inverter nicht, dazu ist der zu aufwendig und man bekommt ihn zu billig als das sich das lohnen würde.
Datum:
Ihr könnt Euch auch mal den TDK CXA-L10A anschauen. Bei Nanya heisst das Ding ADL-10A Gruss Udo
Datum:
Hi, kurze Frage bezüglich der Schaltung. Auf den Winstar LCd von Pollin ist doch ein DC-DC Wandler für die -20V LCD Driving Spannung schon drauf, oder ?
Datum:
Hi, also wenn du das Blaue meinst ja, das Panel hat schon einen DCDC drauf für die Negative Spannung. MfG Kai
Datum:
Danke Kai, noch ne Verständinsfrage: - Der zweipolige Stecker dient doch der Hintergrundbeleuchtung. Welche Spannung wird hier benötigt? - Läßt sich auch ohne Hintergrundbeleuchtung ausreichend die Schrift erkennen? Danke
Datum:
Ja, der ist für das CCFL Backlight. Ohne dieses kann man nahezu nichts erkennen, außer man verwendet eine extrem helle Beleuchtung von vorne.
Datum:
Angehängte Dateien:Hi Benedikt, danke für die Antwort. Habe gerade mal nach nem Inverter geschaut. Beim großen C gibt es den im Anhang befindlichen Inverter. Kann ich den nutzen? Würde es eigentlich auch ein Inverter einer Billi-Kaltlichkathode tun? http://www.conrad.de/goto.php?artikel=530016
Datum:
Beide sollten funktionieren. Falls es zu hell/dunkel ist, kann man notfalls noch die Betriebsspannung von dem Inverter variieren.
Datum:
Als Inverter eignen sich auch die CCFL Teile für den PC die es bei pollin für 4.95 gibt. Lustig ist das Der Stecker richtig gut passt. MfG Kai
Datum:
Welche denn? Die hier: Best.Nr. 530 858 Einzeln gibt es derzeit wohl keine.
Datum:
Ich denke er meint diese hier: 700 637
Datum:
Hi, es geht nochmal um das blaue Winstar Display: - Wo kann ich zwischen 8080 und 6800 umschalten (welcher Widerstand) ? - Was passiert wenn ich V0 floatend lasse ? Danke!
Datum:
Angehängte Dateien:Hallo, kann mir mal jemand die Initialisierung posten. Bekomme beim dem Einschalten nach der Initialisierung nur das Bild oben. Meiner Erfahrung nach sollte zu diesem Zeitpunkt eher "Kraut und Rüben" ausgeben werden.
Datum:
Angehängte Dateien:Hallo, ich denke, dass immer noch einen Fehler in der Initialisierung habe. Es geht um das blaue Winststar. Vielleicht kann da mal jemand drüberschauen: #define LCD_SYS_CMD 0x40 #define LCD_SYS_CMD1 0x30 #define LCD_SYS_CMD2 0x87 #define LCD_SYS_CMD3 0x07 #define LCD_SYS_CMD4 0x27 #define LCD_SYS_CMD5 0x39 #define LCD_SYS_CMD6 0xEF #define LCD_SYS_CMD7 0x28 #define LCD_SYS_CMD8 0x00 Nachdem Initialisieren sieht der Screen wie gezeigt aus. Auf die freien Bereiche kann ich auch zugreifen (löschen und beschreiben). Nur auf die Balken kann ich nicht zugreifen. Jemand eine Idee?
Datum:
MichiB wrote: > Ich denke er meint diese hier: > > 700 637 Kann jemand bestätigen das das Ding ne passenden Inverter für CCFL Röhren enthält?
Datum:
Habe keinen zerlegt, aber die Chancen sind gut, denn die abgebildete Röhre ist eine CCFL-Röhre. Ich habe mal beim großen C (im Laden, nicht im Versand) mit 2 Japantransistoren, Übertrager und ein paar Kondensatoren bestückte Platinen gekauft, die offensichtlich das Innenleben der abgebildeten schwarzen Box darstellen. Diese eignen sich sehr gut zur Speisung einer kleinen CCFL-Röhre, wie sie in diesen Displays enthalten ist.
Datum:
Dachte jemand hat das vieleicht mal ausprobiert :)
Datum:
Ich betreibe die CCFL Röhrer von dem Display mit so nem Inverter hab allerdings die RGB Röhren genommen. @MichiB in was für einem Modus betreibst du dein LCD? Wenn du es im Text Modus betreibst kann ich wenn du willst mal mein Testprogramm fürn Textmode Hochladen. Ich wollte auch mal das Umgebastelte pollin Testprogramm hochladen, naja ich schau mal das ich gegen später Dazu komme. MfG Kai
Datum:
@Kai, das wäre super wenn du es mal uploaden könntest.
Datum:
>> Kann man das ding nicht so umbauen, dass man auch bilder damit in >> LCDHype übertragen kann? so wie dein grosser Display controller. Am >> besten über usb. > Nein. Denn dazu fehlt ganz einfach der Speicher (8kByte für 320x240). > Das funktioniert nur mit den ganz großen AVRs, oder einem mit externem > RAM. Dann ist man wieder bei dem großen LCD Controller. Evtl. könnte man ein serielles FRAM (von Ramtron, gibts mit 32 kBytes, 8-pinniges Gehäuse) per SPI an den AVR anschließen. Die Schaltung wäre dann nur minimal größer, man könnte aber Grafik darstellen. Durch die Hardware-SPI im AVR könnte man das FRAM bei 16 MHz AVR-Clock mit 8 MHz SPI-Takt ansteuern und käme somit auf eine Zeit von 1 µs pro Byte.
Datum:
Hallo, habe mir ein Nan Ya LCD von Pollin gekauft http://www.pollin.de/shop/detail.php?pg=OA==&a=OTM... und möchte das mit diesem Controller verbinden. Allerdings ist mir die Anschlußbelegung noch nicht so ganz klar. Lt. dem weiter oben angegebenen Datenblatt sind die LCD Anschlüsse 1 FRAME -> FLM 2 LOAD -> ? 3 CP -> ? 4 VDD -> 5V 5 VSS -> GND 6 VEE -> VLCD 7 D0 -> D0 8 D1 -> D1 9 D2 -> D2 10 D3 -> D3 11 ONOFF 12 NC Für Pin 2+3 bleiben noch "M" und "PCLK" und der nicht beschriftete Pin16 vom Mega8. Kann mir da mal jemand auf die Srünge helfen. MfG Gerhard
Datum:
Angehängte Dateien:Ich habe mal noch ein paar weitere Bezeichnungen hinzugefügt.
Datum:
Hi Benedikt, wenn ich das richtig sehe, beginnt die Displayausgabe links oben. Ziehst Du ein Positionszeiger in Erwägung? Also Text geziehlt in Zeile und Spalte beginnen zu lassen? Wigbert
Datum:
Meinst du ein Setzen des Cursors ? Das geht mit 17,Spalte,Zeile
Datum:
Ja genau, also 17,00,00 wäre dann links oben? muss dann eine Pause eingelegt werden, damit der eigentliche Text vom Cursor unterschieden wird? Hab ich Protokollbeschreibung überlesen? Würdest Du Dein Code auch für ein Grösseres Textformat erweitern. Wigbert
Datum:
Wigbert Picht wrote: > also 17,00,00 wäre dann links oben? Ja, und 17,39,19 ganz rechts unten. > muss dann eine Pause eingelegt werden, damit der eigentliche Text > vom Cursor unterschieden wird? Nein, alles < 32 wird als Befehle (eventuell gefolg von einer bestimmten Anzahl an Parametern) und alles ab 32 aufwärts als Daten interpretiert. > Würdest Du Dein Code auch für ein Grösseres Textformat erweitern. Meinst du mehr Zeichen, oder eine größere Schriftart ?
Datum:
@ Benedigt, ich meinte grössere Schriftart für Messergebnisse. Bz: 22,2 V Es bräuchten nur die Ziffern 0...9 und Komma; V; A; °C; W für eine Grossausgabe hinterlegt werden. Würde son Teil erst mal aufbauen, und mich dann bei Dir melden. Wigbert
Datum:
Sollte möglich sein. Die Software ist an sich flexibel geschrieben, es sollte also reichen die größere Schriftart zu erzeugen und ein paar defines anzupassen. Das kann ich machen. An welche Schriftgröße hast du gedacht ? z.B. 32x48 pro Zeichen benötigen 192Byte pro Zeichen, davon passen etwa 40 Zeichen in den Speicher, was für alle Großbuchstaben + Zahlen + ein paar Sonderzeichen reicht. Notfalls müsste man auf den mega168 wechseln. Auf dem Display könnte man dann 10x5 Zeichen darstellen.
Datum:
Kann man auch Grafik, also Punkte und Linien darstellen, oder ist es nicht möglich, bzw. wie, so ähnlich wie bei einen S65, bloss 2 Farben ?
Datum:
Man kann auf dem Display Grafik darstellen, allerdings nicht mit dieser Software (da der AVR zu wenig RAM hat). An sich sind nur 2 Farben möglich, mit entsprechender Ansteuerung kann man aber bis zu 16 Graustufen erreichen.
Datum:
Könnte man Grafik mit der Schaltung aus diesen Thread machen: LCD Controller für 640x480 LCD mit mega8515 http://www.mikrocontroller.net/attachment/8452/LCD.gif Und das würde gehen bei den 320x240 Pixeln auch bei den obrigen Displays von Pollin?
Datum:
Ja, das geht. Es gibt dafür auch irgendwo in dem 640x480 Thread eine Software + angepasste Schaltung für das 320x240 LCD.
Datum:
Benedikt, wenn ich das richtig sehe, sind 2 Formate in deinen Code enthalten, ich würde mich für ein Format entscheiden und das "Grossformat" mit zunehmen. Es sollen wirklich im Grossformat 3 Ziffern,Komma, Masseinheit dargegestellt werden. Also Platz für eine 6 Stellige Anzeige (3xZiffer,Komma,Leer,Masseinheit = 6) Schriftgrösse: möglichst gross, sollte aber am Rand nicht "anecken" Muss ich nach dem Testaufbau sehen. Kursorfunktion geht im Grossformat natürlich nicht. Die Schaltung mit dem m8 sollte beibehalten werden. Umschaltung über Pin oder Befehl. Wie gesagt wenn Du Interesse dazu hättest, melde ich mich dann bei Dir. Wigbert
Datum:
Wigbert Picht wrote: > wenn ich das richtig sehe, sind 2 Formate in deinen Code enthalten, Das siehst du nur halb richtig. Es wird nur eines von beidem verwendet, welches legt man beim Erstellen des Programms fest. > Umschaltung über Pin oder Befehl. Was meinst du mit Umschaltung ?
Datum:
Benedikt, >Es wird nur eines von beidem verwendet, welches legt man beim Erstellen >des Programms fest. ich dachte beide Formate werden im Controller geladen. >Was meinst du mit Umschaltung? Ich benötige 1x Normalformat mit Kursorfunktion(Ausgabe auf mehrehre Zeilen) bzw umschalten auf Grossformat für die paar Zeichen. Jetzt haben wir ein Speicherplatzproblem? Wigbert
Datum:
Nicht nur Speicherplatz. Für dieses Feature ist die Software momentan nicht ausgelegt. Man müsste also die Software großteils anpassen um das Umschaltbar zu machen. Wobei, vielleicht kann ich die komplette Software 2x reinmachen (1x normal, 1x groß), und dann per Pin umschalten.
Datum:
Benedikt, wie gesagt, der Ursprung meiner Idee, war die Annahme,das 2 Formate im Controller hinterlegt sind. Die Idee einmal mehrehre Zeilen auszugeben bzw. ein Messergebnis mit einer Grossanzeige anzuzeigen hat mich schon länger beschäftigt. Leider kann ich kein Assambler. Vielleicht konnte ich Dich mit meiner Idee anstecken, wobei wenn der Schaltungsaufwand grosse Dimensionen annimmt, ist der Sinn einer kostengünstigen Ausgabe hin. Wigbert
Datum:
Ich hätte noch platinen für die diplays, mit denen man auch grafik darstellen kann... basieren auf dem 640x480 kontroller von benedikt, einfach für 4bit lcds umgezeichnet. Preis 10€ Pro platine + Porto zu euch. Gruss Flo
Datum:
Hallo, ich setze derzeit ein Layout dieser Pollin Displays für den ARM7 (LPC2214) um incl Epson Grafikcontroller als Programmierbeschäftigung für den nächsten Winter. Hat noch jemand einen dieser FPC Stecker, die für die NanYa passen und kann mir diesen zusenden? Glaube das sind 1mm Pitch Stecker. Gruss, Christian
Datum:
Benedikt, Du hast Post. Wigbert
Datum:
Angehängte Dateien:Hier eine neue Version mit einer zusätzlichen großen 32x48 Schriftart. Optimal um irgendwelche Infos anzuzeigen, die auch aus größerer Entfernung lesbar sein sollen. Der Zeichensatz ist per Software umschaltbar. Da der Zeichensatz sehr viel Speicher braucht, wird jetzt ein mega168 benötigt, dessen Flash zu 98,2% voll ist. Trotzdem wurde der Zeichensatz auf 64 Zeichen (Großbuchstaben, Zahlen und ein paar oft benötigte Sonderzeichen wie ,:° usw.) reduziert.
Datum:
Angehängte Dateien:Das ganze sieht dann so aus.
Datum:
Hallo Benedikt,
>Hier eine neue Version mit einer zusätzlichen großen 32x48 Schriftart.
Das hatte ich schon "befürchtet".
Ein grosses Danke von mir für Deine Arbeit.
-------------------------------------------
Wigbert
Datum:
Sieht schick aus ;) aber seit wann ist 1+2 = 12? ;) Das display liegt schon hier, was fehls ist mal wieder die Zeit das ganze aufzubauen ;)
Datum:
@hauke da steht auch *4 ;)
Datum:
Ich weiß, mathematisch ist das nicht ganz OK, aber der Platz war dann doch etwas eng. Aufgebaut ist die Schaltung doch schnell. Inklusive Spannungswandler sind es nichtmal 20 Bauteile. Da kostet das Spielen mit dem LCD mehr Zeit. Und das schlimme ist, da kann man garnichts dagegen machen...
Datum:
Benedikt, den AQV257 wo gibt es den? Wigbert
Datum:
Pollin hatte den jahrelang. Jetzt gibt es den nur noch für viel Geld z.B. bei Conrad. Allerdings braucht man den nicht unbedingt. Der dient nur dazu die Displayspannung abzuschalten. Da das Pollin LCD dies aber intern über DispOFF\ macht, man man den AQV257 weglassen. Daher ist der auch gestrichelt eingezeichnet.
Datum:
@ Benedikt K.: Mit welchen Programm machst du eine Fonts ?
Datum:
Erst ein Screenshot von den Zeichen 0-255 der Konsolenausgabe von Windows und dann zerlege ich die Bilder mittels eines kleinen C Programms, das mir die Daten entsprechend anordnet. Hier in dem Fall sind nämlich immer die Nibble vertauscht, und das ganze ist nicht ein Buchstabe am Stück, sondern immer die erste Zeile von jedem Buchstaben des Zeichensatzes, dann der zweiten usw. angeordnet. Hier habe ich mal einige davon zusammengestellt: Beitrag "LCD Schriftarten ( Fonts in veschiedenen Größen )"
Datum:
Angehängte Dateien:Hallo Benedikt, eine kurze Zwischenfrage: Würde Deine Software evtl. auch Displays mit 240x128 Pixeln ansteuern können? Grund: Ich sitze seit 2006 auf mindestens 100 LCDs, die doch irgendwie zu schade zum Entsorgen sind. Ein Bastler Namens Sven machte sich damals an die Arbeit und entwarf einen Displaycontroller, der sogar schon ein paar sinnvolle Worte auf eines meiner Displays zauberte. Leider hat sich Sven seit dem nicht mehr um die Elektronik und seine Website gekümmert, weil er weitere Mysterien des Lebens entdeckt hat -> die Frauen ;) Sei es ihm herzlich gegönnt! Wie auch immer - ich wäre sehr froh, wenn ein paar meiner Displays zum Leben erwachen.. Viele Grüße, Bruno PS: Ein von Sven erstelltes Datenblatt meiner Disyplays als Datei-Anhang (Die Version ohne eigenen Controller).
Datum:
Theoretisch könnte es gehen. Es wird aber alles andere als einfach, da das Display 1bit Daten haben möchte, und das zweimal, einmal für die obere und einmal für die untere Hälfte. Das ist etwas aufwendiger, da beide Daten parallel errechnet werdne müssen.
Datum:
Oder man hängt zwei Parralle zu Seriell IC davor :) Dann könnte man doch zwei bytes laden, und dann gemütlich reintakten oder spricht etwas dagegen?
Datum:
Ja, das würde gehen. Es würde sogar ein IC reichen: Für einen Kanal könnte man SPI verwenden, für den anderen ein HC165. Dann könnte man auch den SPI Takt verwenden. Aber die Software müsste man trotzdem anpassen, und auch trotzdem zwei Buchstaben gleichzeitig laden und verarbeiten. Also ein wenig Arbeit.
Datum:
Hi, vielleicht mal noch ein paar Worte zum Inverter: Ich habe das o.g. Teil von Pollin heute bekommen. Schön ist, das der Inverter in ein Gehäuse steckt. Und funktionier sogar! Ich beteibe den Inverter statt 12V mit 6V, bei 5V würde das Pollin GLCD die Beleuchtung halten , zündet aber nicht. Anschlusschnur mit Stecker ist dabei, statt der "Röhre" kann auch eine 3pol Buchse, wie für Computerlüfter vorgesehen raufgesteckt werden. Übrigens ich hab son Teil bei Eb.. für 1 Euro gesehen. Wigbert
Datum:
Benedikt K. wrote:
> Theoretisch könnte es gehen. Es wird aber alles andere als einfach..
Hallo Benedikt,
danke Dir für die Antwort!
Dann werde ich mir mal ein vernünftiges Display besorgen und meine
"Sammlung" für nen "Appel und ein Ei" vertickern - was solls..
Zumindest haben meine Displays wunderbare EL-Folien als Backlight -
schön zum basteln ;)
Viele Grüße,
Bruno
Datum:
Naja so schnell würd ich die Displays nicht aufgeben. Er sagt nur, dass es mit seinem code nicht so einfach ist, generell ist es auf jeden fall möglich die Displays anzusteuern denke ich.
Datum:
hallo, Macht es Sinn, die negative Spannung an den Displays regelbar zu machen, zB Kontrast? Und wenn ja in welchem Bereich? Wie man den einstellt weiss ich noch nicht. Erzeuge die neg. Spannung derzeit mit fertign -24V DC/DC Wandlern, die müssen aber noch einen LM317 etc dran kriegen zur Regulierung. Gruss, Christian
Datum:
Der LM317 ist für den positiven Bereich, mit einem LM337 könnte es funktionieren, allerdings benötigt dieser einen relativ hohen Ruhestrom. Ich regele den Kontrast per Software über PWM, indem ich den Bezugspunkt für den Spannungsteiler des Spannungswandlers zwischen 0V und 5V verschiebe. Das Pollin Display hat eine relativ steile Kennlinie, daher reichen die 5V aus um zwischen nichts auf dem Display bis alles schwarz einstellen zu können. Den optimalen Kontrast erreiche bei meinem Display mit etwa -18V, was ziemlich genau den 23V aus dem Datenblatt entspricht.
Datum:
Hallo Benedikt, benutzt Du für die neg.Spannungserzeugung mit MC34063 eine normale Drosselspule (Foto)? In irgendeinen anderen Thread hab ich eine ander Aussage gelesen ... Wigbert
Datum:
Die Stromaufnahme von dem Display ist so gering, dass man nahezu alles als Spule verwenden kann. Die andere Schaltung die du meinst ist im 640x480 Thread. Diese Displays benötigen oft eine höhere Spannung von bis zu -25V. Dann kommt man schon in die Nähe von dem theoretischen Maximum, das der 34063 auf den 5V erzeugen kann.
Datum:
Hallo Benedikt, noch mal zur negativen Spannungserzeugung: Laut DBL des MC34063 sollte bei externen PNP Transistor Pin 2 auch mit angeschlossen werden (Leuchtet mir ein ,da sonst die int. Transistoren nicht Funktionieren). Du lässt Pin 2 offen, ist das richtig? Wigbert
Datum:
Schwer zu sagen. Dem Ersatzschaltbild aus dem Datenblatt nach funktioniert meine Lösung (in der Praxis geht es natürlich auch.) Der Grund für diese etwas unkonventionelle Beschaltung ist einfach: Der Basisstrom für den externen PNP Transistor wird von dem internen Transistor des 34063 aus der aufwendig erzeugten negativen Spannung gewonnen. Da die Einschaltdauer des Transistors ziemlich hoch ist, wird die negative Spannung ziemlich stark belastet, was den Wirkungsggrad massiv verschlechtert. Meine erste Idee um das zu umgehen war, den Emitter des internen Transistors nicht an die negative Spannung, sondern an Masse zu legen. Allerdings wird die Basis dann negativer als der Emitter, was zu einem Durchbruch der Basis-Emitterdiode führt. Daher jetzt diese Schaltung: Der Basisstrom des PNPs wird nur noch von dem Treibertransistor des 34063 geliefert, und fließt über die als Diode zweckentfremdete Basis-Kollektor Diode des Schalttransistors des 34063. Schaltet der Transistor ab, kann der interne Treibertransistor auf ein Potential der negativen Spannung gezogen werden, da die Basis-Kollektor Diode sperrt. Da ich nicht genau weiß, ob der reale Aufbau des 34063 identisch mit der Prinzipschaltung aus dem Datenblatt ist, bin ich nicht absolut sicher, ob das so passt. Meine Messungen haben jedoch gezeigt, dass der Wirkungsgrad deutlich besser als bei der Orginalversion ist, und dass der Emitter des Schalttransistors zwischen negativer Spannung und Massepotential pendelt. Das ganze scheint also so zu funktionieren wie geplant.
Datum:
@Benedikt K. >Da ich nicht genau weiß, ob der reale Aufbau des 34063 identisch mit der >Prinzipschaltung aus dem Datenblatt ist seltsamerweise funktioniert das Orginlbeispiel ohne Transistor, wobei bei Deiner Variante der Transistor sich verabschiedet. Ich nehme mal an, es wird kein interner Takt erzeugt, und der Gleichstromwiderstand L2 ist dann für den BC... zu viel. MC34063 ist garantiert OK. Wenn ich an R1 statt PWM ein Poti (GND, +5, Schleifer R1) müsste doch auch geregelt werden? Wieso ist R5 so hoch , welchen Takt nimmat Du als Grundlage? Wigbert
Datum:
Wigbert Picht wrote: > @Benedikt K. >>Da ich nicht genau weiß, ob der reale Aufbau des 34063 identisch mit der >>Prinzipschaltung aus dem Datenblatt ist > > seltsamerweise funktioniert das Orginlbeispiel ohne Transistor, wobei > bei Deiner Variante der Transistor sich verabschiedet. Interessant. Ich habe die Schaltung bestimmt schon 10x aufgebaut, und es hat bei mir jedesmal problemlos funktioniert (sowohl mit Orginal MC34063 als auc mit der schlechten Kopie TS34063) > Wenn ich an R1 statt PWM ein Poti (GND, +5, Schleifer R1) müsste doch > auch geregelt werden? Ja. > Wieso ist R5 so hoch , welchen Takt nimmat Du als Grundlage? R5 bildet zusammen mit R4 den Spannungsteiler der die Ausgangsspannung festlegt. Der Bezugspunkt dieser Spannung wird per RC Glied R1/C1 und PWM zwischen etwa 0V und 5V verschoben, und dementsprechend auch die Ausgangsspannung. Ein Poti anstelle von R1/C1 oder auch eine Veränderung des Widerstandes R5 verändert die Ausgangsspannung.
Datum:
@Benedikt K.
>Ich habe die Schaltung bestimmt schon 10x aufgebaut
"Gut Ding will wohl Weile haben".
Jetzt funtioniert sie bei mir auch. Hab den Kond. 1nF ausgetauscht.
Dank Dir für die erklärende Worte.
Wigbert
Datum:
Ich habe eine Frage zu den beiden Displays http://www.pollin.de/shop/shop.php?cf=detail.php&p... http://www.pollin.de/shop/shop.php?cf=detail.php&p... Das eine ist weiß, das andere schwarz. Stimmt es, dass bei dem weißen dann die gesetzten Pixel schwarz erscheinen und man die Schrift zur Not auch ohne die Hintergrundbeleuchtung lesen könnte ? Ist als Anschluss einfach ein Flachbandkabel ohne Stecker da ? Ich kenne mich mit den Stecker-Typen nicht so aus. Wie heißt den so ein Stecker und die zugehörende Buchse, mit dem man eine Verbindung von einem Flachbandkabel zu einer 2,5 mm Lochrasterplatine herstellen kann ? Und wo bekommt man so was (Pollin, Reichelt, Conrad, ???).
Datum:
Florian K. wrote: > Das eine ist weiß, das andere schwarz. Stimmt es, dass bei dem weißen > dann die gesetzten Pixel schwarz erscheinen und man die Schrift zur Not > auch ohne die Hintergrundbeleuchtung lesen könnte ? Ja. Sogar sehr gut, wenn ausreichend Licht da ist. > Ist als Anschluss einfach ein Flachbandkabel ohne Stecker da ? Ja. > Wie heißt den so ein Stecker > und die zugehörende Buchse, mit dem man eine Verbindung von einem > Flachbandkabel zu einer 2,5 mm Lochrasterplatine herstellen kann ? Sowas gibt es nicht (habe ich zumindest nie gesehen). Da es sich um ein 1mm Raster handelt, sind die meisten Buchsen (meist als FPC bezeichnet) entweder SMD oder mit 2 reihigem Lötanschluss im 2mm Raster. > Und wo bekommt man so was (Pollin, Reichelt, Conrad, ???). digikey hat die ganz sicher. Ansonsten bin ich überfragt. Ich ersetzte das Kabel immer durch ein Flachbandkabel mit 1,27mm. Ist zwar eng, geht aber.
Datum:
Angehängte Dateien:Hi Florian K.
>Wie heißt den so ein Stecker
Das angeschlossene Flachbandkabel hat nach meinem Ausmessen ein Raster
von 1mm.
Wenn Du schnell "arbeitsfähig" sein willst, würde ich von Pollin
die FFC Buchse 450 975 (22pol) oder die SMD 450 969 (14
pol.)ausprobieren.
Beide sind zwar von der Pinanzahl breiter, da aber das Kabel steckbar
ist, spielt das für ein Experimentierboard keine Rolle und preiswert.
Eine Adapterplatine brauchst Du in beiden Fällen.
Bei Digikay hatte ich den Stecker 609-1939-ND (12pol, 1mm Raster)
ausgesucht. Vielleicht Sammelbestellung nutzen.
Oder nach "Molex" FFC/FPC Connector 1mm googeln.
Ich hab etliche Stecker auf ein altes Lexmark-Druckerboard gefunden,
ein SMD sogar in eine Computerfestplatte.
Anbei mal eine Brd. Datei einer 30 pol. Adapterplatine für Stecker
für Printmomtage. Lässt sich schnell umzeichnen.
Datum:
Angehängte Dateien:Hallo, vielen Dank für eure Antworten. Leider kann ich mit der Brd Datei nichts anfangen, da ich bislang noch nicht mit Layoutprogrammen gearbeitet habe. Wenn ich die Beschreibungen auf der Pollin-Webseite zu den Teilen FFC Buchse 450 975 (22pol) bzw. SMD 450 969 und zum Digikey 609-1939-ND richtig verstanden habe, haben die Pins einen 1 mm Abstand, so dass man das Teil noch nicht direkt in eine Lochrasterplatine einlöten kann. @Wigbert Picht: Hast du mit Adapterplatine eine Platine gemeint, mit der man eine "Brücke" zwischen dem Rastermaß 1 mm zu 2,54 mm herstellen kann ? Ich habe mal das oberste Bild dieses Threads genommen, und zwei Teile mit 1 und 2 beschriftet. In Teil 1 ist wohl das Flachbandkabel eingespannt. Vielleicht sind am Teil 1 die Pins dann im 1 mm Abstand, und Teil 2 stellt die Verbindung zum 2,54 mm Rastermaß her, oder ? Leider konnte ich im Internet noch nichts finden, was dem Teil 2 entspricht. > Wie heißt den so ein Stecker > und die zugehörende Buchse, mit dem man eine Verbindung von einem > Flachbandkabel zu einer 2,5 mm Lochrasterplatine herstellen kann ? >> Sowas gibt es nicht (habe ich zumindest nie gesehen). Da verstehe ich nicht ganz. Im obigen Bild wird doch über das Teil 1 + 2 eine Verbindung zu eine 2,54 mm Rasterplatine hergestellt. Schöne Grüße Florian
Datum:
@Florian K. >richtig verstanden habe, haben >die Pins einen 1 mm Abstand, so dass man das Teil noch nicht direkt in >eine Lochrasterplatine einlöten kann. richtig > Hast du mit Adapterplatine eine Platine gemeint, mit der >man eine "Brücke" zwischen dem Rastermaß 1 mm zu 2,54 mm herstellen kann Ja, Die Adapterplatiene dient nur den Zweck das Orginalkabel(1mm Raster) zu beschalten, um kein lastiges Umlöten zu machen. Die Platine hat ein Stecker für das Displaykabel und gibt alle Pins auf eine Kontaktbuchse im 2,5 mm Raster aus. Ich hab ein 30 pol. Variante aufgebaut, um für spätere Zeiten universell zu sein. So was baut man einmal und nimmt immer wieder. >Da verstehe ich nicht ganz. Im obigen Bild wird doch über das Teil 1 + 2 >eine Verbindung zu eine 2,54 mm Rasterplatine hergestellt. wie Benedikt schon oben erwähnte, hat er ein anderes Kabel (1,25 mm Raster) ans Display gelötet >Teil 2 stellt die Verbindung zum 2,54 mm Rastermaß her Such mal bei Conrad nach "Pfostensteckverbinder" bzw. "Leiterplatten-Verbinder" Wigbert
Datum:
Danke. Ich glaube, nun weiß ich was ich kaufen muss.
Datum:
Hallo Zusammen, Bei LC-Displays sieht man ja nach Anschluss der Betriebspannung und der negativen Spannung durch drehen am Kontrast Poti, alle Pixel, ist das auch hier der Fall, oder geht das nur wenn man die Ansteuerung angschlossen hat ?
Datum:
Das geht nur wenn das LCD angesteuert wird (die 44780 kompatiblen haben die Ansteuerung schon mit drauf, daher geht das bei denen).
Datum:
@Benedikt: Im ASM Code steht was von M drin das am Display angeschlossen werden soll, das Display hat kein M Pin - ist das Display LCD-Modul NAN YA LTBE9T372G1K Kann ich das einfach weg lassen bzw nicht anschliessen und dann klappt alles? Xter Gast
Datum:
Ja, kann man weglassen. Die Software ist nicht speziell für das LTBE9T372G1K geschrieben, andere LCDs benötigen das Signal, daher ist es drin.
Datum:
Angehängte Dateien:Hi, hab zum Displaytest mit ein m8 ein Testboard "geschraubt". Funktionierte auch gleich auf Anhieb. Hab das mal "Modulo" gemacht. Vorn der RS232 Pegelwandler. Daninter das Board für die -22V Kontrast- Einstellung. Als Speicherspule fand ein Ferrit-Übertrager aus einem EVG für LS-Lampen seine letzte Daseinsberechtigung. Da das Display wirklich ein "steilen" Kontrast hat, wurde die neg.Spannung mit ein Poti eingestellt. Das Controllerboard hat noch Platz für evtl. Erweiterungen und ist aus ein Lochrasterboard hergestellt. Das Display wird mit der o.g. Adapterplatine versorgt. Hinterm Display der Inverter von Pollin. Die gesamte Schaltung + Inverter wird mit ca 7,5V eingespeist. Wobei der 7805 auf der Lochrasterplatine die 5V bereitstellt. @ Benedikt K. kann die Befehlsliste nicht für die m8 Version finden. Wigbert
Datum:
Angehängte Dateien:Hier der Befehlssatz für den mega8.
Datum:
Dank Dir Benedikt, schon die m8 Version ist beeindruckend. Toll. Wechsle demnächst auf m168 über... Wigbert
Datum:
@benedikt beim 640x400/480 Display kann man über einen Code Area/Text und Grafikmodus umschalten. Geht das auch mit diesen Display hier? Was müsste man tun um ein Pixel in x,y darzustellen? Gibts auch dafür einen Code zur Umschaltung in den Modis? mein Display LCD-Modul NAN YA LTBE9T372G1K
Datum:
Avr Nix wrote: > @benedikt > > beim 640x400/480 Display kann man über einen Code Area/Text und > Grafikmodus umschalten. Geht das auch mit diesen Display hier? Mit dem Display an sich ja, aber nicht mir diesem Code. > Was müsste man tun um ein Pixel in x,y darzustellen? 9,6kByte SRAM hinzufügen...
Datum:
Ist den der Code für Area, Textmodus (0x08) und Grafilmodus (0x09) der gleiche für dieses Display?
Datum:
Ich weiß jetzt nicht welches 640x480 Display mit Text/Grafikumschalung du meinst.
Datum:
Also von dieser Seite http://www.mehto.roboterbastler.de/?Projekte:Displ... TOSHIBA - TLX-1181-13 Tutorial und die Modis: http://mehto.roboterbastler.de/?Projekte:Display_C... Gibts solle Modis auch auf ein 320x240 , denke mal die sind sich ähnlich?
Datum:
Ja, das geht mit meiner anderen Software (interessanterweise ist meine Schaltung verblüffend ähnlich, bzw. nahezu identisch zu der von mehto): Beitrag "LCD Controller für 640x480 LCD mit mega8515" Da gibt es irgendwo auch eine Version für 320x240 Displays. Ich verwende grundsätzlich den Grafikmodus. Die Software beinhaltet aber einen Zeichensatz und schreibt daher auch Text auf das Display.
Datum:
hallo benedikt lese diesen beitrag nun das erste mal und bin schwer beeindruckt und interessiert. nicht zuletzt aus dem grund, weil ich hier zwei NAN YA displays zu liegen habe und seit tagen versuche daten dazu zu bekommen. von der größe her müßten es auch 320x240iger sein. die bezeichnung lautet LTBHBT357 H2CK die kontrollerplatine hat wohl einen SID13704 drauf. die versorgungsspannung und wenn ich das richtig gesehen habe einen SP491.....der hat wohl was mit RS485 zu tun. das display i8st in einem gehäuse und hat eine sechsadrige zuleitung. zwei sind die betriebsspannung und die vier restlichen dann wohl die RS485......keinen plan wie man das anschließt. ach ja und im gegensatz zu deinem LCD hat es eine 16 adrige folienleitung. @all kennt jemand vlt dieses display und könnte mir weiterhelfen. wenn es hilft könnte ich noch bilder einstellen. danke schonmal LG thomas
Datum:
Hallo Benedict, Ich habe mir Deinen Comtroller einmal angeschaut, gefällt mir gut. Lediglich den Teil mit dem M34063 habe ich nach der Original-Schaltung nach National Semiconductors gebaut. Was ich nicht hinbekommen habe ist CR (carriage return - Dezimal -13). Der Befehl ist deinem Command-Bereich nicht decodiert. Ich habe mal versucht den CR Befehl zu implementieren, der Cursor geht auch auf den Zeilenanfang, jedoch auf die vorhergehende Zeile und nicht in die gleiche Zeile. Frage: Wie setzt Du den Spaltenzähler zurück, ohne den Zeilenzähler zu dekementieren? Gruß Otto53
Datum:
Angehängte Dateien:Stimmt, den Carrige Return Befehl habe ich wirklich vergessen einzubauen. Ich habs mal nachgeholt. Das Problem an dem Befehl ist, dass man quasi Modulo Zeilenbreite rechnen muss. Dazu beginne ich am Anfang der untersten Zeile und ziehe solange eine Zeilenbreite ab, bis ich kleiner als die aktuelle Cursorposition bin.
Datum:
Danke für Deine Hilfe! Ich habe eine Platine für den Controller in Target entworfen, mit zusätzlichem Anschluß an eine echte V24 Schnittstelle. Sobald sie komplett fertig ist wird sie veröffentlicht. Otto53
Datum:
Angehängte Dateien:Hier eine neue Version für den mega8. Nun ist endlich ein Cursor verfügbar. Da die ganze Software nur mit Buchstaben und nicht mir Grafik umgehen kann, wird der volle Block aus dem Zeichensatz als Cursor zweckentfremdet. Der Cursor ist in 2 Varianten verfügbar: Dauerhaft an oder Blinkend (abwechselnd der Block/das eigentliche Zeichen, Blinkfrequenz im Code einstellbar). Eventuell baue ich irgendwann auch noch einen echten Cursor ein, der grafisch über den Text gelegt wird.
Datum:
@ Benedikt K. (benedikt), eine kleine Frage, warum nimmst du für den MC34063 im Schaltbild einen externen Transistor? Bei der kleinen Leistung sollte der Interne Darlington doch reichen, oder hat das andere Gründe? Bitte um Aufklärung :D
Datum:
Der Darlington hat etwa 1,5V Spannungsabfall. Bei 5V Betriebsspannung bleiben daher nur noch etwa 3,5V übrig. Damit auf mehr als -20V zu kommen ist etwas knapp, daher der externe Transistor.
Datum:
Angehängte Dateien:Hi, hab durch das verlängerte Wochenende mal Zeit gefunden Benedikts Projekt auf eine Platine aufzubauen. Das Board hat eine Grösse von 50mm x 60mm. Es wurde eine Lochrasterplatine verwendet. Es lohnt sich wohl wirklich nicht eine Platine zu entwerfen. Eine Adapterplatine mit SMD-Flachbandstecker bildet die Verbindung zum Display. Erwähnenswert wäre die hochkant aufgelötete "Kontrasttablette" Ein Board zur Erzeugung der neg. Kontrastspannung. Teilweise in SMD, aber gross genug um eine grössere Speicherspule aufzunehmen zu können(in dieser Anwendung reichte ja eine Ind. in Widerstandsform). Wigbert
Datum:
Hallo Benedikt, ASM ist nicht gerade meine Welt und ich möchte nur die Ausgabe der ASCII zeichen haben ohne die COM Schnittstelle. der Timer-IRQ ist das mit dem definiert über den Vector -> .org OC2addr ? Welche Teile muss ich haben um nur die ASCII Zeichen darzustellen? .dseg -> DDRAM: .byte XSize*YSize wird da die Anfangs Adresse vom DDRAM zurück geliefert bei z.B. sbr tempi,low(DDRAM) ...,high(DDRAM) oder der Inhalt der Adresse? die hloop -> gibt die die ASCII Zeichen auf den GLCD aus, also im IRQ vom Timer2 ? was wird mit mit Xsize*ysize+DDRAM angegeben Endadresse oder Inhalt der Adresse von DDRAM? Du hast ja im ersten Post 2 Zeichensätze drinne 8x10 und 12x10 font: Warum taucht nicht font sondern nur DDRAM auf ? Ich versuche deinen ASM zu verstehen. Welche Teile würde ich brauchen um nur die ASCII zeichen auszugeben? Danke
Datum:
Avr Nix wrote: > der Timer-IRQ ist das mit dem definiert über den Vector -> .org OC2addr > ? Ja. > Welche Teile muss ich haben um nur die ASCII Zeichen darzustellen? Du müsstest eigentlich nur den richtigen Text in den Speicher schreiben. Dieser Code hier füllt den Speicher Standardmäßig mit fortlaufenden Werten, so dass der komplette Zeichensatz dargestellt wird: ldi temp, 32 clrloop: st Y+, temp inc temp ldi temp2, high(XSize*YSize+DDRAM) cpi YL, low(XSize*YSize+DDRAM) cpc YH, temp2 brne clrloop > .dseg -> DDRAM: .byte XSize*YSize wird da die Anfangs Adresse vom > DDRAM zurück geliefert Ja. > bei z.B. sbr tempi,low(DDRAM) ...,high(DDRAM) oder der > Inhalt der Adresse? Keine Ahnung. Dieser Ausschnitt kommt nämlich nicht in meinem Code vor. (Er macht auch so keinen Sinn). Falls du nur das low(DDRAM)/high(DDRAM) meinst, damit wird die Adresse auf 2 8bit Werte aufgeteilt, da der AVR nur ein 8bit µC ist und den 16bit Wert daher in 2 Teilen laden muss. > die hloop -> gibt die die ASCII Zeichen auf den GLCD aus, also im IRQ > vom Timer2 ? Ja. Genauer gesagt jeweils eine Pixelzeile. > was wird mit mit Xsize*ysize+DDRAM angegeben Endadresse oder Inhalt der > Adresse von DDRAM? Endadresse: XSize*YSize ist dei Größe und die wird zus Startadresse addiert. > Du hast ja im ersten Post 2 Zeichensätze drinne 8x10 und 12x10 > font: Warum taucht nicht font sondern nur DDRAM auf ? Ich schreibe den Text in das RAM (daher DDRAM: Display Data RAM) und gebe bei der Ausgabe anhand von den Buchstaben im RAM die Bilder der Buchsteben auf das LCD aus. font sind daher die Bilder von jedem einzelnen Buchstaben. > Welche Teile würde ich brauchen um nur die ASCII zeichen auszugeben? Alles bis auf den Bereich rx_uart bis einschließlich UART_RX_int.
Datum:
Hi Benedikt, damit ich es verstehe: Clockh = r4 , wo wird denn register 4 mit 1 geladen. Wigbert
Datum:
Wigbert Picht wrote: > Hi Benedikt, > damit ich es verstehe: > Clockh = r4 , > wo wird denn register 4 mit 1 geladen. Clockh ist nur ein anderer Name für r4. Zwisch LCD_Line und hloop: cbr tempi, 1<<CLOCK mov clockL, tempi sbr tempi, 1<<CLOCK mov clockH, tempi Damit wird in clockH das Bit gesetzt, das eben den entsprechenden Pin auf 1 setzt. Bei clockL dasselbe, nur wird hier das Bit gelöscht. Ich könnte theoretisch auch sbi/cbi verwenden, aber die sind um 1 Takt langsamer. Klingt nach wenig, aber die 4 Takte mehr sind immerhin 26% innerhalb der hloop Schleife.
Datum:
unter:
>.org OC2addr ;Bildbeginn
wer lesen kann .....
Dank Dir Benedikt
Wigbert
Datum:
@Benedikt K. >Ich schreibe den Text in das RAM (daher DDRAM: Display Data RAM) und >gebe bei der Ausgabe anhand von den Buchstaben im RAM die Bilder der >Buchsteben auf das LCD aus. font sind daher die Bilder von jedem >einzelnen Buchstaben. Jetzt kommt der m8 in meinem Testprogramm an seine Grenzen. Ladest Du jede Zeile neu aus dem Ram, oder wieviel Byte kann ich laden. ich wollte mal einfach abgelegte Testzeichen ausgeben. Wigbert
Datum:
Das was im RAM ist wird angezeigt. Neue Daten kann man zwischen den einzelnen Zeilen laden.
Datum:
hallo, was für einen inverter benötigt das display von pollin, mfg kay
Datum:
hallo leute ich sehe schon, da habe ich ja ein exotisches display erwischt, wenn nicht mal ansatzweise ne antwort kommt.....schade. na ja fals einer interesse hat sich mit dem ding zu beschäftigen, einfach melden. für die tonne zu schade und zur arbeit zurückbringen geht schlecht ;-). bis denne gruß thomas
Datum:
Kay B. wrote: > hallo, > was für einen inverter benötigt das display von pollin, > mfg kay Irgendeinen CCFL Inverter. Ich habe einen INVC329 von Hitachi an meinem dran. Der hat die passende Buchse am Ausgang und passt auch von den Strom/Spannungswerten wunderbar. Thomas H. wrote: > ich sehe schon, da habe ich ja ein exotisches display erwischt, wenn > nicht mal ansatzweise ne antwort kommt.....schade. Ja, das scheint in der Tat irgendwas kundenspezifisches zu sein. Der 13704 ist ja eingermaßen Standard, aber RS485 an einem LCD nicht. Da muss noch irgendein µC drauf sein, der als Schnittstelle zwischen RS485 und 13704 dient. Aber ohne Kenntniss von dessen Software wird es schwer. > na ja fals einer > interesse hat sich mit dem ding zu beschäftigen, einfach melden. für die > tonne zu schade und zur arbeit zurückbringen geht schlecht ;-). Könntest du mal ein Foto machen ? Ein Dispay mit 13704 onboard klingt interessant. Wenn man irgendwie an die Pins des 13704 kommt, könnte man dies durchaus sinnvoll verwenden.
Datum:
@Kay B.
>was für einen inverter benötigt das display von pollin
Pollin 37-700 637 wird statt 12V mit 7V betrieben.
Wenn Du noch ein paar Tage wartest, habe ich Pollin 75-530 858
getestet, hat den Vorteil 5V Nennspannung.
Wigbert
Datum:
Wigbert Picht wrote: > Pollin 37-700 637 wird statt 12V mit 7V betrieben. ist leider ausverkauft > Wenn Du noch ein paar Tage wartest, habe ich Pollin 75-530 858 > getestet, hat den Vorteil 5V Nennspannung. Habs gerade mal getestet: Dieser ist für größere Röhren ausgelegt. Es funktioniert zwar, aber die Leistung ist etwas hoch: 5V, 0,49A, also rund 2,5W. Laut Datenblatt werden 1,4W empfohlen. Dafür leuchtet bereits ab 1,3V (!!!) etwas. Bei etwa 3,3V hat man 0,4A, also etwa 1,3W. Für den Betrieb an 3,3V (was das Display übrigends auch kann), ist dieser also optimal. Durch Anpassen des Kondensators am Ausgang, kann man die Leistung aber anpassen. Momentan habe ich 18pF drin (das müsste der Orginale sein, wenn ich mich nicht irre), mit etwa 10pF sollte der Inverter also auch für 5V brauchbar sein.
Datum:
@Benedikt K.
>ist leider ausverkauft
dann eben die 37-700 638, da ist eine "bunte" Röhre zu.
Eben waren noch welche da.
Dank dir für die Hinweise. Mir geht es um eine Spannungsversorgung
des Inverters und Controllers.
Wigbert
Datum:
hallo, also würde der inverter 700 638 dafür auch passen?? kay
Datum:
>also würde der inverter 700 638 dafür auch passen
Jup,
die Röhrenfarbe der beigelegten Röhre für andere Projekte ist wohl
Geschmackssache.
Wigbert
Datum:
danke, so jetz gehts ans bestellen kay
Datum:
@benedikt: ldi temp, (1<<wgm21) | 2 out TCCR2,temp -> was bedeutet das: | 2 ? heisst das Bit WGM12 und Bit 2 auf 1 gesetzt wird und dann ab ins TCCR2 Register vom Timer2 ?
Datum:
Ja, so in etwa. Bit WGM21 und Bit 1 (2 hoch 1 = 2). 2 ist der Wert für den Prescaler für den Timer, hier also 8. Also 16MHz/8=2MHz.
Datum:
Angehängte Dateien:Hallo Benedikt, wie versprochen eine Platine für Deinen AT Mega 8 Entwurf. Die Platine ist in Target entworfen und kann auch für andere Displays verwendet werden. Der Controller kann über V24 (K6) oder über einen Port (K7) angeschlossen werden. Hierzu die passende Verbindung an K5 konfigurieren. Das Layout, der Schaltplan, sowie die Bestückung und eine Datei mit den entsprechenden Signalnamen, Pin, Ports etc. sind als .pdf Dateien angehängt. Noch ein Wort zum Layout: Ich habe es so gestaltet, daß K1 zum Konfigurieren verwendet werden kann. Steckerleiste K2 dient zum modifizierten Anschluß des Display's, wenn das Flexkabel abgelötet wurde. Falls das Flexkabel verwendet wird, kann an der rechten Seite der Anschlußstecker (1 mm Raster) direkt angelötet werden. Alle anderen Steckverbindungen sind im Schaltplan aufgeführt. Zum Thema CCFL Inverter: Ich verwende den Inverter für Case Modding von Revoltec, gibts bei Reichelt für ein paar Euro. Der funktioniert schon ab 6 -7 Volt zuverlässig (benötigt 12 Volt für die volle Leistung)
Datum:
Den SWE vom 34063 würde ich nicht an Masse legen. Die Basis-Emitterdiode kann dabei nämlich kaputt gehen, da diese nur etwa 7V verträgt. Keine Ahnung ob der 34063 eine antiparalleler Schutzdiode eingebaut hat, aber die Stromaufnahme ist auf jedenfall um einiges höher und der Wirkungsgrad daher um einiges schlechter als bei meiner Schaltung. Wenn schon, dann an GND vom 34063. Oder so wie ich das mache.
Datum:
Hallo Benedikt, ich habe die Schaltung aus den Original Datenblätter von ST. Hier wird der SwE (Pin 2) ebenfalls auf GND gelegt . Siehe Link auf Seite 10 Bild 2 http://www.datasheetcatalog.net/de/datasheets_pdf/... Die beiden internen Transistoren Q1 und Q2 sind in dieser Darstellung parallel geschaltet und müssen die Basis von T1 auf GND ziehen, der max. Strom, der hier fließen kann ist 5V/680 Ohm = 7.35 mA. Da sollte der 34063 verkraften. Laut Datenblatt schafft der MC 34063 1.5A max. Das ist zwar der Absolutwert, mit dem man nicht arbeiten sollte, aber bis jetzt (4 Tage Dauertest) läuft die Schaltung einwandfrei. Die Stromaufnahme ist gering, der IC wird etwa 35 Grad C warm.
Datum:
otto53 wrote: > Hallo Benedikt, > ich habe die Schaltung aus den Original Datenblätter von ST. Hier wird > der SwE (Pin 2) ebenfalls auf GND gelegt . Siehe Link auf Seite 10 Bild > 2 Meinst du Seite 11 ? Das wundert mich jetzt aber, dass die so eine Schaltung ins Datenblatt abdrucken. Ich hatte es früher auch den Emitter auf GND, aber da die Basis des Treibertransistors dann negativer wird als die Basis, geht entweder der Transistor kaputt, oder (was ich eher glaube) fließt ein ordentlicher Strom da antiparallel eine Schutzdiode liegt. Ich konnte zumindest den Stromverbrauch gegenüber der Emitter auf GND Lösung halbieren (bei gleicher Last). Wenn also vom Emitter nach GND eine Diode eingebaut wird, verdoppelt sich der Wirkungsgrad ! Hier wird es richtig gemacht. http://www.onsemi.com/pub_link/Collateral/MC34063A-D.PDF Seite 8, Fig. 13b
Datum:
@Benedikt: Was ist ClockL und ClockH und für was sind diese? In deiner CLRLOOP dient es zum Löschen des Bildschirms? Was ich auch nicht verstanden habe Wie kommt sagen wir wenn ich "ABC" in zeile 2 Spalte 30 darstellen möchte wie das berechnet wird bzw dargestellt wird und wo wird das gemacht? kann ich sagen das Buchstabe an x, y -> 320*y+x ist? Oder fängt jede Zeile bei 1 an wo wird das gemacht? Wenn ich jetzt ABC Darstellen möchte, wird A dargestellt B und dann C ? Und wie geschied das genau ? Es wird ja im IRQ nur eine Zeile geschrieben? Muss ich die nicht gesetzen Pixel auch darstellen, damit es 240 Pixel pro Zeile werden und wo wird das gemacht? Was ich auch nicht verstanden habe wenn Zeichen wie ein Bild ist und warum kann ich den nicht Pixel einzel setzen, wie müsste das ausehen, man kann ja den ganzen zeichensatz doch darstellen ? Danke für deine Erläuterungen hierzu, mir ist das Prinzip nicht ganz klar wie die Buchstaben bzw. Pixels auf den Display landen, wenn jede Zeile geschrieben wird und vom Buchstaben nur immer ein Teil ist, also eine Pixelbreite des Buchstabens. GastTX
Datum:
Ja, Seite 11, 2tes Schaltbild, anstelle Seite 10, Sorry!
Datum:
Angehängte Dateien:@Benedikt K. >Da kostet das Spielen mit dem LCD mehr Zeit. >Und das schlimme ist, da kann man garnichts dagegen machen... da sind der Phantasie wirklich kaum noch Grenzen gesetzt.... Wigbert
Datum:
Wigbert, meinste was das erst die Zeit drauf geht wenn du mit Grafik arbeitest und du mit deine Diagramme spielst. ;)
Datum:
GastTX wrote: > @Benedikt: Was ist ClockL und ClockH und für was sind diese? Das sind die Werte die an PortB angelegt werden, mit jeweils dem Shiftclock Pin auf Low bzw. auf High. > In deiner CLRLOOP dient es zum Löschen des Bildschirms? Eigentlich ja. Ich schreibe allerdings den Zeichensatz auf das Display. > Was ich auch nicht verstanden habe Wie kommt sagen wir wenn ich "ABC" in > zeile 2 Spalte 30 darstellen möchte wie das berechnet wird bzw > dargestellt wird und wo wird das gemacht? Y ist der Pointer der auf das nächste zu schreibende Zeichen zeigt. Bei jedem Zeichen wird der um eins erhöht. Bereichnet wird Y u.a. bei com16: Set Cursor. > kann ich sagen das Buchstabe an x, y -> 320*y+x ist? Oder fängt jede > Zeile bei 1 an wo wird das gemacht? Nicht 320 sondern 40, da ich nur Buchstaben verwende, und ein Buchstabe 8 Pixel breit ist: Speicheradresse = Startoffset + x + 40*y Und das wird auch genauso berechnet: ldi temp2, XSize mul RX, temp2 mov YH, r1 mov YL, r0 subi YL, low(-DDRAM) ;Offset aufaddieren sbci YH, high(-DDRAM) add YL, temp ;Spalte aufaddieren > Wenn ich jetzt ABC Darstellen möchte, wird A dargestellt B und dann C ? > Und wie geschied das genau ? Es wird ja im IRQ nur eine Zeile > geschrieben? Der gesamte Text (40x20 = 800 Zeichen) steht im SRAM. Jede Textzeile wird 12x ausgelesen und jeweils die entsprechende Pixelzeile ans Display geschrieben, da ein Buchstabe 12 Pixel hoch ist. Das ganze passiert 20x, dann ist ein Bild fertig. > Muss ich die nicht gesetzen Pixel auch darstellen, damit es 240 Pixel > pro Zeile werden und wo wird das gemacht? 320 Pixel pro Zeile. Es müssen alle übertrafen werden. Das passiert alles in dem Bereich zwischen LCD_Line: und reti. Alles andere an Code ist nur für das Laden von neuen Daten zuständig. > Was ich auch nicht verstanden habe wenn Zeichen wie ein Bild ist und > warum kann ich den nicht Pixel einzel setzen, wie müsste das ausehen, > man kann ja den ganzen zeichensatz doch darstellen ? An sich ist das möglich, aber dazu bräuchte man 320x240Bits. Der mega8 hat aber nur 1k und keine 9,6kByte. Daher verwende ich Text, was den Speicherbedarf auf 40x20 reduziert. > Danke für deine Erläuterungen hierzu, mir ist das Prinzip nicht ganz > klar wie die Buchstaben bzw. Pixels auf den Display landen, wenn jede > Zeile geschrieben wird und vom Buchstaben nur immer ein Teil ist, also > eine Pixelbreite des Buchstabens. Ganz grob betrachtet betrachtet, besteht die Software aus mehreren, verschachtelten Schleifen, hier mal der entsprechende Pseudo C Code for textzeile=0; textzeile<20; textzeile++ for zeichen_pixelzeile=0; zeichen_pixelzeile<12; zeichen_pixelzeile++ for textspalte=0; textspalte<40; textspalte++ displaybyte=schriftart[text[textzeile][textspalte]][zeichen_pixelzeile]; Die innerste Schleife ist im Code die hloop, die anderen beiden sind Zähler die in jedem Interruptdurchlauf erhöht werden.
Datum:
@ Benedikt K. >mit etwa 10pF sollte der Inverter also auch >für 5V brauchbar sein. Also ich hab ein 10pF Kond. eingelötet. Habe bei 5V (genaugenommen 4,95V) 260mA jetzt bei Displayanschluss, also knappe 1,3 W. Sollte gehen. Aber! der orginale Kond. ist für 3KV ausgelegt. 2KV bei Oppermann kein Problem. Sind denn wirklich mehr als 2KV zu erwarten? Ich dachte das Ding läuft mit ein paar hundert Volt. Und dann C für doppelte Ua Spitze ausgelegt. Wigbert
Datum:
Schwer zu sagen. Es hängt stark vom Inverter ab. 2kV werden vermutlich funktionieren, aber keine Ahnung ob das zuverlässig sein wird. Ich habe mal einige Datenblätter überflogen. Bei anderen Invertern für ähnlich große CCFL Röhren (wie die die orginal an dem Inverter von Pollin hängt) wird meist um die 1-1,5kVeff Leerlaufspannung angegeben. Also bis zu 2kVss. Es wird also knapp.
Datum:
Das hab ich befürchtet das beim Start bis zum Nennbetrieb Spitzen auftreten, trau mir mit meinen bescheidenen Messmitteln auch nicht ein Oszi ranzuhängen. Dank Dir. Wigbert
Datum:
Messen funktioniert da sowiso nicht mit den üblichen Geräten, denn alleine schon die Kapazität eines Tastkopfs belastet das Signal so stark, dass die gemessene Spannung nicht mehr viel mit der Realität zu tun hat. Das kann man leicht ausprobieren, wenn man z.B. die Kabel vom Inverter zum LCD anfasst. Dann wird das Display um einiges dünkler. Ein 100:1 oder 1000:1 Tastkopf mit einer Kapazität im unteren 1 stelligen Bereich (oder weniger) sollte man schon verwenden. Ich messe immer den Abstand den ein Funke überspringt wenn ich beide Pins annähere. Das ergibt einen groben Anhaltswert zur Spannung.
Datum:
und als Richtwert 1KV/mm oder wie geht das? Noch nie gemacht. Wigbert
Datum:
Ja, so in etwa. Es ist noch etwas von der Elektrodenform, Frequenz usw. abhängig, aber als ganz grober Anhaltswert reicht das. Zumindest zum Vergleich von verschiedenen CCFL Invertern. Man sollte dies aber nicht allzulange/oft machen. Ich habe zwar noch nie einen CCFL Inverter zerstört, aber ausschließen dass nicht dochmal einer kaputt geht, kann man nie (da sich der Kondensator dann über den Trafo entläd und so eventuell einen hohen Strom in der Primärwicklung induziert und die Transistoren zerstört.) Vor allem der Kondensator wird dabei maximal belastet (hohe Blindleistung von etlichen VA).
Datum:
Na,ja ich hab da in erster Linie angst, das ich bei solchen Experimenten zufällig die Leiter berühre und mir den "Weidezauneffekt" antue. Dank Dir aber für die Info. Wigbert
Datum:
Da kann man eigentlich relativ gefahrlos dranlangen. Man wird keinen Stromschlag bekommen, sondern sich nur den Finger verbrennen. Es stinkt dann ziemlich am Finger... Davon abgesehen spürt man aber kaum etwas. Das ist teilweise ziemlich gemein. Aufgrund von parasitären Kapazitäten ist nämlich nich nur am Ausgang eine Spannung drauf, sondern auch am Feritkern von dem Übertrager. Wenn man den berührt vebrennt man sich also auch den Finger. Meistens spürt man das garnicht, sondern irgendwann stinkt es nur verbrannt, und dann merkt man erst, dass es der Finger ist. Da sich die Energie auf einen sehr kleinen Punkt konzentriert, sieht man am Ende nur einen kleinen, schwarzbraunen Punkt auf dem Finger.
Datum:
>Aufgrund von parasitären Kapazitäten >ist nämlich nich nur am Ausgang eine Spannung drauf, sondern auch am >Feritkern von dem Übertrager schön zu wissen, da hab ich natürlich beim Testen angefasst. Wohl Glück gehabt. Wigbert
Datum:
Oder es einfach nicht gemerkt bzw. nicht gerochen...
Datum:
Ich hoffe das sind schöne Brandings gewesen ;) Benedikt - Welche Ausgaben haben den die Pointer Z und X? Y Zeigt auf das nächste ASCII-Zeichen im Speicher,OK Und Z und X wo zeigen die hin und was machen diese? Wie ist Alphabet eigentlich organnisiert (.db Zeile) ich sehe mehr Nullen als Zeichen ( entsprechende HEX Werte ). Wo ist da ein A oder ein O etc. codiert ( Beispiel? ) ? GastTX
Datum:
GastTX wrote: > Benedikt - Welche Ausgaben haben den die Pointer Z und X? > Y Zeigt auf das nächste ASCII-Zeichen im Speicher,OK > > Und Z und X wo zeigen die hin und was machen diese? Y: Schreibpointer X: Lesepointer Z: Pointer auf die Schriftart (ZL: ASCII Code, ZH Pixelzeile) > Wie ist Alphabet eigentlich organnisiert (.db Zeile) Ziemlich zerstückelt. Es beginnt mit der ersten Pixelzeile von Zeichen 0 und geht bis zum Zeichen 255. Danach kommt die zweite Pixelzeile usw. > ich sehe mehr Nullen als Zeichen ( entsprechende HEX Werte ). Das ist normal. Bei Buchstaben sind weniger Pixel an als ausgeschaltet. > Wo ist da ein A oder ein O etc. codiert ( Beispiel? ) ? Das Bild für jedes Zeichen ist 8x12 Pixel groß, also 1x12Byte. Das für A liegt z.B. an Position 65 (erstes Byte), 65+256 (zweites Byte) usw.
Datum:
Benedikt, damit ich das auch verstehe: >Das Bild für jedes Zeichen ist 8x12 Pixel groß, also 1x12Byte. Das für A >liegt z.B. an Position 65 (erstes Byte), 65+256 (zweites Byte) usw. Empfange "A" 1.Zeile hole Byte 65 2. Zeile jetzt müsste doch im Code irgendwo +256 stehen, wo wäre das, oder wie? Wigbert
Datum:
Wigbert Picht wrote: > Empfange "A" > 1.Zeile hole Byte 65 > 2. Zeile jetzt müsste doch im Code irgendwo +256 stehen, wo wäre das, > oder wie? Das heißt, A (65) landet im SRAM an der Position auf die Y zeigt. Irgendwann steht X in der Interruptroutine auf dem selben Wert. Dann wird 65 ausgelesen und nach ZL geschrieben. Z zeigt daher auf die erste Pixelzeile des Bildes eines A. ZH ist ein Offset (Beginn der Zeichentabelle) + die Zeile. Daher wird nach jeder Zeile ZH um eins erhöht, was dem +256 entspricht. X wird um 40 erniedrigt und zeigt wieder auf den Anfang der Zeile. Nun kommt X wieder zu der Stelle mit dem A, es wird wieder 65 nach ZL geschrieben, aber ZH ist jetzt um 1 größer, Z also um 256. Jetzt wird die zweite Pixelzeile ausgegeben. Das ganze läuft 12x so ab. Danach wird ZH wieder auf die erste Pixelzeile gesetzt, und X ganz normal erhöht um die nächste Textzeile zu verarbeiten.
Datum:
Sorry Benedikt, irgendwie tu ich mir schwer. Deine GCRom Daten 8x10 hat -10 Blöcke -jeder Block hat 32x8 = 256 Hexzahlen. Wenn ich aus jeden Block die 65 abzähle müsste ich doch die dort vorgefundene Hexzahl in Dual untereinander geschrieben ein "A" malen können. Wigbert
Datum:
Wigbert Picht wrote: > Deine GCRom Daten 8x10 hat Oder 8x8 oder 8x12 usw. je nach Höhe eines Zeichens. > -jeder Block hat 32x8 = 256 Hexzahlen. Nein, jedes Zeichen hat 8x10 bzw. 8x12 Pixel, also 10x1Byte bzw. 12x1Byte also 10 bzw 12Bytes. Die Zeichentabelle ist daher 10x 256Bytes bzw 12x 256Bytes groß. Für jedes Pixel Zeichenhöhe werden daher 256 Bytes benötigt. Um alles einfach zu machen, ist die Zeichenbreite auf 8Pixel = 1Byte beschränkt, so dass ich mit 256 Zeichen auf genau die 256 Bytes komme.
Datum:
Ja das verstehe ich ja, ich versuch in der Font mein "A" wiederzufinden, das gelingt mir nicht. müsste doch abzuzählen gehen. Wigbert
Datum:
Das steht an Stelle 65, 65+256, 65+512 usw bis 65+2816 Diese Bytes als 8x12 bzw. 8x10 Grafik angeordnet ergeben ein A. Achso, jetzt versteh ich was du als Block meinst. Die Anordnung als 32x8 dient nur der Breite. Alle 256 Werte in einer Zeile wären doch etwas lang geworden. Jeder Block ist also eine Pixelzeile.
Datum:
>Jeder Block ist also eine Pixelzeile
also brauch ich in jeden "Block" nur 65 abzählen
wenn ich jetzt aber abzähle
hab mit 1 angefangen(evtl falsch)
hab ich je Block 3.Zeile 1.Zahl (32+32+1)
0x00
0xC3
0x24
0x99
0x9A
0x9A
0x69
0x04
0xC3
0x00
sollte ein A? werden
kann da kein Muster erkennen.
Irgendwie zähle ich nicht richtig.
Wigbert
Datum:
Binär wären die Werte das hier: 00000000 11000011 00100100 10011001 10011010 10011010 01101001 00000100 11000011 00000000 Es sieht merkwürdig aus, ich weiß. Es gibt da noch einen Trick in der Software: Die unteren und oberen 4bits sind getauscht: 00000000 00111100 01000010 10011001 10101001 10101001 10010110 01000000 00111100 00000000 OK, man erkennt immer noch nix. Daher mal alle 0 durch ein Leerzeichen ersetzt: 1111 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 11 1 1111 Das sieht doch mal gut aus. Du hast dich also verzählt, da die Zählung bei 0 beginnt. Du hast also das Zeichen 64 gelesen.
Datum:
>unteren und oberen 4bits sind getauscht
1:0 an Dich
Ich hatte das auf Papier aufgemalt mit Nullen konnte echt nichts
erkennen.
Beim H wäre das einfacher gewesen.
Nun ist das Prinzip wohl klar.
Dank Dir für Deine Geduld.
Wigbert
Datum:
hallo, habe mir den inverter von pollin 700638 zugelegt nun meine frage bezüglich des anschlusses am lcd,im datenblatt vom lcd steht 1=gnd 2=hv aber am inverter steht nix dran ist das nun egal wie ich die kabel anschliesse? mfg kay
Datum:
Mess mal am Inverter: Ein Ausgang sollte Verbindung zur Eingangsseite haben. Das ist GND. Ansonsten ist es aber (zumindest bei diesem LCD) weitestgehend egal, da die CCFL Röhre und die Zuleitungen symmetrisch sind.
Datum:
Angehängte Dateien:hallo, so hab mal ein paar bilder vom inverter gemacht rechts ist der eingang links der ausgang. ich glaube das bild mit der unterseite der oberste pin links oben ist wohl masse danke erstmal für die antworten mfg kay
Datum:
Der Pin der über den Kondensator geht ist HV, der wo direkt am Trafo hängt, dass ist GND. Eventuell reichen sogar 5V Betriebsspannung aus, wenn beide Ausgänge parallel geschaltet werden.
Datum:
danke erstmal werds nacher ausprobieren
Datum:
hallo, der inverter läuft bei 5volt, aber das display bleibt dunkel nur beim reset des mega8 wirds kurz weis bleibt dann wieder dunkel habs genauso aufgebaut habe alle bauteile jetzt schon 3 mal getauscht keine besserung an was könnte es liegen mfg kay
Datum:
Mess mal die Spannung am VLCD Pin. Hier sollten etwa -18V anliegen.
Datum:
hallo, die spannung am VLCD Pin ist ungefähr 17,5Volt. so wenn ich alles einschalte dann ist das ganze display gefüllt mit zeichen zahlen buchstaben. gebe ich zb. hallo in mein terminal programm ein drücke enter dann wirds auch angezeigt oben links,so wenn ich einen text an einer bestimmten stelle haben will dann gebe ich 17,x5,y10 dann meinen text ber es wird dann 17,x5,y10 angezeigt. verwende HTerm als terminalProgramm mfg kay
Datum:
Für die Position darfst du nicht 17,5,10 als ASCII (also als Ziffern) senden, sondern die Werte müssen als Dezimalwert gesendet werden.
Datum:
@Benedikt: Habe mal die AVR Studio dein Programm Simuliert- ist das normal das die Ausgabe die im Speicher steht clrloop Ausgabe des Zeichensatz öfters im SRAM auftaucht? Y wird nicht zurück gesetzt ?
Datum:
Angehängte Dateien:Hallo Benedikt, ich wollte mal nur die Zeichenausgabe am Anfang haben und habe alles Rausgeschmissen was nicht gebraucht wurde. Es wird nur ein Teil der Ausgabe gemacht und das LCD Flimmern ganz schön. Anbei das ASM für AVR Studio und ein Foto der Ausgabe. Kennt sich einer aus mit ASM in Bascom, möchte die Displayroutinen in BASCOM übertragen bzw den ASM Code ? Thx
Datum:
Esetze mal das ret im Hauptprogramm durch main: rjmp main ret springt aus der Funktion zurück, nur gab es nie einen Funktionsauf, daher gibt das dann irgendwann einen Stack undeflow.
Datum:
Danke das geht! jetzt Beitrag "Re: Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus" Warum steht dein Zeichensatz ( !ABC... ) mehrmals im Speicher ?
Datum:
Wo steht was mehrmals im Speicher ?
Datum:
Wenn ich dein Code im AVR Studio simultan ausführe wird Ab 0x60 (Dataspeicher) der Zeichensatz, also !ABCDEF etc. gespeichert und das mehrmals hintereinander weg. Sieht am wenn man Menmory -> Data sich anschaut und runter scrollt. Wo wird eigentlich Y auf Anfang gesetzt, wenn alle zeichen geschrieben sind ?
Datum:
Avr Nix wrote: > Sieht am wenn man Menmory -> Data sich anschaut und runter scrollt. Eigentlich sollte da !"#$%&'( usw. stehen, das ganze sollte sich erst nach 6,4 Zeilen wiederholen. > Wo wird eigentlich Y auf Anfang gesetzt, wenn alle zeichen geschrieben > sind ? Nirgends. Da aber der Cursor automatisch von Ende wieder auf Anfang zurück springt, ist das auch garnicht notwendig. Schadet aber auch nicht, wenn man es einbaut.
Datum:
Benedikt K. wrote: > Avr Nix wrote: >> Sieht am wenn man Menmory -> Data sich anschaut und runter scrollt. > > Eigentlich sollte da !"#$%&'( usw. stehen, das ganze sollte sich erst > nach 6,4 Zeilen wiederholen. > ja die zeichen kommen wie du die beschrieben hast - warum müssen den die Zeichen sich im SRAM wiederholen? Reicht das nicht das diese Zeichen nur einmal im Speicher sind bzw welchen Grund hat das das die mehrmals da sind ?
Datum:
Eigentlich müssen die Buchstaben garnicht in den Speicher, ich habe dies nur eingebaut, damit man sofort sieht, dass das Display funktioniert. In der Version die ich verwende, wird das Display komplett gelöscht (alles mit 32 beschrieben).
Datum:
Verstehe ich jetzt nicht oben steht doch das die Zeichnen auf das Display ausgegeben werden, wo wird den das Alphabet ausgeben, wenn alles gelöscht wird ? Ich dachte was ausgeben werden soll muss vorher im Speicher stehen? Wie läuft den dein Programm ab ?
Datum:
Avr Nix wrote: > Verstehe ich jetzt nicht oben steht doch das die Zeichnen auf das > Display ausgegeben werden, wo wird den das Alphabet ausgeben, wenn alles > gelöscht wird ? Wenn gelöscht wird, wird garnix ausgegeben. Ich habe meherere Versionen von der Software. Die die ich ins Forum gestellt habe, zeigt den Zeichensatz an, damit man sofort nach dem Einschalten sieht: Software läuft, Hardware OK. Die Version die ich bei mir verwende, zeigt nichts an: Hier werden alle Stellen auf Leerzeichen überschrieben (anstelle des Alphabets). > Ich dachte was ausgeben werden soll muss vorher im Speicher stehen? Genau > Wie läuft den dein Programm ab ? Das was im Speicher steht wird ausgegeben. Im Hintergrund wird der Inhalt des Speichers auf das Display geschrieben, im Hauptprogramm die UART Daten und Befehle verarbeitet.
Datum:
hallo Benedikt, mal eine kurze frage bezüglich der fonts, ich habe die Version mit mega8, wie müsste mann das programm erweitern um eine 12x16 Schriftart anzuzeigen. habe zwar hier Beitrag "LCD Schriftarten ( Fonts in veschiedenen Größen )" schon geschaut aber AVRStudio gibt immer eine fehlermeldung aus mfg kay
Datum:
12x16 Schriftart wird schwer. Aufgrund der vielen Vereinfachungen, müssen alle Zeichen nebeneinander geschrieben 256 Bytes groß sein, was bei den 8xirgendwas Schriftarten der Fall ist. Bei 12xirgendwas müsste man jedes Zeichen erstmal auf ganze Bytes, also auf 16 aufrunden, ansonsten wird es unschön zu verarbeiten. Dann bleibt also noch Platz für 128 Zeichen. Dann müsste man noch die Ausgabeschleife von 2 4bit Blöcke auf 3 4bit Blöcke umstellen, um ein Zeichen zu übertragen. Ist schon ein wenig Arbeit. Die größte Arbeit ist aber erstmal die Erzeugung der Schriftart, da die Daten ja Zeilenweise und nicht Zeichenweise angeordnet werden.
Datum:
Hi, die Links oben im Posting zu den Produkten funktionieren nicht mehr, handelt es sich um eines dieser beiden LCDs? LCD-Modul NAN YA LTBE9T372G1K 9,95€ 9,5" LCD-Modul Citizen G6481L-FF 29,95€
Datum:
Julius J. wrote: > Hi, > > die Links oben im Posting zu den Produkten funktionieren nicht mehr, > handelt es sich um eines dieser beiden LCDs? > > eben nachgeschaut: http://www.pollin.de/shop/shop.php =9.95 http://www.pollin.de/shop/shop.php =14.95 mfg kay
Datum:
Die Links sind natürlich noch sehr viel besser... Es sind: LCD Modul NAN YA LTBE9S159J1K Best.Nr. 120 471 14,95 EUR und LCD-Modul NAN YA LTBE9T372G1K Best.Nr. 120 460 9,95 EUR Das hier: LCD-Modul SHARP LM038QB1R10 Best.Nr. 120 318 7,95 EUR funktioniert theoretisch auch, läuft aber nur mit 3,3V und benötigt noch etliche zusätzliche Spannungen. Ist also um einiges komplizierter von der Schaltung her.
Datum:
Ah, danke. Das ist ein faszinierendes Projekt, aber leider blickt man durch die Forums Postings nicht mehr durch. Ich mag das Wort ja nicht aussprechen, aber eine Dokumentation (wiki Eintrag) wäre echt hilfreich. Würde das auch selbst machen, fange aber grad erst an mit AVRs zu basteln. Julius
Datum:
@Benedikt: Dein Zeichensatz wird doch im Flash gespeichert, wo ist den die Adresse der jeweiligen Pixelzeile der Buchstaben drin bzw in welchen Pointer steht die Adresse die im Flash auf die Zeichensatz zeigt?
Datum:
Z ist der Pointer auf die Zeichen im Flash. ZL beinhaltet den Buchstaben und ZH die Pixelzeile + Offset der Adresse.
Datum:
Aber um den Zugriff im Flash zubekommen muss ich da nicht die Adresse wissen ab wo der zeichensatz gespeichert wird und von da an mit den Z-Pointer drauf zu zugreifen? Also Anfangadresse wo die Tabelle anfängt die dann mit den Offset und Position der Pixelzeile berechnen kann ? Beispiel Label DDRAM -> Ab Adresse $60 kann ja auch $65 sein , oder $80 , da wurde ja festlegt. Aber ab welcher Anfangs - Adresse fängt der Zeichensatz im Flash an, das habe ichnicht verstanden ? Für den Zeichensatz finde ich keinen Label der ja eine Adresse ab wann der im Flash gespeichert wird abbildet.
Datum:
Der Zeichensatz liegt an Adresse 1024: ldi ZH, 4 ; 1024Bytes CGROM Offset
Datum:
Ist das Fest ? Wie machst du das das der Zeichensatz bei Adresse 1024 in Flash anfängt? Must das nicht ihrgenwo festgelegt worden sein ?
Datum:
Avr Nix wrote: > Ist das Fest ? Ja. > Wie machst du das das der Zeichensatz bei Adresse 1024 > in Flash anfängt? Must das nicht ihrgenwo festgelegt worden sein ? Ja, hier: .org 512 Die 512 kommen daher, dass AVR Studio in Words zählt.
Datum:
Hi, habe jetzt diese beiden: LCD Modul NAN YA LTBE9S159J1K LCD-Modul NAN YA LTBE9T372G1K wenn ich zum testen die Hintergrundbeleuchtung erstmal weglasse, fällt dann im Schaltplan alles unterhalb von R3 weg? Julius
Datum:
Nein. Die Hintergrundbeleuchtung ist im Schaltplan garnicht drin. Das unterhalb ist die Erzeugung der Displayspannung. Ohne die geht garnix.
Datum:
Hallo Kai B., weiter oben hattest Du mal angeboten, Dein angepasstes Programm von Pollin zur Verfügung zu stellen. Ich habe zwar ein WG320_240B-TFE-NZ, sieht aber Deiner Abb. WG320_240B_11.jpg sehr ähnlich. Bei mir sind die Bauteile oben rechts nicht mit aufgelötet. (Kennst Du zufällig die Bedeutung?) Mir ist es noch nicht gelungen, irgendein Zeichen auf die Anzeige zu bringen und wäre deshalb an einem funktionsfähigen Programm interessiert. (Nur der Kontrast lässt sich z. Zt. einstellen.) Gibt es schon weitere Fortschritte? (Grafik) MfG Wolfgang
Datum:
Angehängte Dateien:Hallo hm ja das mit dem umgeänderten Pollin Programm ist bei mir leider in Vergessen heit geraten ich habe dieses als Anhang nun beigefügt. Dazu erstmal ein paar Hinweise. Es ist mit dem S1d13305 getestet worden da dieser auf dem Pollin Display bestückt war. und Als Anschlussbelegung am LPT habe ich mich an das Pollin Display Optrex DMF5008 orientiert. Also auf dem Bild WG320240B_11.jpg dient der Schaltungsteil Recht oben als DCDC für die Negative Spannung (für den Kontrast). Vo müsste etwa um die -17Volt sein wenn ich mich recht erinnere. MfG Kai
Datum:
Danke für die schnelle Antwort. noch eine Bitte: kannst Du mal die Belegung Deiner Parallelschnittstelle prüfen, ob sie mit meiner vorhandenen übereinstimmt. Steckerstift 1 =WR Steckerstift 14 =CE Steckerstift 16 =C/D Steckerstift 17 =RD MfG Wolfgang
Datum:
Angehängte Dateien:Hallo Also wie gesagt Anschlussbelegung ist wie beim Optrex DMF5008. Habe im Anhang nochmal ein Bild. das CS Signal ist hierbei auf LOW DB0-7 sind entsprechend D0-7(Pin 2-9) vom LPT So wie es mit der von dir Genannten Belegung aussihet musst du CE/CS mit RESET Tauschen dann sollte es ansich gehen MfG Kai
Datum:
@benedikt sehr schönes projekt mal wieder. muß mir auch endlich mal so ein billig display bei pollin zum basteln bestellen :-) weiter so.
Datum:
Danke Kai, ich habe eine Anschlussleiterplatte von Pollin, welche zum Grafik-LCD DG12864 gehört. Die Belegung stimmt nach Deinen Angaben im Wesentlichen überein. Tolle Abb. mit der Einblendung der Belegungstabelle! Ist das eine Fotomontage? Bei mir wird RES über einen Taster bedient. CS habe ich auf L und RD auf H gelegt. Vermutlich ist mein LCD doch defekt. Nach dem Zuschalten der Versorgungsspannung ist die Anzeige „schwarz“ (also Kontrast ist vorhanden), nach dem Betätigen des Rücksetztasters entstehen 1 bis 2 waagerechte Zeilen, welche nach dem Loslassen verschwinden. Die Anzeige ist jetzt „weiß“ und das war es dann. Vielleicht hat noch jemand einen Tipp für mich. MfG Wolfgang
Datum:
@ benedikt auch ich möchte mich endlich mal für die schöne Entwicklungsarbeit bedanken. @ Otto53 auch Dir danke für den Entwurf der Controllerplatine, die ich nun 2x nachgebaut habe. Lediglich bei der Erzeugung der negativen Spannung war es bei mir nötig, den 680 Ohm Widerstand durch einen etwas kleineren auszutauschen (läuft zur Zeit mit 330 Ohm). So, nun habe ich ein kleines Problem und habe fast Angst, dass ich ausgelacht werde... Die Anteuerung des Controllers über den PC via Hyperterminal funktioniert wie erwartet. Gestern habe ich nun versucht, die Ansteuerung über einen anderen Atmega8 vom Pollinboard unter BASCOM zu machen. Ich nutze dazu den Print Befehl. Grundsätzlich funktioniert auch alles, ich bekomme halt nur nicht die Zeichen auf das Display, die ich eigentlich möchte. Dabei ist mir völlig schleierhaft geblieben, wie der Print-Befehl eigentlich die Ausgabe "übersetzt". Versuche ich das Display zu löschen, gebe ich Print 12 oder Print "12" ein, dann kommt jeweils eine wilde Zeichenserie am Display an. Teste ich mal "for x=1 to 255 Print Hex(x) next", dann wird tatsächlich irgendwann auch mal das Display gelöscht. Kann mir hier bitte mal jemand auf die Sprünge helfen, wie ich den Controller über BASCOM richtig austeuere. Ich glaube, ich hab hier irgendwie eine Blockade.... Vielen Dank schon mal. Ciao Thilo
Datum:
nun das wird so nicht funktioniern, da Print "12" Asci zeichen erzeugt. Versuch mal zum löschen Printbin &H0C oder Print hex(12) sowas in der Art Wigbert
Datum:
>Nach dem Zuschalten der Versorgungsspannung ist die Anzeige „schwarz“ >(also Kontrast ist vorhanden), Problem gelöst, die neg. Kontrastspannung war zu gering offensichtlich war das gar kein richtiger Kontrast Wolfgang
Datum:
@ Wigbert Danke für Deine Antwort. Leider hatte es mit den unterschiedlichsten Befehlskombinationen auch nicht geklappt. Ich bekam zwar immer "reprodzierbar" das oder die gleichen Zeichen auf das Display, aber eben überhaupt nicht die, die ich eigentlich erwartet hatte. Nun habe ich den dummen!!! Fehler gefunden: Ich hatte zwar die richtigen Baudraten eingestellt, hatte aber beim Pollinboard einen 16 MHz Quarz anstelle des eigentlich vorhandenen 12 MHz angegeben. Dadurch ist der Tansfer inkorrekt gewesen, blieb aber erstaunlicherweise "fehlerhaft stabil!". Nun läuft alles wie erwartet. Ich kann den Text ganz normal in Bascom mit Print "Hello world" ausgeben, die Befehle sende ich mit Printbin. Vielen Dank nochmal und macht weiter so!! Ciao Thilo
Datum:
Ich habe das GLCD Display ( Mega8 ) im Textmodus immer wenn ich das Zeichen Wiederhole Z.B. Leertaste nach dem zweitenmal ein anders zeichen was immer gleich ist. Beispiel -> ich drücke imer p -> pphphphphphp , oder f -> ffµfµfµf hattest du das Problem auch ? Verbindung über Hyberterm von Windows Sonst klappt die Ausgabe.
Datum:
Baudrate passt, Quarz passt auch zur Einstellung in der Software ? Fusebits auf den Quarz eingestellt ?
Datum:
Hallo Benedikt, 16MHz Oszilator Baudrate 57600 8N1, keine Flussteuerung, sollte passen. Gebe ich unterschiedliche Buchstaben ein, so stimmt die Ausgabe. Werden gleiche Buchstaben genommen tritt das auf was ich im letzten Post geschrieben habe.
Datum:
Interessant. Solch einen Effekt hatte ich noch nie, und kann ich mir eigentlich auch nicht erklären, da alle Zeichen nacheinander individuell behandelt werden. Die Software weiß also nicht, welches Zeichen zuvor kam. Hast du schonmal ein anderes Programm außer Hyperterm probiert ?
Datum:
Hhmmm, also ich sende ein Datenpaket "Hallo" vom Terminalprogramm zum Controller. Schneller geht es wohl kaum, und da kommen 2xl vor. Hatte den Fehler auch nicht. Wigbert
Datum:
Der die Baudrate ist zu hoch bei 16 MHz.Es funktionieren max. 38,4Kbaud/s.
Datum:
Marco Schwan wrote: > Der die Baudrate ist zu hoch bei 16 MHz.Es funktionieren max. > 38,4Kbaud/s. Laut dem Datenblatt ist das noch OK. Der Fehler liegt bei +2,08%, was ganz knapp an dem empfohlenen Wert von max +/-2% liegt. Die +/-2% gelten dabei für jeweils diesen Fehler beim Sender und entgegengesetzt beim Empfänger, wenn ich das richtig gesehen habe. Beim PC dürfte der Fehler aber bei <0,1% liegen.
Datum:
Also in Hallo ergibt bei mir auch keine Fehler -> wenns > 2 gleiche Buchstaben sind kommt das Problem und dann abwechselt das richtige und das falsche. OK werde das mal mit einen anderen Termialprogramm ausprobieren und bescheid geben.
Datum:
Ich habe mal mit HTERM versucht und der Effekt tritt nicht mehr ein, komisch. Danke zusammen.
Datum:
Hallo Benedikt, habe mir die lcd-controller mehrfach nachgebaut funktionieren super, so nun meine frage, ich habe lcd1 mit mega8 und lcd2 mit mega168 in der grossen schriftart wie kann ich jetzt die beiden lcd controller ihre eigene adresse geben den lcd1 24x40zeilen,zeichen und lcd2 ich glaube 5x10 zeilen zeichen. für eine antwort wäre ich dankbar mfg kay
Datum:
Eine unterschiedliche Adresse ist momentan nicht vorgesehen, aber da der UART des AVR einen Multi-processor Communication Mode unterstützt, könnte man diesen verwenden. Dazu müsste man die Software nur minmal erweitern.
Datum:
hallo, die beiden displays hängen am rs485 bus funktioniert super, zur adresse:würde eine 3-stellige zahl für jeden lcd-controller verwenden als adresse zb:349 wie muss die auswertung im programm aussehen mfg kay
Datum:
Angehängte Dateien:hallo, habe es jetzt mit dem "Multi-processor Communication Mode" versucht aber es haut nicht so richtig hin. als adresse habe ich 168 gewählt, am sender sende ich ldi temp,168 ->uarttransmit. vielleicht könnte jemannd mal drüber schauen über ne antwort wäre ich dankbar mfg kay
Datum:
Hallo Benedikt, wäre es dann ein grosser aufwand den Multi-processor Communication Mode zu implementieren wenn es möglich wäre.ich komme da nicht weiter. über eine antwort wär ich sehr dankbar. mfg kay
Datum:
Im Datenblatt ist das recht gut beschrieben, wie man prinzipiell vorgehen muss. Dazu müsste man im RX Interttupt UART_RX_int Prüfen ob es eine Adresse ist, falls ja prüfen ob diese stimmt, und falls ja, dann in den normalen UART Modus wechselnd (wenn ich das Datenblatt richtig verstanden habe). Ansonsten werden alle Daten ignoriert. Vom Aufwand her ist es wie gesagt recht wenig, aber das ganze Testen außenrum. Momentan habe ich das leider keine Zeit dafür, um mich damit zu beschäftigen.
Datum:
also ich habe es so gemacht, ich sende zuerst die adresse 168 dann 17,00,00 die textposition aber es kommen nur umgedrehte fragezeichen an UART_RX_int: in regsave, sreg lds tempi, UDR0 cpi tempi, 168 ;ist das erste zeichen 168 dan mach weiter BRNE nook ; lds tempi, UDR0 inc WPos mov tempi2, WPos andi tempi2, RX_Buffer-1 cp tempi2, RPos breq buffer_full mov WPos, tempi2 clr tempi2 ldi XL, low(RXBUF) ldi XH, high(RXBUF) add XL, WPos adc XH, tempi2 st X, tempi buffer_full: nook: out sreg, regsave reti
Datum:
Angehängte Dateien:hallo benedikt, so der mpcm mode haut einigermaßen hin: ich sende die adresse funktioniert dann ein zeichen zB.a funktioniert aber wenn ich in zeile5,spalte10 etwas schreiben möchte wird nichts angezeigt. wäre es möglich mal drüber zu schauen für eine antwort wäre ich sehrr dankbar mfg kay
Datum:
Hi, welche Lötspitzengrößen verwendet ihr zum Austausch des Datenkabels? habe hier eine Ersa Analog 60, die Std. 2,2mm Hammer Lötspitze sieht definitiv zu groß aus dafür. Soll ich lieber die 0,4mm oder die 1mm nehmen? Mfg Julius
Datum:
Julius wrote: > Hi, > > welche Lötspitzengrößen verwendet ihr zum Austausch des Datenkabels? > habe hier eine Ersa Analog 60, die Std. 2,2mm Hammer Lötspitze sieht > definitiv zu groß aus dafür. Soll ich lieber die 0,4mm oder die 1mm > nehmen? > > Mfg > Julius hallo, also ich habe die Weller WECP20 mit standart Lötspitze lötzinn 0.8mm habe mehrere Displays damit umgelötet funktiert ist halt bischen fummelig mfg kay
Datum:
Hallo Benedikt Erstmals danke, dass du dieses Projekt hier anderen zur Verfügung stellst! Ich würde gerne wissen, warum du einen "geraden" 16 MHz-Quarz verwendest und keinen Baudraten-Quarz, hat das einen besonderen Grund? Wenn ich einen andere Quarzfrequenz verwenden will (z.B. 14,745 MHz), was müsste man dann im Sourcecode ändern? Ich nehme an, dass dann ja auch das Timing für die Display-Ansteuerung angepasst werden muss? Ich habe mich bis jetzt nur mit C beschäftigt, die ASM-Listings sind leider ziemlich unverständlich für mich (ja, ich weiss, man sollte sich da reinarbeiten, ich habe halt mit PC-Programmierung in Hochsprachen angefangen und bin erst später zum Mikrocontroller vorgedrungen). MFG Andreas
Datum:
Die 16MHz habe ich verwendet, da dies ein Standardwert ist, den ich für fast alles nehme, und man damit bis 57600Baud nahezu alle Baudraten erzeugen kann (und auch höhere Baudraten wie 1MBaud, die gut zum FT232 passen). Es spricht aber nichts gegen eine anderen Takt. Nur >10-12MHz sollte er schon haben, damit die gewünschten Timingwerte eingehalten werden können. Am Anfang des Programms gibt es eine Zeile .equ F_CPU =16000000 ; CPU Freq Hier muss die Quarzfrequenz eingetragen werden. Ansonsten muss nur noch die gewünschte Baudrate (ein paar Zeilen darüber) eingetragen werden und das Programm neu übersetzt werden.
Datum:
Hallo Benedikt, auch von mir vielen Dank für Deine schöne Arbeit! Nur eine Frage: Auf der Platine in Deinem Bild ist doch deutlich weniger drauf als in Deinem Schaltplan (z.B. nur ein einziger Widerstand). Sieht man die nur alle nicht oder warum ist das so...? Nochmals danke und viele Grüße, Heiko
Datum:
Es ist fast alles drauf was im Schaltplan drin ist. Nur als SMD auf der Unterseite. Den Schaler für die VLCD habe ich weggelassen, da das LCD per Logikpegel geschaltet werden kann. Das ist auch kein Widerstand, sondern die Spule.
Datum:
Angehängte Dateien:sch. avr
Datum:
Hallo Benedikt, erstmal vielen Dank für Deine Antwort! Ich muss Dich leider nochmal um Hilfe bitten... Irgendwie bekomme ich diese Inverterschaltung nicht recht zum Laufen... Bei mir kommen da nur um die -14V raus - und zwar unabhängig von den Widerstandswerten. Wenn ich das Display daran anschließe, brechen sie zusammen auf etwa -8V. Hast Du eine spontane Eingebung, was ich falsch gemacht haben könnte...? Und noch etwas... Die Hintergrundbeleuchtung bekomme ich auch nicht angeschaltet... Muss man da irgendwas beachten? Nochmals danke und viele Grüße! Heiko [edit] P.S.: Wieviel Strom ziehen eigentlich Hintergrundbeleuchtung und Display im Normalfall?
Datum:
Falsche Drossel? Was kann man bei der Hintergrundbeleuchtung eigentlich falsch machen? Inverter besorgen, dessen 2 Ausgangspins mit den 2 Pins der Hintergrundbeleuchtung verbinden und den Eingang mit 12V oder 5V je nach Typ. Strom für Hintergrundbeleuchtung und Kontrastspannung beträgt in dieser Grössenordnung von Display einstellige Milliampere. Spannung der Hintergrundbeleuchtung ist allerdings einige hundert Volt, also beim Messen Vorsicht walten lassen.
Datum:
> Falsche Drossel? So eine: http://www.pollin.de/shop/detail.php?pg=NQ==&a=OTY... > Was kann man bei der Hintergrundbeleuchtung eigentlich falsch machen? > Inverter besorgen, dessen 2 Ausgangspins mit den 2 Pins der > Hintergrundbeleuchtung verbinden und den Eingang mit 12V oder 5V je nach > Typ. Sorry, ich hab sowas noch nie gemacht... Und scheinbar hab ich da was komplett falsch verstanden? Was für ein Inverter denn..?? Ich hab gedacht, die Hintergrundbeleuchtung läuft mit 5-12V... Danke für Hilfe, Heiko
Datum:
Drossel: Die Sättigungsgrenze sollte in der Benedikt'schen Originalschaltung mindestens 350-400mA betragen. Bei diesem Typ sind das nur 150mA, d.h. die Spule sättigt. Könnte es sein, dass der MC34063A warm wird. Hintergundbeleuchtung: In den üblichen Displays wird etwas wie in Pollin 700 638 verwendet. Die Röhre ist im Display drin, der Inverter (die Box daneben) erzeugt aus 12V die Hochspannung für die Röhre.
Datum:
> Drossel: Die Strombelastbarkeit sollte in der Benedik'schen > Originalschaltung mindestens ca. 400mA betragen. Diese hat 150mA. Oh, das hab ich übersehen. Danke! > Hintergundbeleuchtung: In den üblichen Displays wird etwas wie in Pollin > 700 638 verwendet. Die Röhre ist im Display drin, der Inverter (die Box > daneben) erzeugt aus 12V die Hochspannung für die Röhre. Hm, ich bin davon ausgegangen, das sei alles im Display integriert. Pollin schreibt ja auch, man benötige nur die 5V und die -23V. Was verwendet Ihr denn dann als Inverter?
Datum:
Alternativschaltung für LCD-Spannung, wenn 12V zur Verfügung stehen, unter Verwendung der Speicherdrossel 250 304 von Pollin: Beitrag "Re: Grafik-LCD Controller mit AVR und VRAM" Mit der Benedikt'schen Originalschaltung, zumindest aber der Variante Beitrag "Re: Grafik-LCD Controller mit AVR und VRAM", müsste Pollin 250 308 verwendbar sein. Ist halt ein bischen grösser. Diese Drossel ist in Verbindung mit dem MC34063a ziemlich universell einsetzbar.
Datum:
Heiko P. wrote:
> Was verwendet Ihr denn dann als Inverter?
Eben den erwähnten Inverter von der Kaltlichtkathode von Pollin 700 638.
Datum:
Okay, ich werd's versuchen! Vielen Dank nochmals!! Heiko
Datum:
A. K. wrote: > Drossel: Die Sättigungsgrenze sollte in der Benedikt'schen > Originalschaltung mindestens 350-400mA betragen. Bei diesem Typ sind das > nur 150mA, d.h. die Spule sättigt. Könnte es sein, dass der MC34063A > warm wird. Nicht ganz: Die 150mA sind der DC Wert. Man kann da auch problemlos etwas höher gehen. Ich habe bei mir selbst schon Spulen in Widerstandsbauform verwendet, lief ohne Probleme. Weiterhin ist der Spitzenstrom auf etwa 300mA begrenzt. Mehr als 300mA wird die Spule also nie abbekommen. @ Heiko Die Betriebsspannung muss mindestens etwa 4,5V betragen, damit der Spannungswandler sauber läuft. Ansonsten würde ich auf irgendeinen Verdrahtungsfehler beim Aufbau tippen (irgendwas rund um den Transistor).
Datum:
Benedikt K. wrote: > Weiterhin ist der Spitzenstrom auf etwa 300mA begrenzt. Mehr als 300mA > wird die Spule also nie abbekommen. Ok, ich hatte nicht mehr im Kopf ob es 300mV oder 330mV waren und deshalb etwas aufgerundet. Ist ein solche Spule mit 150mA mittlerer Belastbarkeit tatsächlich bei 300mA noch nicht in Sättigung? Denn um letzteres geht es hier ja. Allerdings könnte man wohl R6 auch etwas hochdrehen um dem Maximalstrom zu reduzieren. > tippen (irgendwas rund um den Transistor). Wobei man den ja nur für 5V Versorgung braucht. Wenn man für den Inverter der Lampe sowieso 12V im System hat, dann ist auch die MC-Standardschaltung verwendbar.
Datum:
Angehängte Dateien:A. K. wrote: > Ist ein solche Spule mit 150mA mittlerer > Belastbarkeit tatsächlich bei 300mA noch nicht in Sättigung? Denn um > letzteres geht es hier ja. Ja. Die 150mA sind meist der Effektivwert, basierend auf der thermischen Belastbarkeit der Spule. Genaueres müsste man jetzt im Datenblatt nachlesen. Da diese Spule mehr als Entstör/Filterspule als für Schaltnetzteile gedacht sind, werden diese meist auf der Wechselspannungsseite eingesetzt. Das 1,4x vom Spitzenstrom halten die daher also eigentlich immer aus, ohne in die Sättigung zu gehen. Ich habe mal eine 100µH 1A Spule in dieser Bauform gemessen: Der Strom wurde über einen 33mOhm Shunt gemessen, es sind also etwa 1,5A/div. Ab etwa 1,5div fängt die Sättigung an, verwendbar ist die Spule aber noch bis etwa 2div, also 3A. Da es sich um eine sehr längliche Spule handelt, die dazu noch keinen geschlossenen Ferritkern aufweist ist, kommt diese sowieso nur sehr langsam in die Sättigung. Bei einem Ringkern ist der Knick viel abrupter und der Anstieg danach sehr viel steiler. > Allerdings könnte man wohl R6 auch etwas hochdrehen um dem Maximalstrom > zu reduzieren. Nicht viel: Wenn man von 5mA bei (-)25V ausgeht, und von 3V die die Spule abbekommt (Verluste in der Wicklung, Transistor usw.), dann benötigt man 42mA bei 3V. Da der Spitzenstrom aber um einiges höher ist (man nimmt meist Faktor 4 an), wären das 168mA, bzw. etwas unter 2 Ohm. > Wobei man den ja nur für 5V Versorgung braucht. Wenn man für den > Inverter der Lampe sowieso 12V im System hat, dann ist auch die > MC-Standardschaltung verwendbar. Ja, bei mir läuft alles (inkl CCFL Inverter mit 5V. Eine zusätzliche 12V Spannung ist da stören und führt nur zu Fehlern (5V und 12V sind schnell mal vertauscht)...
Datum:
Ich habe mal etwas gesucht, aber leider konnte ich kein Datenblatt einer vergleichbaren Spule finde, das mehr Infos enthält. Epcos gibt den max. Strom z.B. nach folgendem Kriterium an: Max. permissible DC with temperature increase of ≤40K at rated temperature @ Heiko Mess mal den Widerstand der Spule. Ich glaube die hat einfach einen zu hohen DC Widerstand. Ich konnte leider kein Datenblatt finden, aber ich tippe mal auf irgendwas >10 Ohm.
Datum:
Benedikt K. wrote: > @ Heiko > Mess mal den Widerstand der Spule. Ich glaube die hat einfach einen zu > hohen DC Widerstand. Ich konnte leider kein Datenblatt finden, aber ich > tippe mal auf irgendwas >10 Ohm. Hattest Recht, ja. Sind um die 17 Ohm. Danke für Eure Mühe und viele Grüße in Eile, Heiko
Datum:
So 5 Ohm und kleiner sollten eigentlich auf jedenfall funktionieren. Bis 10 Ohm kann es gehn, muss aber nicht.
Datum:
Angehängte Dateien:Hallo Benedikt, vielen Dank für das schöne Projekt! Um auch das reflektive Display von Pollin betreiben zu können (Sharp LM038QB1R10), habe ich Deine Schaltung mit der Versorgungs-Lösung aus Beitrag Beitrag "Re: LCD-Modul SHARP LM038QB1R10???" kombiniert. Vielleicht hat noch jemand Interesse, deshalb habe ich Schaltplan und Layout angehängt. Einseitige Platine, bis auf eine Ausnahme ausschließlich mit SMD-Bauelementen bestückt. Erstellt mit einer aktuellen Eagle Freeware Version. Der Mikrocontroller wird mit 3,3V bei 12,288 MHz betrieben. Um nicht ausrechnen zu müssen, welche Refreshrate hiermit noch möglich wäre, habe ich diese im Verhältnis auf 50 Hz heruntergesetzt, was im Test aber noch für eine flimmerfreie Darstellung ausreichte. Leider stehen eingehendere Tests noch aus - der Aufbau hat kurz funktioniert, allerdings mit vertikalen Fehlstreifen. Schuld war wahrscheinlich ein Kontaktproblem des FFC-Kabels. Dieses stammt aus einem DVD-Laufwerk, wegen der erforderlichen diagonalen Kontaktierung an einem Ende gefaltet. Die spontane Idee, es einfach abzuschneiden und durch Kratzen neue Kontaktflächen freizulegen, hat leider zur endgültigen Zerstörung des Kabels geführt :-) Die verwendete FFC-Buchse stammt ebenfalls aus dem Laufwerk, der Hersteller ist mir nicht bekannt, das Layout muss somit wahrscheinlich angepasst werden. Gruß, Eric
Datum:
Hallo, ersteinmal : ein schönes Projekt. ich habe alles soweit aufgebaut. wie sende ich nun ein "Hallo Welt" via Uart zum Display ? werden dazu die Steuerbefehle benötigt ? bei mir tut sich leider nichts mein Test bisher : mit dem Hyperterminal "57600 Baud" einen Text gesendet. Quellcode und Schaltung sind vom 1. Beitrag Stephan
Datum:
Alle gesendeten Zeichen sollten direkt auf dem LCD angezeigt werden. Steuerzeichen werden nur benötigt, um z.B. den Cursor in eine andere Zeile zu setzten.) Erscheint nach dem Einschalten irgendwas auf dem Display? Falls nicht, dann liegt irgendein Fehler beim Aufbau vor.
Datum:
Hallo Benedikt, bist du schnell. die Spannung vom Spannungswandler sinkt nach dem einschalten auf ca. -18 Volt ab. -------------------------------------------------------------- "Erscheint nach dem Einschalten irgendwas auf dem Display?" das Display selbst ist etwas hell, die Pixel sind dunkel zu erkennen. ersteinmal danke Stephan
Datum:
Hallo, jetzt wird alles angezeigt es lag am Kontrast. Ich habe R1 durch ein 4,7k Poti ersetzt. siehe Beitrag vom 13.04.2008 16:15 vielen Dank Stephan ##################### vielleicht sollt man noch erwähnen, das für den ersten Test keine seriellen Daten via Uart erforderlich sind. das "Hallo Welt" hat Benedikt schon Bildschirmfüllend integriert.
Datum:
Angehängte Dateien:Hallo, Ergänzung zu meinem Beitrag vom 14.10.: Nach längerer Wartezeit ist endlich ein passendes FFC-Kabel eingetroffen, die Schaltung funktioniert damit wie erhofft. Das Display (Sharp LM038QB1R10) ist meiner Meinung nach nicht schlecht (guter Kontrast, bei mäßiger Beleuchtung noch gut lesbar). Im Anhang sende ich ein Foto vom Display - leider mit viel Bildrauschen, es steht mir nur eine Handykamera zur Verfügung. Noch einmal vielen Dank für das Projekt! Gruß, Eric
Datum:
Mein Display ist soeben eingetroffen, wie durch ein Wunder ist es trotz der lausigen Verpackung (voellig zermatschter Karton) ganz geblieben. Moegen die Spiele beginnen!
Datum:
:) Negative Spannung steht
Datum:
Habe nicht weitergemacht, weil sich die Transistoren auf meinem (vermuteten) 12V Inverter bei 9 Volt in Form von uebelriechenden Rauch verabschiedet haben. War wohl ein 5V Geraet. Einen weiteren Inverter hatte ich nicht, allerdings habe ich eine SMD-Platine mitbestellt, mit der man das Display im Grafikmodus betreiben kann.
Datum:
Wie schliesst man das NAN YA display an? das pinout in dem Datenblatt hat mir nicht viel geholfen. Wo ist bei dem Kabel pin 1?
Datum:
Ich habe mir das weiße NanYa Display von Pollin gekauft (LCD Modul NAN YA LTBE9S159J1K) und die Schaltung auf einem Breadboard aufgebaut. Es funktioniert allerdings noch nicht viel: Nach dem Einstellen der Kontrastspannung erscheinen viele vertikale Linien auf dem Display, d.h. in jeder Zeile wird das gleiche Bitmuster ausgegeben. Außerdem schaltet sich das ganze Bild ca. 2 Mal je Sekunde ein und aus. Da das Programm sicher solch ein Ein- und Ausschalten nicht erzeugt, fällt mir als einzige vernünftige Erklärung ein, dass aus irgendeinem Grund ständig neu Reset gemacht wird. Aber das Reset-Pin liegt bei mir auf HIGH. Und Watchdogs müssten deaktiviert sein. Da ich aber mit den Fusebits noch nicht so viel Erfahrung habe, wäre es nett, wenn sie jemand mal posten könnte. Ich habe für den ATMEGA8 momentan folgende Fusebits programmiert (Bit=0): SPIEN, BOOTSZ1, BOOTSZ0. Ich habe dazu einen Online Fuse Calculator verwendet. Stimmt es, dass die Kontrastspannung nicht anliegen darf, wenn die Versorgungsspannung (noch) nicht eingeschaltet ist (ich habe mal so was gelesen, kann es jetzt aber nicht mehr finden) ? Gruß Florian
Datum:
Angehängte Dateien:Inzwischen habe ich es auch zum Laufen gebracht. Es lag wohl an einer falschen Verbindung zwischen µC und Display und einer nicht korrekt eingestellten Kontrastspannung. Meine Verkabelung dürfte zwar keinen Schönheitswettbewerb gewinnen, aber wie man sieht, funktioniert es ! Vielen Dank an Benedikt.
Datum:
Angehängte Dateien:Ich als PIC- und Basic- Jünger wollte mich der Sache mit dem Display mal von der PICBasic Version aus nähern. Mein erster Versuch war ein Adaptieren von Bendikts Assebler Code auf den 16F876 PIC. Ich mußte jedoch sehr schnell feststellen, daß das ein Schuß in den Ofen wird. Es fehlen dem PIC wichtige Befehle und er ist zu langsam. Letzteres Kann man etwas aufmöbeln, indem man den PIC einfach mit einem Oszillator hemmungslos übertaktet (100% sind kein Problem für dem PIC). Aber selbst mit dieser Lösung kam ich nur auf eine Framerate von ich glaube etwa 17 fps. Viiiiel zu laaaangsaaam. So folgte dann der Umstieg auf einen 18F Typ. Die Idee der Code-Anpassung habe ich dann aber fallen gelassen, letztlich auch wegen dem Forschertrieb und habe den Code mit einer Mischung aus Basic und Assembler neu geschrieben. Mir wurde dann auch relativ schnell klar, warum Benedikt die Zeichen so im Speicher verteilt hat. Das spart ne Menge Rechenarbeit. Ich habe diese Rechenarbeit alerdings mit eingearbeitet nutze den Interrupt nicht als Zeilentakt sondern für die Dateneingabe des UART mit anschließender Auswertung. Ein FIFO ist bis jetzt noch nicht implementiert. Das Ergebniss sind flimmerfreie 69 FPS bei einem natürlich auch wieder völlig übertakteten PIC mit 40 MHZ Oszillator und eingeschalteter PLL. Macht dann 80 MHZ Takt bzw. 20 MHZ im Ausführenden Code. Bei 5,5V könnte man sogar noch bis auf knapp 100MHZ hochgehen, ist aber angesichts der jetzt schon vorhanden knapp 70 FPS nicht nötig. Anfang der Woche ist mein 128Kx8 SRAM gekommen. Das gibt dann das nächste Projekt: Die Grafikeinbindung. Hier werde ich dann wohl um ein FIFO nicht mehr drum herum kommen. Im Anhang mal ein Bild. Die Flecken auf dem Display waren schon vom Kauf an da. Bewährte Pollin Qualität halt. Aber das gute an Pollin ist: Eine bebilderte eMail und das kostenlose Ersatzdisplay ist auf dem Weg.
Datum:
Meik Dittmann wrote: > Mir wurde dann auch relativ schnell klar, > warum Benedikt die Zeichen so im Speicher verteilt hat. Das spart ne > Menge Rechenarbeit. Ja, ich nutze da so ziemlich alle Tricks die man nutzen kann, daher ist der Code auch in Asm und nicht wie bei meinen anderen Programmen in C geschrieben. Nur so ist es möglich in Echtzeit den Text in Grafik umzuwandeln und so das Display mit nur 1kByte SRAM ansteuern zu können. > Ich habe diese Rechenarbeit alerdings mit > eingearbeitet nutze den Interrupt nicht als Zeilentakt sondern für die > Dateneingabe des UART mit anschließender Auswertung. Könnte ich den Code davon bekommen? Es würde mich nämlich interessieren, wie du das umgesetzt hast. > Im Anhang mal ein Bild. Die Flecken auf dem Display waren schon vom Kauf > an da. Sehen diese Flecken organisch aus, also so als wenn irgendeine Art von Flechte? Falls ja, könntest du mal ein hochauflösendes Bild von solch einem Flecken machen (am besten geht das per Scanner)? Was das ganz genau ist, habe ich noch nicht rausgefunden, nur die Ursache: Eine starke mechanische Belastung durch irgendeinen spitzen Gegenstand. Entweder sind das Mikrorisse im Glas, durch die Luft eindringt und den Flüssigkristall oxidieren lässt, oder diese Strukturen entstehen zwischen Glas und Polfilter. Da es hier gelblich aussieht, dürfte das der erste Fall sein, denn die Pixel sind streng genommen blau/weiß und werden durch einige Tricks schwarz/weiß gemacht.
Datum:
Angehängte Dateien:Hallo Benedikt. Ich habe mal ein hochauflösendes Bild, den Basic Code und den daraus resultierenden ASM Code des Compilers als Zip eingefügt. Der ASM Code sieht schlimm aus, da der Compiler seinen ganzen Routinen da noch mit einbindet, auch die, die gar nicht gebraucht werden. Der eigentliche ASM Code, der direkt ins HEX File umgesetzt wird, ist leider nicht zugänglich. Zu den Flecken. Das Display hatte ich mal auseinander gehabt. Es sieht fast so aus, als würde an den Stellen der Flüssigkristall fehlen. Man kann da nämlich einfach durchgucken. Eine Beschädigung ist jedenfalls nicht erkennbar, auch wenn das Display lose mit scharfkantigen, schweren Gegenständen im Karton lag. Ach ja. Mich würde mal interessieren, wie viele Stunden du für die Erstellung der Software gebraucht hast. Gruß Meik
Datum:
Meik Dittmann wrote: > Hallo Benedikt. Ich habe mal ein hochauflösendes Bild, den Basic Code > und den daraus resultierenden ASM Code des Compilers als Zip eingefügt. > Das Display hatte ich mal auseinander gehabt. Es sieht fast so aus, als > würde an den Stellen der Flüssigkristall fehlen. Man kann da nämlich > einfach durchgucken. Eine Beschädigung ist jedenfalls nicht erkennbar, > auch wenn das Display lose mit scharfkantigen, schweren Gegenständen im > Karton lag. Danke. Die Flecken sind genau das wie ich es vermutet habe. Ich habe mittlerweile schon etliche solcher Flecken gesehen, aber bisher war noch keiner so intensiv und großflächig wie bei dir. Wenn ein Pixel aktiv ist, wird er transparent und man lässt die Hintergrundbeleuchtung durch. Wenn der Pixel oxidiert ist, könnte er etwas ähnliches bewirken. Eine Vermutung der Ursache ist der Kleber vom Polfilter der sich irgendwie verändert. Ich persönlich tendiere aber mehr zu den Mikrorissen + Oxidation, da viele der betroffenen Displays von Pollin stammen, und ich auch mal welche hatte, bei denen genau an der Stelle auch deutliche Löcher in der Verpackung waren. Solange Pollin die Displays problemlos ersetzt ist das auch halb so schlimm. Der ASM Code ist gut optimiert, eventuell könnte man hier aber noch eine Kleinigkeit optimieren: Lesen = Lesen + 2048 Lesen = Lesen + ZeichenZeile Dieser Wert wird für jedes Byte berechnet, ist aber innerhalb einer Zeile konstant. Wenn man diese Berechnungen vor einer Zeile ausführen würde, dann könnte man hier vielleicht ein paar Takte einsparen, da man nur noch den vorberechneten Wert nach Lesen kopieren muss. > Ach ja. Mich würde mal interessieren, wie viele Stunden du für die > Erstellung der Software gebraucht hast. Das ging eigentlich relativ flott (<10h), da ich einen Großteil schon aus anderen Projekten übernehmen konnte. Relativ aufwendig war das C Programm das mir den Zeichensatz passend erzeugt.
Datum:
Hallo zusammen, es sind definitv mech. Beschädigungen, die zu diesen Ausfallerscheinungen führen. Bei meinem Display befand sich der Stecker der Hintergundbeleuchtung nicht neben dem Display in der Tüte, sondern umterm Display. Und genau an dieser Druckstelle zeigte das Display dann eben jene komischen Flecken. Pollin schickte diesmal jedoch nicht einfach so Ersatz, sondern bestand auf die Rücksendung und lieferte danach ein anstandsloses Display als Ersatz. Gruß Axelr. Übrigens: Tolles Projekt!! Bau ich mir irgentwann mal auf ;-))
Datum:
Benedikt K. wrote: > Der ASM Code ist gut optimiert, eventuell könnte man hier aber noch eine > Kleinigkeit optimieren: > Lesen = Lesen + 2048 > Lesen = Lesen + ZeichenZeile > > Dieser Wert wird für jedes Byte berechnet, ist aber innerhalb einer > Zeile konstant. Wenn man diese Berechnungen vor einer Zeile ausführen > würde, dann könnte man hier vielleicht ein paar Takte einsparen, da man > nur noch den vorberechneten Wert nach Lesen kopieren muss. Da hast du recht. Das war das, was ich auch schon mal entdeckt und kurz darauf wieder vergessen hatte. Nachdem die Framerate bei knapp 70 lag, hatte ich mich auch nicht weiter darum gekümmert. > Das ging eigentlich relativ flott (<10h), da ich einen Großteil schon > aus anderen Projekten übernehmen konnte. Relativ aufwendig war das C > Programm das mir den Zeichensatz passend erzeugt. Aha. Bei mir hats dann doch etwas länger gedauert (>30h geschätzt, wahrscheinlich mehr). Mag wohl auch damit zusammenhängen, daß das mein erstes Projekt mit einem Display dieser Art ist, mein erstes Projekt mit einem PIC18 und mein erstes Projekt, indem ich Asm-Code verwende ist. Eine sehr große Hilfe war allerdings deine Font-lib. Ich glaube ohne diese hätte ich nicht damit angefangen. So, die nächsten Tage fange ich glaube mal mit dem Grafik-Kram an. Da hab ich schon ein bisserl Angst vor. Das wird hart.... Reichelt hat einen günstigen SRAM mit 128K x 8 für -,88€. Da werde ich wohl die Adress und Datenleitung über einen(zwei) 74ls256 Multiplexen. Sonst hätte ich alleine für dem RAM 24 I/O's belegt. Ich denke, das ist schon mal ein gute Ansatz. Ich hoffe nur, daß ich wenns fertig ist nicht über dem Preis von einem SED liege. Für 15 Euro hatte ich den nämlich schon mal gesehen. Oder gibts die mitlerweile günstiger? Meik
Datum:
axelr. wrote: >...Pollin schickte diesmal jedoch nicht einfach so Ersatz, sondern bestand > auf die Rücksendung und lieferte danach ein anstandsloses Display als > Ersatz. Versuchs mit bebilderten eMails. Das wirkt meistens wunder. Meik
Datum:
Meik Dittmann wrote:
> Versuchs mit bebilderten eMails. Das wirkt meistens wunder.
Ja, diese Erfahrung habe ich auch gemacht. Schöne Email geschrieben,
Bilder mit den Beschädigungen dazu, noch ein paar Kommentare wie
schlecht die Verpackung doch sei, und ich bekam direkt neue Displays
zugeschickt (es waren zwar die falschen, aber da die ursprünglichen
Displays sowieso ausverkauft waren, und die falschen sogar noch teurer
waren, war das am Ende auch egal.)
Datum:
Angehängte Dateien:Hallo Benedikt, ich hab da mal ein ganz kleines Problem: Eine MMC-Karte hat ein "Telefonbuch" gespeichert. http://comwebnet.weimars.net/forum/showthread.php?tid=271 Mit Deiner Variante mit m168 wird die, mit einem m128 gelesene Karte aufs Display ausgegeben.Ein 10KOhm Widerstand begrentz den Strom beim Datenaustausch der Controller. Nun wollte ich mit dem Befehl 13 (hex0D) den Kursor nach links in der nächsten Zeile setzen. Das ist der einzigste Befehl, der bei mir nicht geht. Gibt es da ein Trick? Hab schon mit ein Terminalprogramm versucht. Ich kann die Zeilenanfänge auch berechnen lassen, aber da der Befehl da wäre... >Eventuell baue ich irgendwann auch noch einen echten Cursor ein, der >grafisch über den Text gelegt wird da wäre meine 2.Frage Eine Zeile markieren, die ich beim Scrollen mitzähle und dann eine Ausgabe in Grossformat. Wigbert
Datum:
Angehängte Dateien:Wigbert Picht-dl1atw wrote: > Nun wollte ich mit dem Befehl 13 (hex0D) den Kursor nach links > in der nächsten Zeile setzen. Das ist der einzigste Befehl, > der bei mir nicht geht. Er ist auch nicht in der Software eingebaut. Vermutlich hatte ich den beim Umbauen auf die großen Zeichen entfernt und vergessen wieder einzubauen. Jetzt sollte es funktionieren. Daher hier nochmal das komplette Paket für den mega168. >>Eventuell baue ich irgendwann auch noch einen echten Cursor ein, der >>grafisch über den Text gelegt wird > > da wäre meine 2.Frage Eine Zeile markieren, die ich beim Scrollen > mitzähle und dann eine Ausgabe in Grossformat. Prinzipiell wäre das möglich. Muss ich mal schauen ob das noch reinpasst.
Datum:
Angehängte Dateien:@ Benedikt Ich bin strk beeindruckt. Respekt. Die CSV(Exel)-Datei der Karte bringt die Steuerzeichen automatisch mit. Rest macht Dein Code. Fehlte eben halt nur Deine Auswertung im Code. Wigbert
Datum:
@Benedikt das markieren einer Zeile geht mir nicht aus dem Kopf. Eine Möglichkeit wäre, vor jeder Zeile ein Leerzeichen zu setzen. Ein Zähler, der die Anzahl der Tastendrücke zählt, vergleicht im Nachhinein die Arraynummer und ersetzt in der ausgewählten Zeile das Leerzeichen durch eine Klammer oder ein anderes Sonderzeichen. Ich hätte meine Zeile markiert, würde aber ein Zeichenplatz opfern. Das stimmt mich natürlich traurig... Wie verhält es sich mit Befehl 30 + Dummy, das wären wohl die Sonderzeichen? Hättest Du eine einfache andere Idee. Wigbert
Datum:
Der Befehl zum Invertieren ist nicht das Problem, sondern die Realisierung der Invertierung selbst. Denn dazu müssen alle Zeichen aus dem Zeichensatz invertiert werden, ehe sie ans Display übertragen werden. Aus Gründen der Rechenleistung müsste dazu die Ausgaberoutine die den Text in Grafik umwandelt und ans Display ausgibt komplett nochmal eingebaut werden, nämlich für invertierten Text. Und da diese bisher schon 2x existiert (einmal für kleine und einmal für große Zeichen), wird das schnell sehr groß.
Datum:
@Benedikt das invertieren(also Negativbild) würde eigentlich nur für die kleinen Zeichen erfolgen müssen. Grosse Zeichen zu invertieren und nochmals abzulegen , sehe ich kein Sinn, da ja nur EIN Ereignis nochmal hervorgehoben werden soll. Das grösste Problem sehe ich in der Motivation. Wenn ich mir die Downloadrate Deines letzten Codes ansehe, verstehe ich den vielfachen Download meiner Bilder nicht, zumal die Tel.Nr. der Model's frei erfunden sind. Eigentlich schade, das wir hier nur ein Zwiegespräch führen. Mir würde im Moment auch reichen, ob ein zusätzlicher Speicher, Eprom oder so, anderer Controller, notwendig sein würde. Wigbert
Datum:
Angehängte Dateien:Ich habe nochmal drüber nachgedacht: Eine Invertierung ist eigentlich eine gute Idee, denn damit kann man z.B. auch das gesamte Display invertieren oder ähnliches. Daher habe ich das mal eingebaut: Jede Zeile kann jetzt einzeln oder in beliebigen Kombinationen invertiert werden. Der Flash ist jetzt komplett voll (nur noch 0,8% frei). Eine Invertierung der großen Zeichen ist daher nicht mehr drin. Ich hatte auch nochmal mit dem Cursor gebastelt, aber das ist doch ziemlich kompliziert, da man sich für jedes Zeichen das eigentliche Textzeichen merken muss wenn der Cursor angezeigt wird usw. Ich habe auch ein Bild von dem 8x12 Zeichensatz dazugepackt, da bei den Zeichen <32 doch ein paar interessante Sonderzeichen dabei sind, die man auch als Markierung verwenden kann. Die kann man über 30,0,0,Nummer ansprechen.
Datum:
Angehängte Dateien:Benedikt K. (benedikt) ich hab die Funktionen mit ein Terminalprogramm aufgerufen. Prima, ich danke Dir. Die Markierung lässt sich auch gut erkennen Wigbert
Datum:
@Benedikt K. (benedikt) also das invertieren der Zeilen klappt ganz gut, aber ich kriege das Invertieren nicht ausgeschaltet. Damit ich es richtig verstehe: ich übertrage 31 (Befehl) 10 (10.Zeile) und die Zeile wird weiss. Ich dachte beim 2. mal übertragen der Zeichen wird die Invertierung aufgehoben? Geht nicht. Wo ist mein Fehler? Ansonsten eine interessante Sache. Wigbert
Datum:
Du sendest 31 10 1 -> Invertierung an. Zum Abschalten sendest du 31 10 0. So kann man mehrere Zeilen invertieren.
Datum:
@Benedikt K. (benedikt) Cool, warum hat die Invertierung ohne funktioniert? Ich hatte die Pakete 2x gesendet muss irgendwie zum Einschalten gereicht haben. Dank Dir. Wigbert
Datum:
Ja, der Befehl 31 von dem 2. Befehl wurde als ein/aus Parameter verwendet. Alles außer 0 schaltet ein, nur 0 schaltet aus.
Datum:
So, jetzt kann ich die invertierte Zeile scrollen, pro Tastendruch ein tiefer oder ein höher, je nachdem. War ja (fast) gar nicht so schwer. Nun muss, bei mein Projekt, aus der inv. Zeile die Tel.Vorwahl und die Tel.Nr. herausgefiltert werden und in 2 Zeilen GROSS dargestellt werden. Sollte auch nicht so schwer sein. Wigbert
Datum:
Angehängte Dateien:Hi, zwischenzeitlich lassen sich Dateien, die auf eine MMC-Karte abgelegt sind, sehr schön aufs Display darstellen. Die einzelnen Dateien stellen die Seiten dar, eine Markierte Zeile wird nochmals Gross hervorgehoben. Nach Auswahl der Seite, wird die Zeile markiert und die Tel.Nr. ist auch ohne Brille zu lesen... @Benedigt wenn ich die Zeile(von MMC) bis auf den letzten Zeichenplatz beschreibe, entsteht eine Leerzeile aufs Display. Mir ist bekannt das Steuerzeichen von der Datei mit übertragen werden. Berechne ich aber für die Grossausgabe die letzten Zeichen von hinten, so wird kein weiterer String erkannt und die Ausgabe stimmt(findet in den Leerplatz kein String). Muss ich jetzt in der Kleinausgabe auch filtern? Gehört hier vielleicht nicht ganz hierher, aber dank Dir mal trotzdem schon. Wigbert
Datum:
Wigbert Picht-dl1atw wrote: > wenn ich die Zeile(von MMC) bis auf den letzten Zeichenplatz beschreibe, > entsteht eine Leerzeile aufs Display. Mir ist bekannt das Steuerzeichen > von der Datei mit übertragen werden. Das dürfte daran liegen, dass er am Ende einer Zeile automatisch in die nächste Zeile geht (da im Speicher alle Zeilen hintereinander liegen). Wenn dann nochmal der Befehl für eine neue Zeile kommt, dann landet er halt noch eine Zeile weiter unten.
Datum:
also wird ein Befehl, für neue Zeile, von der eingelesenen Datei kommen, und ein weiterer Befehl ist im Displaycode schon drin. Stimmt. Wigbert
Datum:
Angehängte Dateien:Hi, die vorherige Grossausgabe auf dem Display sah ja noch "Nackt" aus. Ich hab dann mal den Vornamen noch hinzugefügt. Da das Grossformat der Zeichen nur Grossbuchstaben kennt, habe ich nach dem Herausfiltern des Vornamen, alle Zeichen >96(ASCII) mit 32 subtrahiert, fix aus der Stringlänge die Zeilenkoordinate berechnen lassen(damit der Vorname in der Mitte der Zeile ausgegeben wird) und dann ausgegeben. Nun wird in meinem Bz. aus klein Paul gross PAUL Achja und alles in Bascom Na wenn dieses Display nicht interessant ist. Wigbert
Datum:
Hallo! Hab mal ne kurze Frage: Wäre es möglich das Teil auch per Fuunk zu realisieren? MfG
Datum:
@Maximilian Keller (langerhans) >Wäre es möglich das Teil auch per Fuunk zu realisieren? wenn Du jetzt meinst, Daten per Funk zu empfangen und aufs Display darzustellen, sollte das mit Beitrag "bidirektionale RS232 Funkbrücke mit RFM12" kein Problem darstellen Wigbert
Datum:
Danke für den Link, das sollte ja vom Speed her gut passen. Also brauche ich : - Dieses LCD Board von hier - Ein Funkmodul Board das an den UART kommt - Ein Funkmodulboard inkl. MAX232 für die PC Seite Damit sollte ich das Wireless LCD also hinbekommen. Und wenn ich das richtig sehe sogar ohne Anpassung des Codes?! MfG
Datum:
@Maximilian Keller (langerhans) genau, Ich hab da schon sowas ähnliches mal vorbereitet. Aber leider fehlt im Moment die Zeit, das aufzubauen. Wigbert
Datum:
Das klingt ja nicht schlecht! Ich hab die bestellung eben mal zusammengestellt, das wäre gut 30 euro inkl. LCD und Funkmodulen. Inverter habe ich noch und die MAX232 Teile hab ich auchnoch einmal hier rummliegen. Wenn cih mal Lust hab werd ichs auf jeden Fall mal bauen! MfG
Datum:
Hallo, ich möchte gerne das Project nachbauen...habe aber leider nicht die Erfahrung...und deshalb würde ich gerne wissen was im Schaltplan "K1" darstellt... Und welche Art von Kondensatoren mit 1 dünnen und 1 dicken Strich sind... Danke
Datum:
@Hans (Gast) K1 ist ein OptoMosfet zum Schalten von VLCD, kannst du aber auch bei den Pollin Displays weglassen soweit ich weiss, daher ist es auch gestrichelt. Und die Kondensatoren, die du meinst sind Elektrolytkondensatoren. MfG
Datum:
Ok. danke und welche Art sind die mit 2 gleichen strichen...? Danke
Datum:
Und wie funktioniert das dann ohne OptoMosfet...ich denke man braucht ja den VLCD -Anschluss...wo muss ich ihn dann anbringen... Dazu würde ich gern wissen ob man den Bildschirm auch mit Akku betreiben kannn, oder ob es sich nicht lohnt da er zu viel Strom braucht.
Datum:
Mir viel noch was ein: Ich weis noch nicht welches Object L2 dastellt... Wenn jemand zu dem Schaltplan eine Bestellliste hat, würde ich mich freuen wenn er sie mir schreiben könnte, da ich mir bei einigen Bauteilen nicht ganz sicher bin...
Datum:
@Hans (Gast)
>ich möchte gerne das Project nachbauen...
Du bist Dir sicher das Du das schaffst.
also der VLCD wird angeschlossen , indem statt des Pin 4/6 eine
Drahtbrücke genommen wird
L2 ist die Speicherspule der neg. Spannungserzeugung.
Wenn Du bei Reichelt bestellen möchtest, mach ich mal die BestellNummern
fertig.
Wigbert
Datum:
Wenn du es tun willst... joaa ich bin zwar jung aber ich denke ich bekomme das hin, teilweis weis ich schon dies und das aber meine Brüder werden helfen... Was ich vorhab ist den Bildschirm wie ganz oben beschrieben mit Atmega8 zu verbinden und dann noch 4 schalter und 1 Infarot-Sender/Empfänger dazu... (aber das kommt später) Eine Atmega 8 habe ich schon gefunden...aber die geht leider nemer nachdem ich 3 verschiedene richtige Parallelinterfaces ausprobiert habe. Programmierkenntnisse habe ich aber bis jetz nur mittelmäßig in Basic... Aber ich werde C noch lernen... Und Zeit habe ich auch...
Datum:
Angehängte Dateien:@Hans (Gast) eigentlich ist das gar nicht so schwer. Wobei, elektronische Grundkenntnisse sollte man sich schon aneignen, bevor ein GLCD sich in Rauch auflöst. Ich hab da mal in Exel was zusammengestellt. Ich hab bewusst eine Universalplatine und ein 20pol Kontaktbuchse mit eingearbeitet. Wenn Du jetzt ein Elektricker um ein Stück Telefonleitung bittest, hast Du Drähte, die sich in die Kontakte einstecken lassen, bzw. zur Verdrahtung der Universalplatine. Für den Anschluss des Displays würde ich eine Adapterplatine bauen. Ich hab da von Pollin ein Flexprint-Stecker mit angegeben, wäre zwar 22 polig, aber das Displaylöten würde umgangen. Beitrag "Re: Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus" Inverter gibt es viele, ich hab mal ein für 5V Eingangsspannung herausgesucht. Beitrag "Re: Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus" K1 wäre bei C. zu haben, ist aber für das angegebene Pollin-GLCD nicht notwendig. Ineressant wäre auch mal die Preiszusammenstellung. Wigbert
Datum:
Ok...vielen, vielen Dank für die Mühe... einen Inverter, muss ich mal schauen, soweit ich weis hab ich sogar noch einen passenden... die Universalplatine spar ich...ich hab noch "Lochplatinen", oder wie die heißen...und normale auch noch...das ätzen wird auch kein Problem... Der Draht da hab ich sogut wie unentlich... und Wiederstände hab ich ne ganzes Sortiment... "elektronische Grundkenntnisse", jab die hab ich so im etwa... So dann werd ich heut mal die Bestellung abschicken. Und nochmals Danke für die viele Mühe...(-: Hans
Datum:
Hi, ich sehe gerade R3 muss die R. BestellNr. 1/4W 47K heissen, und der AQY212 würde 1x benötigt. Die Bauteilbezeichnungen beziehen sich auf Beitrag "Re: Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus" achja, Cx wäre der Abblockkondensator Pin 7 gegen GND von IC1 (nicht im Schaltbild) Wigbert
Datum:
Ähm Entschuldigun wenn ich mich jetzt voll blöd anstell...aber welchen Zweck hat der "ATMEGA 168-20DIP"...ich dachte der LcD wird so wie im ersten Schaltplan mit einer Atmega8-16PI angetrieben... und nochmals Danke für die Mühe Hans
Datum:
@Hans (Gast) wenn alle Funktionen genutzt werden sollen (Grossdarstellung, Invers) dann wird der ATMEGA168 benötigt. Bei reiner Textausgabe wie Beitrag "Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus" reicht natürlich der ATMEGA8 Da die Pinbelegung beider IC's gleich ist, kann man willkürlich die Controller einsetzten, wie benötigt, in dem Schaltungsaufbau. OK der ATMEGA 8-16 DIP íst etwas günstiger. Wigbert
Datum:
Oh...ok...hat sich erledigt...hab nachgeschaut...gut, dann nehm ich den. Wenn da ein unterschied des Interfaces der Atmega8 und ATMEGA 168 ist, würdest du mir die Bauteile für ein Parallelinterface des ATMEGA 168 sagen. Vielen Dank... Hans
Datum:
Hallo! Ich habe mich jetzt gegen die RFM12 Module entschieden und werde stattdessen ein BTM-222 nehmen. So spare ich mir die PC Seite, da hab ich schon BT ;). Habe das Modul eben bestellt, näachste Woche bestelle ich dann alles andere und dann wird gebastelt. Ich werde dann hier gerichten! MfG
Datum:
Heyy...die bestellung ist schon hier, ging sehr schnell....nur ich wundere mich über die größe des Displays...ist nicht größer als ein Gameboy Bildschirm...auf den fotos hier sieht er 4 mal so groß aus...ich hab auch "LCD-Modul SHARP LM038QB1R10" genommen...war billiger...(-: Nun will ich wissen ob alle Module so groß sind... unter pollin stehen keine Maße dabei....Bitte um Antwort Hans
Datum:
Ok...mein Bitte kam weng zu schnell, ich habe bemerkt das alle Module gleich groß sind. Zumindest habe ich "LCD-Modul SHARP LM038QB1R10" genommen, da mein LCD keine Leuchtstoffröhre hat, frage ich mich ob der Inverter noch notwendig ist (der ist doch für das gedacht, oder?) Danke
Datum:
Das LM038QB1R10 ist das kleinste Display, da dies für einen PDA gedacht war. Daher ist auch der Anschluss mit dem feinen Stecker etwas kompliziert. Die anderen beiden Displays sind von den Abmessungen her gleich und deutlich größer als das LM038QB1R10. Da das LM038QB1R10 keine Hintergrundbeleuchtung hat, benötigt es auch keinen CCFL Inverter. Dafür benötigt es mehrere Betriebsspannung die man noch erzeugen muss.
Datum:
Vielen Dank... wüsstest du auch wie viel Volt und er insgesamt verbraucht, da ich bin dem Datenblatt nicht ganz zurecht komme... Danke
Datum:
Das LM038QB1R10 braucht etwa +/-16V, die anderen etwa -20V.
Datum:
Vielen Dank... Ich hatte vor das ganze System in ein Handgehäuse zu bauen und des mit ner Batterie zu betreiben...aber 16V, da brauch ich ja ne besondere...
Datum:
Dafür ist das Display ideal: Das Display ist auf Low Power optimiert, es verbraucht nur rund 30-50mA bei 3,3V inkl Spannungswandler auf die +/- 16V.
Datum:
Ok...wüsstest du wo ich noch ein Verbindungskabel herbekomm und einen Adaptor auf ein größeres Raster der Anschlüsse...in dem Datenblatt erwähnen sie so was auch...aber auf der Homepage des Produktes is alles English...(kein Bock zum Übersetzen)? Danke
Datum:
@Hans (Gast)
>...(kein Bock zum Übersetzen)?
falsche Antwort.
Vielleicht denkst Du mal kurz darüber nach, wieviel Zeit wir hier
Kostenlos!! verbringen um zu helfen.
Das DBL von Pollin?
Wigbert
Datum:
@Hans (Gast) hmm, auf den ersten Blick müsste der FH12A-24S-0.5SH(55) von Digikey das sein. Flachband dazu auch bei Digikey. Und wenn du Dich beeilst, könnte ich die Dinger notfalls mitbestellen. Adapter bei LCD-Design, sind aber sauteuer. Ich denke äzen ist kein Problem? Wigbert
Datum:
Joa...danke... wenn ich das Flachbandkabel und Adaptor mitbestellen würde...mit wie viel Geld müsste ich zirca rechnen (nur grob geschätzt) Danke
Datum:
Aber nein...ich bin noch minderjährig und kann ohne die erlaubnis meiner Eltern so was noch nich machen...also werde ich einen anderen Weg suchen und finden...Danke abe für das Angebot...(-:
Datum:
So, ich bin mitlerweile "dank" Kurzarbeit auch mal wieder zum Basteln gekommen. Die PIC Variante des Grafik-fähigen LCD's ist am werden. Hängen tuts zur Zeit z.B. noch an der zweiten Schriftart. Einbauen wollte ich die 12x16 von Benedikts Font-Lib. Ich schreibe die Daten von links nach rechts, also ist LSB die gespiegelte Schrift und ich brauche MSB first. Eine passende LIB ist ja drin nur leider ist die hor. MSB Variante 2 unbrauchbar. Die Buchstaben sind völlig gequetscht. Bei der 10x16 Variante ist eigentlich nicht mehr von Schrift die Rede. Ausserdem ist es etwas hinderlich, daß bei der MSB Variante das Low-Byte zuerst kommt. Ist aber nicht weiter tragisch, bedeutet nur einen Prozessorzyklus mehr. Daher meine Bitte an Benedikt: Kannst du die Font-lib bitte noch mal überprüfen. Wäre echt super nett. Gruß Meik
Datum:
Angehängte Dateien:Teste mal bitte diese Version. Alle Versionen sollten jetzt little Endian sein. Man kann durch einen Cast auf short die Daten also problemlos als 16bit Array verarbeiten (zumindest habe ich die so getestet). Ich hatte bei den _2 Versionen teilweise Variablen vertauscht, so dass ein Byte aus der _1 Version gespeichert wurde, daher fehlte in der Mitte ein Stück. Jetzt sollte aber alles korrigiert sein, zumindest die 3 Schriftarten die ich mir zum Testen rausgepickt hatte, passen. Sowas passiert halt, wenn man nicht alle Versionen testet (was bei 200 Dateien aber auch nur schwer möglich ist)...
Datum:
Angehängte Dateien:Hut ab Benedikt. Schneller wie die Feuerwehr sagt man da glaube ich. Font(12x16) läuft einwandfrei. Vielen Dank dafür. Das du die nicht alle einzeln testen kannst leuchtet ein. Interessant nur, daß das bis jetzt sonst noch keiner gemerkt hat. Gibt es die Schrift auch in noch größer? 24x32 z.B. Mit einem geeigneten Programm(Win) würde ich die auch selbst machen. Gruß, Dank und schönes Wochenende. Meik
Datum:
Angehängte Dateien:Meik Dittmann wrote: > Interessant nur, daß das bis jetzt > sonst noch keiner gemerkt hat. Vermutlich weil der Fehler nur in den eher selten gebrauchten Schriftarten auftrat: Er trat nur in Schriftarten breiter als 8 Pixel auf, und nur in denen mit _2. > Gibt es die Schrift auch in noch größer? 24x32 z.B. 24x32 habe ich leider nicht. Ich habe aber mal ein paar andere große hinzugefügt. Wirklich getestet habe ich aber nur die größte (32x53). Das Problem an denen ist die Größe: Die 32x53 hat 53kByte. Selbst wenn man nur die ersten 128 ASCII Zeichen verwendet, sind es immer noch 26kByte.
Datum:
Die Schriften dürften wohl meinen PIC sprengen(16K). Ich sehe aber gerade, daß du noch einige "Zwischengrößen" mit eingezaubert hast. Ein dickes LOB dafür erst mal von mir. Werde wahrscheinlich die 16x26 nehmen. Vorher gehts aber erst noch an das letzte verbliebene Problem: Den FiFo. Ohne den gehts leider nur noch sehr schleppend mit der Übertragungsrate von RS232 her. 4-5 Byte am Stück bei 19200 krieg ich mit dem PIC-eigenen 2-Byte FiFo noch hin aber dann kommt nur noch Müll auf dem LCD an. PS: Die Daten sind aber m.E nicht little sonder big Endian angeordnet. Ich muß für den linken Teil des Buchstabens, also High-Byte bei MSB-first, erst das zweite Byte auslesen, dann das erste. Oder habe ich da was falsch verstanden. Sind aber eigentlich nur Haarspaltereien, das Display läuft ja so. Meik
Datum:
Vielen Dank an Benedikt und all die anderen Spezialisten. Würde gerne den 12x16 Zeichensatz mit Atmega8 im Textmodus einsetzen. Kenne mich aber mit Assembler nicht aus. Auf die letzten 32 Zeichen des Zeichensatzes könnte ich gerne verzichten. Dann müsste der Atmega8 eigentlich reichen. Wer kann mir helfen, das zu realisieren ? Achim
Datum:
12x16 ist etwas ungünstig, denn eine Anforderung an die Schriftart ist, dass die alle Buchstaben nebeneinander genau 256 Bytes benötigen. Die Breite der Zeichen auf die nächste 8er Grenze aufgerundet mal die Anzahl an Zeichen muss <= 256 sein. Die 12x16 Schriftart müsste man daher als 16x16 speichern und hätte somit Platz für 128 Zeichen.
Datum:
Hallo! Bauteile sind gestern gekomen, Bluetooth geht schonmal, jetzt warte ich noch auf Pollin -.- Aber eine Frage hätte ich da noch. Ich hab ja den AQV257 weggelassen, wo genau kommt dann VLCD hin? MfG
Datum:
Maximilian Keller (langerhans) na, an der neg. Kontrastspannung(Drahtbücke anstatt Relais o.ä.) Wird halt beim Pollin-Display nicht abgeschaltet Wigbert
Datum:
Ja, sorry, das hab ich dann auch gelesen... Jetzt hab ich das mal aufgebaut und genau mit dieser Spannung ein Problem. Ich messe statt etwa -20V -42V! Ist das normal? Kann ich mir nicht vorstellen. Weiterhin habe ich etwa 47V zwischen Pin15 und GND am AVR(Sockel). Worauf kann das hindeuten? Ich hab die Schaltung jetzt schon mehrfach kontrolliert... Immerhin leuchtet meine Hintergrundbeleuchtung schonmal :P MfG
Datum:
>Ich messe statt etwa -20V -42V! Ist das normal? Kann ich mir nicht >vorstellen. Weiterhin habe ich etwa 47V zwischen Pin15 und GND am >AVR(Sockel). Worauf kann das hindeuten? Ich hab die Schaltung jetzt >schon mehrfach kontrolliert das der AVR kein PWM erzeugt(nicht geproggt)? keine Last dran? Männer: Poti Zwischen 5V und GND und den Schleifer an R1 ran. AVR natürlich raus. Statt Display ein Widerstand 2,5K o.ä. ran. Wenn das läuft dann weiter... Wigbert
Datum:
Angehängte Dateien:Hallo! Danke für den Tipp mit der Last, mit dem Widerstand und dem Poti hatte ich die richtige SPannung! Das LCD funktioniert jetzt genau wie es soll! Was mich nur stört ist dass der Spannungswandler rauscht?! Aber das ist nur sehr leise und ich freu mich viel mehr, dass ich jetzt damit spielen kann! :P MfG
Datum:
@Maximilian Keller (langerhans) > mit dem Widerstand und dem Poti hatte >ich die richtige SPannung! oder Du überträgst als erstes die PWM-Einstellung >Was mich nur stört ist dass der Spannungswandler rauscht?! meinst Du den Inverter, dann mess mal den Strom und stell die Spannung nach Beitrag "Re: Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus" ein. Oder meinst Du der MC... rauscht mit seiner Spule Wigbert
Datum:
Maximilian Keller wrote:
> Was mich nur stört ist dass der Spannungswandler rauscht?!
Das ist mehr oder weniger normal beim 34063.
Nur hörbar sollte es nicht sein. Entweder ein Keramikkondensator oder
die Spule arbeitet als Lautsprecher.
Datum:
Also der Inverter ist es nicht, es rauscht auch noch hörbar wenn der nicht am Strom hängt. Ich kann leider nicht genau lokalisieren welches bautel genau rauscht, aber es kommt von der Gruppe um den MC34063. Grob geschätzt würde ich auf die Spule tippen. Kann ich was dagegen machen, oder bin ich da machtlos? MfG
Datum:
>Kann ich was dagegen machen, oder bin ich da >machtlos? gutes Gehör, Spass beiseite, welche Spule ist denn drauf, für das Display reicht doch eine Spule in Widerstandform, SMCC-Spulen von Reichelt. Wigbert
Datum:
Spule ist die aus der Bauteileliste von hier. Müsste die Reichelt 09P 470µ sein.
Datum:
@Maximilian Keller (langerhans) OK funktioniert auch damit, kannst Du bei Deiner gelieferten Version die Windungen sehen, also kein Schrümfschlauch drüber?. Ich hatte die damals des Preises und der Funktionssicherheit gewählt. Wobei, ich hab die Spule auch probiert, konnte aber kein Pfeifen wahrnehmen. Der MC... schwingt mit ca.30 Khz? Ich würde mal doch eine SMCC probeweise einbauen. Wigbert
Datum:
@Wigbert Picht-dl1atw (wigbert) Ich kan die Windungen sehen. Das Gehäuse ist so leicht milchig. Ich hab leider keine andere Spule, aber welche wäre das denn beispielsweise, dann merk ich mir das mal für die nächste bestellung! Die Frequenz von dem MC kann ich nicht messen, dafür bin ich nicht ausgestattet... Das Rauschen klingt etwa wie wenn ich mit dem Radio kein empfang habe. Kann das auch von aussen irgendwas stüren? MfG
Datum:
Angehängte Dateien:@Maximilian Keller (langerhans)
>Ich kan die Windungen sehen.
ich war da auch etwas bei der Lieferung enttäuscht
schalte mal alles ab, und lass nur den Inverter mit Lastwiderstand an.
Erstmal alle anderen Quellen ausschliessen.
Ich hab eine SMCC 470µH am laufen, hat aber nach Benedikts Hinweis:
Ohmscher Widerstand < 5 Ohm , ein zu grossen Gleichstromwiderstand.
Geht aber.
Die Reichelt SMCC 220µH (3,3 Ohm) wäre wohl richtig.
Pollin hat 470µH (eckig)
oder ein Ringkern (T50) aus einen Schaltnetzteil.
Geht alles.
Wigbert
Datum:
@Wigbert Picht-dl1atw (wigbert) Also ich musste bei dem Test eben feststelle, dass auch der Inverter rauscht, aber nicht so laut wie die Gruppe um den MC... Ich glaub da ist irgendwas, was gewaltig stört... Ich schätze ich muss mir dann wohl ne andere Spule besorgen. Inverter hab ich übrigens von Pollin. Der mit der RGB Röhre. Der läuft wie die gesamte Schaltung mit 4,5V da mein Netzteil leider keine 5V liefern kann. Könnte es evtl. auch daran liegen, ansonsten hätt ich hier nämlich noch ein paar 5V Spannungsregler rumliegen. MfG P.S.: Die Befehle muss ich alle als Hex-Wert senden. Allerdigs geh bei mir nur einstellige Werte. Ich progge mit Delphi und da geht z.b.: $8 für Backspace, aber nicht $12 für "Display löschen". Jemand ein Tipp hier? MfG
Datum:
Ich dachte der Pollin-Inverter sei für 12V gedacht. Bei 4,5V tut er also auch?
Datum:
@A. K. (prx) Jap, der Inverter bringt das Display schon mit 4,5V voll zum leuchten.
Datum:
@Maximilian Keller (langerhans) also, ich übertrage vom Teminalprogramm auch Hex, funktioniert tadellos. Das mit Delphi ist allerdings interessant Empfänger mal abgeschaltet usw. das da nichts rein kommt? wie schon oben erwähnt, mit dem Inverter(wenn es der 5V Typ ist) nicht das GLCD überlasten. Wigbert
Datum:
Wigbert Picht-dl1atw wrote: > Pollin hat 470µH (eckig) Könntest du von der mal den Widerstand messen? Die Angabe 70mA bei Pollin klingt nach sehr hochohmig. Mit der 47µH Variante von dieser Spule habe ich auch gute Erfahrungen gemacht. Maximilian Keller wrote: > Also ich musste bei dem Test eben feststelle, dass auch der Inverter > rauscht, aber nicht so laut wie die Gruppe um den MC... > Ich glaub da ist irgendwas, was gewaltig stört... Ja, da scheint irgendwas nicht zu passen. Der CCFL Inverter erzeugt normalerweise einen sauberen Sinus. Spendier der Schaltung mal noch ein paar Elkos mit um die 100µF (je einer an den AVR, den CCFL Inverter und an den 34063).
Datum:
@Wigbert Picht-dl1atw (wigbert)
Naja, es geht auch soweit, ich kann Zeichen senden, nur die
Steuerbefehle wollen nicht sobald sie 2stellig werden. Komischerweise
gehen 2stellige Zahlen. Diese erzeugen dann den entsprechenden
Buchstaben (z.B. $64 für "d").
Zum Inverter, der ist für 12V ausgelegt, der Strom kommt vom gelben
Kabel am Molex Stecker. Pollin Bestellnummer ist: 700 638. Also
überlastet dürfte da nichts sein.
>Empfänger mal abgeschaltet usw. das da nichts rein kommt?
Wie meinst du das? Welchen Empfänger?
@Benedikt K. (benedikt)
Ok, das werd ich mal versuchen, aber nichtmehr heute, das Lötzeug steht
schonwieder unterm Bett ;)
MfG
Datum:
@Benedikt K. (benedikt)
hab noch mal nachgemessen, 3,6 Ohm. Geht auch anstandslos.
Ich hatte auch Drosselspulen in Stabform mitbestellt,
420µH/0,15A die haben 18 Ohm und gehen nicht.
@Maximilian Keller (langerhans)
>Welchen Empfänger?
empfängst Du nicht Deine Zeichen über eine Funkstrecke?
Wenn der Inverter für 12V ausgelegt ist, fährst Du ihn unterhalb seines
Arbeispunktes, ich glaub mich an eine Einstellung
ca 7,5V zu erinnern, um an die Leistung der Displays ranzukommen.
Noch mal: Strom messen
Wigbert
Datum:
Wigbert Picht-dl1atw wrote: > hab noch mal nachgemessen, 3,6 Ohm. Geht auch anstandslos. Danke, das ist besser als erwartet (bei der Größe hätten mich auch 10 Ohm nicht gewundert). Die Spule dürfte aus der SD75 Reihe stammen: http://www.neosid.de/DWL/Teil2/Seiten/208-213.pdf > Ich hatte auch Drosselspulen in Stabform mitbestellt, > 420µH/0,15A die haben 18 Ohm und gehen nicht. Ja, die gehen schlecht, da dies Entstörspulen mit hohen Verlusten sind.
Datum:
@Wigbert Picht-dl1atw (wigbert) Sorry, aber wahrscheinlich häng ich schon zu lang davor, aber ich schaffs nichtmal mit dem Multimeter den Strom zu messen. Ich glaub ich teste das morgen nochmal in Ruhe... Und ja ich empfange über Funk (Bluetooth) aber den Empfänger hatte ich schon ab... MfG
Datum:
@ Benedikt K. (benedikt) danke fürs DBL, ich hatte einfach mal welche mitbestellt, bei den Preis. Ich hab dann mal probehalber auf ein T50 Ringkern ca 5m 0,3 Cul draufgewickelt(Spule mit Anzapfung) geht auch gut, wobei ich mit den Ringkernrechner die Ind. nicht errechnen konnte. Und zu Fuss war mir das zu aufwendig. Aber auch die Orginalwicklung(ca.0,5 Cul) auf den Ringkern geht, wobei der R da um die 1 Ohm ist. Wigbert
Datum:
Hallo! @Wigbert Picht-dl1atw (wigbert) Kannst du mir vielleicht eine deiner geeigneten Spulen zukommen lassen? Natürlich gegen Kostenerstattung! @all Hat jemand ein Programm für den PC um das display anzusteuern? LCDSmartie kennt keine 40*20 Displays und LCDHype scheitert schon am öffnen vom COM Port... Ich kann zwar in Delphi auf dem Display rumschreiben, aber die Befhele mit Parameter wollen nicht gehn. @Benedikt K. (benedikt) Wie genau läuft die Auswertung von den Befehlen mit Parametern, was erwartet der AVR auf dem UART bspw. für die grosse Schrift? Mit dem Tool 232Analyzer geht das wenn ich auf Dec umstelle und dann 9,48, sende. Ich weiss nur nicht wie das dann über die snittstelle geht. Befehle ohne Parameter laufen einwandfrei, auch bei mir im Programm. MfG
Datum:
Maximilian Keller wrote: > LCDSmartie kennt keine 40*20 Displays und LCDHype scheitert schon am > öffnen vom COM Port... LCDHype sollte funktionieren, wenn man "Serial Crystal Fontz Driver" auswählt. Damit habe ich das Bild ganz oben gemacht. > Wie genau läuft die Auswertung von den Befehlen mit Parametern, was > erwartet der AVR auf dem UART bspw. für die grosse Schrift? Wenn ein Zeichen empfangen wird, dann wird geprüft, ob es ein Zeichen (Wert >=32) oder ein Befehl (<32) ist. Daten werden direkt in den Speicher geschrieben, Befehle werden ausgeführt bzw. es werden erstmal die Parameter des Befehls empfangen. > Mit dem Tool > 232Analyzer geht das wenn ich auf Dec umstelle und dann 9,48, sende. Ich > weiss nur nicht wie das dann über die snittstelle geht. Befehle ohne > Parameter laufen einwandfrei, auch bei mir im Programm. Ganz genauso. Es werden einfach die Bytes 9, 48 usw. gesendet.
Datum:
@Benedikt K. (benedikt) Danke, das war der entscheidende Hinweis, ich kann jetzt ohne Probleme alle Bafehle in meinem Programm verwenden! ich hatte immer gedacht ich muss ein Trennzeichen einfügen, aber jetzt reihe ich den Befehl und die Parameter zu einem String zusammen und es geht! Jetzt muss ich mir nur ein paar sinnvolle Anwendungen einfallen lassen :P Was mir noch zu dem rauschen eingefallen ist: Als ich zum testen den Poti angeschlossen habe wie wieter oben erwähnt, hatte ich das rauschen auch erst, als ich den Poti dann gedreht habe war es am anderen Ende komplett weg! MfG
Datum:
@Maximilian Keller (langerhans) Schick mir eine E-Mail, das Rauschen muss auch noch weggehen. Wigbert
Datum:
@Wigbert Picht-dl1atw (wigbert) Immer wenn ich versuche dir ne Nachricht zu schreiben kommt: >An internal Error has occured. If this problem persists, please contact the >administrator of this website (webmaster@embdev.com). >Ein interner Fehler ist aufgetreten. Falls dieses Problem erneut auftritt, wende >dich bitte an den Administrator (webmaster@mikrocontroller.net).
Datum:
@Maximilian Keller (langerhans) seltsamerweise bekomme ich aber eine Nachricht von dem Thread Elektro-Picht(ät)gmx.de Wigbert
Datum:
@Wigbert Picht-dl1atw (wigbert) Die Spulen sind heute eingetroffen. Die SMCC hat den Geräuschpegel auf ein Minimum gesenkt, die von Pollin hat nichts verändert. Ich denke jetzt noch ein paar Elkos und das Rauschen sollte ganz weg sein. Vielen Dank nochmal. Dann kann ich mich ja jetzt weiter mit dem Programmieren beschäftigen^^ MfG
Datum:
Hi, ich bin dabei mich an einem Nachbau zu versuchen. Ich habe mir das Display NAN YA LTBE9S159J1K (normaly white) bei Pollin schicken lassen. Ich habe es gerade ausgepackt und da sind an einer Stelle schon schwarze Punkte zu sehen. Ist das Dispay bistabil? Ich habe die Elektronik noch nicht fertig, also kann ich es leider noch nicht richtig testen. Gibt es eine Möglichkeit zu testen ob die Fehler verschwinden, wenn ich einfach die Versorgungsspannung anlege? Oder ist das eher ein Fall für retour? Gruß
Datum:
Alkor wrote: > Ich habe es gerade ausgepackt und da sind an einer Stelle schon schwarze > Punkte zu sehen. Klingt nach einem Transportschaden aufgrund mangelnder Verpackung. Mach mal ein Foto, dann kann ich eindeutig sagen ob das wirklich zutrifft. > Ist das Dispay bistabil? Nein. Das einzige was passieren kann ist, dass ein paar Pixel bzw. komplette Zeilen/Spalten beim Abziehend er Schutzfolie aufgrund elektrostatischer Ladungen kurzzeitig angehen. Nach ein paar Sekunden sollten diese aber wieder verschwinden.
Datum:
Angehängte Dateien:Danke für die schnelle Antwort! Ich denke damit ist das ein Fall für eine weiter Retoursendung. Bis dahin hab ich dann hoffentlich auch den Controller fertig. Bild ist im Anhang.(hoffentlich vom Format nicht zu groß) schönes We noch Alkor
Datum:
Ja, das sind eindeutig die Fehler, die durch Druckstellen entstehen. Ich weiß zwar noch nicht genau wie das ensteht (also was der Druck bewirkt), aber den Fehler hatte ich bei genau diesem Display auch schon -> Umtauschen.
Datum:
>Ich denke damit ist das ein Fall für eine weiter Retoursendung.
Das könnte das Display sein, welches ich zurückgeschickt hatte.
Hier lag der Stecker der Hintergrundbeleuchtung nicht neben, sondern
unterm Display. Eindeutig Transportschaden.
Man muss übrigens mächtig aufs Display draufhauen, um solche
Druckstellen hinzubekommen ;-)
Gruß
Axelr.
Datum:
Hallo zusammen, ich habe die Schaltung nach dem 1. Post von Benedikt aufgebaut. Leider seh ich nur breite gelbe und schwarze horizontale Balken auf dem Display :-( Versorgungsspannung +5V und Masse hab ich geprüft. Ist an allen Punkte da. An der 1N4148 Diode kann ich -17,6V messen, welche dann an das Display gehen. Hintergrundbeleuchtung tut auch. Am Pin 15 seh ich einen schönen Rechteck auf dem Oszi. Was mich sehr irritiert, sind die gelben Balken!? Wenn ich hier alles richtig gelesen habe, dann deutet das darauf hin, dass das Disply viel zu viel Kontrast hat? Wenn ja, wie kann ich den Kontrast reduzieren? Hat irgend jemand noch einen Tipp, was ich prüfen könnte? Ich hab bei Pollin 2 Displays bestellt. Habe mit beiden den selben Effekt. Als Spule hab ich die 470uH von Pollin. Sollte lt. obigen kommentaren gehen. Es wäre echt super klasse, wenn jemand noch einen Tipp hätte. Ich such seit 2 Tagen meinen Fehler und finde ihn nicht :-( Weitere Infos über meinen Aufbau kann ich gerne liefern. Kein Problem! Danke und Grüße an alle, Bernd
Datum:
Prüf mal ob das LP Signal von Pin 16 auch wirklich am Display an dem richtigen Pin ankommt.
Datum:
Hallo Benedikt, danke für die schnelle Antwort. Ich kann erst heute Abend wieder messen. Bin bei der Arbeit. Nur um sicher zu sein: Ich hab aus deinem 1. Post die HEX Datei genommen und so auf den Atmega8 programiert. Fuses stehen auf external crystal high frequency. CKOPT ist gesetzt. Geproggt mit STK500 und dem Atmel Studio. RS232 ist nicht angeschlossen. Dein Prog. gibt selbstendig Demotext aus? So korrekt verstanden? Danke nochmal fürs schnelle Reagieren und Grüße, Bernd
Datum:
Ja, dann sollte die Schaltung laufen und einen Text ausgeben.
Datum:
Kurzschluss nach GND oder ähnliches ist ausgeschlossen? Direkt an Pin 16 ist auch nichts zu messen? Es müssten Peaks mit mit etwa 10-15kHz und wenigen 100ns Breite sein.
Datum:
Hi, kein Kurzschluß zu Masse. LOAD ist definitiv 0V. Disp ON/OFF ist permanent +5V Bei FRAME seh ich schön die Peak's. Auch bei M (AC) seh ich einen Rechteck. langsam wirds suspekt. Hab's eben mit einem 2. ATmega8 versucht. Selbiges Verhalten. Kann man einen Atmega so proggen, dass PB5 und PB2 nichtmehr tun? Vielen dank jedenfalls für deine Mühen. Vielleicht fällt dir ja noch was ein? Grüße, Bernd
Datum:
Es geht ! :-) Hab's nochmal mit einem Atmega168 (andere HEX-Datei!) versucht und mit dem gings dann auf Anhieb. Dann nochmal den 2. Atmega8 reingetan und dann hat der auch funktioniert. War wohl nicht richtig im Sockel drinn :~) Der 1. Atmega8 ist aber definitiv defekt so wie es scheint. Vielen Dank Benedikt für deine Hilfe und dein Super Projekt hier! Grüße an alle, Bernd
Datum:
Hallo Benedikt, ich hab nun einen Atmega8 in der Schaltung. Leider funktioniert der Befehl für "Gehe zu Zeilen Anfang" nicht. Meinst du es wäre dir möglich, bei Gelegenheit nochmal eine HEX zu machen, bei der "gehe zu Zeilen Anfang" funktioniert? Wäre super klasse! Beste Grüße, Bernd
Datum:
Angehängte Dateien:Stimmt, das hatte ich garnicht gemerkt, dass ich diese Version noch nicht gepostet habe. Hier ist die korrigierte Version.
Datum:
Mal ne Frage zu dem LTBE9T372G1K das ist ja 5€ günstiger als das NAN YA LTBE9S159J1K... hat das irgeneinen Grund? Oder ist nur die "Farbe" der Unterschied? (Seit ich bei Reichelt festellen mußte das Schwarzes Verlängerungskabel teuerer als weißes ist wunder mich nix mehr). Gibt es eigentlich auch passende Steckverbinder für das Display oder habt ihr alle da Kabel angelötet?
Datum:
Läubi .. schrieb: > Mal ne Frage zu dem LTBE9T372G1K das ist ja 5€ günstiger als das NAN YA > LTBE9S159J1K... hat das irgeneinen Grund? > Gibt es eigentlich auch passende Steckverbinder für das Display oder > habt ihr alle da Kabel angelötet? Ich habe direkt ein Flachbandkabel angelötet. 120386 von Pollin sollte passen, hat zwar 14 statt 12 Pins, aber egal.
Datum:
@Läubi .. (laeubi) Na ja, Moderatoren löten( sie haben das auch drauf) ich bin für Stecker. Ich hab in Dip, SMD , liegend u. stehend schon Stecker für die Displays bestellt. Was hättest Du denn gerne, bevor ich Best.Nr. rauskrame. Wigbert
Datum:
Ist eigentlich egal, ich hab auch nix gegen SMD ;) Nur Flachbandkabel löten ist nicht so mein Spezialgebiet :P Der Preisunterschied begründet sich also nur in der Farbe?
Datum:
Hallo, wofür ist eigentlich der M (AC-Drive) Pin (PB4)? Ich habe eines der Nan Ya Displays von Pollin und in dem Datenblatt, das hier für die gepostet wurde, taucht unter "8.2 Timing Chart of Input Signals" auch ein M auf, aber es gibt doch gar keinen Anschluss, der so heißt. Gruß erna
Datum:
LCDs müssen mit einer Wechselspannung angesteuert werden. Dazu wird periodisch (z.B. alle 16 Zeilen, oder auch einmal pro Bild) die Spannung invertiert. Das Umschalten geschieht über Analogschalter auf dem LCD. Das M Signal schaltet also zwischen positiver und negativer Spannung am LCD um. Je nach LCDs kann es günstiger sein nach wenigen oder nach vielen Zeilen umzuschalten. Daher verbauen einige Hersteller einen Zähler auf das LCD und erzeugen das Signal selbst.
Datum:
@Läubi .. (laeubi) also für mich waren die Stecker von Farnell am einfachsten zu beschaffen http://de.farnell.com/molex/52271-1279/socket-ffc-... bei Digikey sicher günstiger, wie http://search.digikey.com/scripts/DkSearch/dksus.d... o.ä Wigbert
Datum:
Angehängte Dateien:Hat schon jemand angefangen eine Library zu schreiben, die die Befehle einbettet? Text Scrolling mit internem Buffer von 800 Zeichen ist bei mir fertig, ausgegeben über die Uart werden nur die geänderten Zeilen, er dudelt seit gestern Zahlen und deren Wurzeln durch. Aber für eine mixed Mode Darstellung, also Grafik und Textfelder fehlen mir noch die Ideen. Koordinatensysteme sind ganz heftig, vor allem wegen der Skalierung (an Auto-Skalierung darf ich gar nicht erst denken) und dem relativen Bezug zu 0,0.
Datum:
Hallo, ich bekomme meinen Nachbau einfach nicht ans laufen. Habe schon mehrfach alles kontrolliert und nachgemessen. Auf dem Display läuft entweder ein weißer unregelmäßiger horizontaler Balken rüber oder ca. zwei Zeilen breite unleserliche Textzeile. Sieht nach falscher Synchronisation aus. Wie sollen die Ansteuersignale aussehen? Gruß Gerhard
Datum:
LP und FLM sollten kurze Impulse mit etwa 17kHz bzw. 70Hz sein. PCLK sollten Blocks von 80 Takten sein, dann eine etwa gleich große Pause, dann wieder die Takte usw.
Datum:
Hallo Benedikt, vielen Dank für Deine schnelle Antwort. Deine Angaben für LP und FLM stimmen mit meinen Messungen überein. Nur bei PCLK ist das Block Pausen Verhältnis nicht gleich groß (1,2 zu 0,9). Kann es daran liegen? Außerdem habe ich Takt an den PIN's 27 und 28 vom ATMEGA8 (von diesem). Oder hat das nichts zusagen?
Datum:
Passt alles. Dann tippe ich auf einen Verdrahtungsfehler zum LCD, vor allem LP scheint nicht am LCD an der richtigen Stelle anzukommen.
Datum:
Schande oh Schande! Hatte vergessen den Blockkondensator vollkommen anzuschließen. Jetzt klappt alles. Er zeigt auf dem Display den kompletten Zeichensatz an. Vielen Dank für die Unterstützung!
Datum:
Hallo zusammen, wäre jemand so nett und könnte die Initialisierung für das WINSTAR 320240 posten? Danke!
Datum:
Angehängte Dateien:Bei mir gehts langsam weiter. Die Routinen zur Bildschirmverwaltung sind doch aufwendiger als ich dachte. Benediktfs Funktionen sind jetzt alle gekapselt, Koordinatensystem nach unten links verlegt worden. Endloser Textscroll nach oben durch funzt auch schon. Benutze derzeit 2 x 800 Zeichen Puffer (Heimspiel Arm7: 54kb Ram intern), die verglichen werden, es werden nur die Zeichen übertragen die sich auch verändert haben. Leider ist da kein Mixed Mode Text/Grafik mehr möglich und die sprintf Befehle sind nicht mehr so einfach wie printf, wo alles hintereinander geschrieben wird. Man muss vorher wissen welche Position angefahren werden soll. Wenn ich wüsste, wie ich den String Terminator 0 bei sprintf abschalten könnte wäre es einfacher, den muss ich später filtern. Dafür aber minimalster Datenverkehr zum Display. Meinem Rechenknecht zufolge haben wir morgen den längsten Tag des Jahres, fast keine Veränderungen mehr die letzten Tage. Frage mich nur, wie man die 512kb Flash vollkriegen soll, sind nicht mal 12kb und schon 6000 Zeilen, Flieskomma, sin, cos, tan, alles mit eingelinkt. ARM rulez :-) Gewöhnungsbedürftig:
sprintf(GD_CharBuf[6],"Sonnen AG : %02u.%02u Uhr",Sonne_AUF_UNTER.SAG_Std,Sonne_AUF_UNTER.SAG_Min); sprintf(GD_CharBuf[14],"SU -2 -1 (0) +1 +2 +2"); line = 0; for (i=-2;i<4;i++) { CalcSonnenAufgang(&Zeit, &Sonne_AUF_UNTER,(int32_t)tage+i); sprintf(&GD_CharBuf[15][line+3],"%02u.%02u",Sonne_AUF_UNTER.SUG_Std,Sonne_AUF_UNTER.SUG_Min); line += 6; } |
Datum:
Hallo Benedigt, ich bin über einen Modellbauportal auf diesen Displaycontroller mit Mega 8 oder Mega 168 gestoßen. 40x20 Zeichen wäre ideal um Parameter vom Mikrocopter / Quadrokopter auslesen zu können ohne einen Notebook mitschleppen zu müssen. Gibt es eine Variante wo man mit 4 Dipschaltern verschiedene Baudraten einstellen kann, so von 2400 bis 57600, (bei 1,8,2,N) als fertiges Hexfile. Wäre sehr hilfrein und universeller verwendbar Hardware würde ich schon hinbekommen, Software reichts gerade mal zum flashen und ein bisserl Basic mfg helle
Datum:
Bisher existiert dieses Feature noch nicht, aber ich kann es bei Gelegenheit mal einbauen.
Datum:
Hallo Benedigt,
ich habe heute Abend angefangen dein Schaltung nachzubauen
dabei sind ein paar Fragen/Unklarkeiten aufgetaucht bezüglich der
Belegung des LCD-Display NAN YA von Pollin
Ich hab mal lt Datenblatt die Anschlüße rausgsucht, unklar ist:
Mega8 Pin 18, Funktion M AC dazu gibts am LCD keine Funktion ? was
tun?
Atmega LCD Pin
23 D0 7
24 D1 8
25 D2 9
26 D3 10
14 PCLK 3
16 LP 2
17 FLM 1
18 M AC ???diesen Anschluß gibts nicht am LCD!,Funktion???
19 OnOFF 11
Versorgung
5V VDD 4
GND VSS 5
VLCD 6 -24V
lt Plan:
R6 1 Ohm ??kann das sein 1 Ohm??
12V Inverter von Conrad ist ok, geht bis 5V runter, werde mit 7-8V
fahren
Könntest Du bitte die offenen Punkte kurz abklären
Ansosnten habe ich das Dink fertig verdrahtet und möchte es morgen Abend
testen.
Danke für deine Hilfe
mfg
helle
Datum:
Helmut Renz schrieb: > Ich hab mal lt Datenblatt die Anschlüße rausgsucht, unklar ist: > Mega8 Pin 18, Funktion M AC dazu gibts am LCD keine Funktion ? was > tun? Offen lassen. Dieses LCD erzeugt sich dieses Signal intern selbst. > lt Plan: > R6 1 Ohm ??kann das sein 1 Ohm?? Ja, der dient zur Strommessung.
Datum:
Hallo, Hoppal das geht aber schnell, dachte nicht dass du online bist. Ich kam gerade aus dem Keller und hab das Dink zusammengelötet, Lochraster natürlich, und dachte schreib mal auf was dir aufgefallen ist. Danke für die Mühe!! Ach Ja , kann ich zum Test den Spannungswandler für -22V auch ohne Last betreiben oder muss ich einen Lastwiderstand ranhängen ? Am Display-Datenblatt sind noch 2 Widerstände R1, R2, ein PotiVr und ein PNP Transitor angegeben, denke ist für den Kontrast, gibt dazu Werte? BC327 sollte gehen? Eigentlich hab ich 2 Display bei Pollin bestellt, aber eins ist defekt. Wurde alles in einer großen Schachtel ohne Polstermateial geliefert, Glas gebrochen, was auch sonst! Bekomm aber Ersatz Das andere scheint ok zu sein, drum will ich ja schnell testen falls es doch einen Macken hat. mfg helle
Datum:
Helmut Renz schrieb: > kann ich zum Test den Spannungswandler für -22V auch ohne Last betreiben Ja. > Am Display-Datenblatt sind noch 2 Widerstände R1, R2, ein PotiVr und > ein PNP Transitor angegeben, denke ist für den Kontrast, gibt dazu > Werte? > BC327 sollte gehen? Dieser Teil ist überflüssig, denn die Einstellung ist per Software, oder über R5 möglich, den man teilweise durch ein Poti ersetzen kann (z.B. 33k Widerstand + 22k Poti).
Datum:
Angehängte Dateien:Hier die neue Version für den mega8: Die Baudrate ist nun zwischen 1200 und 57600Baud über 3 Pins einstellbar. Die Baudrate wird nur beim Einschalten eingelesen und beim Begrüßungsbild angezeigt. Zusätzlich ist nun auch die Invertierung einzelner Zeilen möglich.
Datum:
Hallo, danke für die schnelle Info und die Baudrate-Änderungen Werde es heute Abend hoffentlich gleich zum laufen bringen Danke nochmals! mfg helle
Datum:
Angehängte Dateien:Hallo Benedigt, Display läuft auf Anhieb, Danke! Vorab allerdings alles getestet, anderes Kabel angelötet umverdrahtet auf den Kontrast-Trimmer R5 = 33k + 22kPoti, Baudrate Dipschalter ergänzt und etwas Umfeld dazu, Spannungsregler, LED, Verpolungsschutzdiode (Schutz vor mir selber!) Tip: Test des Spannungswandlers ohne gesteckten Prozessor machen, dabei aber Pin 15 des Atmega 8 -Sockels auf Masse legen , auf keine Fall offen lassen, sonst wird der MC34063 sehr heiß und erzeugt -48 bis -63V!, Dann VLC mit dem Kontrast-Trimmer auf ca -16 bis -18V einstellen Da ich den AQV 257 nicht auftreiben konnte verwende ich einen pingleichen LH 1540, Als fertigen Inverter den von Conrad Fahre jetzt mit ca 10-12V und ca 300mA (spätere Versorgung aus 3-Zellen Lipoly Flugakku des Tricopters mit 3 Draht Verbindung 11,1V Masse und RX ) 5V Spannungsregler muß ich nochmal tauschen gegen einen Lowdrop-Typen Auf dem Bild ist alles zu sehen, kompletter Aufbau ist freiverdrahtet auf Lochraster Jetzt noch alles in ein Gehäuse einbauen und ab damit an den Tricopter zur Software-Parametrierung auf dem Flugplatz Das nächte Display werde ich mit einem fertigen 4-Draht DC-DC Spannungswandler 5V auf 24V aufbauen mfg helle
Datum:
@ Benedikt Befehl 9;12 bzw 9;48 schaltet die Schriftarten um. Nun wollte ich zwei Zeilen Gross, eine Zeile klein (invers)ganz unten darstellen. Scheint nicht zu gehen? Wigbert
Datum:
Bisher ist das Umschalten nur global möglich. Rein theoretisch sollte es auch zeilenweise gehen, ich glaube da gab es aber irgendeine Schwierigkeit, daher habe ich dies noch nicht gemacht. Das muss ich mir bei Gelegenheit nochmal anschauen.
Datum:
Ist nicht ganz so wichtig, die Hintergrundbeleuchtung, gibt es da Erfahrungswerte der Lebensdauer, sonst würde ich die CCFL-Röhre Nachts abschalten. Das ganze sollte u.a.als DCF-Uhr 24 Stunden am Tag laufen. Wigbert
Datum:
Typisch sind rund 20kh. Das Datenblatt sagt mindestens 10kh. Das wären etwa 1-2 Jahre. Wenn man die Beleuchtung etwas dimmt, dann sollten aber auch 50kh drin sein.
Datum:
Mal ne Frage zum Röhre Dimmen: Ich hab für mein Display den Inverter von Pollin (den blauen, bei dem die CCFL dabei ist). Kann ich da einfach die Spannung am eingang verringern? Also z.B. 7V statt 12V? Kann ich auch mit PWM rangehn, oder mag das der Inverter nicht? Gruß, Sebastian
Datum:
Eine niedrigere Betriebsspannung für den Inverter ist kein Problem, die Ausgangsspannung und somit der Strom reduzieren sich dann entsprechend. Per PWM kann man diese nicht direkt ansteuern, dazu müsste man die Schaltung etwas verändern: Es gibt 1-2 Widerstände die Basisstrom für die Transistoren im Inverter liefern. Diese müssen dauerhaft versorgt werden. In der Zuleitung von der Betriebsspannung zum Trafo im Inverter liegt eine Spule. Hier könnte man einen Transistor und eine Diode nach Minus davor einbauen. Dadurch hätte man einen Abwärtswandler gebaut.
Datum:
Ok, dankeschön. Dann werd ich das sein lassen mit der PWM. Sebastian
Datum:
Angehängte Dateien:Hallo zusammen und vielen Dank an Benedikt und das Forum für dieses tolle Projekt!!! Ich habe die Mega8-Software "as is" auf ein Pollin-Touch-Display Best: 120 483 Optrex F-51154NF-FW-AA losgelassen und es hat auf Anhieb funktioniert! Da die Auflösung bei meinem Display nicht 320x240 sondern wahrscheinlich 480x200 ist, bleibt rechts ein Teil frei. Unten kommt es auch nicht ganz korrekt aus, ich habe 16,5 Zeilen an kleinem Text. Nach V24-Texteingabe bis zum Screen-Wrap sieht es so aus, als wenn unten 3,5 Zeilen fehlen. Aber das macht nix. Es funktioniert! Optimaler Kontrast stellt sich hier bei etwa -25V ein. Das angehängte Foto ist ziemlich miserabel. Das Display arbeitet aber völlig flimmerfrei und trotz Freiverdrahtung ohne Pixelfehler. Ich mach noch ein zusätzliches Post für das Pinout. Danke, Stefan
Datum:
Angehängte Dateien:Hier noch das Pinout. Ich habe einfach ein 2x6 Pinhead auf die Test-Pads aufgelötet. Wenn man das leicht versetzt macht, klappt das ohne zus. Verrenkungen und den vorhandenen exotischen Connector kann man ausser Acht lassen. Noch ein wichtiger Hinweis: Das vermeintliche M-Signal(TP12) hatte ich vorsichtshalber mit 1k angeschlossen. Aber am Display ändert sich auch nach Sekunden nichts, wenn ich M trenne. Von dem Display kommt dann von TP12 ein schwaches sinusoides Signal mit 200kHz. Also gut möglich, dass das Display "M" selbst herstellt und TP12 nicht beschaltet werden braucht. Nochmals Danke, Stefan
Datum:
Stefan K. schrieb: > Das vermeintliche M-Signal(TP12) hatte ich vorsichtshalber mit 1k > angeschlossen. Aber am Display ändert sich auch nach Sekunden nichts, > wenn ich M trenne. Von dem Display kommt dann von TP12 ein schwaches > sinusoides Signal mit 200kHz. Also gut möglich, dass das Display > "M" selbst herstellt und TP12 nicht beschaltet werden braucht. Ja, das Display scheint den selbst zu erzeugen. Unterhalb von IC10 gibt es einen Jumper bei dem man zwischen AB und B wählen kann. AB ist ein intern erzeugtes M Signal, B das externe M Signal. Das was du als Sinus siehst, ist eine kapazitive Kopplung zu dem daneben liegenden Pixel Schiebetakt. Der M Eingang ist also hochohmig. Keine Ahnung wieso der auch mit IC10 verbunden ist. Die ganzen Jumper daneben dienen zur Einstellung des Teilerverhältnisses. IC10 ist also irgendeine eine Form von einem einstellbaren Teiler. Standardmäßig toggelt der Ausgang alle 13 Zeilen. Dazu wird das LP Signal in IC10 eingespeist (über die Via neben dem AB/B Jumper). Wenn ich mich nicht verrechnet habe, dann möchte das Display mit 201 Zeilen angesteuert werden, da es bei 200 Zeilen zu einem DC Anteil kommt. Für die Grafikversion werde ich demnächst vermutlich meine Software anpassen, für die Textversion reicht der Speicher nicht aus.
Datum:
Danke für die Hinweise. Speziell auf den leicht ungesunden DC-Offset! Die Grafikversion werde ich demnächst nachbauen. Die LowCost-Lösung war zunächst erstmal zum Schauen, ob das Display überhaupt irgendwie zum Leben erweckt werden kann. Dazu brauchte ich nur kurz ein paar Kabel stöpseln. Gruß Stefan
Datum:
Hallo, nachdem ich in dem inzwischen schon sehr umfangreichen Thread dazu nicht die passenden Antworten gefunden habe, hier meine ( vielleicht ) blöden Fragen: Wie wird bei der Eingabe eigentlich zwischen Texteingaben und Steuerbefehlen unterschieden? Werden eingegebene Texte mit Erkennung von <CR> und <LF> angezeigt? Erfolgt nach vollgeschriebener Seite einen Zeilen-Scrolling? Über eine Antwort würde ich mich freuen. Klaus
Datum:
Klaus H. schrieb: > Wie wird bei der Eingabe eigentlich zwischen Texteingaben und > Steuerbefehlen unterschieden? Die nicht darstellbaren Zeichen (also alles kleiner ASCII Code 32) sind Befehle, alles darüber Text. > Werden eingegebene Texte mit Erkennung von <CR> und <LF> angezeigt? Im Prinzip ja. CR und LF bewirken die entsprechenden Funktionen, also eine Zeile runter und wieder an den Beginn der Zeile. > Erfolgt nach vollgeschriebener Seite einen Zeilen-Scrolling? Nein. Danach springt der Cursor wieder an den Anfang des Displays.
Datum:
Hallo Benedikt und vielen Dank für die schnellen Antworten. > Die nicht darstellbaren Zeichen (also alles kleiner ASCII Code 32) sind Befehle, alles darüber Text. Na ja, darauf hätte ich eigentlich auch selbst kommen können! >> Erfolgt nach vollgeschriebener Seite einen Zeilen-Scrolling? > Nein. Danach springt der Cursor wieder an den Anfang des Displays. .... schade eigentlich, denn das würde mir sehr helfen Zum "Monitoren" ständig ankommender Textstrings könnte das m.E. sehr hilfreich sein. Zur Zeit dürfte es so sein, dass alle bei Beschreibung der fast vollen Seite ankommenden Zeichen ggf. ganz schnell wieder verschwunden sind. Ist das Hinzufügen einer solchen Funktion ( ohne größere Klimmzüge machen zu müssen ) denkbar? Gruß Klaus
Datum:
Prinzipiell ist es machbar. Dazu muss der gesamte RAM Bereich quasi um eine Zeile (=40Byte) versetzt kopiert/verschoben werden. Das ist zwar eine Menge Kopierarbeit, aber da dies nur recht selten vorkommt sollte es keine großen Probleme machen.
Datum:
Hallo, ich habe noch ein Frage zum Thema "Inverter": Für das Nan Ya-Display LTBE9_159_K von Pollin benötige ich ein geeignetes Exemplar. Auf den Seiten dieser Firma findet man aber derzeit nur noch einen ( in Verbindung mit einer Neonlampe gelieferten ) Invertertyp. Er hat die Best.Nr. 531321 und den Aufdruck: TDK XAD052S EA02052X. Leider habe zu diesem Typ im Internet überhaupt nichts gefunden. Vielleicht handelt es sich um eine für einen bestimmten Anwender hergestellte Ausführung. Auffällig ist dabei übrigens auch noch, dass die Anordnung der Bauteile etwas von dem auf der Pollin-Seite gezeigten Invertertyp abweicht. Kann Jemand dazu etwas anmerken? Klaus
Datum:
Hallo Klaus, ich habe mein Display auch mit genau diesem Inverter (Best. 531321) angetrieben. Die stammen wohl aus einem Flachbett-Scanner. Ich halte es für völlig unproblematisch, diesen Inverter mit dem Nan Ya zu betreiben. Bei der letzten Bestellung habe ich mir auch ein Nan Ya LTBE9T372G1K mitbestellt. Ein kleiner Test jetzt gerade zeigt, dass es funktioniert ( und dass ich ein Display mit einer Druckmacke bekommen habe :( ). Gruß Stefan
Datum:
Hallo Stefan, vielem Dank für Deine Stellungnahme. Inzwischen habe ich die Inverter auch schon erhalten und erfolgreich getestet. Nachdem ich vorher noch nie etwas mit solchen Dingern zu tun hatte, war ich hinsichtlich ihrer Verwendbarkeit nur anfangs etwas verunsichert. Gruß Klaus
Datum:
Kleiner Einkaufstipp zum Thema Inverter: http://shop.wiltec.info/product_info.php/info/p231... habe ich 2 Stück im Einsatz, allerdings an Displays 640 x 200 (ca. 20 cm lange Röhre). Sind IMO sehr preiswert, auch der Versand. Reinhard
Datum:
Angehängte Dateien:Hallo, inzwischen ist meine Displayeinheit aufgebaut. Nachdem die ( m.e. aktuelle ) ATMEGA168-Softwareversion vom 24.2.09 allerdings nicht zum Laufen zu bekommen war ( der Bildschirm wurde nur mit Zufallszeichen vollgeschrieben, aber es erschien kein Startbildschirm ), verwende ich inzwischen erfolgreich die ATMEGA8-Version vom 8.7.09. Wie aus dem beigefügten Schaltbild zu ersehen ist, habe ich die Erzeugung der Vee-Spannung etwas gegenüber dem Original geändert und verwende hier einen für wenige Euros bei z.B. Reichelt erhältlichen DC/DC-Wandler. Meine Anwendungen schliessen auch das Anzeigen von GPS-Navigationsdaten ein. Ein vorgeschalteter zweiter ATMEGA8 stellt vielleicht ingenieurmäßig gesehen nicht unbedingt die eleganteste Lösung dar, war aber ( in BASCOM-AVR ) immerhin ganz schnell programmlich umsetzbar. Was ich noch suche, ist der ASCII-Wert, der falls vorhanden, für das Zeichen "°" im Display-Font benutzt wird. Klaus
Datum:
Angehängte Dateien:Hier der verwendete Zeichensatz. Das ° Zeichen hat den ASCII Code 248.
Datum:
Hallo Benedikt, dafür vielen Dank. Hast Du auch eine Idee zu meinen Problemen mit der ATMEGA168-Softwareversion? Klaus
Datum:
Erscheinen da die Buchstaben/Zeichen vollständig (wenn auch in sinnloser Reihenfolge)? Reagiert die Software auf die UART Signale? Da du vermutlich die selbe Hardware für beide Versionen verwendet hast, kann man einen Hardwarefehler ausschließen. Da die Software bei Wigbert funktioniert einen Softwarefehler wohl auch. Von daher habe ich eigentlich keine wirkliche Idee an was es liegen könnte.
Datum:
Hi, ich nehme nur die m168- Version,und die lief manchmal Tagelang. Was kann man da falsch machen? Fusebits? Wigbert
Datum:
@Benedikt > Erscheinen da die Buchstaben/Zeichen vollständig (wenn auch in sinnloser Reihenfolge)? Ja > Reagiert die Software auf die UART Signale? Ja, aber dabei wird der Bildschirm immer nur mit einem bestimmten Zeichen ( wenn ich mich nicht täusche war es: 0xE0 ) vollgeschrieben. Änderungen der Baudrateneinstellung wirkten sich dabei nicht aus. > Da du vermutlich die selbe Hardware für beide Versionen verwendet hast, kann man einen Hardwarefehler ausschließen. Da die Software bei Wigbert funktioniert einen Softwarefehler wohl auch. Von daher habe ich eigentlich keine wirkliche Idee an was es liegen könnte. Da die Großanzeige für die GPS-Anzeige ohnehin nicht infrage kommt, besteht damit zur Zeit bei mir kein akutes Problem, aber dennoch würde es interessant sein, den Grund für das Nicht-Funktionieren herauszufinden. @ Wigbert > ich nehme nur die m168- Version,und die lief manchmal Tagelang. Was kann man da falsch machen? Wenn ich das wüsste! Mit anderer Software funzt der gleiche Atmega-Chip auch problemlos. > Fusebits? Daran hatte ich auch schon gedacht. Bei der ATMEGA8-Version klappt es aber bereits, wenn ich allein nur die Fuse für den externen Quarz setzte. Im Text schreibt Benedikt zwar noch, daß auch die Fuse "CKOPT" gesetzt werden muss, nur taucht dieser Begriff im Eingabemenü der von mir benutzen Brennsoftware ( myAVR Prog-Tool ) nicht auf. Ich gehe aber davon aus, daß ich diese automatisch mit setze, wenn ich bei mir Quarzfrequenzen > 8MHz auswähle. PS: Ein anderes Exemplar des ATMEGA168 verhielt sich übrigens identisch. Klaus
Datum:
CKOPT existiert nur bei den älteren AVRs, also bei mega8,16,32 usw. sowie 8515 und 8535. Bei den neueren (megax8 usw.) hat der Full Swing Crystal Oscillator eine eigene Kombination bei den CKSEL Fusebits.
Datum:
Hallo, das Problem mit dem ATMEGA168 werde ich in den nächsten Tagen noch einmal angehen. Inzwischen programmiere ich auch mit "AvrProg" von ATMEL. Das Handling der Fuses funzt dort sicherer als bei dem von mir vorher benutztem Tool. Jetzt habe ich aber noch eine andere Frage, die mir vielleicht speziell der Wigbert beantworten kann: Wie kann ich Befehle via BASCOM an den Decoder senden, wenn diese noch zusätzliche Parameter enthalten müssen? Einfache Befehle, wie z.B. "Print chr(12)" klappen wunderbar, aber in Falle zusätzlicher X,Y-Parameter suche ich noch das richtige Eingabeformat. Mit Formaten wie "Print chr(17), 15,20" , "Print chr(17, 15,20)" oder Ähnlichem geht es jedenfalls nicht. Klaus
Datum:
@Klaus H. (gpsklaus) sowas in der Art? Printbin 17 ; 2 ; 2 'Zeile Vorwahl Nr. Print = Mid(text , 27 , 6) 'Vorwahl Nr. Printbin 17 ; 1 ; 3 'Zeile Tele.Nr. Print = Mid(text , 33 , 7) 'Tele.Nr. (Auszug aus Telefonbuch) Wigbert
Datum:
@Wigbert > sowas in der Art? > Printbin 17 ; 2 ; 2 'Zeile Vorwahl Nr. > Print = Mid(text , 27 , 6) 'Vorwahl Nr. Danke, "PRINTBIN" hat mir sehr weitergeholfen. Inzwischen habe ich noch gelernt, dass es z.B. auch so gehen würde: Print chr(17) ; chr(2) ; chr(2) Klaus
Datum:
Hallo, ich habe so meine Probleme mit dem Nachbau dieses Projekts. Folgendes Problem kriege ich nicht in den Griff: Ich kann den Begrüßungstext von Benedikt nur sehen, wenn ich von der Seite auf das Display schaue. Wenn man direkt drauf schaut, ist alles Schwarz. Ich mess zwischen GND und Vee -19V. Wenn ich die Spannung erhöhe auf -23V sehen ich auch von der Seite nichts mehr vom Text. Hat jemand eine Idee oder einen Tipp wo ich suchen sollte ? Vielen Dank!
Datum:
Wie schaut deine Beleuchtung aus?
Datum:
Das Backlight habe ich bisher noch nicht angeschlossen. Ich habe das Nanya Display von Pollin mit dem "weißen" Hintergrund für 14,95. Kann man ohne das Backlight nichts erkennen ?
Datum:
Bei dem "normally white" musst du auch ohne Backlight was sehen. Wenn dein Display normalerweise schwarz ist brauchst du unbedingt das Hintergrundlicht. Ansonsten halt nochmal alle Lötstellen prüfen. Vor allem die direkt am Display. Oder mal ne etwas geringere Spannung probieren. Sebastian
Datum:
Ist das Display im eingeschalteten Zustand komplett dunkel? Falls ja, ist die Spannung zu hoch.
Datum:
Naja wenn ich von oben draufschaue ist es komplett dunkel, von der Seite her sehe ich den Text. Mit angeschlossenem Backlight sieht es nicht viel besser aus. Ich messe -19V das ist doch eher zu wenig als zu viel ?? Naja ich werde das mal mit weniger Spannung testen, wird aber etwas dauern. Danke für die Hilfe bis dahin.
Datum:
> Ich messe -19V das ist doch eher zu wenig als zu viel ??
Naja ich werde das mal mit weniger Spannung testen, wird aber etwas
dauern.
Nach meinen Erkenntnissen ist der Spannungsbereich, in dem das Display
gut ablesbar ist, schon verhältnismäßig eng. Hast Du die Spannung einmal
im Bereich von etwa -15 bis -20V variiert? Dabei muss sich auf jeden
Fall etwas im Kontrast ändern.
Klaus
Datum:
sry aber ich bin anfänger in beeriech mc`s... könnte mir villeicht jemand den schaltplan genauer erklären und eine bauteiliste anfertigen??? wie steuert man den controller an wenn er fertig ist??? würde gern mit mega8 arbeiten danke NONEVER
Datum:
Schau dir doch mal das AVR-Tutorial an und arbeite es am besten auch mit Material durch. Dann dürften sich die meisten Fragen erledigt haben. Wenn es dann noch konkrete Probleme gibt helfen wir auch gerne an dieser stelle weiter. Gruß, Sebastian
Datum:
die grundlagen kenne ich ich... also Standartbeschaltung eines avr 8 bit microcontrollers usw.. tut mir leid , dass ich gestern einen so kurzen und abgehackten Post gemacht habe war aber sehr in eile.. was ich nicht verstehe ist der untere Teil des Schaltplans mit den 2. Ic... ich denke mal das dieser für die Kontrastspannung ca. 23 volt sein wird oder? Meine 2. Wirkliche FRage ist wie dieser displaycontroller nun angesteuert wird, wenn er fertig ist?? so wie es aussieht warscheinlich über die serielle Schnittstelle das heißt den txd ausgang vom DIsplay Controller an txd vom mega8 zum ansteuern oder? und dann mit dem Print befehl. wäre nett wenn mir jemand nochmal sagen könnte warum im schaltplan deutlich mehr bauteile zu sehen sind als auf der Platine im 2 post gru? NoNever
Datum:
Der MC34063 ist -wie du vermutest- für die Kontrastspannung. Warum der schaltplan so voll und die Platine so lehr ausschaut weiß ich auch nicht, aber ich nehme mal an, Benedikt hat SMDs auf der Rückseite verwendet. Angesteuert wird über UART, du schließt also TxD von deinem µC an RxD vom Displaycontroller an.
Datum:
Hallo Benedikt und alle anderen, ich habe grad dein Projekt nachgebaut. Leider kann ich nur die letzten 32 Zeichen des Zeichensatzes(siehe ein paar Beiträge weiter oben) ausgeben. Woran könnte das liegen? Habe schon andere Baudraten ausprobiert, leider ohne Erfolg! Das Startbild wird richtig dargestellt und die Baudrate wird auch laut Jumper richtig erkannt. Auch die Befehle(wie z.B. LCD löschen) funktionieren nicht. Wenn ich dem ATMEGA in der Schleife alle 256 ASCII-Zeichen schicke dann werden nur die letzten 32 Zeichen des Zeichensatzes dargestellt. Bitte um Hilfe! Grüße, Nico
Datum:
Hallo zusammen, habe ein ähnliches Problem. NAN YA LTBE9T372G1K (noch ohne Hintergrundbeleuchtung). Display wird nach dem Einschalten komplett hell. Text nicht zu sehen. Frage: Ist es normal, daß die 20V nur im Leerlauf (ohne Display ) vorhanden sind ? D.h. Wenn ich das Display anstecke, brechen die 20V bei meiner Schaltung auf 10,5V zusammen. Stromaufnahme auf Leitung VLCD 30mA. Mein Display ist normal Dunkel. Nach dem Einschalten wird es komplett hell. Manchmal sind streifen zu sehen. Bedeutet das, ich muss die Hintergrundbeleuchtung trotzdem verwenden ? Das erscheint mir fraglich, da ich sehe wie das Display zwischen Schwarz und weiss umschaltet und Pixel sichtbar sind. Hat mir Pollin evtl das "normal hell" Display geschickt ? Danke für Eure Hilfe. Dies ist wirklich ein Super Projekt Matthias
Datum:
Nico R. schrieb: > Leider kann ich nur die letzten 32 Zeichen des Zeichensatzes(siehe ein > paar Beiträge weiter oben) ausgeben. Passen die Zeichen auch exakt zu dem Wert der gesendet wird? Ich würde auf einen falschen Quarz oder falsche Fusebits tippen. Matthias Reichelt schrieb: > Frage: Ist es normal, daß die 20V nur im Leerlauf (ohne Display ) > vorhanden sind ? D.h. Wenn ich das Display anstecke, brechen die 20V bei > meiner Schaltung auf 10,5V zusammen. > Stromaufnahme auf Leitung VLCD 30mA. Nein, da passt etwas nicht. Ich würde auf vertauschte Pins oder ähnliches tippen. > Mein Display ist normal Dunkel. Nach dem Einschalten wird es komplett > hell. Manchmal sind streifen zu sehen. Bedeutet das, ich muss die > Hintergrundbeleuchtung trotzdem verwenden ? Ja. Das Verhalten ist nämlich nicht normal. > Hat mir Pollin evtl das "normal hell" Display geschickt ? So sieht das normally black aus, das braucht immer ein Backlight: Beitrag "Re: Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus" Das normally white dagegen ist auch ohne lesbar: Beitrag "Re: Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus"
Datum:
Danke für die schnelle Antwort.
Leider kein Erfolg. Vertikale Streifen sind zu sehen ( schwach ) aber
die Spannung bricht noch immer ein. Ich sehe nicht ein warum da 30mA auf
VLCD fließen sollen. Wahrscheinlich Display Defekt.
Alles durchgemessen.
Angeschlossen habe ich nach einem vorherigen Betrag:
Atmega LCD Pin
23 D0 7
24 D1 8
25 D2 9
26 D3 10
14 PCLK 3
16 LP 2
17 FLM 1
18 M AC ???diesen Anschluß gibts nicht am LCD!,Funktion???
19 OnOFF 11
Versorgung
5V VDD 4
GND VSS 5
VLCD 6 -24V
Trotzdem Danke.
Bestelle ein neues "normally white" display. Dann brauche ich auch nicht
die hochspannung.
Grüße aus Wien
Matthias
Datum:
-24V ist etwas viel. Das Datenblatt sagt absolut max. -27V gegen Vcc (also +5V) gemessen. Du bist bei -29V. Typisch sind etwa -18V.
Datum:
Hallo, weiß jemand welches der momentan bei Pollin angebotenen Displays "brauchbar" ist? D.h. kein Plastik-Flachbandkabel das einen exotischen Stecker braucht, und möglichst ein Display das auch ohne Hintergrundbeleuchtung ablesbar ist. Oder benötigen die alle ein CCFL? Bei der Beschreibung im Katalog wird das leider nicht immer deutlich. Vielen Dank Randy
Datum:
OK, jetzt bin ich mal nicht so faul: http://www.pollin.de/shop/dt/MTg2OTc4OTk-/Baueleme... Bei dem steht explizit dabei dass es reflexiv ist. Weiß jemand was es für ein Anschlusskabel hat? http://www.pollin.de/shop/dt/Mzk0OTc4OTk-/Baueleme... Für das Teil braucht man keinen CCFL-Inverter. Allerdings braucht es 32V Betriebsspannung. Das Kabel schaut nach so einem fürchterlichen unlötbaren Plastik-Falchband aus. Weiß das jemand genauer? http://www.pollin.de/shop/dt/ODI1OTc4OTk-/Baueleme... Das Teil ist wahrscheinlich auch reflexiv ablesbar? Randy
Datum:
Randy schrieb: > Bei dem steht explizit dabei dass es reflexiv ist. Weiß jemand was es > für ein Anschlusskabel hat? Folienkabel mit sehr engem pitch.
Datum:
Nett sind die EL-Displays, von denen es vor ein paar Monaten ein paar gab. Nicht eben stromsparend, aber dafür mit 16er Pfostenstecker.
Datum:
Randy schrieb: > http://www.pollin.de/shop/dt/MTg2OTc4OTk-/Baueleme... > Bei dem steht explizit dabei dass es reflexiv ist. Weiß jemand was es > für ein Anschlusskabel hat? Das ist hier zu sehen: Beitrag "Re: Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus" Anschluss auf dem Display ist ein Nullkraftstecker mit 0,5mm Pitch und 24 Pins. Dieses Display benötigt eine positive und negative Betriebsspannung sowie Teilspannung dazwischen. Man benötigt also noch 2 Doppel OPs + ein paar Widerstände. > http://www.pollin.de/shop/dt/Mzk0OTc4OTk-/Baueleme... > Für das Teil braucht man keinen CCFL-Inverter. Allerdings braucht es 32V > Betriebsspannung. Das Kabel schaut nach so einem fürchterlichen > unlötbaren Plastik-Falchband aus. Weiß das jemand genauer? 0,5mm Pitch. Die Spannungsangaben würde ich erstmal nicht beachten, da es nirgends ein Datenblatt gibt frage ich mich wo Pollin die Zahlen her hat. Ich würde eher auf +25V tippen, da es dem untersten Display in dieser Liste sehr ähnlich ist (vermutlich gleiche Zeilen/Spaltentreiber bei denen absolut max 30V angegeben ist). > http://www.pollin.de/shop/dt/ODI1OTc4OTk-/Baueleme... > Das Teil ist wahrscheinlich auch reflexiv ablesbar? Ja, mit Beleuchtung sieht es so aus, ohne wie das Sharp Display: Beitrag "Re: Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus" Anschluss über 1mm Folienkabel, kann durch 1,27mm Flachbandkabel ersetzt werden. Und um die Liste komplett zu machen: http://www.pollin.de/shop/dt/MjU0OTc4OTk-/Baueleme... Dieses Display hat auch ein Folienkabel mit 0,5mm Pitch und 24 Pins. Optisch ist es mit dem NAN YA vergleichbar. Auch dieses Display benötigt wie das Sharp Display einen zusätzlichen OP, der die positive Betriebsspannung in mehrere Teilspannungen zerlegt.
Datum:
>> http://www.pollin.de/shop/dt/Mzk0OTc4OTk-/Baueleme... >> Das Kabel schaut nach so einem fürchterlichen >> unlötbaren Plastik-Falchband aus. Weiß das jemand genauer? >0,5mm Pitch. Kannst du sagen ob man an die Lötstellen de Kabels auf der Platine ran kommt? Dann hätte man trotzdem eine Chanse doch ein Falchbandkabel anzulöten. Ansonsten nehm ich das NAN YA, die CCFL Beleuchtung ist ja optional. Randy
Datum:
Ich habe das Display noch nicht, da Pollin wohl ein paar Lieferprobleme damit hatte. Den Fotos auf ebay nach sollte das möglich sein (auf der Rückseite ist eine Platine die frei zugänglich ist). Es gibt auch einen schon etwas älteren Eintrag hier im Forum dazu, in dem auch ein Datenblatt angehängt ist, allerdings passt dieses nicht zu dem Foto auf der ebay Seite. Von daher existiert bisher also noch keine Anschlussbelegung zu dem Display.
Datum:
Randy schrieb: > Kannst du sagen ob man an die Lötstellen de Kabels auf der Platine ran > kommt? Ich habe das bei solche einem Dings mal probiert. Die Folienbuchse von der Platine abgelötet um an die Pads mit Lackdraht ran zu kommen. Läuft etwas nach dem "Schnecke an der Mauer" Prinzip, weil man bei jeder Zinnbrücke mühsam angelötete Drähte wieder abmachen darf und nicht immer klar ist, ob man insgesamt an der Mauer eher hochkommt oder eher runterrutscht. Im Grunde müsste man nach dem Lötprinzip der TQFPs vorgehen. Sich irgendwas besorgen oder bauen, dass bereits am einen Ende Drähte in 0,5mm rausführt und diese nach dem SMD-Muster geschlossen anlöten. Einzeln ist das ein ganz übler Fummelkram.
Datum:
In diesem Fall dürfte es etwas einfacher sein, denn dem Foto nach ist das Raster auf dem Display breiter als am anderen Ende des Kabels (ich würde auf etwa 0,8mm tippen).
Datum:
So ich hab die Displays gerade bekommen. Das Display hat 26Pins nicht nur 25 wie Pollin schreibt und dieses Datenblatt http://www.dataimagelcd.com/product/tg/pdf/TG32245... sollte ansich gut passen. Auf dem Aufkleber steht bei mir TG322450 FMCWA-10. EDIT: Gerade mal ein Display aufgehebelt. Hier gibt es keine Möglichkeit ein anderes Kabel anzulöten da der Folienleiter intern als Leiterkarte dient. Falls man nur so wie ich 24 Pol 0.5mm FFC Buchsen hat kann man die letzten beiden Kontakte abzwicken da das nur 2 von 5 Ground Verbinungen wären die dann fehlen. Heute Abend mal etwas Adapter löten damit ich das an mein S1D13700 Testboard hängen kann. Ich hoffe ich kann die Referenzspannungen wie für das kleine Sharpdisplay das es bei Pollin gibt ohne weiteres nutzen. MfG Kai
Datum:
Kai B. schrieb: > Das Display hat 26Pins nicht nur 25 wie Pollin schreibt und dieses > Datenblatt > http://www.dataimagelcd.com/product/tg/pdf/TG32245... sollte > ansich gut passen. Das Datenblatt passt. > EDIT: Gerade mal ein Display aufgehebelt. Hier gibt es keine Möglichkeit > ein anderes Kabel anzulöten da der Folienleiter intern als Leiterkarte > dient. Könntest du mal ein Foto davon machen? > Heute Abend mal etwas Adapter löten damit ich das an mein S1D13700 > Testboard hängen kann. Ich hoffe ich kann die Referenzspannungen wie für > das kleine Sharpdisplay das es bei Pollin gibt ohne weiteres nutzen. Nicht direkt: Das Display mag keine negativen Spannungen. Dafür ist es aber umso einfacher, da man lediglich normale Spannungsteiler benötigt.
Datum:
Hallo Benedikt, hab hier grad keine Kamera zur Verfügung. Aber ich werde heut Abend mal die Displays abfotografieren. Ja stimmt das Sharp will noch ein bisschen was negatives. Und die Spannungsteilerwerte stehen ja im Datenblatt von dem Display. Naja heut Abend mal löten.
Datum:
Hast du auch das H3224V? Von dem würde mich auch mal ein Foto von der Rückseite interessieren, da die Bilder im Netz leider nur eine eine geringe Auflösung haben. Anders als bei dem G3224Z scheint dort nämlich der OP mit Spannungsteiler schon drauf zu sein. Noch ein Tipp zu der Schaltung: Zwischen den OP und die Kondensatoren dahinter 15 Ohm Widerstände schalten, sonst schwingt der OP (das Datenblatt unterschlägt die nämlich in der Beispielschaltung).
Datum:
Ja ich hab mir mal wieder ein ganzes Packet an Displays bestellt unteranderem auch das Wintek. Guter tip das mit den Serienwiderständen an dem OP Ausgängen. Habe aber schon häuftig auf diversen Displays die gleiche Schaltung wobei die das da bisher nie beachtet haben.
Datum:
Ich bin bei den Widerständen drauf reingefallen, der OP wurde bei rund 50mA Stromaufnahme bei 25V auch gut warm... Auf den meisten Displays sind die 15 Ohm Widerstände vorhanden, nur hatte ich da bisher nie drauf geachtet, denn neben den normalen Spannungsteiler Widerständen fallen die nicht auf. Keine Ahnung ob es da einen Unterschied zwischen dem LM324 und den Japan Versionen gibt, einige OPs haben schon Serienwiderstände von wenigen 10 Ohm eingebaut. Der LM anscheinend nicht.
Datum:
Angehängte Dateien:Hi, wer Lust auf Stecker hat, beim TG 322450: Farnell Nr.165-9861 ; 124-5267 die Spannungsversorgung nach DBL mit angegebenen IC , nur die reihen-R sind zusätzlich. Meine WD-H3224 sind auch noch unterwegs. Ist wohl ein weiter Weg zu mir. Wigbert
Datum:
Angehängte Dateien:So hier erst einmal ein paar Fotos ich hab auch mal noch die Rückseite des Optrex Teil im Anhang hier sieht man auch schön die Widerstände zu den Caps für V2-V5. WIe schon gesagt bei den TG322450 ist der Folienleiter direkt mit den Zeilen/Spaltentreiber verbunden. Und dann noch die Rückseite des WD-H3224V. MfG Kai So mal löten gehen
Datum:
Danke für die Bilder. Das H3224V hat also wirklich den OP drauf der die Teilspannungen erzeugt. D.h. die Datenblätter die existieren passen nicht, aber dafür erspart man sich Arbeit bei der Ansteuerung.
Datum:
Angehängte Dateien:So das Wintek geht schonmal. Die VCC mit +32Volt die Pollin angibt ist wie Benedikt schon gesagt hat viel zu hoch. Ich habe bei mir ca. 23 volt benötigt.
Datum:
Der Kontrast sieht gut aus, nur die Farbe ist nicht wirklich schön (mir gefällt sie zumindest nicht). Wenn die LEDs z.B. durch weiße austauschbar sind, dann wäre das Displays perfekt.
Datum:
Ja die Farbe ich etwas unschön zumal meine Kamera die eher rötlich als in echt darstellt. Zudem hab ich dem Backlight nur ca. 100mA spendiert. Die SideLEDs kann man tauschen ist nur die frage wie man da richtig hinkommen soll ohne zumindest den Zeilentreiber und das Touch abzulöten. Die Leiterplatte ist zwar angeklipst nur wirklich rausbekommen tut mans dennoch nicht.
Datum:
Angehängte Dateien:So ich habe es mal gewagt und bei einem Display den Zeilentreiber und das Touchpanel abgelötet. Nur so kommt man an die LEDs ran. Es sind 22 LEDs (3 Gruppen) und jede LED hat ihren eigenen Vorwiderstand (die 2x 11 36Ohm beim Wintek Logo) Morgen tausch ich die mal testweise mit weißen Sideleds idealerweise sollte es sowas sein wie OSRAM LW V18G ich werde es mal mit LW Y1SG probieren.
Datum:
Eine zur Seite strahlende weiße LED kostet bei Reichelt 0,47 Euro... http://www.reichelt.de/?;ARTICLE=65106 Damit wird die Neubestückung der Hintergrundbeleuchtung ähnlich teuer wie das Display...
Datum:
Das sieht doch schonmal gut aus mit den LEDs. Da bleibt also viel Potential zum Basteln. Der Preis von den weißen LEDs war auch das erste über das ich gestolpert bin. Noname LEDs bekommt man für rund 1/3 von den OSRAM LEDs von Reichelt, allerdings ist dann da wieder die Frage nach der Lebensdauer. Ich denke ich werde erstmal grüne LEDs in 0603 oder 0805 einbauen. Die sollten eigentlich auch rein passen. Abgesehen von den Lötpads die bei den Sideleds auch an der Seite hoch gehen, sehe ich da nämlich keinen Unterschied. Häufig sind die LEDs auch nur anders liegend verpackt damit das automatische Bestücken einfacher geht.
Datum:
Die weissen LED's wären mir das Display schon wert. Gibt es die nicht irgendwo mit Mengenrabatt. Wigbert
Datum:
Wir kaufen die für 25-27Cent/100 ein zumindest die LW Y1SG ab ca. 2000 Stück. Bei RS sind die etwas teurer.
Datum:
@Kai B. Dank Dir , 2000 Stück würden es wohl nicht werden. Na ja , mal sehen was wird. Wigbert
Datum:
Kai B. schrieb:
> Morgen tausch ich die mal testweise mit weißen Sideleds
Gibt es schon erste Erfolge?
Datum:
Angehängte Dateien:Ja lötfrisch sozusagen xD Zum einen nochmal 2 Bilder vom großen Optrex das lässt sich echt klasse auch mit invertiertem Bildinhalt nutzen. Ein Bild mit getauschten LEDs leider nur ein Paar LEDs da ich die von ner defekten Platine löten musste und nicht mehr hatte. Und an den 36Ohm Vorwiderständen hab ich so gelassen. Mit weissem Backlight lässt es sich besser ablesen. Muss mir mal die oben erwähnten LW V18G bestellen. Und das TG322450 läuft auch nur der Kontrast funktioniert noch nicht ganz sauber je mehr Pixel umso mehr Grau wir die Spalte. Kann aber auch am nicht ganz optimalen aufbai der V0 bis V4 liegen. Die V0 sind gleichzeitig die Versorgung vom OP im Datenblatt hats ja noch den extra Transistor. Das lässt sich ohne BL allerdings etwas schlecht ablesen finde ich. Kann aber auch an der Dämmerbeleuchtung hier liegen xD. MfG Kai
Datum:
Hallo, ich habe diese hier bestellt. Hoffe das sie passen( für das WD-H3224V) http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=... 100Stk. Mit Preisvorschlag für 12.- zu bekommen. Jetzt müssen nur noch die Displays ankommen. Grüße aus Tirol.
Datum:
Angehängte Dateien:@dejan278 Danke für den Tipp mit den LEDs. Ich habe mir auch eine Packung bestellt, und ich denke es hat sich gelohnt wenn ich die Displays vergleiche: - original, 2,6V 300mA - grün, LG L29K, 3,3V 500mA - weiß, LW V18C, 3,3V 120mA PS: Es scheint auch wieder Displays mit defektem Touchscreen zu geben, ich habe welche erwischt bei denen ein X-Anschschluss hochohmig ist. Funktionsfähig sollten es in X Richtung etwa 400-600 Ohm und in Y Richtung etwa 200-300 Ohm sein.
Datum:
>Ich glaub ich werd mir wohl auch bei Ebay die LEDs kaufen und meine >Displays umbauen ich hab das schon getan. Ein Bild sagt mehr als tausend Worte. @Benedikt K. (benedikt) (Moderator) Ich wollte an das umlöten nicht ran, aber Weiß ist doch besser. Schön, das Du uns Deine Varianten zeist. Wigbert
Datum:
Kai B. schrieb: > Sieht das Grün wirklich so dunkel aus? Etwas heller ist es schon. Ich hatte aber absichtlich die Einstellungen beim Foto fest eingestellt und gleich gelassen, um den Unterschied zu weiß zu zeigen. Das originale orange ist meiner Meinung nach unbrauchbar. Da muss man den Strom bis an die Grenze hochdrehen um überhaupt was erkennen zu können. Grün ist da schon besser, es ist das typische gelb-grün, das man von normalen LCDs kennt (auf dem Foto geht das zu stark in Richtung dunkelgrün). Es ist ausreichend hell, damit man das Display ablesen kann. Aber im Vergleich zu den weißen LEDs ist auch grün Mist. Ich werde daher alle Displays auf weiß umlöten. Das Geld ist es eindeutig wert. Vor allem, da man hier mit sehr viel weniger Strom auskommt.
Datum:
Tip, bei den Fotos ein Teelicht neben dass Display. Dann hat man einen Referenzpunkt ;) Gruß Anselm
Datum:
Hallo, in der letzten Zeit ist hier von zwei neuen Display's die Rede. Dazu habe ich eine Frage kann man das TG322450 auch mit der Schaltung von Benedikt ohne große Änderungen betreiben? Hierzu habe ich leider nichts gefunden. Gruß Dieter
Datum:
Ja. Beides sind normale 320x240 Display mit 4bit. Man muss nur beachten, dass diese eine positive Kontrastspannung von etwa +23V benötigen anstelle der negativen.
Datum:
Hallo zusammen. Ich habe hier 2 Sharp-LM3201921 liegen. Die müssten mit dieser Schaltung ja auch gut gehen. Pinbelegung ist lt. Datenblatt klar. Nur ich bin etwas confused. VEE wird mit +16 bis +22V angegeben, doch eigentlich ist meist von einer negativen Spannung die Rede... Vielleicht kann jmd. hier etwas Licht ins Dunkel bringen oder mich von dem Schlauch auf dem ich stehe schubsen - ich wär euch dankbar :D Danke schon mal und Grüße, Wolfgang Pinbelegung Sharp LM3201921 (LM32019T, LM32019P, LM32019P0) 1 :S 2 :CP1 3 :CP2 4 :NC 5 :DISP OFF 6-9:D0 bis D3 10 :VDD (+5V) 11 :VSS-GND 12 :VEE (1921: 16-22V | 19T,19P,19P0: 17-26V)
Datum:
Benedikt K. schrieb: > Ja. Beides sind normale 320x240 Display mit 4bit. > Man muss nur beachten, dass diese eine positive Kontrastspannung von > etwa +23V benötigen anstelle der negativen. Erzeugst du die dir per Stepup oder führst du die Extern zu? Welche LEDs hast du den benutzt? Gibt es da bei Pollin passende oder benötigt man da was spezielles? Gibt es vielleicht sogar einen passenden Konnektor?
Datum:
Danke Läubi für die Antwort, die zwar wohl nicht mir galt aber sie hat mir vom Schlauch geholfen ;) Positive Kontrastspannung - ok. Ich hätte nur lesen müssen. Wegen deinen Connectoren: Ich habe so Zeug aus div. Unterhaltungselektronik (ich glaub es waren DVD-Player oder so) geschlachtet. Da ist ab und an was passendes dabei.... Lg, Wolfgang Das wegen der Kontrastspannungserzeugung würde mich auch interessieren.
Datum:
Hallo Kai, könntest du mir den ggf. ein paar abtreten oder benötigst du alle 200 Stück? Und wie sind so die Erfahrungen lässt sich das Display danach wieder gut Zusammenbauen oder ist das eher Glücksache?
Datum:
Wie du weiter oben ja siehst muss man das Touch und den Zeilentreiber ablöten. Der folienleiter des Touchpanels geht noch recht einfach mit viel Lötzinn und alles auf einmal warmmachen ab. Beim Zeilentreiber muss man aufpassen und mit vorsicht die Pins einen nach dem anderen warmmachen und nach oben ziehen. Das umbauen und wieder zusammenlöten ist dann nicht das Problem. Ein paar LEDs könnte ich dir gerne zuschicken. Ich kauf halt immer gerne auf Vorrat xD. MfG Kai
Datum:
Jaaaa! Es ist vollbracht. Jetzt nur alles schnell ins Gehäuse bringen damit nichts mehr passieren kann. DANKE FÜR DIE DEINE ARBEIT BENDIKT. Ich habe nun das Wintek in Betrieb (mit positiver Spannung). Ich habe zunächst alles noch einmal neu aufgebaut und wieder der selbe Fehler. Die Spannung ist zusammengebrochen. Ich habe dann zur Kontrolle mal ein zweites Netzteil mit 24V angeschlossen und siehe da, es funktioniert. Daraufhin habe ich mich auf die Erzeugung der +24V mit dem MC34063 konzentriert. Dabei verwendet habe ich ein Dimensionierungstool http://www.nomad.ee/micros/mc34063a/ Allerdings musste ich noch etwas mit den Widerständen spielen. Der 34063 läuft nun ohne externen Transistor und es fließen 3mA bei 21V, die für den Kontrast beim Wintek ideal sind. Zum Schluss nur die Versorgungsspannung auf genau 5V gebracht, da das Display etwas geflimmert hat, als ich ein altes Handy Netzteil mit 5.3V verwendet habe. Das Display ist für meine Heizungssteuerung mit ATMEGA644 vorgesehen und die ideale Lösung dafür. Grüße Matthias
Datum:
Hallo Benedikt: erst einmal Danke für Deine tollen Projekte! Benedikt K. schrieb: > Hier eine neue Version mit einer zusätzlichen großen 32x48 Schriftart. > Optimal um irgendwelche Infos anzuzeigen, die auch aus größerer > Entfernung lesbar sein sollen. Der Zeichensatz ist per Software > umschaltbar. Da der Zeichensatz sehr viel Speicher braucht, wird jetzt > ein mega168 benötigt, dessen Flash zu 98,2% voll ist. Trotzdem wurde der > Zeichensatz auf 64 Zeichen (Großbuchstaben, Zahlen und ein paar oft > benötigte Sonderzeichen wie ,:° usw.) reduziert. Hast Du den auch mit Kleinbuchstaben? Habe eh einen M328 verbaut und benötige nur den großen Zeichensatz da müßte das noch mit reinpassen. Gruß Willi
Datum:
Matthias Reichelt schrieb: > Der 34063 läuft nun ohne externen Transistor und es fließen 3mA bei 21V, > die für den Kontrast beim Wintek ideal sind. magst du ggf. den Schaltplan+Werte veröffentlichen? Würde für den nachbau sicherlich hilfreich sein.
Datum:
Hallo, könnte mal einer bitte ein Video machen und hochladen, wo man sieht wie schnell das Display Arbeitet, wenn z.B. das ganze Display gelöscht wird? Wäre echt super. Danke.
Datum:
Läubi .. schrieb: > Matthias Reichelt schrieb: >> Der 34063 läuft nun ohne externen Transistor und es fließen 3mA bei 21V, >> die für den Kontrast beim Wintek ideal sind. > magst du ggf. den Schaltplan+Werte veröffentlichen? Würde für den > nachbau sicherlich hilfreich sein. Wie viel Strom zieht die ganze Sache denn am Eingang eigentlich? Und sind die 21V gegen Masse gemessen?
Datum:
Moin, der Thread ist ja mittlerweile schon ganz schön angewachsen, von daher konnt ich mir jetzt nicht alle Beiträge durchlesen, also sorry, falls einige meiner Fragen schon an anderer Stelle beantwortet wurden. Ich will mir ne grafische Fernbedienung für meine Soundanlage basteln (Umsetzung jetzt mal zweitrangig). Dazu wollt ich das TG322450 + Inverter (Best. Nr. Pollin: 531 321) ordern. 1. Ist die Funktonalität des Touchpads hier schon mal besprochen worden, s.h. kann ich das so ohne weiteres benutzen, auch über den hier besprochenen Controller für das Display? (Laut Schaltung ist das wohl noch nicht mit drin, oder?) 2. Wie schnell ist das TG322450 wirklich? Laut Datenblatt um die 75 Hz Wiederholrate, aber kann ich da auch FFT drauf darstellen, ohne das da was schliert? 3. Ist das WD-H3224V dem TG322450 was Fragen 1 und 2 angeht ebenbürtig, oder gibts da Vor- bzw. Nachteile? 4. Oder schlagt ihr da ein ganz anderes Display für mein Vorhaben vor? Komische Fragen, ich weiß, aber wo soll ich fragen, wenn nicht hier, bei denen, die sich mit den Displays auskennen und diese auch besitzen ;) Gruß, André
Datum:
Hi, sorry, habe schon länger nicht hier ins Forum geschaut. Werde morgen die Stromaufnahme messen. Die Schaltung für die Kontrastspannung habe ich nach http://www.nomad.ee/micros/mc34063a/ gebaut aber mit den Widerständen ziemlich spielen müssen. Ich muss ehrlich zugeben, dass ich die Büchse geschlossen habe nachdem alles funktioniert hat. Sie läuft nun seit 2 Monaten im Dauerbetrieb perfekt. Hintergrundbeleuchtung und auch Touchscreen funktionieren. Die Mühe mit dem LED Tausch habe ich mir nicht gemacht. Das war mir zu viel. Ein super Display. Ich mach nochmal auf schaue was ich da verbrochen habe :-). Dann kann ich Stromaufnahme und auch die Widerstände am 34063 ermitteln. Das ganze incl. Net-IO Board hängt an einem alten Netzteil vom NEC 616. 5.3V und 1A laut Aufdruck. Grüße Matthias
Datum:
Angehängte Dateien:Hallo, anbei die Schaltung, wie ich sie zur Erzeugung der 21V aus 5V verwende. Bei der Erstinbetriebnahme habe ich jedoch erstmal die 21V von einem zusätzlichen Netzteil genommen um zu sehen ob Display und Controller funktionieren. Danach erst die verwendung der 21V aus dem 34063. Insgesamt nimmt die Box 160mA auf. Incl. Atmega8 und LED Hintergrundbeleuchtung. Der Touchscreen ist durch zwei Spannungsteiler und und Anschluß an 2 ADC Ports des ATMEGA 644 realisiert. Anbei ein Screenshot aus Wikipedia wie so ein Touchscreen aufgebaut ist.
Datum:
Matthias Reichelt schrieb: > anbei die Schaltung, wie ich sie zur Erzeugung der 21V aus 5V verwende. Danke schon mal, aber Schaltplan als jpeg ist eigentlich nicht soo der Hit ;) Das Display sieht cool aus, wie hast du das befestigt? Der Rahmen bietet da ja wenig Angriffspunkte, ist das ganze auch ohne Beleuchtung gut lesbar auf dem Bild sieht es zumindest so aus als sei diese abeschaltet? André G. schrieb: > 1. Ist die Funktonalität des Touchpads hier schon mal besprochen worden, > s.h. kann ich das so ohne weiteres benutzen, auch über den hier > besprochenen Controller für das Display? (Laut Schaltung ist das wohl > noch nicht mit drin, oder?) Der Controller hat keinen ADC und kann so das Touch nicht auswerten! Du benötigst mindestens einen weiteren Controller für die Auswertung. > 2. Wie schnell ist das TG322450 wirklich? Laut Datenblatt um die 75 Hz > Wiederholrate, aber kann ich da auch FFT drauf darstellen, ohne das da > was schliert? Muss man probieren, hängt auch von der Umgebungstemperatur ab, aber der hier vorgestellte Plan kann "nur" Text also nix Grafik! Dafür gibt es einen weiteren Thread!
Datum:
Hi, sorry wegen jpg aber bei mir zählt mehr die Funktion. Bei der begrenzten Zeit die ich zum Basten hab baue ich nicht auf Professionellem wege. Erfolge sind mir wichtiger. Die Beleuchtung braucht man am Tage nicht unbedingt aber wenn das Licht ungünstig steht hilft die Beleuchtung auch am Tag. Das Gehäuse ich vom grossen C. Im rechten Teil neben dem Display ist der Atmega und die Spannungsaufbereitung untergebracht. Befestigt ist das Display im Gehäuse mit Heisskleber :-) So läßt es sich perfekt platzieren, man sieht keine Schrauben und es hält super. Auch wenn man mal etwas stärker auf den Touchscreen drückt.
Datum:
Hossa, Läubi .. schrieb: > Muss man probieren, hängt auch von der Umgebungstemperatur ab, aber der > hier vorgestellte Plan kann "nur" Text also nix Grafik! Dafür gibt es > einen weiteren Thread! Ich werd die FFT anhand von Balken darstellen, da kann ich ja auch selbstdefinierte Zeichen nehmen. Das sollte klappen. Gruß, André
Datum:
Hallo Benedikt, Obwohl ich inzwischen einige ASM Projekte gemacht habe, bin ich immer noch Anfänger. Trotzdem möchte ich deinen Code verstehen, da ich das Projekt sehr interessant finde. Nun hänge ich völlig fest bei der hloop Routine. Wenn ich es richtig verstehe, dann wird im ersten Durchlauf mit "ld ZL, X+" der Inhalt des Speichers 0 (durch "movw XL, XSaveL" wird ja zuvor die Adresse auf 0 gestellt) nach ZL geladen. In der Simulation taucht dann in tempi der Wert 0x0B auf. Wo kommt der her und was soll damit geschehen?? Es ist zwar tatsächlich der erste Wert im Flash, aber alle weiteren stimmen nicht überein. Wenn ich ins SRAM will müßte in XL doch eigentlich DDRAM stehen, oder liege ich völlig falsch?? Gruß Bruno
Datum:
Hi, habe mir auch ein Wintek WD-H3224V Display von Pollin besorgt. Leider ist mir nicht klar, wie ich das winzige 24 polige Flachbandkabel mit meinem Controller verbinden kann. Gibt es Buchsen bzw. Adapter? Wenn ja - Wo! Gruß Leo
Datum:
>Gibt es Buchsen bzw. Adapter? Wenn ja - Wo! Na klar. Fertige Adapter bei http://www.lc-design.de/shop/de/index.htm?http://w... Ich hatte FFC Stecker von Farnell. Wigbert
Datum:
Hallo Ich habe mir vor langer zeit ein Wintek WD-H3224V zugelegt. jetzt möchte ich es auch in betrieb nehmen. Ich würde es erst mal testen ob es geht im einfachen Textmodus, nur habe ich keinen Anschlussplan oder so und kein Testprogramm gefunden. Bauteile die Zugverfügung stehen : Wintek WD-H3224V FFC Buchse SMD-LEDs für eine andere Hintergrundbeleuchtung ATmega 32 oder auch 644 und Kleinteile Für die Testschaltung :-) ich hoffe mir kann jemand helfen.
Datum:
Angehängte Dateien:Hallo, erstmal ein Kompliment an Benedikt für dieses tolle Projekt! Als Anfänger eine Frage an die Display-Experten. Nachdem es mir gelungen ist, ein NANYA s/w Display zur Anzeige zu bewegen, stellt sich natürlich der Ehrgeiz ein. Ich habe mir als Ziel gesetzt, eine Kalenderuhr zu realisieren. Als statische Anzeige funktioniert es schon ganz gut (siehe Bild). Da ich mich z. Zt. noch im Experimentierstadium befinde, nutze ich weiterhin den ATMega8 ohne externen Speicher. Realisiert habe ich die Anzeige durch Speicherung des Bildes im Flash und zeilenweiser (24 Pixel) Übertragung ins SRAM. Dafür reichen die Speicher gerade aus. Nun versuche ich schon geraume Zeit, nicht nur ganze Zeilen, sondern Zeilensegmente ins SRAM zu laden, damit ich dann auch Werte ändern kann. Dabei stoße ich auf das Problem, dass einige geringfügige Programmänderungen dazu führen, daß das Bild völlig verschwindet. So funktioniert z.B. das Auffüllen einer Zeile mit Nullwerten normal, das Übertragen von Daten aus dem Flash bei sonst gleichem Code aber nicht. Kann es daran liegen, daß der Bildaufbau und die Datenspeicherung im SRAM irgendwann zeitlich kollidieren? In diesem Zusammenhang suche ich auch noch nach einer optimalen Möglichkeit die Änderung von Teilbereichen zu realisieren. Wer kann mir dabei helfen???? Ich muß hinzufügen, daß ich nur mit ASM arbeite, für C hat es bislang noch nicht gereicht. Für jede Antwort schon im voraus herzlichen Dank! Bruno
Datum:
Hallo, leider hat sich auf meine Fragen noch keiner gemeldet????? Für den ersten Teil kann ich die Antwort inzwischen selbst geben. Nach Ausschluß aller anderen Möglichkeiten konnte nur noch der ATMega8 defekt sein. Und so war es dann auch, was sich aber nur bei ganz speziellen Aufgaben bemerkbar macht. Mit einem neuen funktioniert es jedenfalls jetzt wie gewünscht. Über Unterstützung würde ich mich aber nach wie vor freuen! Bruno
Datum:
Die Textmodus-software kenn ich zwar nicht (kenne nur die für graustufen), aber voller RAM und geringe Änderungen an der Software die dazu fürhen, dass nichts mehr so läuft wie es soll klingt stark nach nem Stacküberlauf. Sind nur mutmaßungen, aber vielleicht hilfts ja.
Datum:
Hallo Sebastian, herzlichen Dank für die Info! Kann man so einen Stacküberlauf mit irgendwelchen Mitteln nachweisen?? Bruno
Datum:
Wenn du einen Stacküberlauf händisch nachvollziehen willst musst du erstmal schaun, wie viel Ram dein Programm so verbraucht. Ich hab mal schnell die aktuelle Version von Benedikt durchassembliert. Hier sind das laut AVR-Studio 852Byte. Du hast also noch 1024-852=72Byte für den Stack übrig. Stack wird bei Jedem call/rcall und jedem push gebraucht. Jetzt kann man durch den Quelltext gehen und die call-hirarchie mit allen pushes nachvollziehen. Dann weiß man es mit sicherheit. Auf den maximalen Stackverbrauch des normalen programm kommt dann noch der Stackverbauch der Interrupts. Die darf man nicht vergessen. Rein vom Gefühl her (hab den quelltext immernoch nicht angeschaut: Wenn du keine großen felder oder push-orgien eingefügt hast wirds nicht der Stack sein. Aber ich würde mal drüberschaun, 72Byte reicht nicht ewig. Noch ne möglichkeit um sowas auf die Schliche zu kommen: Initialisiere oberhalb der 852 reservierten Byte ein paar Byte Ram mit nullen. Dann überprüfst du in der Mainloop (bei einer funktionierenden version) ob die noch alle auf null stehn. Wenn nicht, kommt dein Stack dem genutzten Ram schon gefährlich nahe. Dann sollte mans genauer untersuchen. Viel erfolg, Sebastian
Datum:
Hallo Sebastian, da ich mein Programm etwas anders aufgebaut habe als Benedikt, habe ich noch mehr im SRAM belegt u.z 960 Byte. Ich übertrage die Bilddaten zeilenweise aus dem SRAM in das Display und nicht aus dem Flash. Eine Zeile 40 byte breit und 24 Pixel hoch ergibt 960 byte. Ich habe das Programm mal ne Weile im Simulator laufen lassen und mir dann den Stack angesehen. Danach werden eigentlich nur 2 byte vom Stack genutzt (von 64). Müßte man es nicht auch auf diese Art sehen können? Bruno
Datum:
Wenn das Programm keine Eingaben von der Ausenwelt bekommt kann mans auch simulieren um den stackverbrauch zu beobachten. Wenns auch auf Eingaben reagiert müsste man die halt auch simulieren. Aber 2 Byte Stack glaub ich dir nicht. Allein schon, wenn du einen Interrupt verwendest brauchst du mindestens 3 Byte: 2 für die Rücksprungadresse (macht der controller selbst) und 1 byte fürs SREG (das musst du selbst sichern). Wenn du keine Register speziell für Interrupts reserviert hast musst du auch noch die im interrupt verwendeten Register auf den Stack sichern. Nachdem dein Programm aber anders aufgebaut ist als Benedikts, brauchen wir/ich erstmal deinen Quelltext. Sonst kann man nur raten. Könnte ja auch was ganz anderes sein. Sebastian
Datum:
Angehängte Dateien:Inzwischen habe ich auch noch einen dritten ATMega8 versucht. Resultat: Code Version 2 verarbeiten alle 3 problemlos. Code Version 3 klappt nur bei einem. Was den Stack betrifft, so habe ich nur auf die Anzeige geschaut und da waren von den 64 bytes nur 2 überschrieben, alle anderen FF. Bruno
Datum:
Jetzt muss ich dich leider enttäuschen: Der Stack passt wirklich. Du brauchst wirklich nur 2 Byte, weil du extra Interruptregister genommen hast. Mehr kann ich aber nicht sagen, denn ehrlich gesagt fehlt mir grad die Motivation deinen Code nachzuvollziehen. Auch weil kaum Kommentare drin sind... Trotzdem viel Erfolg beim finden Sebastian
Datum:
Angehängte Dateien:Auch wenn ich dich verstehe, bin ich natürlich doch enttäuscht! Ich habe die Version 3 mal ausgiebig kommentiert, vielleicht kannst du dich ja doch noch überwinden. Version 2 unterscheidet sich von Version 3 nur dadurch, daß alle Zeilen (außer Leerzeilen) im Flash komplett gespeichert sind und von dort ins SRAM gelesen werden. Bruno
Datum:
So, ich hab mal noch n blick drauf geworfen. Den Fehler hab ich zwar nicht, aber einiges zu sagen trotzdem... Erst mal... hab ich das konzept richtig verstanden? Im Flash liegt das gesamte Bild das angezeigt wird. Davon kopierst du immer 24 Zeilen in einen SRAM-Puffer, der dann vom Interrupt ausgelesen wird. Das bild liegt aber nicht in Rohdaten vor (sonst würde es ja nicht reinpassen) sondern nur die Teile, in denen auch wirklich was angezeigt wird. Der Rest wird per Software als Null in den RAM übertragen. Ein richtiger Font ist das soweit ich das sehe aber auch nicht, oder? Mal angenommen das ist so richtig. Es erscheint mir nicht ganz so vernünftig die Daten in der Mainloop von Flash zum Ram zu kopieren. Du synchronisierst das ganze zwar, aber wenn deine Mainloop zu lang wird löst der displayinterrupt wieder aus, bevor die Daten fertig sind und es wird irgendein Mist angezeigt. (Das KÖNNTE auch dein problem sein) Wenn das ganze mal ne Kalenderuhr werden soll kannst du bei dem Konzept ja sowieso nicht bleiben. Die anzeige soll sich ja ändern. Das geht nur mit einem Font vernünftig. Wieso baust du nicht auf der Version von Benedikt auf? Die hat einen integrierten Font und kann die Anzeige ändern. Du schmeißt die UART-empfangsroutinen raus baust aber auf seine High-level funktionen auf. Ok, verschiedene schriftgrößen gibts dann erstmal nicht mehr (oder vielleicht zwei verschiedene - glaube da gabs was). Aber das lässt sich sicher reinoptimieren. Denkbar wäre zum Beispiel die Ziffern nochmal in einem größeren Schriftsatz zu hinterlegen so dass man dann zwischen beiden auswählen kann. Sollte sich jedenfalls alles als erweiterung auf Benedikts sofware aufbauen lassen. Alternativ - wenn du unbedingt bei deinem Konzept bleiben willst: Ich würde das Umkopieren vom Flash in den SRAM im Interrupt erledigen, weil das eben unbedingt synchron zum Interrupt sein muss. Im Flash würde ich wieder einen Zeichensatz hinterlegen. Der Interrupt holt sich die aktuelle Zeit (die die Mainloop in den RAM schreibt) und wählt anhand der Uhrzeit/Datum aus, welche Ziffern ins Ram kopiert werden müssen. viele Grüße, Sebastian
Datum:
Hallo Sebastian, vorab herzlichen Dank, daß du dir doch noch die Zeit genommen hast. Finde ich super. Nun der Reihe nach: > Erst mal... hab ich das konzept richtig verstanden? > Im Flash liegt das gesamte Bild das angezeigt wird. Davon kopierst du > immer 24 Zeilen in einen SRAM-Puffer, der dann vom Interrupt ausgelesen > wird. > Das bild liegt aber nicht in Rohdaten vor (sonst würde es ja nicht > reinpassen) sondern nur die Teile, in denen auch wirklich was angezeigt > wird. Der Rest wird per Software als Null in den RAM übertragen. > Ein richtiger Font ist das soweit ich das sehe aber auch nicht, oder? Stimmt genau! Mein Ziel war im Flash nicht einen oder mehrere Fonts abzulegen (bei meinem Bild wären es vier), sondern die benötigten Daten, sprich Wochentage, Monate und die Ziffern in unterschiedlicher Größe. Die Rohdaten habe ich auch schon. Ganz egal wie ich es angehe, es sprengt auf alle Fälle den Speicher des ATMega8. Ich habe ihn trotzdem eingesetzt, da ich - z.Zt noch keinen größeren habe, - Benedikts Projekt schon funktionsfähig vorlag, - und ich bei meinen Kenntnissen sowieso viel experimentieren muß. > Mal angenommen das ist so richtig. > Es erscheint mir nicht ganz so vernünftig die Daten in der Mainloop von > Flash zum Ram zu kopieren. Du synchronisierst das ganze zwar, aber wenn > deine Mainloop zu lang wird löst der displayinterrupt wieder aus, bevor > die Daten fertig sind und es wird irgendein Mist angezeigt. (Das KÖNNTE > auch dein problem sein) Auch das ist natürlich völlig richtig. In meinem ersten Beitrag hatte ich ja schon die Vermutung geäußert, daß eventuell Bildaufbau und die Datenspeicherung im SRAM irgendwann zeitlich kollidieren könnten. Inzwischen habe ich es allerdings kontrolliert und festgestellt, daß das nicht die Ursache für mein Problem sein kann. Die Übertragung ins SRAM ist bis jetzt immer noch schneller als der Aufbau des Bildes im Display. Aber du hast recht, das hat irgendwann seine Grenzen. Ich habe diese Art der Realisierung gewählt, weil ich befürchtete daß das Display anfängt zu flimmern wenn ich alles in den Interrupt packe. > Wenn das ganze mal ne Kalenderuhr werden soll kannst du bei dem Konzept > ja sowieso nicht bleiben. Die anzeige soll sich ja ändern. Das geht nur > mit einem Font vernünftig. > Wieso baust du nicht auf der Version von Benedikt auf? Die hat einen > integrierten Font und kann die Anzeige ändern. Du schmeißt die > UART-empfangsroutinen raus baust aber auf seine High-level funktionen > auf. Das ginge natürlich, aber die Optik war mir dann doch wichtiger (-: > Alternativ - wenn du unbedingt bei deinem Konzept bleiben willst: Ich > würde das Umkopieren vom Flash in den SRAM im Interrupt erledigen, weil > das eben unbedingt synchron zum Interrupt sein muss. werde ich auf alle Fälle probieren! > Im Flash würde ich > wieder einen Zeichensatz hinterlegen. Der Interrupt holt sich die > aktuelle Zeit (die die Mainloop in den RAM schreibt) und wählt anhand > der Uhrzeit/Datum aus, welche Ziffern ins Ram kopiert werden müssen. Prinzipiell hatte ich es so vor (abgesehen vom Interrupt), siehe oben. Noch eine Bitte. Letztendlich muß ich ja immer gezielt im Speicher einen Block von bytes ändern (mit unterschiedlicher Größe). Da ich dafür keine fertige Lösung habe, versuche ich mich mühsam ranzutesten (daher die unterschiedlichen Versionen). Kannst du mir dabei einen Tip geben? Nochmals herzlichen Dank Bruno
Datum:
Wenn du die Daten im Interrupt kopierst dürfte es im extremfall stabiler laufen. Wenn bei der Mainloop-lösung das kopieren zu lange dauert zeigt er mist an. Halt das, was grade im Ram steht. Wenn die Interruptlösung zu lange braucht verliert er hin und wieder mal einen Interrupt. Dadurch sinkt die Framerate und das display wird ein wenig flackern. Aber er zeigt noch das richtige an. Nachdem du sonst keine Interrupts hast (erstrecht keine, die kurze Latenzen erfordern) stört es auch nicht dass der Controller dann relativ lang im Displayinterrupt hängt. Zum Konzept. Wie Wärs damit: Man könnte sich von dem 24-zeilen-block verabschieden und immer nur eine Zeile im SRAM behalten. Ganz grob gesagt würde ich dann immer eine Zeile vom Interrupt anzeigen lassen und danach (im Interrupt) die nächste in den RAM laden. Fürs laden würde ich erstmal die gesamte Zeile löschen. Dann wird überprüft, welche Zeile denn überhaupt grade aufgebaut werden soll. Dabei würde ich der reihe nach durchprüfen, ob der Wochentag, das Datum, die Jahreszahl,... angezeigt werden soll und bei jedem Treffer sofort die nötigen Daten rüberkopieren. Danach wird weitergegangen in der Überprüfungskette. Wenn du komplett durch bist steht der passende Teil der Anzeige im Ram. Leerzeilen haben sich auch schon erledigt, weil du ja vorher den Ram gelöscht hast. In leerzeile wurde er dann ja auch nicht überschrieben. Als Beispiel postuliere ich jetzt mal, dass alle Wochentage 24*128pixel groß sind, also je 16*24 Byte im Flash belegen. Also hintereinander im Flash alle Wochentage als "Bild". Der erste liegt bei "Wochentage", der zweite dann bei Wochentage+16*24, der dritte bei Wochentage+2*16*24. So, wir haben jetzt also festgestellt, dass in der aktuellen Zeile ein Wochentag reinmuss. Dann schau ich, welche Zeile des wochentags ich brauch (Day_Line = Aktuelle_Anzeigezeile-Wochentag_Startzeile) und welchen Wochentag wir haben (soll mal unter Day_of_week hinterlegt sein). Dann kann ich mir sehr leicht ausrechnen ab wo ich aus dem Flash laden muss: Start=Wochentage+(16*24*Day_of_week)+Day_Line Ab der Adresse liest du also 16 Byte ins SRAM an die stelle wo der Wochentag hinsoll (bezieht sich jetzt auf den X-offset). Warum ich den 24-zeilen puffer abschaffen würde noch: Du gewinnst damit flexibilität beim Positionieren der Elemente. Außerdem brauchts deutlich weniger RAM. So, ich hoffe ich habs verständlich geschriebn. In meinem Kopf ist das konzept vollkommen logisch :D Sebastian
Datum:
super! Danke für die schnelle Antwort. Damit habe ich fürs Erste genug Stoff zum Überlegen und Probieren. Ich werde mich auf alle Fälle nochmals melden, aber das kann ne Weile dauern. Bruno
Datum:
ich habe mal eine frage zum Grafik Display
ich habe an meine Display folgende Anschlüsse
1 VDD +5 V
2 GND
3 VCC +32 V
4 FLM
5 Display off
6 M
7 Load
8 CP
9 GND
10 D0
11 D1
12 D2
13 D3
14 GND
15 Beleuchtung +
16 Beleuchtung-
17-20 Touchscreen
nur weiß ich nicht so ganz wie ich es an meinen ATmega 32 anschließen
soll
ich würde es so machen
Anschlüsse 4;5;6;7;8;(17-20)Touchscreen wird noch nicht benutzt!
10 bis 13 ist klar
Kommen an den Mikrocontroller
ist das richtig?
Datum:
Angehängte Dateien:Hallo Sebastian, ich melde mich doch noch mal kurz. Ich habe meine Version 3, d.h. mit 24 Pixelreihen je Zeile nochmals gestrafft und vor allem das Laden des SRAM nun in den Interrupt verlegt. Außerhalb des Interrupts ist nur noch die Warteschleife. In der Simulation funktioniert das Programm, aber ich bekomme keine Anzeige. Kann es am erforderlichen Timing für das LCD hängen? Der nächste Schritt ist aber nun die von dir vorgeschlagene Version mit je einer Pixelreihe. Bruno
Datum:
Ich würde das SRAM-füllen hinter die Ausgabe-routine setzen. Dann zeigt zwar der erste Frame in der ersten Zeile kurz mist an, aber du verringerst den Jitter bei der Ansteuerung des LCD was gegens flimmern besser ist. Wenn man will kann man den SRAM-puffer auch bei der Initialisierung des Controllers mit nullen vollschreiben. Dann ist die erste Zeile des ersten Frames immer schwarz - das fällt wirklich nicht mehr auf. Zum Testen würde ich Den Puffer auch einfach mal mit nem markanten Muster füllen. Zum Beispiel Schachbrett. Dann siehst du schonmal, ob die Anzeige und das laden prinzipiell noch funktionieren. Wenn das läuft kannst du anfangen vernünftige Daten aus dem Flash zu holen. (Wenn du den eindruck gewinnst, dass ich zu faul bin deinen konkreten fehler zu suchen... erwischt. Aber so lernst du auch noch was dabei) Sebastian
Datum:
Angehängte Dateien:Hallo Sebastian, dein letzter Kommentar hat mich animiert, mit der 24 Pixel Version doch noch weiter zu experimentieren. Nun bin ich aber mit meinem Latein am Ende. Zuerst habe ich versucht, im Interrupt und nach der hloop Routine den Speicher mit einem Schachbrett zu füllen. -> kein Bild. Dann habe ich den Speicher noch vor dem Hauptprogramm mit den Feldern aus dem Schachbrett gefüllt. -> sauberes Bild mit dicken vertikalen Streifen, d.h. OK. Dann habe ich das Gleiche, aber innerhalb des Interrupts versucht, d.h. nicht genau das Gleiche, da ich ja den Speicher immer nach 24 Pixelreihen neu lade, allerdings bleibt der Inhalt unverändert. -> 10 dünne(1 Pixelreihe) Streifen und die dicken senkrechten Streifen kann man zwar erkennen, aber da muß man schon genau gucken. Hast du die Erklärung? Bruno
Datum:
Du füllst deinen Speicher ja über eine verschachtelte schleife: FeldHell schreibt je ein Byte und wird 4 mal durchlaufen FeldDunkel schreibt je ein Byte und wird 4 mal durchlaufen Und beide zusammen werden 10 mal aufgerufen Also schreibst du da schon (4+4)*10=80 byte in deinen Speicher. Und der ganze block wird dann CSize mal aufgerufen, wobei CSize=24. Also schreibst du 80+24=1920 Byte in den RAM. Damit überschreibst du auf jeden Fall den Stackpointer, womit das programm abstürzt. Schreib mal statt CSize an der Stelle CSize/2, dann sollte es eigentlich funktionieren. Allgemein noch ein Tipp: Mal dir vorher ein flussdiagramm von dem, was du programmieren willst. Das Programm wird deutlich strukturierter, es fällt leichter es zu schreiben und man macht weniger Fehler. Sebastian
Datum:
Deine Rechnung ist so nicht richtig. FeldHell wird 4 mal durchlaufen, dann wird aber der Zähler 10 schon auf 9 reduziert. Anschließend wird FeldDunkel 4 mal durchlaufen und der Zähler auf 8 reduziert. Insgesamt ergibt das 2x4x5=40 Byte, d.h. genau eine Pixelreihe. Mit CSize=24 bin ich wieder bei meiner 24Pixel-Zeile. Trotzdem danke für den Tipp. Aus Frust habe es inzwischen aber doch mit nur einer Pixelreihe im Stack versucht und da hat das Schachbrett auf Anhieb funktioniert. Bruno
Datum:
Du hast recht. Hab ich übersehen. Aber wenns jetzt läuft passt ja alles.
Datum:
Angehängte Dateien:Hallo Sebastian, Wie bereits angekündigt, hat es etwas länger gedauert, aber ich habe noch nicht aufgegeben! Inzwischen habe ich das Programm entsprechend deinem Vorschlag aufgebaut und setze die einzelnen Zeilen aus den entsprechenden Datenblöcken zusammen. So weit, so gut. Das Problem ist, daß sich dann nach jeder Zeile Linien einstellen und die Zeilen unterschiedlich starke Helligkeiten bekommen. Anscheinend hängt die Intensität auch von der Anzahl der Datensätze in der jeweiligen Zeile ab. In der Zeile mit dem Monat (hier September) sind das z.B. 8 Datensätze. Gibt es dafür vielleicht eine einfache Erklärung?? Bruno
Datum:
Genaues kann man ohne Quelltext nicht sagen, aber nachdem du verschiedene Helligkeitsstufen hast tipp ich drauf, dass die Zeilen unterschiedlich lang angesteuert werden. Wenns bei einer zeile länger dauert, bis die nächste ins display geladen ist wird sie vom display auch so lange angesteuert. Auch deshalb sollte man im Interrupt erst die Anzeige bedienen und dann den speicher neu laden. Verwendest du im Ram Jetzt einen puffer für 24 Zeilen (danach schaut das bild aus)? Ich denke mal, dass deine laderoutine zu lang braucht. Das würde jedenfalls die hellen pixelzeilen erklären. Wenn du die Framerate probeweise mal runterstellst und die hellen Zeilen verschwinden solltest der Fehler dort liegen. Die großflächig verschiedenen Grauwerte kann ich mir jetzt aber auch nicht erklären. Außer wenn du zeilenweise in den Ram Lädtst. Aber auch dann ists nicht ganz schlüssig. Allgemein gilt aber: Ohne Quelltext kann man nur raten. Btw: Ging doch jetzt richtig flott. Mein Projekt kommt mangels Zeit viel langsamer vorran :( Viele grüße, Sebastian
Datum:
Angehängte Dateien:Herzlichen Dank für die superschnelle Antwort. Ich hatte gehofft ich könnte dir das Studium des Codes ersparen (-: Ich baue das Bild aus einzelnen Pixelreihen (40 Byte) auf. Die Daten im Flash sind aber jeweils der gesamte Block mit 24, 48 oder 72 Pixeln Höhe. Ausgelesen werden sie zeilenweise, d.h. 7 Textzeilen mit jeweils 24 Pixel Höhe und zusätzlich 3 Leerzeilen. Bruno
Datum:
Hallo zusammen, hat jemand eventuell jeweils 2 Stück abzugeben? Jeweils 10 bei Farnell zu bestellen, ist mir zu viel. Wigbert Picht-dl1atw schrieb: > Hi, > wer Lust auf Stecker hat, beim TG 322450: > Farnell Nr.165-9861 ; 124-5267 > die Spannungsversorgung nach DBL mit angegebenen IC , nur die reihen-R > sind zusätzlich. > > Meine WD-H3224 sind auch noch unterwegs. Ist wohl ein weiter Weg > zu mir. > > Wigbert Gruß Sascha
Datum:
wieso verschiebst du das 'cpi C_Cnt, CSize' nicht nach skipcloop? Immer wenn skipcloop angesprungen wird kommt vorher genau dieser vergleich. Wenn dus zu skipcloop verschiebst wirds besser lesbar. Man sieht auf einen blick was vergleichen wird und was mit dem Vergleich gemacht wird. Mal etwas nachgerechnet: Meine vermutung, dass du zu langsam füllst könnte stimmen. Wenn ich mich nicht verrechnet habe hast du zwischen zwei Interrupts nur 1024 Takte. Nachdem das Ausgeben der Daten ja auch ne gewisse Zeit braucht hast du fürs laden der Daten nur ca. 450 Takte. Vor allem in Zeilen mit viel Inhalt könntest du da leicht drüber kommen. Wenn du die Framerate verringerst sollte es also vor allem in der Monatszeile bessser werden, fängt aber halt zu flackern an. Also auch keine echte Lösung. Du müsstest dir also überlegen wie du die daten schneller laden kannst. Die weißen querstreifen machen aber irgendwie keinen sinn... Muss aber zugeben, dass ich jetzt nicht mehr sagen kann. Hab den Code nicht soo genau angeschaut. Vielleicht später :D Sebastian
Datum:
Das mit dem cpi hat sich irgendwann so ergeben, da ich ja schnell mit den ursprünglichen branch Befehlen am Limit war. Aber du hast natürlich recht, so ist es Unsinn, nur man sieht es selbst nicht mehr. Deine Vermutung betreffend Framerate war ebenfalls richtig. Ich habe das Display jetzt mit 45 laufen und die hellen Flächen sind weg. Von Flackern ist noch nichts zu sehen. Das Problem mit den weißen Streifen habe ich auch gelöst u.z. ist mir aufgefallen, daß zwar die erste Zeile nach der Anzeige im LCD geladen wird, nach der letzten Pixelreihe jeder Zeile das Programm aber zuerst noch durch das Ladeprogramm der alten Zeile läuft und unmittelbar anschließend schon die zweite Zeile geladen wird. So habe ich am Zeilenübergang zwei Ladevorgänge und beide vor der Übertragung ins Display. Nach Änderung dieser beiden Punkte, ist das Bild super. Nun stellt sich das nächste Problem mit der Auswahl des richtigen Datenblocks im Flash, d.h. ich verschwinde erstmal wieder in der Versenkung. Bruno
Datum:
Hallo, Ich habe mir letzte Woche ein WD-H3224V LCD bei pollin gekauft. Kann mit dem Datenblatt von pollin aber nicht anfangen. Ich möchte das display später mit einem PIC ansteuern. Zur Zeit arbeite ich mit dem PIC 16F88 oder 18f2550. Also suche ich ein kleines test programm und eine Seite wo beschrieben wird wie ein solches Display ansteuert. ein danke schon mal im vorraus Gruß max
Datum:
Hallo Max. Das mit dem 16F88 wir wohl so ohne Weiteres nix werden. Außer man übertaktet ihn(was aber sehr gut möglich ist). Nächstes Problem ist der relativ kleine Flash. Das würde aber noch für einen abgespeckten, kleinen Schriftsatz reichen. Für den 18F2550 sieht die Sache schon besser aus. Schau mal (viel) weiter oben: Beitrag "Re: Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus" Vielleicht hilft das weiter. Wenn was unschlüssig sein sollte, melde dich ruhig noch mal. Meik PS: Da fehlt eigentlich noch die Schriftsatz-inc Datei im Quellcode. Falls du die noch brauchst, kann ich die gerne noch hochladen. Ist eine umformatierte Datei aus Benedikts font.zip
Datum:
Hallo Meik, Danke für den Tip. Währe aber nett wenn du mir noch sagts wie du das display an den PIC Angeschlossen hast. (Schaltplan) Währe auch nett wen du mir die Schriftsatz-inc Datei hochladen würdest. Danke Gruß Max.
Datum:
Angehängte Dateien:Hier die Dateien. Ich hoffe, die Belegung passt auf die Datei. Ich hatte verschiedene Versionen davon gemacht. Das Platinenlayout ist im Target Format. Gruß Meik
Datum:
Hallo Sebastian, ich brauche wieder Hilfe!!! Das Gute vorweg. Das Display funktioniert und ich kann die Werte zeigen, die ich vorher als Vorgabewert im SRAM definiert habe. Es fehlt jetzt eigentlich nur noch die Einspeisung dieser Vorgabewerte durch eine RTC. Aber da fängt das Problem an. Ich nutze als RTC den DS1307 von Dallas, der mit einer I2C Schnittstelle arbeitet. Nun habe ich mal die wesentlichen Routinen in das Programm eingebaut und zwar schon so, daß jeder Wert einzeln gelesen wird. Aber auch dann sind die I2C Routinen so lang, daß ich außerhalb des Interrupts zu wenig Zeit zur Verfügung habe. Ich kann natürlich die Framerate reduzieren, aber das hat ja seine Grenzen. Welche Möglichkeiten habe ich noch?? Gruß Bruno
Datum:
Erstmal natürlich glückwunsch, dass die Anzeige jetzt voll funktioniert. Die eine möglichkeit wäre, den Code zu optimieren. Das kann einmal auf befehlsebene passsieren (also schleifenzähler runterzählen lassen statt hoch und ähnliches) oder auf Algorithmus-ebene. Letzteres bringt erfahrungsgemäß deutlich mehr. Meiner erfahrung nach ists dafür sinnvoll, sich das programm abstrakt als Flussplan aufzuzeichnen. Dann gewinnt man einen überblick und sieht leichter, wo strukturelle verbesserungen möglich wären. Du könntest aber auch drüber nachdenken, die RTC im AVR zu realisieren. Entweder über den Prozessor-takt und einen Timer-interrupt (in der codesammlung gibts code zur erzeugung einer exakten 1s-zeitbasis). Oder über einen Uhrenquarz der einen Timer taktet. Ich kann dir jetzt aber nicht sagen, ob es damit besser wird, denn du hättest wieder den Timerinterrupt, der immer mal dazwischenfunkt und CPU-last erzeugt. Das sinnvollste ist wohl erstmal dein Programm zu visualisieren und da optimierungen zu suchen. Vielleicht hast du auch irgendwo unnötige schleifen oder ähnliches drin. Sowas findet sich so auch relativ gut. Viel Erfolg, Sebasitan
Datum:
Danke für die gewohnt schnelle Reaktion! Um ehrlich zu sein, habe ich im Moment nicht sonderlich Lust den Code mit dem ich mich ja nun schon mehrere Tage rumschlage nochmals anzugehen. Die Zeit kommt aber sicherlich wieder. In der Zwischenzeit ist mir aber auch eingefallen, daß die Megas ja einen Hardware TWI haben. Daran hatte ich nicht gedacht, da ich bisher immer mit Softwarelösungen gearbeitet habe. Vielleicht klappt es ja damit. Eine Grundsatzfrage habe ich aber noch. Was machen andere, die ja teilweise sehr komplexe Bildinhalte darzustellen haben? Natürlich werden die mit höheren Taktraten arbeiten, aber ist es nur das? Bruno
Datum:
Deine Frage ist jetzt ehr grundlegend gemeint, nicht speziell auf benedikts lösung bezogen, oder? Erstmal gibts ja benedikts lösung auch als voll-grafik-version. Da hat er "einfach" noch ein wenig Hardware dazugenommen, die dann den Prozessor stark entlastet. Wenn man größer werden will (aber auch schon für kleinere Displays) gibts spezielle Displaycontroller, die die gesamte Ansteuerung in Hardware implementieren und die Daten aus einem eigenen RAM auslesen. Man muss dann nur noch dem controller die Daten rüberschieben. Mit passendem Interface kann man dann auch schon mit einem AVR recht beachtliche Datenraten erreichen. Ansonsten braucht man halt einen größeren Controller, der schneller taktet, eine breitere Architektur hat (16 oder 32 bit statt 8) oder andere Techniken verwendet, um mehr rechenleistung/Datendurchsatz zu erziheln. Der Trick ist aber meist einfach, für die eigentliche Ansteuerung des LCD einen Seperaten Controller mit genügend RAM zu haben. Gruß, Sebastian
Datum:
Ja, genau so war die Frage gemeint. Ich hatte mir die Grafik_Version von Benedikt schon mal angesehen, aber soweit ich mich erinnern kann, ist das ja eine Kombination von C und ASM Codes. Da ich C nicht kann, bin ich da nicht tiefer eingestiegen. Von der Hardware gesehen war das ja hauptsächlich das externe RAM und ein dafür geeigneter Prozessor. Wo liegt da der Schlüssel für die Steigerung der Rechnerleistung? Der Speicher alleine machts ja noch nicht, oder? Bruno
Datum:
Ja, die Grafikversion ist in C und nur die Low-Level Routinen in ASM. Man kann sich aber einen zweiten Controller über UART dranhängen und die Daten an den Displaycontroller schicken. Dann braucht man sich auch nicht um C kümmern. Der RAM ist (soweit ich das sehe) hauptsächlich nötig, um allgemein Grafik darstellen zu können. In der Textversion reicht es aus, einen Font im Flash zu haben und das bild erst während der Anzeige zu "synthetisieren". In der Grafikversion muss man immer das gesamte Bild im RAM vorhalten - es besteht ja nicht aus vordefinierten Elementen. Was auf jeden Fall Zeit bringt, sind die Logikgatter die er noch verwendet hat. Die meisten Steuersignale des Displays werden in Hardware erzeugt. Auf diese weise kann man 8 Pixel in 6 Takten Rausschieben. In deiner Version werden dafür (wenn ichs richtig im Kopf habe) 13 Takte benötigt, also etwa das doppelte.
Datum:
Danke für die Info! Gruß Bruno
Datum:
Hallo Sebastian, nach längerer Pause wieder ein Lebenszeichen! !!!Die ATMega8 Uhr läuft!!!! Einen ATMega16 habe ich mir in der Zwischenzeit schon besorgt, sodaß einer endgültigen Version nichts mehr im Wege steht. Nochmals herzlichen Dank für die Unterstützung. Vielleicht hast du ja mal Zeit und Lust den endgültigen Code nach Vereinfachungen durchzuschauen. Ich werde ihn ins Forum stellen, wenn die Uhr fertig ist. Noch nicht optimal ist das Einstellen der Uhrzeit. Im Moment muß ich dazu das Programm nochmals mit geänderten Vorgabewerten einspielen. Mir fällt dazu aber auch noch nichts Vernünftiges ein. Bruno
Datum:
Glückwunsch! Wegen dem Uhrzeit stellen: Ein paar tasten dran die in der mainloop abgefragt werden. Eine erhöht die Stunden, eine die Minuten und eine setzt die Sekunden auf Null. Wenn du willst kannst du auch noch jeweils eine fürs runterzählen nehmen. Beim Booten startet die Uhr halt um 00:00Uhr. Etwas gedanken müsste man sich noch um die Tastenentprellung machen. Normal nimmt man einfach einen Timer. Nachdem du aber eh schon recht wenig zeit übrig hast würd ich die Tastenentprellung lieber in einen vorhanden timer dazuquetschen oder gar in der mainloop abhandeln. Aber um da konkrete Ratschläge zu geben muss man den Code kennen. Sebastian
Datum:
Das Problem ist, daß ich außerhalb des Interrupts nichts mehr unterbringe. Ich habe jetzt schon den I2C Bus mit dem Maximalwert von 100kHz getaktet. Außerdem führe ich jede Aufgabe, d.h. Einzelwerte abholen und in BCD umwandeln immer getrennt aus, u.z. nur am Anfang eines Frames wo ich im Interrupt außer der Übertragung ins Display nichts weiter zu tun habe (die Leerstellen stehen ja noch von der letzten Zeile im SRAM). Die Framerate habe ich jetzt auf 55 stehen. Bruno
Datum:
Hallo Zusammen, ist es möglich dieses tolle Projekt (Die LCD-Ansteuerung) in WINAVR umzuwandeln, oder kann ich die Assembler-Datei auch irgendwie zu meinem in c geschrieben dateien 'includen' ? Hintergrundgedanke wäre das ich meine jetzige Anzeige 40x4 auf 40x20 zu erweitern :) Gruss, Martin
Datum:
Hallo, neuerdings habe ich auch ein WD-H3224V mit eigenem Controller am Laufen. Dabei habe ich festgestellt, daß bei Anzeige von statischem Inhalt einige Pixelzeilen mit der Zeit 'einbrennen' bzw. 'müde' werden. Dies äußert sich in einem halbdunklen, diffusen Pixelsalat, der auch beim Abschalten der Displayspannungen noch einige Sekunden sichtbar bleibt. Hat sich dieser Salat abgebaut und schaltet man das Display wieder ein, ist wieder alles für eine gewisse Zeit normal, bis das Phänomen wieder auftritt. Ich habe schon mit verschiedenen Frequenzen des M-Signals herumgespielt (toggeln alle 7, 13, 21 Zeilen oder 1x pro Frame), wobei hohe Frequenzen das Ergebnis verbesserten, aber zu einer hohen Stromaufnahme führten. Ganz weg ist das Problem aber nie. Kann das jemand von euch nachvollziehen?
Datum:
Alo ich habe nochmal probiert und das Problem tritt hauptsächlich dann auf, wenn die LCD-Spannung geringfügig zu hoch ist, so daß nichtangesteuerte Pixel leicht grau mitschimmern. Nehme ich die Spannung etwas zurück, verschwinden die Geisterpixel. Bei anderen Displays ist mir das bislang nicht aufgefallen.
Datum:
hallo, habe das problem das das bild immer durchläuft von oben nach unten wo liegt da das problem ? hat vieleicht einer eine Idee
Datum:
Angehängte Dateien:Hallo Sebastian, Nachdem ich mir ein paar Tage Auszeit genommen hatte, läuft nun die komplette Uhr auf dem ATMega16. Es war allerdings wieder mit Hindernissen versehen, da auch der Speicher vom AT16 zu klein ist um die Daten bequem unterzubringen. Mit bequem meine ich, die Texte für Monat und für Wochentag jeweils mit konstanten Längen abzuspeichern. So mußte ich im Programm noch eine geeignete Längenanpassung vornehmen. Nach wie vor ungelöst ist das Stellen der Uhr, auch wenn die Genauigkeit der Dallas RTC sehr gut ist. Insgesamt ist das Programm schon sehr umfangreich geworden und ich frage mich wirklich ob es nicht auch einfacher geht. Aber es läuft zumindest. Gruß Bruno
Datum:
@travelrec: Kann dir leider nicht wirklich helfen. Das einzige was ich sagen kann ist, dass es normal ist, dass LCDs irgendwann "einbrennen". Aber die Zeiten liegen eigentlich deutlich höher als ein paar Stunden oder Tage. Zumindest soweit ich weiß. @Bruno: Teile deinen Quellcode mal auf mehrere Dateien auf. Das macht das ganze viel Übersichtlicher. Steck z.B. die ganzen Datentabellen in eine Extradatei (wenn nicht sogar mehrere). Oder auch den Interrupt auszulagen macht bei der länge deines Interrupts durchaus Sinn. Auch Unterfunktionen machen sich immer gut in Extradateien. Die Dateien kannst du dann einfach über .include einbinden. Wenn das passiert ist schau ich auch mal genauer über deinen Code. Eine Sache ist mir dann doch noch aufgefallen: Du synchronisierst deine Mainloop mit dem Bildaufbau, oder? Gibts dafür einen besonderen Grund? Gruß, Sebastian
Datum:
Wenn ich dich richtig verstehe, dann meinst du mit synchronisieren, daß ich nur jeweils am Ende eines Bildes einen Befehl im Mainloop ausführe. Der Grund dafür ist, daß ich anfangs das Auslesen der RTC und das Umwandeln der Zahlen in einer Aufgabe erledigen wollte und dann nichts mehr funktionierte, weil die Zeit im Mainloop viel zu kurz war. So habe ich den Umfang der Befehle schrittweise so weit reduziert, daß es paßt und darüberhinaus das Bildende genutzt, weil ich dann im Interrupt kaum etwas zu tun habe (die Leerbytes stehen ja schon im Speicher). Die Aufteilung des Codes werde ich in Angriff nehmen. Bruno
Datum:
Angehängte Dateien:Hallo Sebastian, so, der Code ist aufgeschlüsselt. Ich hoffe es entspricht deinen Vorstellungen. Bei dieser Gelegenheit konnte ich auch noch etwas kürzen. Bruno
Datum:
Wenn du dir den Code ansiehst, möchte ich gleich noch eine Frage nachschieben. Mir ist es bis jetzt noch nicht gelungen, die RTC unabhängig vom AT16 zu betreiben. Damit meine ich, daß beim Abschalten oder auch beim Einschalten des LCD's und AT16 die Uhr auf den zuletzt eingestellten Wert zurückgesetzt wird, obwohl die Uhr mit Batterie läuft. Eigentlich fängt das Problem schon damit an, daß ich das laufende Programm nicht mit einer Version ohne Start Routinen für die Uhr überschreiben kann, ohne daß die Zeit zurückgesetzt wird. Woran kann das liegen? Bruno
Datum:
Hi, ein tolles Projekt :) Inspiriert durch diese vielen Posts, stellt sich gerade nur die Frage, welche Display man/ich benutzen könnte? Sehr sehr weit oben habe ich gelesen das der S1D13700 gehen soll... Könnte Jemand ein paar Kompatible Kontroller listen damit man/ich ein Display im Netz suchen kann, wäre supi :) Bin eben durch zufall auf das hier gestossen, nur bin ich mir wegen der Pinbelegung nicht ganz sicher. http://www.cct.com.my/Products/Graphic%20Module/PG... Gruss, Chris
Datum:
@Chris Als Display gehen nur Controllerlose. Der Witz dieses Projekts ist, den Controller in Software auf einem AVR zu realisieren. Zum Beispiel kann man das hier verwenden: http://www.pollin.de/shop/dt/ODI1OTc4OTk-/Baueleme... Das von dir gelinkte hat einen integrierten Controller, funktioniert also nicht mit diesem projekt. Mit einem AVR kann man es trotzdem ansteuern. @Bruno Dass dein Display bei jedem Neustart mit der gleichen Uhrzeit anfängt sollte ja klar sein. Sowiet ich das jetzt gesehen habe setzt du ja bei jedem Start deines Controllers die Zeit auf den eingeflashten Wert. Warum die Uhrzeit auf den gleichen Wert gestellt werden soll, wenn du eine neue Version ohne Zeit-stell-Software flasht kann ich mir grad auch nicht so richtig erklären. Ich denke doch mal, dass dein Board nicht über den Programmer mit Strom versorgt wird, oder? Im Prinzip darfst du beim Systemstart die Zeit garnicht stellen. Stattdessen musst du etwas Code einfügen um Tasten abzufragen mit denen du die Zeit dann änderst. Genauere Vorschläge kann ich dir aber Frühestens Dienstag machen. Muss noch für ne Prüfung lernen - da hab ich leider nicht so viel Zeit übrig. Sebastian
Datum:
Natürlich geht deine Prüfung allemal vor. Super, daß du trotzdem schon wieder geantwortet hast. Bei dem ins Forum kopierten Code ist es natürlich klar, daß die Uhrzeit gestellt wird. Bei meinen Tests habe ich aber immer das RTC_Write und meist auch das RTC_Read nur als Bemerkung stehen. Wo dann die alten Stellwerte herkommen ist mir ein Rätsel. Im ATMega können sie doch nicht mehr stehen,oder? Bleibt dann ja nur das Uhren-IC???? Das Ein- und Ausschalten hat sich inzwischen geklärt, u.z. lag es am fehlenden pull-up am Reset Pin. Jetzt stellt er nur noch dann zurück, wenn ich eine neue Programmversion aufspiele (ohne Stellen der Uhr!). Bruno
Datum:
Angehängte Dateien:Ich habe die Zeit genutzt und den Code nochmals überarbeitet. Beim Bildaufbau ist alles unverändert. Das Auslesen der RTC erfolgt aber jetzt nach den 4 erten Pixelreihen im Abstand von 10 (das ist natürlich auch noch variabel) Bildern. Damit bleibt eventuell Zeit für weitere Aufgaben. Bruno
Datum:
Hallo, Zuerst mal ich bin noch ziemlich schlecht im programmiern. War also froh als ich gestern den LCD controller ans Laufen ans Laufen gebracht habe. Nun habe ich mal eine Frage: Und zwar will ich auf meinem Display einen Text an zeigen.(250 worte auf mehren Seiten) hat schon mal Jemand so etwas gemacht oder kennt einer eine Lösung für mein Problem? (habe PIC 16F88/876 oder Atmega 168/32 zur verfügung) Schon mal Danke für eure Mühe Mit freundlichen Grüßen, Chris
Datum:
Leider habe ich erst jetzt festgestellt, daß die Version 2 nur in der Simulation funktioniert, in der Praxis aber nicht. Es werden zwar die Uhrwerte für Sekunden und Minuten richtig angezeigt, die Stunden und anderen Daten bleiben aber stehen. Warum das so ist weiß ich nicht. Zumindest hat sich aber das Thema "Änderung der Uhrzeit beim Einspielen eines neuen Codes" damit erledigt. Bruno
Datum:
Hallo Bruno, bin grad dabei deinen Code anzuschaun. Ich schreib jetzt einfach mal der Reihe nach auf, was mir auffällt, also vll. etwas durcheinander. Ich bitte das zu entschuldigen. Deine Daten hast du über die .org Direktive platziert. Das macht man eigentlich nicht, weil es leicht zu Problemen führt. Genauso hast du die einzelnen Startadressen über feste Werte definiert. Konkret mein ich das hier:
.equ Font_St =0x600*2 .set WTag_St =0+Font_St .equ den =2400+Font_St .equ Jahr_St =2544+Font_St .equ Dat_St =4464+Font_St .equ Punkt =5044+Font_St .set Mon_St =5092+Font_St .equ Zeit_St =8452+Font_St .equ Sek_St =4464+Font_St .equ Doppelpunkt =12772+Font_St |
und dann unten vor den Daten:
.org Font_St/2 |
Sinnvoller ist es, Labels zu verwenden. Du schreibst einfach vor den Daten des Doppelpunkts
Doppelpunkt:
|
Vor den Wochentagen kommt
WTag_St:
|
Mit diesen marken kannst du dann genauso arbeiten. Für außenstehende ists aber deutlich leichter zu lesen und es ist DEUTLICH weniger Fehleranfällig. Wenn sich deine Datenlänge mal ändert passt der Assembler die Zahlenwerte selbst an und du musst dich nicht selbst drum kümmern. Genauso das hier
Januar: .SET Mon_St = 5092+Font_St ldi ZL, LOW(Mon_St) ldi ZH, HIGH(Mon_St) |
ist schlechter Programmierstiel. Setze vor die Daten des Januar ein Label. Also zum Beispiel
Januar_Data:
|
obiger Code wird dann zu
Januar: ldi ZL, LOW(Januar_Data*2) ldi ZH, HIGH(Januar_Data*2) |
und schon gibts keine komischen Zahlen mehr, von denen keiner mehr weiß, woher sie kommen. Man kann auch nicht vergessen, sie bei Änderungen anzupassen. Das macht dann alles der Assembler. Du solltest darauf achte, Code der logisch zusammengehört auch in eine Datei zu schreiben. Dass das jetzt noch nicht perfekt ist ist klar, du hast den Code ja grade erst aufgeteil. Aber z.B.
Warte:
in temp, TWCR
sbrs temp, TWINT
rjmp Warte
ret
|
sollte schon auch zum Rest des RTC-codes. Das Label könnte man auch eindeutiger wählen. Z.B. "WarteAufTWI:" oder "WarteAufRTC:". So schauts auf den ersten blick aus wie eine normale Delay-funktion, die einfach nur eine feste Zeit wartet. Wenn man den Code nachvollziehen will hilft soetwas doch sehr. Soetwas
cpi C_Cnt, 4 ;bei C_Cnt =>4 ist das Lesen beendet ldi RTC_Flag, 1 brsh Mainloop |
sollte man auch vermeiden, wenns keinen Grund gibt. Der Vergleich sollte doch möglichst direkt vor dem Branch kommen. Hier ists egal, weil "ldi" das SREG nicht ändert, aber wenn mal noch ein Befehl eingefügt wird ists schnell passiert, dass man plötzlich nach einer ganz anderen Bedingungn brancht. So, jetzt hab ich hunger und Simpsons haben schon angefangen. Um dir noch bischen Arbeit zu geben noch ein paar allgemeine Sachen ;) Mir noch nicht ganz klar, warum du die Mainloop auf eine bestimmte stelle im Bildaufbau synchronisierst. Der Interrupt holt sich immer so viel Rechenzeit wie er braucht, ob die CPU in der Mainloop gerade was sinnvolles tut oder nur wartet ist dem egal. Natürlich schadets erstmal nicht, die Zeit nicht sooo häufig auszulesen, aber es macht halt Mehr Arbeit. Du hast doch sowieso eine Routine, die die gesamten RTC-Daten ausliest. Wieso lässt du die nicht einfach endlos in der Mainloop aufrufen? Zum Uhr stellen: Erstmal brauchst du doch sowieso tasten. Die sind ja (laut sourcecode) noch garnicht vorhanden. Die Uhrzeit einmal einzuflashen und danach auf die RTC zu vertrauen kann ja auch keine Lösung sein. Selbst wenn du die Zeitumstellung mit einprogrammierst wird die Uhr irgendwann falsch gehn. Dann schau dir mal an, wie Tasten entprellt werden. Das wird zum Beispiel hier beschrieben: http://www.mikrocontroller.net/articles/Entprellung Versuch das zu verstehen und überleg dir, wie du entsprechenden Code in dein Grundgerüst integrieren könntest. Das Uhr stellen sollte dann eigentlich trivial sein: Bei Tastendruck (z.B. Stunden erhöhen) wird der Stundenwert im RAM erhöht und in den RTC-baustein geschrieben. Fertig. Bei gelegenheit oder wenns ne neue Version gibt schau ich nochmal über den Code. Heut aber erstmal nicht mehr. Viele Grüße, Sebastian
Datum:
Hallo Sebastian, ich hoffe deine Prüfung war erfolgreich (-: Herzlichen Dank für den umfangreichen Beitrag. Da habe ich erst mal was zu tun. Das Tastenentprellen ist kein Problem. Damit habe ich mich schon mehrfach beschäftigt. Mein Problem war aber bisher, daß ich nicht wußte, wo ich eine Tastenabfrage mit Entprellung und Uhr nachstellen zeitlich noch unterbringen könnte. Ich hatte ja schon mit dem Auslesen der Uhr erhebliche Probleme. Inzwischen sehe ich da aber etwas Land. Nun aber vielleicht auch noch für dich eine Denksportaufgabe: Ich hatte ja geschrieben, daß die Version 2 meines Codes nur die Sekunden und Minuten ausliest, aber die übrigen Daten nicht. Inzwischen habe ich mit einer LED festgestellt, daß im Programmteil "_Wahl" die Sprungbefehle nicht befolgt werden, obwohl es in der Simulation keine Probleme gibt. D.h. Std_Read und die danach kommenden Routinen wurden gar nicht angesprungen. Versuchsweise habe ich dann statt der Variablen C_Cnt die ich in _Wahl genutzt habe, eine neu definierte Variable eingesetzt und siehe da es funktioniert. Warum das aber so ist, habe ich keine Ahnung???? Gruß Bruno
Datum:
Buuhaaaa! Da hättst jetzt besser nicht gefragt. Dann hätt ich folgendes nicht gefunden:
add ZL, C_Cnt clr temp adc ZH, temp |
auch wenn clr das Carry-bit nicht ändert... Das ist einfach unterste Schublade. Das adc sollte wirklich auf jeden Fall direkt hinter dem zugehörigen add stehen. Du provozierst die Fehler sonst geradezu. Zur strafe 100 Zeilen Compilierten C-code disassemblieren! ;) Die Antwort auf deine detektivaufgabe ist ziemlich simpel: In der Simulation setzt du das TWINT-bit sobald es abgefragt wird. In Realität musst du da auf die RTC warten. In Echt dauert also die ganze Kommunikation mit der RTC viel länger. Bis die Sekunden ausgelesen sind hat der Interrupt schon vier mal ausgelöst. Dann ist C_cnt zu groß und die RTC wird erst wieder ausgelesen wenn das Bild vorne anfängt. Wenn du schon das Auslesen mit der Anzeige synchronisieren willst, dann häng das auslesen wenigstens am Stück an. Sprich: Du wartest, bis das Bild wieder oben anfängt. Dann wird die Zeit am Stück komplett ausgelesen. Danach wird wieder auf Bildanfang gewaret. Der Interrupt holt sich schon genug Rechenzeit. Dem ist das egal. Sebastian
Datum:
Deine Erklärung klingt zwar logisch, aber sie provoziert eine Reihe anderer Fragen: Ist deine Feststellung, daß der Interrupt schon 4 mal ausgelöst hat eine Vermutung, oder Berechnung? Wenn sie stimmt, dann verstehe ich nicht, daß das von dir vorgeschlagene Auslesen am Stück bei mir eben nicht funktioniert hat. Ich bin nämlich genau so gestartet und mußte feststellen, daß die Anzeige dann weg ist, oder wirres Zeug zeigt. Meine Vermutung war, eben weil während des Auslesens der Interrupt zuschlägt gibt es Probleme. Also habe ich das Auslesen so weit zerlegt, daß es keine Probleme mehr gab und war davon ausgegangen, daß die Zeit im Mainloop dann ausreicht. Das ist ja auch der Grund, warum ich das Auslesen mit dem Bildaufbau synchronisiert habe. Bruno
Datum:
Sebastian, deine Antwort auf meine "Detektivaufgabe" wie du geschrieben hast, hat mir sehr geholfen. Sie hat mich nämlich veranlaßt über das Problem nochmals nachzudenken und siehe da, es funktioniert nun auch mit dem Auslesen an einem Stück. Dadurch wird vieles einfacher. Gruß Bruno
Datum:
Angehängte Dateien:Hallo, super Projekt. der lcd controller funktioniert super. habe nur ein kleines problemm mit meinen programm wo mit ich den controller ansteuern will. und zwar seit dem ich text4 eingefügt (bis text 3 war alles super)habe gibt das programm mir noch mist am TX raus hat einer eine Idee wo der fehler ist habe da selbst nicht so viel ahnung von. mein code ist im anhang. Schon mal ein Dankeschön im vorraus Gruß, Max
Datum:
Angehängte Dateien:Hallo Sebastian, es ist so weit! Die Uhr läuft und Sekunden und Minuten lassen sich stellen. Mehr brauche ich nicht. Vorgesehen ist ein Schalter zur Wahl zwischen Sekunden und Minuten, und ein Taster zum Stellen. Gruß Bruno
Datum:
Hallo. Hat schon jemand ne richtig funktionierende Schaltung für die Kontrastspannung für das TG322450 Display ? Weil wie schon weiter oben beschrieben, hab ich auch das Prob, das in Abhängigkeit zu der Anzahl der angezeigten Zeichen die Spannung hoch- bzw. runtergeregelt werden muss, sonst wirds ziemlich grau. CU Bernd
Datum:
Angehängte Dateien:Hallo Bernd Mein TG322450 arbeitet jetzt einwandfrei. Ich hatte auch meine Schwierigkeitn mit dem Kontrast. Die Kontrastschaltung ist im Anhang allerdings habe ich einen LM324 genommen und anstelle dem Transistor eine Zehnerdiode 5,6V eingesetzt. Die Kontrastspannung regle ich mit einem Poti das in der Step up Schaltung eingebaut ist damit die Ausgangsspannung stabil bleibt. Vielen Dank an alle mitwirkende dieses Projekts. MFG Sebastian
Datum:
Angehängte Dateien:Hallo, ich war von der Idee begeistert einen atmega als Kontroller einzusetzen. Hier ein Großer Dank an Benedikt!. Was mir nicht so gut gefallen hatte, war das dieses Projekt viel in Assembler geschrieben wurde. Ich sträube mich nicht gegen Assembler im Allgemeinen... Wenn man aber mit jedem Prozessor auf 'Du' sein will, verliert man irgend wann den Überblick. Die Konsequenz daraus: schreib das doch in C. Weil diese Forderung an Benedikt eine unverschämtheit wäre (er hat hier schon genug Peonierarbeit geleistet) habe ich dies übernommen ;-). Gleich zum Nachteil: die Bildwiederholfrequenzen von Benedikt bekomme ich nicht hin! No WAY!!! aber 45Hz sind auf den Displays durchaus noch machbar. Warum das ganze in C? Ich wollte ein Display mit Touch-Screen das auch ein kleines Menüsystem hat mit dem man sich die 'Knochenarbeit' sparen kann. Weil ein Touchscreen angedacht war habe ich mich für das WD-H3224 von Pollin entscheiden. Rausgekommen ist dabei eine Platine die alle nötigen Aufgaben übernimmt. Mit einem Atmega168 oder Atmega328 ist auch noch ein zweiter Zeichensatz für große darstellung mit drin und ein Menüsystem in dem durch einfache definitionen Seiten und Funktionen definiert werden können. eine Seite kann dabei enthalten: Radiobutton (im eeprom gespeichert) Checkboxen (im eeprom gespeichert) Slider Horizontal Button (mit Funktion zum direkten Aufruf andere Seiten) Text Text editierbar und im eeprom abgelegt Text (int) editierbar und im eeprom abgelegt Um einen Text zu editieren wird eine 'Tastatur' eingeblendet und nach der Eingabe wieder in die vorherige Seite gewechselt. Leider hat die Ram-Beschränkung es nicht gestattet das über Layer abzuwickeln. Der Touchscreen wird direkt durch den Atmega abgefragt. Wird während dem Einschalten auf den Touchscreen gedrückt, wird die LCD-Anzeige mit Zeichen vollgeschrieben und man kann durch das berühren (horizontal) den Kontrast einstellen. Mit einen Druck auf den unteren Drittel des Displays wird die Kontrasteinstellung verlassen. Ich Packe hier den Code mit den Layoutdaten im Zip mit an, auch wenn der Code noch nicht 'Salonfähig' ist; er Funktioniert aber! Ach so.. jeder Druck eines Objektes der Seite ermöglicht das Aufrufen einer Definierten Funktion. Damit kann man z.B. auf ein 'Auf/AB' mit eigenen Funktionen reagieren. ich hoffe das das regt an damit was anzufangen ;-) bye woodym
Datum:
Angehängte Dateien:Hallo, Ich finde es klasse, wie lange dieses Thema konsequent verfolgt wird. Ich bin Programmierer, aber Elektronik Laie und bin ueber den Post hier gestolpert weil ich die CRT Roehre meines Kompakt Macs gegen ein LCD austauschen moechte. Das Videosignal ist im Anhang dargestellt. Nun lese ich hier "...aber 45Hz sind auf den Displays durchaus noch machbar...." - das Macsignal hat einen von nur 15Mhz. Mein Ihr, das ich die hier beschriebene Ansteuerung fuer mein Vorhaben benutzen koennte?
Datum:
hallo Christoph, leider muß ich dich enttäuschen. Zum einen haben die 45 Hz nichts mit deinen 15MHz zu tun (die 45Hz sind die Bildwiederholfrequenz die 15 MHz ist die Videofrequenz) und zum anderen ist dieser Kontroller auch nicht geeignet ein Videosignal darzustellen. 45Hz als Bildwiederholfrequenz scheint nicht viel zu sein (sieht man flimmern?). Bedingt durch die Art der LCD's die hier zum Einsatz kommen sind aber die LCD-Kristalle sehr träge. D.h. werden die Kristalle einmal ausgerichtet (schwarz oder weiß durch die Polarisationsfilter) braucht es eine nicht unerhebliche Zeit bis diese umgekehrt ausgerichtet werden können. Darurch ist auch bei einer geringen Bildwiederholfrequenz kein Flimmern zu sehen. Man darf nicht den Fehler machen dies mit heutigen LCD's (TFT) zu vergleichen. Damit diese ausgerichtet bleiben ist für jeden Bildpunkt ein eigener Transistor zuständig und eine andere Technologie beim LCD-Aufbau kann verwendet werden. Das was du suchst ist ein LCD mit einem Video-Eingang. Ob in Farbe oder SW kann ich aus den Unterlagen nicht erkennen. Das einfachste und unkomplizierteste dürfte in deinem Fall ein moderner LCD-Bildschirm sein der ein Videoeingang hat. Aber vorher vergleichen ob die horizontal, vertikale und video-Frequenz unterstützt wird. Das ganze läßt sich auch basteln... aber glaube mir aus eigener Erfahrung... ein fertiger Bildschirm ist billiger und nervenschonender. Investiere die ersparte Zeit dann lieber in ein schönes Softwareprojekt ;-). Übringens Softwareprojekt.... wie wäre es für das Menüsystem ein Konfigurationssoftware zu machen... grafisch schibt man sich die Seiten zusammen und bekommt dann als ergebnis eine Definitionsdatei die direkt in ein Projekt eingebunden werden kann. bye woodym



































































