www.mikrocontroller.net

Forum: Compiler & IDEs HD44780 ( LCD Display ) Inhalt auslesen?


Autor: Dennis H. (somebuddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag :)

Ich habe zwar schon die Forensuche bemüht, allerdings nichts gefunden 
bzw. ich weiß auch nicht genau wonach ich suchen "muss".

Ich möchte den Inhalt eines "vermutlich" mit dem HD44780 gesteuerten 
Displays auslesen.
Bzw. die Daten welche vom Prozessor zum Display gesendet werden 
"anzapfen" und auf einem anderen vorzugsweise Atmel darstellen und / 
oder als Char Array / String speichern.

Kennt ihr da eine fertige Routine ?

Es geht im Prinzip darum den Display Inhalt eines "fertigen" Ladegerätes 
welches über ein 2x40 Zeichen LCD verfügt auszulesen und im eigenen µ zu 
verarbeiten.

Vielleicht könnt ihr mir einen Tipp geben.

Mir sind zwei Lösungsansätze eingefallen..

1. Mit Hilfe eines Bustreibers.. entsprechend schnell das Display vom 
original Controller trennen und mit meinem Atmel verbinden und über die 
Standart HD44780 Routine den Inhalt auslesen und verarbeiten.

2. Den Datenstrom mitloggen und mit Hilfe des Datenblattes die Adressen 
in Buchstaben / Ziffern umwandeln und in einem Array ablegen.

Wäre super wenn ihr da schon implementierte Ansätze finden würdet :)

Danke und einen schönen Feiertag wünsche ich :)

Gruß

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Dennis Henning (somebuddy)

>Kennt ihr da eine fertige Routine ?

Nö.

>2. Den Datenstrom mitloggen und mit Hilfe des Datenblattes die Adressen
>in Buchstaben / Ziffern umwandeln und in einem Array ablegen.

Genau so muss man das machen. Sinnvollerweise mit einem Logikanalysator.

MfG
Falk

Autor: Dennis H. (somebuddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wieso ein Logik analysator ?

Wenn ich doch weiß welcher "Wert" welchen Buchstaben ergeben.. !?
Wenn ich die 8 Bits direkt an einen µ hänge ?

Wo ist mein Denkfehler ?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Dennis Henning (somebuddy)

>wieso ein Logik analysator ?

Zum Aufzeichnen der Signale D0-D7, RW, RS und E.

>Wenn ich die 8 Bits direkt an einen µ hänge ?

Kann man machen, man braucht aber noch wenigstens RS und E. Und es 
könnte eng werden, denn schliesslich brauchen die LCDs nur ca. 0,5µS 
breite Pulse an E, was meistens auch so gemacht wird. Darauf kann der uC 
nur schwer in Software reagieren. Besser ist es, ein Latch ala 
74HC373 dazwischenzuschalten, dann hat der uC VIIIEL Zeit, die Daten zu 
lesen und auszuwerten. Das ist dann ein Logikanalysator für Arme ;-)

MFG
Falk

Autor: Dennis H. (somebuddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja.. Das Display ändert nicht wirklich schnell den "Inhalt"..
Also sollte es doch theoretisch einfach über die Auslese funktion und 
einen Bustreiber gehen oder sehe ich das falsch ?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Dennis Henning (somebuddy)

>Naja.. Das Display ändert nicht wirklich schnell den "Inhalt"..

Ja und? Das sagt doch aber nichts darüber aus, wie schnell einzelene 
Zeichen nacheinander geschrieben werden.

Selbst wenn ich nur 1x pro Sekunde 10 Zeichen schreibe, wird man das 
meist zügig hintereinanderweg machen, macht 400µs.

>Also sollte es doch theoretisch einfach über die Auslese funktion

Welche Auslesefunktion? Die HD44780 kann man nicht rücklesen.

> und einen Bustreiber gehen oder sehe ich das falsch ?

Ja ;-)

MFG
Falk

