IOW24 und LCD Probleme

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

jbs
Posts: 5
Joined: Wed Jun 15, 2005 4:11 pm

IOW24 und LCD Probleme

Post by jbs »

Erstmal ein freundliches 'Hallo' an alle.

Ich habe ein kleines Problem mit dem IOW24 und einem 4 * 20 LCD Display: es zeigt nichts an :-(

Ich habe das (Windows) DEMO Programm genommen und kann über die Byte Sequenz 0x04 0x01 und 0x04 0x00 das Display ein- und ausschalten. So weit so gut. Nun habe ich über 0x05 0x81 0x41 versucht ein 'A' an die erste Stelle zu schreiben, aber nichts passiert. Wenn ich ein "Read" mache, taucht das 'A' zwar in dem Datenpuffer auf, allerdings zweimal und mit deutlichem Abstand (den Abstand müsste ich auszählen)? Wenn ich weiterhin den Kontrast stark erhöhe siehe ich, dass anscheinend nur die erste und dritte Zeile aktiv ist (dunkler).

Muss ich eine besondere INIT-Sequenz an das Display schicken, damit alle 4 Zeilen aktiviert werden? Ich habe zwar von HITACHI die entsprechende DOK runtergeladen, aber hier werde ich auch nicht wirklich schlauer...

Vielleicht könnt ihr mich ja in die richtige Richtung drehen und mit einem leichten Stoss der Lösung näher bringen?

Danke im voraus

Jens

P.S. Die Verkabelung habe ich bereits mehrfach geprüft, was -zugegeben- keine Garantie für Richtigkeit ist... Sowohl der IOW und das LCD sind nagelneu. Das LCD hat einen Samsung Controller und ist angeblich kompatibel zum HD-hau-mich-tot.
supachris
Posts: 124
Joined: Tue Mar 16, 2004 12:30 am
Location: Dresden

Post by supachris »

Die Initialisierungs-Befehlsfolge haste abgeschickt oder? Also Display an, Cursor an/aus, Corsur Blinken usw? Steht im Datenblatt was alles geschickt werden muss, bevor was angezeigt wird. So einfach losscicken geht nicht.
Schau mal in die allgemeinen Datenblätter bei www.lcd-module.de da steht die Sequenz.
Gruß SupaChris
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Sorry, habe die Antwort von Robert gelöscht, da die schlicht falsch war.

Das Hört sich ganz eindeutig danach an, dass das Display nicht initialisiert wurde.
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Na dann ein zweiter Versuch.
DualController sind eher bei 40x4 Displays ueblich.

Wenn man den IOWarrior ansteckt, so sollte das LCD in der 1. und 3. Zeile erst mal schwarz zeigen.
Die Beschreibung legt nahe das der Kontrast nicht genuegend aufgedreht ist.

Das beste Testprogramm ist SimpleHIDWrite.exe da es nicht wie die LCD-Beispiele automatisch Kommandos sendet.
Mit der Byte-Sequenz 0x04 0x01 sollte das Backlight angehen. und mit 0x04 0x00 wieder aus (0x04 gehoert in die ReportID).
Es sollte natuerlich "Complex Interfaces" ausgewaehlt sein.

Ab jetzt kann es ein bischen schwierig werden, da sich die kompatiblen Controller manchmal etwas zickig geben. Meist ist es nur die Adresse der Zeilen, aber ein HD66712 braucht z. B. bei der Initialisierung eine etwas andere Reihenfolge der Kommandos.

0x04 0x01
0x05 0x03 0x38 0x01 0x0F
0x05 0x81 0x41

Diese Sequenz mit SimpleHIDWrite sollte ein 'A' auf die erste Zeichenposition bringen und einen blinkenden Cursor rechts daneben.
jbs
Posts: 5
Joined: Wed Jun 15, 2005 4:11 pm

Initialisierung

Post by jbs »

Zunächst einmal vielen Dank für eure schnellen Antworten. Ich hatte die Initialisierung mit 0x05 0x03 0x38 0x01 0x0c probiert, wenn ich mich richtig erinnere, nicht mit 0x0f am Ende. Das werde ich am Wochenende nochmal verifizieren und euch hoffentlich das positive Ergebnis mitteilen.

Gruss Jens
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Das ist nur der Unterschied zwischen sichtbaren blinkendem Cursor oder nicht.
HappyAura
Posts: 68
Joined: Sun Feb 27, 2005 2:13 pm

Post by HappyAura »

Hallo,

sonst kannst Du auch erst einmal mit StilCD probieren, ob alles läuft. bei mir war nur das problem, daß da genau die funktionen implementiert sind, die ich selbst schreiben wollte. und wenn das schon jemand so schön hinbekommen hat, dann ist die Motivation, es selbst noch mal zu schreiben, eher gering. naja, es gibt ja genügend sachen, die man so machen kann...
Ach ja, einen Link habe ich noch mal für Dich: KLICK

Edit:
wenn Du das Display einfach nur anschliesst, hast Du aber schon 2 dunkle und 2 helle zeilen, oder? an sonsten kan es auch ganz simpel am kontrast liegen? Ich weiß, ist wahrscheinlich 'ne dumme frage, aber versuchen kann man es mal.
jbs
Posts: 5
Joined: Wed Jun 15, 2005 4:11 pm

Post by jbs »

@HappyAura

1) Danke für den Link. Den hatte ich auch schon ergoogelt, aber naiv wie ich war, wollte ich es "einfach" auf die "Harte Tour" versuchen. Falls ich mit der Initialisierung keinen Erfolg habe, probiere ich es in jedem Fall aus.
2) Genauso ist es. Nach dem Anschliessen kann ich über ein POTI den Kontrast verändern und sehe zwei dunkle und helle Zeilen (1 & 3 verändern sich im Kontrast und 2 & 4 nicht). Abwegig ist es nicht, denn meistens sind es die einfachen Dinge, die man übersieht :o

