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.
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
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
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.
@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
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.
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
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.
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).
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
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!
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
@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
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
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.
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.
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.
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...
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...
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?
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
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.
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 ?
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
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
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!
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.
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?
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.
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
>> 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.
Hallo,
habe mir ein Nan Ya LCD von Pollin gekauft
http://www.pollin.de/shop/detail.php?pg=OA==&a=OTM1OTc4OTk=&w=OTg4OTk4&ts=20
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
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
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
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 ?
@ 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
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.
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.
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?
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
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 ?
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
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.
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
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
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
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.
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
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...
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.
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 )"
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).
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.
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.
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
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
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.
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
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.
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
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.
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
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.
@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
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.
@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
Ich habe eine Frage zu den beiden Displays
http://www.pollin.de/shop/shop.php?cf=detail.php&pg=OA==&a=ODI1OTc4OTk=&w=OTg4OTk4&ts=0http://www.pollin.de/shop/shop.php?cf=detail.php&pg=OA==&a=OTM1OTc4OTk=&w=OTg4OTk4&ts=20
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, ???).
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.
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.
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
@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
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 ?
@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
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
@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
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...
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.
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
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
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.
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
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.
@ 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
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.
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
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
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.
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.
@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
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
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.
@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
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.
@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
@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 ?
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)
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.
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/M/C/3/4/MC34063.shtml
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.
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
@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
@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
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.
@ 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
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.
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
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.
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).
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
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.
>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
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
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.
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
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.
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
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.
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.
>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
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.
>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
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
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.
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
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.
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
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
@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 ?
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
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.
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 ?
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.
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 ?
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).
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 ?
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.
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
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.
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€
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.
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
@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?
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.
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.
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
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
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
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
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
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
@ 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
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
>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
@ 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
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.
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.
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 ?
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
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.
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.
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
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.
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
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
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
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.
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
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
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
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
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
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.
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
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.
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?
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.
> Falsche Drossel?
So eine:
http://www.pollin.de/shop/detail.php?pg=NQ==&a=OTY3OTQ3OTk=> 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
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.
> 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?
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.
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).
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.
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)...
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.
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
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
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
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.
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
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.
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
Mein Display ist soeben eingetroffen, wie durch ein Wunder ist es trotz
der lausigen Verpackung (voellig zermatschter Karton) ganz geblieben.
Moegen die Spiele beginnen!
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.
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
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.
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.
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.
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
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.
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 ;-))
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
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
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.)
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
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.
@ 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
@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
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ß.
@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
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.
Benedikt K. (benedikt)
ich hab die Funktionen mit ein Terminalprogramm aufgerufen.
Prima, ich danke Dir. Die Markierung lässt sich auch gut erkennen
Wigbert
@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
@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
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
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
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.
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
@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
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
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
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
@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
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.
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...
@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
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...
@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
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
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
Ä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
@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
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
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
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
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
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.
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...
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
@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
@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
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...(-:
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
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)...
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
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.
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
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
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.
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
Maximilian Keller (langerhans)
na, an der neg. Kontrastspannung(Drahtbücke anstatt Relais o.ä.)
Wird halt beim Pollin-Display nicht abgeschaltet
Wigbert
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
>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
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
@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
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.
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
>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
@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
@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
@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
@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
@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
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).
@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
@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
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.
@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
@ 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
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
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.
@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
@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).
@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
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ß
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.
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
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.
>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.
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
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
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.
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
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
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
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?
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.
@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
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?
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
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.
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.
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
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.
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?
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!
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:
1
sprintf(GD_CharBuf[6],"Sonnen AG : %02u.%02u Uhr",Sonne_AUF_UNTER.SAG_Std,Sonne_AUF_UNTER.SAG_Min);
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
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
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.
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
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).
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.
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
@ 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
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.
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
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.
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
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.
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
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
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.
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
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
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.
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
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.
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
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
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
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
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.
@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
>Ein anderes Exemplar des ATMEGA168 verhielt sich übrigens identisch
na, wird der m168 richtig erkannt? Les doch mal den AVR zurück.
Ich kann hier hin und her proggen , finde nichts.
Ckopt ist dort gar nicht.
Wigbert
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.
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
@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
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!
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 ?
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
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.
> 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
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
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
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
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.
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
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
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"
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
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
>> 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
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.
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.
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).
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/TG322450FNCWA-01.pdf 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
Kai B. schrieb:
> Das Display hat 26Pins nicht nur 25 wie Pollin schreibt und dieses> Datenblatt> http://www.dataimagelcd.com/product/tg/pdf/TG322450FNCWA-01.pdf 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.
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.
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).
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.
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.
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
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
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.
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.
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.
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.
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.
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...
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.
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
Das H3224V mit weißen LEDs sieht nicht schlecht aus. An das TG322450
kommt es nicht ganz ran, aber die 5-10€ für die LEDs scheinen sich zu
lohnen wenn ich das Bild so sehe, denn die weißen LEDs dürften momentan
mit deutlich weniger Strom laufen als die orangefarbenen.
Hallo,
ich habe diese hier bestellt. Hoffe das sie passen( für das WD-H3224V)
http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=390104822790
100Stk. Mit Preisvorschlag für 12.- zu bekommen.
Jetzt müssen nur noch die Displays ankommen.
Grüße aus Tirol.
Hallo,
ich habe von den LED zu viele ersteigert. Hätte jemand Interesse an 50
LED incl. Versand für 7,50.
Habe leider keinen Verwendungszweck dafür, außer für die Displays.
Mail an: aon.912847351@aon.at
Grüße aus Tirol.
@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.
Ich glaub ich werd mir wohl auch bei Ebay die LEDs kaufen und meine
Displays umbauen.
Das weiß sieht dann schhon gut aus. Das sorgt schon für einen doch
besseren Kontrast im vergleich zum Original.
Sieht das Grün wirklich so dunkel aus?
MfG Kai
>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
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.
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
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.
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)
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?
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.
Hallo Läubi
wenn du die LEDs zum umbau von den WD-H3224V meint musste mal nach den
Ebay link weiter oben schaun. Die sollten als replacment gut passen. Ich
hab mir jetzt auch mal 200 so SideLEDs bestellt damit ich meine umbauen
kann.
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?
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
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
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
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.
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.
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?
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é
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
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.
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!
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.
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é
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
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
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.
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
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
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.
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
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
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
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
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
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
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
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
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
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
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?
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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.
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
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
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
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
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?
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.
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
@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
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
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
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
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/PG64-G2432X17.pdf
Gruss,
Chris
@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-/Bauelemente/Aktiv/Displays/LCD_Modul_NAN_YA_LTBE9S159J1K.html
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
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
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
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
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
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:
1
.equ Font_St =0x600*2
2
.set WTag_St =0+Font_St
3
.equ den =2400+Font_St
4
.equ Jahr_St =2544+Font_St
5
.equ Dat_St =4464+Font_St
6
.equ Punkt =5044+Font_St
7
.set Mon_St =5092+Font_St
8
.equ Zeit_St =8452+Font_St
9
.equ Sek_St =4464+Font_St
10
.equ Doppelpunkt =12772+Font_St
und dann unten vor den Daten:
1
.org Font_St/2
Sinnvoller ist es, Labels zu verwenden. Du schreibst einfach vor den
Daten des Doppelpunkts
1
Doppelpunkt:
Vor den Wochentagen kommt
1
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
1
Januar:
2
.SET Mon_St = 5092+Font_St
3
ldi ZL, LOW(Mon_St)
4
ldi ZH, HIGH(Mon_St)
ist schlechter Programmierstiel.
Setze vor die Daten des Januar ein Label. Also zum Beispiel
1
Januar_Data:
obiger Code wird dann zu
1
Januar:
2
ldi ZL, LOW(Januar_Data*2)
3
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.
1
Warte:
2
in temp, TWCR
3
sbrs temp, TWINT
4
rjmp Warte
5
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
1
cpi C_Cnt, 4 ;bei C_Cnt =>4 ist das Lesen beendet
2
ldi RTC_Flag, 1
3
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
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
Buuhaaaa! Da hättst jetzt besser nicht gefragt. Dann hätt ich folgendes
nicht gefunden:
1
add ZL, C_Cnt
2
clr temp
3
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
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
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
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
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
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
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
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
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?
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
Hallo,
durch euere tollen Projekte habe ich lust bekommen mich an die
Ansteuerung des TG322450 Displays von Pollin heranzuwagen.
Sebastian wäre es dir möglich, den Schaltplan oder dein Projekt ins
Forum zu stellen oder es mir per E-Mail zuzusenden? Mir fehlen die
Informationen, wie ich die Versorgungsspannung von ca. 23V und die
Teilspannungen erzeugen muss.
Wie wird bei diesem Display das Touchpennel ausgelesen? Ganz einfach mit
zwei analogen Eingängen an einem Mikrokontroller für die X- und Y-Achse?
mfg Florian
Hallo. I am testing the textmodus controller in the spare time...
...but for now I obtain only vertical lines like a barcode...
I think it could be a wiring error. Did you ever experienced something
like this?
Danke,
Alez
Bei meinen Versuchen, einen Controller für das Epson-Display
(Beitrag "LCD Display 480x360, blau, bei Pollin") zu finden, bin ich hier
gelandet.
Was ich hier sehe sieht echt super aus.
Die reine Textdarstellung reicht mir, aber wenn ich jetzt theoretisch
den Controller aus dem Eingangsthread nachbauen würde,würde der dann
funktionieren?
Oder wie muss man den modifizieren?
Ich finde die Idee, einen LCD-Controller fast nur mit einem MEGA 8 zu
bauen (besonders da ich hier noch einen herumliegen habe), einfach
genial, bin aber in ASM nicht besonders bewandert.
Kann mir da jemand helfen?
Auch mit der Anschlussbelegung habe ich so meine Probleme.
Ich habe zwar das Datenblatt meines LCD
(http://www.mikrocontroller.net/attachment/3883/EG9006F_NS.pdf), finde
aber die Bezeichnungen aus dem Schaltplan nicht wieder.
Wie schließe ich das an?
Mit freundlichen Grüßen,
Valentin Buck
Hallo zusammen,
(ich hoffe das liest noch jemand :-) )
ich habe das Projekt hier nachgebaut und muss sagen : SUPER ARBEIT!
Großes Lob an alle, die mitgeholfen haben.
Jetzt hab ich aber ein kleines Problem. Ich sehe den Begrüßungstext
problemlos, also Kontrastspannung u.s.w. alles OK denke ich.
ABER : Ich habe durchlaufende horizontale weiße Streifen auf dem
Display. Sieht so ein bischen aus, als könnte man den Bildaufbau sehen ?
Ich benutze einen Mega8 und ein altes Optrex Display DMF50081. Kann es
sein, dass der Mega8 zu langsam läuft ? Fuses sind OK, kann man das
vieleicht irgendwie messen ? Mit meinem Frequenzzähler kann ich leider
nicht am Quarz messen, dann bricht der Schwingkreis zusammen.
Danke schon mal
Markus
Hi,
hier die Fuses. Mittlerweile habe ich die Streifen ohne flackern auf dem
Bild. Das habe ich durch anpassen der Quarzfrequenz im Source
hinbekommen. Ein Bild dazu hab ich angehangen. Vieleicht hast Du eine
Idee dazu.
Gruß Markus
Hm. Die Fuses sollen passen. Wie sieht dein Aufbau aus? Kerkos an den
Quarz-Pins nach GND? Wert? (Ich nehm immer 22pF und hatte nie Probleme)
Vielleicht zu lange Beine am Quarz und den Kerkos? Steckbrettaufbau oder
so? Anderen Quarz getestet?
Hi,
erst mal danke für Deine Mühe, bin grade nochmanl alles am checken.
Platine ist selbst geätzt, Layout sollte in Ordnung sein, am Quarz sind
22pF. Ich habe langsam das Gefühl, dass es doch nicht die Frequenz ist,
sondern irgendwie Daten fehlen, die zum Display gehen. Das Ganze ist
doch schon SEHR regelmäßig, die Abstände sind gleich. Das macht mich ein
wenig stutzig.
Gruß Markus
Soooo,
Problem gelöst !!!!
Meine Versorgungsspannung beträgt gemessene 5,1V. Ich hatte die
Brownout-Detection an.
Wenn ich die Brown-out-Detection ausschalte, dann läuft der Controller
einwandfrei.
Hier noch ein Bild von den aktuellen Fuses.
Danke nochmal für die Tipps !
Gruß Markus
o0 Das bedeutet, dass deine Spannung zeitweise unter 4V faellt und
wahrscheinlich auch hoeher als 5,15 V ist in den Peaks. Ueberpruef mal
deine Spannungsversorgung (Oszilloskop), irgendwas laeuft da schief!
Hallo Zusammen,
nochmal vielen Dank für die vielen Tipps, ich hab wirklich den Wald vor
lauter Bäumen nicht gesehen. Bin wohl beruflich zu verwöhnt vom
Schaltungsdesign, dass ich zu Hause zu schlampig werde :-)
Es geht jetzt auch mit eigeschalteter BOD. Schuld für die Sache war
weder ein fehlender Abblock-C noch der Schaltregler. Das Problem war ein
DC-DC-Wandler im Rest der Schaltung, der von der selben Quelle gespeist
wird. SO einen Ripple auf der Versorgung hatte ich vorher noch nie
gesehen. Anscheinend hat das die BOD massiv gestört.
Vorerst hab ich den DCDC getauscht, das scheint zu reichen, wenn ich ein
Re-Design mache muss das anders gelöst werden.
Nochmal vielen Dank
Gruß Markus
Mahlzeit,
hab gelesen das es auch einen Thread zu grfischen Darstellungen geben
soll, könnte den Link jemand posten, entschuldigt falls ich den
überlesen habe, aber der Thread hier ist sehr lang :)
und hat jemand schon eine Musterlösung zum LCD TG322450 parat, mit
Schaltplan, oder sogar Layout?
MfG
Florian
Hallo Florian.
Ich hab dir mal im Anhang meinen Schaltplan für die Kontrastspannung
gepostet, damit klappts bei mir ohne Probs mit dem TG.
Für die Ansteuerung hab ich keinen Plan, hab einfach vom Nanya auf das
TG umgestrickt.
Das schwierigste war für mich die Kontrastspannung hinzukriegen, aber
dank der Jungs hier im Forum, war das dann auch kein grosses Problem
mehr, nochmal Herzlichen Dank dafür.
CU
Bernd
Hallo,
Ich hab dieses Projekt schon vor einiger Zeit mit Begeisterung gelesen,
und wollte es sofort nachbauen, hab alle Teile besorgt bin dann aber
nicht mehr dazugekommen. Jetzt über Weihnachten, hab ich es endlich
geschafft und es aufgebaut. Leider stellten sich auf dem Display lauter
vertikale Linien ein.
Hat jemand eine Idee was der Grund ist ?
Danke u Gruß
david
hallo,
danke für den Tipp. Hab mal alle Datenleitungen abgemacht. Es stellen
sich dann die gleichen Streifen ein. Nachdem der Text ja eig. ordentlich
kommt, denk ich dass das Display einen Schaden vom herumbasteln genommen
hat.
Leider gibts das Display beim Pollin nicht mehr.
Hat jemand noch ein LCD-Modul NAN YA LTBE9T372G1K ???
Wenn ja ich würde eines abkaufen.
Viele Grüße
David
Das Fehlerbild deutet stark darauf hin, dass du zwischen Pin 10 und 11,
oder vielleicht zwischen Pin 6 und 7 der Displayleitungen einen
Kurzschluss hast (kann aber auch wo anders sein). Vor allem wenn du am
Display selbst rumgelötet hast solltest du dir die Lötstellen nochmal
anschaun. Da hab ich auch schon ein paar Brücken produziert.
Das Display ist höchstwahrscheinlich vollkommen in Ordnung. Schau dir
die Lötstellen nochmal an bevor du in ein neues investierst.
Sebastian
hi,
ich hab schon alle Leitungen auf Kurzschluss überprüft, ist alles in
Ordnung. Und wie gesagt selbst wenn ich die Datenleitungen nicht
anschließe bekomm ich ein Bild mit lauter weißen vertikalen Linien.
Wenn jamand noch ein Display hat, wäre es super wenn er sich unter
david_stecher@web.de melden könnte. Da ich mir für die anderen Displays
beim Pollin eine neue Schaltung bauen müsste.
Danke. u. Gruß
Kontrolliere mal die Datenleitungen direkt auf dem Display. Nicht nur
die Lötstellen, sondern auch die Leiterbahnen bis zu dem IC direkt auf
der Displayplatine (Lupe erforderlich!).
Gruß Meik
danke für die Tipps, hab das Display aufgemacht und alles genau nach
Kurzschlüssen o. sonstiges durchgeschaut, ist alles in Ordnung. Es ist
auch keine der Datenleitungen auf Dauer5V . Macht es sinn den
Spaltentreiber zu tauschen ?
Der Spaltentreiber. Hmmm... Daß der defekt ist kann schon sein, ist aber
eher nicht so wahrscheinlich. Hast du mal einen anderen Controller
versucht oder kannst du die Signale auf den Datenleitungen mit einem
Oszi beobachten?
jo, controller hab ich schon mal nen anderen probiert, oszi hab ich
auch, aber ich bekomm demnächst ein neues display, (dank des marktes
hier im forum) dann kann ich meine schaltung nochmals überprüfen.
Hallo zusammen,
hab mir nun auch 2 Pollin WD-H3224V zugelegt aber ich komme nicht zum
Erfolg. Ich habe das Projekt von woodym versucht aufzubauen und zwar
ohne SMD-Prozessor sondern in DIP. Nur beim Atmega 8 bekomme ich beim
kompilieren ständig eine Fehlermeldung (Speicher überlappt) und beim
Atmega 168p funktioniert das kompilieren aber ich habe keinen atmega168p
sondern nur den Atmega 168 in DIP wenn ich die Software auf den
speichere ist das Display schwarz und der Prozessor wird heiß ??? Hat
jemand einen Lösungsansatz, ich würde dieses Display gerne im einfachen
Textmode mit dem Touchpad benutzen.
Gruß Walter
Hallo nochmal,
hab jetzt mal die Schaltung von Benedik aufgebaut aber beide WD-3224V
lassen sich nicht dazu bewegen irgendwas außer einem schwarzen Bild
anzuzeigen. Die Kontrastspannung lässt sich nachdem ich einfach mal ein
Poti eingebaut habe von 0-32 V einstellen, trotzdem bekomme ich nur ein
schwarzes Bild. Die Schaltung funktioniert für das E8504CZZ von Pollin
tadellos sobald ich aber das WD-H3224V anschließe habe ich keine Anzeige
mehr. Es können doch nicht beide WD-H3224V defekt sein. Was mache ich
falsch ???
Gruß Walter
Ich denke, der Fehler wird im ATmega liegen. "Wird heiß" ist schlecht.
Vielleicht mit der Kontrastspannung in Berührung gekommen? Verpolt?
Layout richtig? Manche Dinge, die man als Anfängerfehler abtut,
passieren auch den Profis hin und wieder noch.
Nachtrag: Habe erst überlesen, daß es mit dem anderen Display geht.
Vielleicht ist die Steckerbelegung für das WD-3224V nicht ganz richtig,
und es wird eine Leitung kurzgeschlossen, oder Kontrastspannung in den
ATmega verschleppt.
Hallo,
bin jetzt ein Stück weiter hab einfach nochmal alles neu aufgebaut und
die Kontrastspannung extern eingespeist. Ich hab den Eindruck das
Problem liegt an dem Display off/on Pin denn laut Schaltplan (Bendikt)
wird der Pin ja direkt aus dem Atmel angesteuert wenn ich den Pin aber
wie bei der Schaltung für das E8504CZZ mit ca 21 Volt versorge bekomme
ich ab und zu eine Anzeige auf dem WD-H3224V, es kann eigentlich nicht
mehr viel falsch sein. Siehe Foto:
Kai B. schrieb:> Zum einen nochmal 2 Bilder vom großen Optrex das lässt sich echt klasse> auch mit invertiertem Bildinhalt nutzen.
An welchem Controller hängt denn das Optrex da? Nach Textmodus sieht es
ja nicht aus.
Hallo Alekzander
Ich habe das Display damals mit einem Epson S1D3700 Controller betrieben
welchen ich für die Testzwecke an einem LPT Port meines Computer mit
Freebasic angesteuert habe.
Gruß,
Kai
Hi,
ich hab mal die Schaltung von Benedikt zusammengebaut, doch leider zeigt
das Display nichts an. Ich verwende das schwarze Nanya LTBE9T372G1K, das
laut Datenblatt eine Spannung von ca. 23V benötigt. Die Spannung liegt
auch an, solage das Display nicht angeschlossen ist. Wenn das Display
ageschlossen ist, wird der pnp Transistor BC327 ziemlich heiß und die
Spannung fällt ab auf ca. die Hälfte. Den ATmega 8 hab ich definitiv
richtig programmiert und auch die richtigen fusebits gesetzt, was ich
auch schon 2 mal geprüft hab. Desweiteren habe ich mehrfach die
Schaltung mit dem Schaltplan verglichen und bis auf einen verpolten Elko
(den 22µF) hab ich nichts gefunden. Trotz Korrektur läuft nichts. Ich
bin echt ratlos..
Könnte es vllt. an einem defekten Bauteil liegen?
Den MC34063 hab ich schon gewechselt ohne Erfolg...
Oder liegt es daran, dass ich ein Schaltnetzteil (so ein kleines wie bei
Handy un co. üblich) von Pollin verwende, welches die Schaltung durch
unsaubre Glättung oder ähnliches stört?
Schon mal vielen Dank für eure Hilfe!
Ich hatte es mal, dass die Spannungsversorgung für den Kontrast nicht
anlief, weil die versorgungsspannung zu langsam gestiegen ist. Wenn du
erst das netzteil einsteckst und dann auf der niederspannungsseite erst
einschlatest sollte das aber kein problem sein.
Wenns nichts hilft ist wohl doch ein Fehler in der Schaltung ;)
Sebastian
Okay war ein Fehler in der Schaltung jetzt läufts endlich! Nur ist mir
noch aufgefallen das im Quelltext verison 1.2 ein Zahlendreher drin ist.
Hab nämlich ne Baudrate von 38400 eingestellt und das Display hat nur
Müll angezeigt. Dann is mir aufgefallen, dass das Display 34800 Baud
anzeigt und nicht 38400. Nach dem korrigieren lief dann alles
einwandfrei!!!
Hallo noch mal an alle,
also hab mir jetzt noch mal 2 neue WD-H3224V bei Pollin gekauft, aber es
funktioniert bei mir einfach nicht mit der Anzeige hab mit dem Pin
:Display ON/OFF so ziemlich alles versucht aber alle 4 Displays wollen
nicht hab nach wie vor die Schaltung von Benedikt mit der entsprechenden
Software könnte es vielleicht irgend ein anderes Timingproblem sein
vielleicht ist das M Signal nicht optimal für dieses Display hoffe
weiterhin auf eure Hilfe.
Walter10
Alessandro Mauro schrieb:> Hallo. I am testing the textmodus controller in the spare time...> ...but for now I obtain only vertical lines like a barcode...> I think it could be a wiring error. Did you ever experienced something> like this?> Danke,> Alez
Did you find the answer?
I have the same problem!
schubsGabi Mihai schrieb:> lines like a barcode
Maybe you confused something with the clock lines or the 8bit/4bit
selection pin?
Ich versuche gerade, mir selbst einen Controller in C zu stricken.
Nach Konvertierung des Zeichensatzes etc.pp. Hab ich eine
Hardeware-Frage:
Habe hier ein TG322450 FMCWA-10. Kann man das mit Logik-Spannung 5V
betreiben? Im TG322450 FNCWA-10 Datenblatt steht folgendes:
Electrical absloute maximum ratings:
Logic Supply Voltage VDD-VSS | Min. -0.3V | max. 6.0V
[...]
Electrical Characteristics:
Logic Supply Voltage VDD-VSS | Min. 3.0V | Typ. 3.3V | max. 5.5V
[...]
Pin connections:
No. 1 | VDD | Logic Power input, 3.3V
[...]
Datenblatt TG322450 FNCWA-10 ist angehängt.
Ich denke, es sollten zwischen Transmissive- und
Negative-Panel(Kennbuchstabe M/N) keine schaltungstechnischen
Unterschiede in der Ansteuerung auftreten.
mfg/regards mf
Hallo,
ich verfolge schon lange und mit großem Interesse diesen thread.
Bin aber beim Nachbau etwas ins Stocken geraten mit einem Problem.
Ich verwende das Pollin-Display WD-H3224V und bekomme Zeichen angezeigt
in denen sehr häufig eine Pixelspalte fehlt. Auch bewegt sich PC3(D3)
nicht, er liegt dauernd auf 0. Kann mir jemand sagen ob das richtig ist?
Wenn ja dann hat wohl das Display ein Problem.
Kennt jemand dieses Problem auch ?
mfG Joachim
Hallo Joachim,
wenn ich mal vermuten darf hast du wahrscheinlich das Flachbandkabel
abgelötet und dünne Leitungen am Display angeschlossen so wie ich und
mir ist erst unter einer starken Lupe aufgefallen das meine
Lötverbindungen auf der Platine fehlerhaft waren. Bei dir könnte ich mir
vorstellen du hast D3 mit GND kurzgeschlossen, sitzen ja beide direkt
neben einander, was auch deine ständige null erklären würde. Nachdem ich
meine Displays alle mit noch dünnerem Draht und noch weniger Lötzinn neu
angelötet habe laufen alle Displays tadellos.
mfg
walter10
Hallo Walter10,
vielen Dank für den Tip,
ich werde mir die Verschaltung daraufhin noch mal anschauen.
Allerdings kann ich das Flachbandkabel vom Display über eine
Steckverbindung trennen und bis dorthin ist die Verdrahtung
nicht so defiziel. Im Abgesteckten Zustand habe ich auch
keine Bewegung an D3.
Aber schau ma mal.
m.f.G. Joachim
hallo walter,
sorry das ich erst jetzt antworte... im augenblick bin ich etwas im
stress :-).
der Prozessor darf nicht heiß werden. Das was ich als mögliche
Fehlerquelle sehen würde ist gemnau das was du gefunden hast. Die
Schaltung ist wirklich relativ unproblematisch, ein kurzschluss am
display kann dir das Display und den Prozessor kosten (weiß ich aus
erfahrung!). Auf der Dip sollte ausreichend sein. Ram ist genauso viel
da, und Flash auch. Es kann sein das du eventuell im Makefile die
Speicheradressen für den Dip anpassen mußt.
Was mir ein bischen komisch vorkommt... das display on/off hat kein 21V.
das ist nur ein logic-Signal. es gibt nur zwei Spannungen die merh als
5V haben. das ist zum einen die 21V (Laut pollinbeschreibung 32V) und
die Spannung für die LED's die ich in reihe geschaltet habe um nicht aus
einer hohen Spannung (12V) mit einem Linearregler 5V erzeugen muß um die
dann für die LED's zu verwenden ... dann reicht kein 78L05 mehr weil zu
viel verlustleistung verbruzelt werden muß.
@heiko
der Font ist wie folgt ausgebaut:
1. Zeile Char 1-n
2. Zeile Char 1-n
usw
bei 128 Zeichen bedeutet dies das zuerst immer 8 pixel der ersten Zeil
des Char kommen. dann die ersten 8 pixel des 2. char der ersten zeile.
bis 128 mal die erste zeile definiert wurde. dann kommt das ganze mit
der 2. zeile
usw.
vielleicht wird es auch klarer wenn man sich ansieht wie das ganze aus
dem speicher geholt wird (alle syncs unberücksichtigt; 40x24 zeichen;
fontbreite 8 pix, fonthöhe 12 zeilen).
for(charzeile=0; charzeile<24; charzeile++)
{
for(charzeichen=0; charzeichen<40; charzeichen++)
{
for(zeichenzeile=0; zeichenzeile<12; zeichenzeile++)
{
portD0-D3= *( (flash_font_basis + ((zeichenzeile<<8) |
charram[(charzeile*24) + charzeichen]))>>4)
portD0-D3= *( flash_font_basis + ((zeichenzeile<<8) |
charram[(charzeile*24) + charzeichen]))
}
}
}
die ganze berechnung des pointers wird durch das getrennnte setzen von
LByte und Hbyte sehr viel schneller.
bye woodym
Hallo woodym,
schön das du wieder da bist. Also mein drittes Pollin Display
funktioniert tadellos im Textmode mit Touchscreen nach Benedikts
Schaltung und der Touchscreen Applikation AN#148 von Bascom. Auch im
Grafikmodus mit 8 Graustufen (nach Sebastian und Benedikt) funktioniert
das Display tadellos.
Aber auf die Idee das Display von Pollin zu benutzen hat mich dein
Posting mit dem Anhang "lcd_text" gebracht, weil du alles in einem
Prozessor machst, den Textmode und den Touchscreen. Aber leider habe ich
dieses Projekt nie zum laufen bekommen:
1. Wenn ich den Sourcecode für den Atmega8 kompiliere bekomme ich eine
Fehlermeldung das der Ram Speicher nicht reicht bzw. sich mit einer
anderen Sache überlappt. (Meine C-Erfahrungen sind leider noch nicht
ausreichend um den Fehler zu beheben).
2. Wenn ich den Sourcecode auf den Atmega168 kompiliere bekomme ich zwar
einen Hexfile aber es tut sich nichts auf dem Display als Anmerkung ich
benutzte keine SMD Bausteine sondern nur dir DIL-Typen.
Ich habe die Schaltung so aufgebaut wie in deinem Schaltplan angegeben,
allerdings nur mit den DIL-Prozessoren. Hast du vielleicht einen Tip für
mich oder eine Lösung für den Atmega8 im DIL Gehäuse
mfg
walter10
Eine Frage an die Profis.
Ich habe hier ein LCD TLX-1241 (480x128 4_Datenbits). Dieses würde ich
gerne mit meinem kleinen Computer Z86 clone (UB8830 8MHz) bedienen. Wäre
das möglich? Gibt es eventuell fertige routinen für den Prozessor?
Hi,
ich würde gern, den hier vorgestellten Controller nachbaun um damit ein
wenig zu experimentieren. Welchen Display könnte ich dafür nehmen, die
meisten von Pollin sind ja nicht mehr lieferbar und für das Sharp
bräuchte ich ja den passenden Steckverbinder, der mich ersten fast
soviel wie das Display selbst kostet und mich beim Löten wohl noch etwas
überfordert (SMD).
Kennt da jemand ein passendes aktuell zubestellendes Display?
Gruß
Sebastian
Hallo Kai,
beim Überschauen der Beiträge habe ich gesehen, dass Du das Display
(letzter Beitrag) erfolgreich zum Laufen bekommen hast. Da es ein langer
Beitrag ist, könntest Du noch einmal zu diesem Beitrag den aktuellsten
laufenden Code zu dem von Dir vorgeschlagenden Display posten? Wie
funktioniert eigentlich dann die Datenübergabe, ich weiß über RS232, mir
geht es um die Befehle. Also wie kann ich in eine bestimmte Zeile einen
bestimmten Text schreiben.
Vielen Dank MAT
Hallo Matthias
mit einem Aktuellen Code kann ich dir leider nicht weiter helfen da ich
diese Schaltung bisher nur einmal aufgebaut habe und das war mal ganz am
Anfang. Ich nutze bisher den s1d13700. Aber soviel ich weiß müssen die
Steuerbefehle (unterer Teil der ASCII Zeichen) direkt gesendet werden
also nicht als Zahlen gesendet werden.
Die Befehlsliste
http://www.mikrocontroller.net/attachment/34192/lcdcon_320240_mega8.pdf
Hier steht zum Positionieren muss das Zeichen 17 und als Zeichen dann
die Position geschickt werden.
Aber in wie weit das noch aktuell ist kann ich leider nicht sagen.
Bei so Monster Threads geht ein scheinbar aktueller SW Stand schnell
unter.
Hallo,
seit kurzer Zeit bin ich in dem Besitz von zwei WINTEK HD-H3224V die ich
gerne ansteuern möchte. Die letzten Wochenenden suchte ich nach einer
Dokumentation für die korrekte Ansteuerung der Steuersignale und ihrer
zeitlichen Abfolge.
Auf meiner Suche konnte ich nur diese beiden Dokumentationen
finden(Link:
http://www.glyn.de/data/glyn/media/doc/APP44_DOTMATRIX_LCD_ONM16C.pdf
und Anhang).
Ich habe versucht das Display nach der Dokumentation (Link) für einen
Testbetrieb zum laufen zu bekommen (siehe main.c als Anhang), leider
erfolgt nur ab und zu ein volles beschreiben des Displays, egal wie
viele Zeilen/ Spalten ich beschreiben möchte, welches nach ca. 5
Sekunden wieder verblast.
Ich kann mir nicht erklären woran es genau liegt, weshalb ich für jede
Dokumentation/ Hilfe, die die Steuersignalabfolge beschreibt dankbar
wäre.
Ich habe auch schon versucht das ganze testweise über das Projekt von
WOODYM zum laufen zu bekommen, leider wie bereits weiter oben schon
beschrieben wurde meldet der Compiler für den Atmega8, das der Speicher
nicht ausreicht.
Vielen Dank,
Rolf.
Ahoy,
ich habe mich auch mal daran gemacht, für das LCD-Modul WINTEK
WD-H3224V, welches noch bei Pollin erhältlich war, Benedikts Platine
aufzubauen.
Da die Kontrastspannung für dieses Display abweicht, habe ich den
entsprechenden Wandler nach Matthias Reichelts Schaltung aufgebaut.
(siehe hier: Beitrag "Re: Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus" )
Als ich dann vor der kompletten Bestückung der Sockel noch einmal zur
Sicherheit alles durchgemessen habe, fiel mir jedoch auf, dass der
MC34063 nur die 5V Eingangsstrom an Vout liefert und nicht die
erwünschten 21V.
Daraufhin habe ich die entsprechende Bestückung noch einmal genau
kontrolliert und durchgemessen, konnte aber keinen (Bestücktungs-)Fehler
entdecken.
Was mich jedoch in Matthias' Schaltung (s.o.) stutzig machte, war, dass
er für R1 und R2 gleich grosse Widerstände (jeweils 4.7k) verwendet hat.
Kann das überhaupt sein ?
Ich habe mir das entsprechende Design-Tool für den Aufbau eines MC34063
auch noch einmal angesehen und dort ein paar Werte durchgespielt -- es
kamen in jeder Konfiguration stets Werte heraus, bei denen sich R1 und
R2 deutlich unterschieden, was, so weit es mir mein laienhaftes
Verständnis der Materie erlaubt (ich bin nicht vom Fach) auch sinniger
erschien.
Mag sich vielleicht einer der erfahreneren User hier Matthias'
Schaltplan für den MC34063 noch einmal genau ansehen und mich durch
einen entsprechenden Hinweis erleuchten, wo der Fehler liegen mag ?
Gruss,
der Nachbauer
--- Hinweis:
Den in Matthias' Schaltplan nicht näher angegebenen C0 habe ich mit
470µF bestückt, ausserdem zwischen Vin und Vcc des MC34063 einen C mit
100µF vor die Masse geschaltet. Für den Ct habe ich einen Kerko mit 1.2
nF verwendet.
Hallo zusammen,
ich habe eine Frage des bezüglich des Assembler Codes für die Display
Ansteuerung.
Und zwar geht es um folgenden Auszug aus dem irq zur Ausgabe einer
Zeile:
1
sbis PORTB, M
2
sbi PORTB, M
3
sbic PINB, M
4
cbi PORTB, M
Müsste das nicht so aussehen:
1
sbis PINB, M
2
sbi PORTB, M
3
sbic PINB, M
4
cbi PORTB, M
Wenn nicht würde ich mich freuen wenn es mir jemand begründen könnte.
Vielen Dank
Felix
Hey Grelli,
lieben Dank für die beiden Schaltpläne.
Als ich mir das angesehen habe, war meine Welt wieder in Ordnung.
Ich bin zwar noch nicht dazu gekommen, meinen Schaltungsaufbau
dementsprechend zu ändern, aber Deine Schaltung ist dann auch für mich
wieder verständlich.
Ich habe keine Ahnung, was Matthias Reichelt da bei seinem
Schaltungsaufbau gemacht hat, aber lt. Datenblatt zum MC34063 würden da
im Idealfalle dann 2.5V heraus kommen ...
(Was aber nicht passieren wird, da der MC durch den gigantischen Rsc
sowieso nicht mehr anständig schalten dürfte.)
Herzlichen Dank noch einmal für die Hilfe,
Euer Nachbauer
Ähm ja wenn wirklich dein angegebener Typ ist dann hast du da LEDs als
Hintergrundbeleuchtung drin. Und die Negative Versorgung erzeugt das
Ding auch schon.
Hallo Benedikt,
Minimaler Bauteileaufwand bei maximalem Erfolg! DAs nenn ich mal ein
gelungenes Projekt. Aber so kennt man dich eben.
Dafür ein großes Danke!
Ich hab mal noch den TWI mit eigebaut um auch per I2C Daten an das
Display zu senden. Dafür ist die Baudrateneinstellung für 1200 Baud
weggefallen. Also bei "000" -> TWI enable.
Hab den Code und das Hex mal mit angehangen. Alles im Orginal + TWI ohne
meine geänderte Pinbelegung.
-> geänderte Pinbelegung???
>>Was mir aufgefallen ist:
Der mega8 lässt sich in deiner Orginalbeschaltung nicht im Betrieb per
ISP proggen. Ist das so gewollt? Ich persönlich habe die Pins für CP,
LOAD, FRAME, M alle auf PORTD verlegt. ON/OFF auf PB0, und schon ist die
ISP Schnittstelle frei.
Gruß
Steffen
Hallo,
Ich mir mal so überlegt, ob man mit einem ATmega1284P-PU (gibt es bei
Pollin) nicht sogar den LCD-8Graustufen_Grafikcontroller implementieren
könnte.
Der ATmega1284P-PU hat intern 16kByte RAM !!!
Damit könnte einiges an Hardware des LCD-8Graustufen_Grafikcontroller
wegfallen und der Aufbau sich ähnlich einfach gestalten wie hier dieser
LCD-Text_Controller.
Was meint ihr??
Steffen H. schrieb:> Ich mir mal so überlegt, ob man mit einem ATmega1284P-PU (gibt es bei> Pollin) nicht sogar den LCD-8Graustufen_Grafikcontroller implementieren> könnte.>> Der ATmega1284P-PU hat intern 16kByte RAM !!!>> Damit könnte einiges an Hardware des LCD-8Graustufen_Grafikcontroller> wegfallen und der Aufbau sich ähnlich einfach gestalten wie hier dieser> LCD-Text_Controller.
Hallo Steffen,
bist Du mit Deinen Überlegungen zum ATMega1284P-PU schon weitergekommen?
Dieser hat zwar 16kByte RAM, aber ist meines Wissens auch nicht für
externen Speicher konzipiert.
Mich würde im Augenblick eine aufwandsarme (Hardware) Textversion
interessieren, allerdings wenn möglich mit VT100 kompatiblem Protokoll.
Ich bekomme morgen meine 1284'er und werden dann mal starten.
Gruss Edgar
Hallo Edgar
Als Textcontroller schon viel zu Groß aber wenn man bedenkt, dass es bei
ATMEL nichts zwischen 4k RAM und 16k RAM gibt!
Ich betreibe ja den hiesigen Textcontroller (ATmega8) mit TWI
Schnittstelle. Und ich muss leider feststellen, dass der FIFO Buffer
schnell voll ist. Deswegen wäre ein größerer RAM schon sehr von Vorteil.
Ich habe übrigens nicht weiter an der Idee gearbeitet. War ja auch nur
so ein Gedanke den mir Sebastian schnell wieder ausgeredet hat.
Siehe:
Beitrag "Re: Grafikfähiger LCD Controller für 320x240 LCD mit 4 Graustufen"
Gruß Steffen
Hallo,
ich beobachte diesen Thread schon seit langem, und genauso lange wollte
ich diesen bzw. einen seiner "Geschwister-Controller" hier im Forum
nachbauen.
Da ich wohl nicht dazu kommen werde verkauf ich nun meine LC-Displays
mit Touchpanel. Vielleicht kann sie ja jemand von euch ehernvoll in
Betrieb nehmen.
Hab sie im Markt eingestellt
(Beitrag "Verschenke/Verkaufe Touch LC-Displays, Textoolsockel, div. USB und Audio IC´s").
Philipp
@Moderator: ich hoffe diese "Werbung" ist erlaubt, sonst bitte löschen.
Hallo allerseits,
weiß der ein oder andere von euch vlt welche FFC Buchse die Passende für
das WD-H3224 von Pollin ist? Und am besten noch ob es die in einer
Eagle- *.lib schon gibt. Schätzen würde ich jetzt einen 0,3mm Pitch aber
ich kenn mich mit den Dingern gar nicht aus und da die nicht gerade
billig sind wie ich schon rausgefunden habe wäre es schon gut die
passende zu bestellen.
LG Chris
Hallo Grelli,
danke für die schnelle Antwort. Habe die Buchse gefunden.
Sind es also doch 0.5mm... ist aber auch echt doof nach zu messen.
Da bin ich ja froh das ich nicht die 0.3er bestellt habe wie erst
angenommen.
LG Chris
Hallo!
Und zwar ich möchte für mein Projekt das Wintek WD-3224V Display
(Pollin)
nutzen und hätte da mal par Fragen:
1.) Wäre es auch möglich statt des Atmega Controllers ein 8051-Derivat
wie den AT89LP51ED2 ( http://www.atmel.com/devices/AT89LP51ED2.aspx
)
zu nehmen, da ich bis jetzt nur mit 8051 Kompatible gewerkelt habe ?
2.) Wo krieg ich den AT89LP51ED2 überhaupt noch her, weil bei
Conrad,Polli,
oder Farnel ist er nicht gelistet
3.) Gibt es sonst alternativen zu Atmel 8051-Core single cycle
Controller
von anderen Firmen evtl. ?
Danke, das wär erstma alles!
Ganz ehrlich... solche Fragen sind ermüdend.
Noch im allerersten Absatz des ersten Postings dieses Threads heißt es:
Benedikt K. schrieb:> Für eine hohe Geschwindigkeit ist die> Software in Assembler geschrieben.
Also nein, die Software läuft nicht auf einem 8051, egal ob von Atmel
oder nicht. Die haben einen anderen Befehlssatz.
Natürlich könnte man das alles portieren und vermutlich findet sich auch
ein 8051 dessen Hardware ausreicht. Da ich aber von 8051 keine ahnung
hab kann ich das nicht weiter beurteilen.
Der Controller lässt sich doch wunderbar über UART ansteuern. Es reicht
also, wenn du einmalig das hex in den AVR flashen kannst. Danach musst
du dich nie wieder mit AVRs beschäftigen.
Gruß, Sebastian
Ja ist mir schon klar das die beiden uC nicht Codekompatibel sind und
klar könnte ich einfach mir ein AVR kaufen diesen fertigen Code
einspielen...
und was hab ich davon lerntechnisch usw. ? Das macht doch kein spass
einfach zu kopieren, da kann ich ja auch gleich im Laden gehen mir ein
feritges Display kaufen (viel zu teuer)... toll :(
Ich find die Arbeit von Benedikt wirklich sehr bewundernswert aber ich
möchte eigene Erfahrung sammeln und spass dabei haben.
War schon schwierig genug aus diesem und anderen Threads erstmal die
Funktionsweise der Displayanschlüsse etc. rauszukriegen, bei so vielen
Posts
und daher möchte ich dieses Wissen selbstständig in mein Projekt
reinbringen!
Aber die Frage bleibt immer noch: Ist es mit dem Atmel "8051" (siehe
oben)
möglich dieses zu machen und wenn ja woher krieg ich den her ?
Torkelchen schrieb:> möchte eigene Erfahrung sammeln und spass dabei haben.> und daher möchte ich dieses Wissen selbstständig in mein Projekt> Aber die Frage bleibt immer noch: Ist es mit dem Atmel "8051" (siehe> oben)> möglich dieses zu machen und wenn ja woher krieg ich den her ?
DU willst doch selbststaendig - dann mach auch!
Aber nein, du liest nichtmal was im Forum steht. Gibts nichtmal Atmel
8051 in eine Suchmaschine ein. Schaust dir nicht an, was der Quelltext
macht, vergleichst nicht den verwendeten AVR und den 8051 deiner Wahl,
usw...
Wenn ich mir nicht diesen Thread und par andere durchgelesen hätte,
wüsste ich bis heute nicht wie ich das Display anzusteuern hätte...
Und ja ich hab mir den Quelltext angeschaut aber halt nur den Teil der
mir wichtig war -> die Displayansteuerung. Die serielle Geschichte,
Kommandos etc. will ich selbst gestallten usw.
Es war schon Arbeit genug mich extra mit AVR zu beschäftigen extra für
dieses Projekt, zu mal ich zuvor nichts mit AVR zutun gehabt hatte. Aber
ich find die 8051 besser...
Und vom timing her müßte der AT89LP51ED2 doch passen oder lieg ich da
falsch?
Hallo woodym,
ich probiere gerade dein Programm zu kompilieren. Es klappt aber nicht.
Es wird mir folgendes Fehler angezeigt.
../lcd.c:478: error: expected identifier or '(' before '{' token
Am Sourcecode habe ich nichts verändert. Ich habe lediglich ein neues
Projekt (Atmega168) erstellt und die Dateien eingefügt.
Ich verwende den WD-H3224V Display.
Über einen Antwort würde ich mich freuen.
MfG
Mini Float schrieb:
> FLM:> _F_irst _L_ine _M_ark, wird vor der steigenden Flanke von> CL1(Zeilentakt) in der ersten Zeile gesetzt und nach der fallenden> Flanke von CL1(Zeilentakt) in der ersten Zeile gelöscht. Danach werden> die 4- oder 8-Bit-Pixeldaten mit CL2 reingetaktet, wie in jeder> folgenden Zeile.>> M:> Signal, was die Polarität der Ansteuerung der LCD-Segmente invertiert.> Soll bei der fallenden Flanke von FLM getoggelt werden. Flüssigkristalle> nehmen langfristig Schaden, wenn sie nicht im Mittel mit AC angesteuert> werden, hab ich mal irgendwo gehört.>> Load:> Lädt jeweils 4 oder 8 Bit von der parallelen Schnittstelle ind den> Displaytrieber. Entspricht dem CL2(4- oder 8-Pixel-Takt) im angehängten> PDF des TG322Dingsda.>> CP:> Ist das CL1(Zeilentakt)-Signal im angehängten PDF des TG322Dingsda.
Auch meinen Dank für die Erklärung....
nun zum verständnis, da ich aus dem Timing Diagram noch nicht ganz
schlau werde. Und die bisher gefundene Assambler Software nicht
verstehe... :(
Ich Takte also erst "CL1" bis ich eins vor der Gewünschten zeile bin
(springt der genau 1 Pixel oder 4, da ich im 4Bit Mode arbeite),setze
dann "FLM" (auch FRAME bei Wintek genannt), takte noch einmal mit "CL1"
und setze auch "FLM" wieder low und toggle "M". Jetzt Setze ich meine
Bits an D0..D3 und lade sie mit einem Takt an "CL2", dann wieder Daten
anlegen, "CL2" takten usw. bis das Display voll ist oder keine Daten
mehr kommen.
Im Wintek Datenblatt welches mir vorliegt steht für:
CL2(XCK) --> Clock Pulse for Segment shift register
CL1 (LP) --> Data latch
Stimmt das mit der obigen beschreibung überein?
Oder sind die Funktionen hier vertauscht?
Habe das Display übrigens heute in Betrieb genommen und alle Pixel waren
gesetzt (Controller ist noch ohne SW) ist das ein gutes Zeichen?
Ist das wie die Werkseitige Initialisierung der HD77480 Familien?
LG
Chris
Chris schrieb:> springt der genau 1 Pixel oder 4, da ich im 4Bit Mode arbeite
Der geht immer 4 Pixel im 4bit-Modus weiter, 8 Pixel im 8bit-Modus.
FLM hatte ich bei meinem Bastelcode vor Beginn der ersten Zeile
gesetzt, nach Ende der ersten Zeile wieder gelöscht und mit dann M
getoggelt.
mfg mf
Hallo allerseits,
gleich mal die nächste frage:
kann ich mit LOAD bzw. mit CP in Y/X-Richtung springen?
also erst n-mal LOAD und n-mal CP, dann FRAME_hi/LOAD_h/low/FRAME_low.
Oder muss ich immer das ganze Display neu beschreiben?
LG Chris.
Hallo allerseits,
Habe jetzt das Display zum laufen bekommen,
nachdem mir zwischendrinn die Festplatte verreckt war und dadurch auch
alle Projektdaten flöten gegangen sind.
Habe mir jetzt alle nötigen funktionen zusammengeklimpert die ich für
zwei Textgrößen incl. invertierung brauche.
Jetzt habe ich momentan die Funktion zum beschreiben des Display in:
1
intmain(void)
2
{
3
4
while(1)
5
{
6
WDH3224_LOAD_STACK();//Von Dis.Stack --> auf Display
7
}
8
}
9
10
ISR(TIMER0_OVF_vect)
11
{
12
WDH3224_CONTROL_PORT^=(1<<WDH3224_M);//M-Pin toggle ca. 400Hz
Sobald ich jetzt WDH3224_LOAD_STACK() in eine ISR verschiebe
funktioniert das ganze nicht mehr obwohl ich die ISR durch cli() und
sei() verriegel,
so das diese nicht unterbrochen wird. Das die Interrupts abgeschaltet
werden kann man an M gut erkennen, da dort immer wieder für 30ms
unterbrechungen drin sind. Woran kann das liegen? Ich möchte ja nicht
die while(1) Schleife komplett durchlaufen und dann erst das Display
refreshen da das evtl schon zu lang sein kann wenn ich z.B. meine
SD-Card auslese.
Vlt. hat ja jemand eine Idee an was es liegen kann.
hier noch mal die wichtigsten Funktionen fürs Display:
1
unsignedcharLCD_STACK[240][40]={};
2
voidWDH3224_INIT()//alle nötigen Register für PORTs und Timer setzen
Hallo!
About the WINTEK WD-H3224V, I suppose the 21V power supply must be
current regulated at few milliamperes. Is that right?
If it is, I have baked my wintek. I want to WARN others who attempt to
experiment with it.
Hallo!
Ich habe nun die neuesten Sourcen genommen und das HEX File direkt in
den Mega168 geflasht.
Das Display (SP14Q001-A1) lief auf Anhieb.
Vielen Dank dafür!
Nur bei einer Sache bin ich mir nicht ganz sicher:
Ich habe zum test den Controller mit dem PC gefüttert.
Einzelkommandos (z.B. "12") klappen auf sofort.
Aber wie genau müssen die Parameter übertragen werden?
Also z.B. Zeileninvertierung Rückgängig "31 1 0"
In welchem Format muss das übertragen werden?
Also "31" als Binärwert oder ASCII codiert?
" " als ASCII Leerzeichen?
Gruß!
Sebastian
Sebastian Engel schrieb:> Also "31" als Binärwert oder ASCII codiert?
Ich denke die 31 ist hier ein dezimal Wert. Also kannst du "31"decimal
oder auch "1F"hex übertragen.
Steffen
Kann man mal die aktuellen Codes ins Wiki stellen?
Ich kann kein Assembler (AVR).
Benutze nur PIC und ARM.
Würde daher gerne den aktuellen Code haben, den ich auch benutzen kann.
Bzw. gibt es eine Codeversion mit reinem C-Code?
Den dürfte ich wohl dann auch selber Porten können.
@alle
das Assemblerprogramm "lcdtext.asm" konnte ich an einem Display
erfolgreich testen, alle Zeichen werden korrekt dargestellt.
Benedikt, großes Lob !
Kann es sein, dass bei den Display-Datenbytes immer zuerst das
High-Nibble gesendet werden muss?
Bei der Darstellung eines Bitmusters ist mir diese Erscheinung
aufgefallen.
------------------------------------
Falsches Bitmuster:
ldi tempi,0b10000101 ; BIT-MUSTER
out PORTB, clockH ; PCLK H
out PORTC, tempi ; Low Nibble ausgeben
.
.
------------------------------------
korrektes Bimuster:
ldi tempi,0b10000101 ; BIT-MUSTER
swap tempi ; NIBBLES-Tausch
out PORTB, clockH ; PCLK H
out PORTC, tempi ; HIGH Nibble ausgeben
.
.
Bernhard
Bei Pollin gibt's mal wieder ein interessantes Display NAN YA
LMCDBS078C. Hat das schon jemand zum Laufen bekommen? Ist die
LCD-Spannung Vee wirklich positiv zu verstehen?