Autor: Dennis H. (somebuddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay.. dann habe ich das mit dem  Read/Write falsch interpretiert.

Werde mir eine Lösung mit Latch mal genauer anschauen.

Vielen Dank schonmal

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Also sollte es doch theoretisch einfach über die Auslese funktion
> Welche Auslesefunktion? Die HD44780 kann man nicht rücklesen.

Laut Speck [1] schon. CG-/DDRAM-Adresse setzen, anschließend RS und R/W 
auf 1, dann bekommt man an D* die Daten, die an jener Adresse stehen.

Würd ich aber trotzdem nicht machen, weil man da potenziell in Probleme 
läuft, wenn man im Betrieb am Display rumfingert (und was verstellt oder 
unterschlägt). Latch dranhängen und mitloggen dürfte einfacher und 
zuverlässiger sein.

[1] 
http://www.datasheetarchive.com/pdf-datasheets/Dat...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennis Henning schrieb:
> Naja.. Das Display ändert nicht wirklich schnell den "Inhalt"..

Ein Dart Spieler schiesst seine 3 Pfeile auch nicht wirklich schnell auf 
die Scheibe. Ich würde mal schätzen er braucht so um die 10 bis 15 
Sekunden dazu.
Wenn du allerdings einen einzelnen Pfeil vom Verlassen der Hand bis zum 
Einschlag in der Scheibe verfolgen willst, musst du schnell sein.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was wäre mikrocontroller.net ohne die bildhaften Vergleiche von Karl 
Heinz? ;-)

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Naja.. Das Display ändert nicht wirklich schnell den "Inhalt"..
>Also sollte es doch theoretisch einfach über die Auslese funktion und
>einen Bustreiber gehen oder sehe ich das falsch ?

Sicher geht das, aber woher weisst du ob das Display schon komplett
beschrieben wurde? Vorher stand da vieleicht 1.234. Jetzt liest du
2.534. Und ein klein wenig später steht auf dem Display 2.567.

Autor: Dennis H. (somebuddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank schonmal.. oh man.. ich habe mir das wirklich leichter 
vorgestellt ;)

Ich glaube es ist fasst leichter einen eigenen Strom und Spannungsmesser 
aufzubauen ;) Als die Infos vom Ladegerät Display zu klauen ;)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dennis Henning (somebuddy)

>Ich glaube es ist fasst leichter einen eigenen Strom und Spannungsmesser
>aufzubauen ;) Als die Infos vom Ladegerät Display zu klauen ;)

Das glaube ich auch.

Autor: Dennis Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin echt ein wenig doof..  -.-
Es geht "noch einfacher"
Ich habe gerade gesehen,dass auf der Platine ( wenn auch nicht nach 
aussen geführ ) ein Serieller Anschluss vorhanden ist.. z.B. für Logview 
!

Diese Daten sollten sich über die Uart doch recht "einfach" verarbeiten 
lassen. Wenn ich Anfang und Ende "erkenne"...

Jetzt brauche ich nur noch einen µ  mit 4 Hardware Uarts..

Oder meint ihr das funktioniert auch mit 2 Hard & 2 Software Uarts ?

Ich habe bis jetzt 2 Atmegas gefunden mit 4 HW Uarts. Allerdings sind 
das gleich 100Füßler ;) Wäre "etwas" übertrieben..

Grüße und danke nochmal für die Mühe !!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennis Henning schrieb:

> Diese Daten sollten sich über die Uart doch recht "einfach" verarbeiten
> lassen. Wenn ich Anfang und Ende "erkenne"...
>
> Jetzt brauche ich nur noch einen µ  mit 4 Hardware Uarts..

<Unverständnis>

Wozu 4 Stück?

Da ist doch nur 1 UART im Ladegerät.

Ehe du den Weg weiterverfolgst: Häng erst mal deinen PC mit 
Hyperterminal oder HTerm an die UART und sieh nach was da rauskommt.