@Robert Marquardt

Das sollte dann wirklich nichts beeinflussen...
jbs
Posts: 5
Joined: Wed Jun 15, 2005 4:11 pm

ES GEHT

Post by jbs »

Vielen Dank an alle!

Nachdem eure Vorschläge dem entsprachen, was ich auch schon versucht hatte, habe ich mir die Verbindungen alle noch mal angesehen. Kein Fehler. Hm, dann habe ich den IOWarrior mit IC Sockeln auf mein Steckbrett gesetzt und siehe da: ES GEHT. Obwohl ich alle Leitungen durchgepiepst hatte, gab es wohl irgendwo einen Wackelkontakt zum LCD Display. Also seit "vorsichtig", wenn ihr einen fliegenden Aufbau macht....

Danke für eure Unterstützung.

Jens
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Äh, fliegender Aufbau?

Was muss ich darunter verstehen? Etwa ein nackt rumliegender Chip an den Drähte und Bauteile angelötet werden? Und Steckbrett hört sich auch garnicht gut an.

Die Tatsache, dass wir im Datenblatt ein kleines Kapitel zum Leiterplattenlayout haben kommt nicht von ungefähr. Fliegende Aufbauten, Steckbretter und flüchtig hingehuschte Leiterplatten sind nicht die Umgebung in der ein IO-Warrior zuverlässig läuft.
jbs
Posts: 5
Joined: Wed Jun 15, 2005 4:11 pm

Fliegender Aufbau

Post by jbs »

Hm, fliegend meint nicht: Draht um die "Beinchen" wickeln und verdrillen :shock: Nein, ich habe die Testschaltung wirklich nur auf einem Labor Steckbrett (von Pollin, ca 14 EUR) aufgebaut und bei D+ D- darauf geachtet, dass die Kabel relativ kurz sind und parallel verlaufen. Meine Versuche haben ergeben, dass die Position der Kondensatoren keine oder nur eine untergeordnete Rolle spielt. Ich habe es sogar mit verschiedenen Typen und Abständen probiert und es lief immer, auch wenn ich natürlich letztlich die von euch empfohlenen Bauteile benutze. Eine Platine würde ich entsprechend der Hinweise Layouten, klar. Aber ich kann mir ehrlich keinen anderen Weg vorstellen, um etwas Erfahrung zu sammeln und die Schaltung zu probieren(?) ohne jedesmal eine Platine zu ätzen (was ich auch nicht kann). Ihr könnt dem IO Warrior also etwas mehr Vertrauen schenken, zumindest was die Umgebung betrifft :D. Aber ich behalte im Hinterkopf, dass er empfindlich reagieren kann, falls es mal wieder knallt. Wenn ihr möchtet, kann ich mal ein Bild anhängen.

Jens
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: Fliegender Aufbau

Post by Guido Körber »

jbs wrote:Ihr könnt dem IO Warrior also etwas mehr Vertrauen schenken, zumindest was die Umgebung betrifft
Das werden wir mit Sicherheit nicht, da Erfahrungs- und Messwerte ein deutliches Bild abgeben das das Gegenteil belegt. Die Probleme treten meist dann auf wenn man die Special Mode Functions benutzt, da dann mehr I/O Aktionen schnell hintereinander passieren.

Der Grund dafür ist, dass CMOS Bausteine bei Schaltvorgängen Stromspitzen ziehen. Je schneller der Chip, desto heftiger die Stromspitze. Das Fiese dabei ist, dass im Durchschnitt der Stromverbrauch sehr niedrig liegt, einzelne Impulse aber im Extremfall in den Bereich von Amperes kommen können. Mit Hobbymessgeräten ist das dann nicht mal erfassbar, aber auf einem ordentlichen Speicherscope kann man bei falsch platzierten Kondensatoren signifikante Spannungseinbrüche sehen.

Die IO-Warrior laufen intern mit 12MHz, also schon alles andere als Gleichspannung. Wenn dann noch Last an den IO-Pins dazu kommt und die geschaltet werden soll, kann die Spannung so zusammenbrechen, dass der Chip anfängt zu spinnen. Wir kriegen dann immer die Support-Anfragen bei denen uns erzählt wird wir hätten Fehler in der Firmware...
VIB170AL
Posts: 3
Joined: Sat Nov 04, 2006 12:26 pm

Post by VIB170AL »

Hallo zusammen,

ich habe auch Probleme mit einen HD44780 kompatiblem 4x20 LCD und dem IOW40.
Das LCD funktioniert auf jeden Fall am LPT. Wenn ich es an den IOW anschließe, sehe ich in der 1. und 3. Zeile die schwarzen Balken. Diese verschwinden auch, sobald ich die Initialisierungssequenz (siehe Post weiter oben) an das Display schicke. Offensichtlich kann ich auch Daten in den Speicher schreiben, nur wird trotzdem nichts angezeigt. Am Kontrast kanns auch nicht liegen, es funktioniert ja mit diesen Einstellungen am LPT.

Hat jemand nen Tipp, was ich noch testen könnte?

Ich hab noch mal schnell ein LOG von den gesendeten Befehlen mit "SimpleHIDWrite.exe"

Code: Select all

W 04  01 00 00 00 00 00 00 -> Special Mode LCD
W 05  03 38 01 0F 00 00 00 -> Initialisierung
W 05  86 41 42 43 44 45 46 -> Zeichen "ABCDEF" in DD RAM schreiben
W 05  01 80 00 00 00 00 00 -> DD RAM Adresse auf 0x00 setzen
W 06  86 00 00 00 00 00 00 -> 6 Byte DD RAM lesen 
R 06  06 41 42 43 40 41 42 -> die ausgelesenen 6 Byte
Wobei ich mir nicht sicher bin, ob ich beim Auslesen einen Fehler gemacht habe, oder ob bei der Kommunikation mit dem LCD etwas schief läuft. Wenn ich "Clear Display" schicke, ist der komplette Speicher mit 0x20 gefüllt, was ja laut der Zeichentabelle ein Leerzeichen seien sollte.


Gruß
Sebastian
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Warum kann das nicht am Kontrast liegen? Der wird doch durch ein externes Poti eingestellt, ist das mit dem LCD fest verbunden?

Die Daten vom Log sehen korrekt aus.
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Post by Christoph Jung »

@ VIB170AL (was ein komplizierter nick ;) )

Das mit dem Auslesen ist so ne sache. Hab da selbst noch nicht ganz durchgeschaut, bin aber dabei und werde hoffentlich bald eine Lösung parat haben. (bin im moment ans bett gefesselt :( )

Kann aber auch was mit der Kommunikation zwischen dem LCD und dem IOW zu tun haben. Bin net der Elektroniker und liege da warscheinlich falsch. Guido ist da eher der ansprechpartner.

Das mit dem wert "0x20" ist einfach der ASCII-Wert für ein " " (leeres Zeichen). Kannst ja mal in ner ASCII-Tab nachgucken wenns dir weiterhilft.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
Post Reply