Autor: Dennis H. (somebuddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil es im verlauf des weiteren Projektes um 4 Ladegeräte geht welche 
parallel betrieben werden.

Klar.. den weg über das Hyperterminal werde ich natürlich einschlagen.
Im Groben weiß ich ja welche Werte ankommen "Müssen". Dies gilt es dann 
"nur" zu entschlüsseln.
Aber das ist die nächste Baustelle.

Erstmal einen passenden µ suchen.

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Weil es im verlauf des weiteren Projektes um 4 Ladegeräte geht welche
> parallel betrieben werden.

Zeitmultiplexen. Das geht aber nur, wenn die Daten 'regelmäßig' (aka 
Dauerbetrieb) ankommen oder wenn die Geräte auf ein Status-Query eine 
Response schicken. Deswegen..

> Klar.. den weg über das Hyperterminal werde ich natürlich einschlagen.
> Im Groben weiß ich ja welche Werte ankommen "Müssen". Dies gilt es dann
> "nur" zu entschlüsseln.
> Aber das ist die nächste Baustelle.

..mach erst mal das, bevor Du irgendwas anderes anfängst. Noch besser du 
hängst erst mal ein Oszi dran um zu sehen, ob da überhaupt was rauskommt 
ohne Doku.

HTH und HF

Autor: XXXXX (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Erstmal schauen, was denn über die serielle überhaupt rauskommt.
Hatte mal was ähnliches auf der Prüfmaschine. Sollten bestimmte
Sachen reinprogrammiert werden. Konnte mich mit dem Teil auch seriell
unterhalten. Aber erst nach einloggen mit Passwort und allem drum und
dran. Schau also erstmal nach, ob was gescheites rauskommt.

Gruß

Autor: Dennis H. (somebuddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab die Geräte noch nicht hier.. aber es kommt "ein Datenstrom" raus 
der mittlels Pegelwandler mit Logview kommunizieren kann.

Soviel weiß ich bisher.. "Wie" die Daten ankommen und übertragen werden 
,kann ich so noch nicht testen.

Autor: Dennis H. (somebuddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Datenstrom" aus einem anderen Ladegerät ( ähnlich )..

$1;1;;11960;8078;79;4000;4004;0;0;0;0;335;232;5;30
$1;1;;11960;8069;79;4001;4008;0;0;0;0;335;233;5;18
$1;1;;11960;8070;79;4001;4006;0;0;0;0;337;232;5;23
$1;1;;11973;8073;79;4004;4008;0;0;0;0;337;232;6;30
$1;1;;11973;8078;79;4005;4008;0;0;0;0;337;232;6;20
$1;1;;11966;8077;79;4005;4008;0;0;0;0;339;232;7;16
$1;1;;11966;8078;79;4005;4008;0;0;0;0;347;232;7;22
$1;1;;11966;8077;80;4005;4008;0;0;0;0;344;232;8;19
$1;1;;11966;8078;79;4005;4009;0;0;0;0;347;231;8;27
$1;1;;11966;8078;79;4005;4010;0;0;0;0;347;231;9;18
$1;1;;11973;8078;79;4008;4011;0;0;0;0;347;232;9;25
$1;1;;11960;8078;79;4008;4011;0;0;0;0;347;232;9;27
$1;1;;11973;8078;79;4006;4012;0;0;0;0;347;232;10;44
$1;1;;11973;8078;79;4009;4012;0;0;0;0;347;232;10;35
$1;1;;11966;8078;79;4009;4012;0;0;0;0;347;231;11;37
$1;1;;11966;8078;79;4010;4012;0;0;0;0;347;231;11;45
$1;1;;11960;8086;79;4010;4012;0;0;0;0;347;232;12;42
$1;1;;11966;8078;79;4010;4014;0;0;0;0;347;232;12;43
$1;1;;11966;8081;79;4010;4014;0;0;0;0;347;232;13;44
$1;1;;11966;8079;79;4010;4012;0;0;0;0;347;232;13;45
$1;1;;11966;8080;79;4010;4014;0;0;0;0;347;232;14;42
$1;1;;11973;8079;79;4010;4015;0;0;0;0;349;232;14;39
$1;1;;11973;8079;79;4010;4015;0;0;0;0;347;232;14;41

bezogen auf die Letzte Zeile sind:
11973 = die Eingangsspannung ( 11,97 V )
8079  evtl. die Ladespannung !?
79 Ladestrom ( 790mA)
4010 Spannung erste Zelle
4015 SPannung zweite Zelle
347 und 232 Innen Temperatur und Akku Fühler Temp.
14 und 41   "keine Ahnung"

in der Art werden wohl alle 1-2 Sekunden Daten über die Serielle kommen 
( auch bei dem neuen Lader ) Die Chinesen kopieren alle untereinander 
ich denke nicht,dass dort einer das Rad neu erfunden hat.

Grüße

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.