Forum: Mikrocontroller und Digitale Elektronik HD44780 Initialisierung - warum dreimal 0x30?


von Studi (Gast)


Lesenswert?

Guten Abend!
Ich versuche gerade das Datenblatt vom HD44780 LCD-Controller zu 
verstehen. Dort ist eine Initialisierung im 4-bit Modus gezeigt. Zu 
Anfang wird dort dreimal hintereinander 0x30 (also Function Set --> 
8-bit mode) an den Controller gesendet aber nirgends wird erklärt warum 
das sein muss. Ich erinnere mich daran, dass ich irgendwo gelesen habe, 
dass dies deshalb gemacht wird, damit der Controller aus jedem Modus 
heraus (8 oder 4 bit) sicher erstmal in den 8 bit modus versetzt wird, 
aber ich verstehe immer noch nicht ganz warum 0x30 dreimal gesendet 
werden muss und den Beitrag finde ich nicht mehr. Kann mir das jemand 
evtl nochmal erklären? Danke!

von Heinz III. (Gast)


Lesenswert?

Studi schrieb:
> ich verstehe immer noch nicht ganz warum 0x30 dreimal gesendet
> werden muss
Weil es der Hersteller SO vorschreibt PUNKT!

von holger (Gast)


Lesenswert?

>Kann mir das jemandv evtl nochmal erklären? Danke!

Nein. Mach es und denk nicht weiter drüber nach.
Selbst wenn du weisst warum nützt es dir nichts.
Du kannst es nicht anders machen. Wenn du es versuchst
klappt es nicht. Also frag nicht weiter sondern TU ES.

Ende der Durchsage.

von ... (Gast)


Lesenswert?

Studi schrieb:
> Zu Anfang wird dort dreimal hintereinander 0x30
Damit der Controller, egal in welchem Zustand er vorher war, in den 
4-bit Modus schaltet.

von Michael U. (amiga)


Lesenswert?

Hallo,

3x 0x30 mit den im Datenblatt angegebenen Timings erzwingen einen Reset 
des Displaycontrollers.
Das funktioniert sowohl aus dem 4-Bit-Mode als auch aus dem 8-Bit-Mode.

Wichtig ist hierbei, daß jeweils nur ein E-Takt erzeugt wird, also so, 
als ob man das Display im 8-bit-Mode anspricht. Auch, wenn eben nur der 
4-Bit-Mode beschaltet ist.

Gruß aus Berlin
Michael

von Jobst M. (jobstens-de)


Lesenswert?

Das sind ja geile Antworten hier ... tsss ...

Der Sinn ist eigentlich ganz einfach: Unter Umständen befindet sich das 
Display zum Reset-Zeitpunkt in irgendeinem Modus. Im blödesten Fall im 
4-Bit-Modus und wartet auf das zweite Nibble.

Wenn das Display von Anfang an im 8-Bit-Mode ist, greift gleich das 
erste Kommando. Die beiden Nächsten wiederholen das nur.

Wenn das Display im 4-Bit-Mode ist, benötigt es 2 Nibbles. Also die 
ersten beiden Kommandos, die im Display ein Kommando darstellen. Dann 
schaltet das Display auf 8-Bit um und das dritte Kommando wiederholt 
dies nur.

Wenn das Display im 4-Bit-Mode ist und der Controller gerade zwischen 
zwei Nibbles zurückgesetzt wurde, wartet das Display noch auf ein halbes 
Byte.
In diesem geht das erste Kommando unter. Aber die beiden nächsten 
schaffen es dann, das Display in den 8-Bit-Mode zu versetzen.

Da zur Konfiguration zwischen 8 und 4-Bit nur die oberen 4 Bit benötigt 
werden, funktioniert dies für beide Modi.



Gruß

Jobst

von holger (Gast)


Lesenswert?

>Das sind ja geile Antworten hier ... tsss ...

Und was bringt ihm deine Antwort?
Gar nichts. Er muss die Sequenz senden.
Warum er das muss ist total egal.
Verschwendete Zeit von dir für die Antwort.

Wenn ich einen I2C Baustein ansprechen möchte
dann frage ich auch nicht warum ich die Adresse
senden muss. Ohne gehts halt nicht.

Wenn ich eine SD Karte beschreiben will dann muss
ich eine bestimmte Kommandofolge senden. Da frage ich
nicht lange warum ich das muss. Wenn ich es nicht tue
dann funktioniert es nicht.

Die Frage ist flüssiger als Wasser: Überflüssig.

von helfer (Gast)


Lesenswert?

Danke Jobst, prima Erklärung, das leuchtet ein. Ich ärger mich echt über 
die Reaktionem einiger Mitschreiber, die das Hinterfragen nicht ertragen 
können bzw. es selbst nie verstanden haben... Naja, gute Nacht.

von reicht doch echt mal!!! (Gast)


Lesenswert?

Auch ich danke für die prima Erklärung! Schön, daß sich noch jemand die 
Mühe macht, was zu erklären. Wenn ich sehe, wieviel Worte und Zeit der 
Nörgler verschwendet hat, hätte er es auch erklären können. Wenn er es 
denn gewußt hätte.

Wie der Threadersteller weiß ich auch gern was, warum passiert. Wenns 
Dich nicht interessiert, warum du beim Auto die Kupplung tretten mußt, 
dann TU ES einfach und halt dich hier doch einfach zurück.

Mein Gott, warum immer diese sinnlosen Antworten.

von H.Joachim S. (crazyhorse)


Lesenswert?

Weil die Frage sinnlos ist?
Man kann viel verstehen wollen, nicht immer ist eine akzebtable Antwort 
auch die richtige...
Manche Sachen muss man nicht verstehen, da sie so oder so eben so sind 
und man sich dran halten sollte.

von Heinz (Gast)


Lesenswert?

Hach Joachim, muss dein Leben scheiße sein.

von Jobst M. (jobstens-de)


Lesenswert?

holger schrieb:
> Und was bringt ihm deine Antwort?
> Gar nichts. Er muss die Sequenz senden.
> Warum er das muss ist total egal.
> Verschwendete Zeit von dir für die Antwort.

Das sehe ich anders. Es gibt Leute, die aus Interesse Fragen stellen und 
Begreifen wollen was passiert, um dann mit Ehrgeiz ihre Projekte 
anzugehen. Diese Leute wissen meist genau, was in ihren Geräten abläuft 
und haben Interesse daran, daß es reibungslos läuft.

Und dann gibt es die Leute, die sich nicht für die Hintergründe 
interessieren und völlig lieblos nach Schema F irgendwelche Geräte 
zusammenschustern. Das Funktioniert zwar, aber die Ergebnisse 
hinterlassen den Eindruck, daß sich jemand keine Gedanken gemacht hat. 
Zu den Leuten gehörst Du.

Ich beantworte lieber eine doofe Frage (und dies war keine, denn es gab 
ja eine Antwort darauf), als jemandem zu sagen: "mußt Du so machen, mehr 
mußt Du nicht wissen". Ich habe kein Interesse daran, jemanden dumm zu 
lassen. Vor allem würde ich nicht auf die idiotische Idee kommen, 
jemandem, der eine Frage beantwortet auch noch blöde anzumachen - 
unterste Schublade ...

Und: Die schönste Zeit ist die, die 'verschwendet' wurde ... :-)
Das ist ja auch der Grund, warum auch Du hier schreibst.

Vielleicht solltest Du Dich auch einem Forum anschliessen, wo Antworten 
unerwünscht sind ...

So. Weiter füttere ich den Troll aber nun nicht mehr ...


Gruß

Jobst

von H.Joachim S. (crazyhorse)


Lesenswert?

ne Kunz, alles im grünen Bereich.
Umso mehr, wenn man unterscheiden kann, was wichtig, interessant oder 
einfach nur nebensächlich ist. Spart Zeit und Kapazität - beides ist 
begrenzt.
Wenn eine init-Folge so ist, dann ist sie so - Punkt.
Liest du ein Datenblatt über einen Mikrocontroller und stolperst 
darüber, dass ein Befehl statt der erwarteten 2 Takte 3 braucht? Nein, 
es ist so. Es bringt dir nichts zu verstehen, warum das so ist. Morgen 
gibts die Dinger nicht mehr, dein Kampf hat dich nicht dazu gebracht, 
dass der MC das in 2 Taktzyklen erledigt. Und das Wissen, dass es 
vielleicht doch hätte klappen können, hilft dir nichts, das Bauteil ist 
obsolet.
Klopf dir auf die Schulter oder Brust oder sonstwohin, je nach 
persönlichen Vorlieben - gewonnen hast du nichts. Sinnloses 
Detailwissen, zu nichts Nutze. Sowas nenn ich nicht interessiert, 
sondern verschwenderisch.

von Heinz (Gast)


Lesenswert?

Na, wenn die eigenen Kapazitäten so begrenzt sind muss man halt sparen, 
stimmt schon.

von Mike (Gast)


Lesenswert?

@H.joachim Seifert (crazyhorse)
> Klopf dir auf die Schulter oder Brust oder sonstwohin, je nach
> persönlichen Vorlieben - gewonnen hast du nichts. Sinnloses
> Detailwissen, zu nichts Nutze. Sowas nenn ich nicht interessiert,
> sondern verschwenderisch.

Dieses "sinnlose" Detailwissen macht den Unterschied aus zwischen 
jemandem der den Kram nur fluchend in die Ecke schmeißen kann wenn er 
nicht funktioniert oder jemandem der sich die Sache anschaut, kurz aha 
sagt, eine kleine Änderung vornimmt und schon geht es.

@Heinz
> Na, wenn die eigenen Kapazitäten so begrenzt sind muss man halt sparen,
> stimmt schon.
Du bist ein wirklich sehr gutes Beispiel dafür. ^^

von Verstehen-woller (Gast)


Lesenswert?

Wenigstens isser kreativ im Ausreden erfinden.
Statt "hab ich noch nie kapiert" ein schlichtes "das muss man nicht 
wissen".
Klar, reicht ja wenn man's vom Chinese kaufen kann.
Armes Land der Dichter und Denker ...

von Peter D. (peda)


Lesenswert?

Dieses Rumgemotze geht mir auch auf den Keks. Wer es selber nicht weiß, 
soll doch einfach mal die Klappe halten.

Es ist immer gut, zu verstehen, was man gerade macht. Umso besser lassen 
sich Fehler finden oder vermeiden.

Jobst hat das schon richtig erklärt.
Der Worst-Case ist, das LCD wartet auf das 2. Nibble und z.B. der 
Watchdog schlägt zu. Also muß man ein Nibble senden, um den Befehl zu 
beenden. Und dann eben den Befehl für den 8Bit-Mode, der wiederum aus 2 
Nibble besteht (man ist ja immer noch im 4Bit-Mode). Und das macht nach 
Adam Ries eben 3 Nibble mit 0x3.


Peter

von digitaler fritz (Gast)


Lesenswert?

Kleine Kinder fragen immer: Papi warum ist das so oder so ?
Grosse Kinder muessen wissen wo und wen sie fragen !

Studi hat simply am falschen Ort gefragt .
Frag mich nicht warum !

von Henninger (Gast)


Lesenswert?

Danke für die Antworten Jobst, das hat mich auch schon lange 
interessiert.

Das war eine gute und Berechtigte Frage würde ich sagen.

Die Diskussion hier ist sehr witzig :) Wie kann man die Dreistheit 
besitzen und auf eine Frage mit "Das musst du nicht wissen" antworten.

von bitte löschen (Gast)


Lesenswert?

H.joachim Seifert hätte im Beitrag #2584112 auch schreiben können:

> Wenn Venus eine andere Bahn zieht als die anderen Sterne,
> dann ist sie so - Punkt.
> ...

;-)

P.S. Ich habe mir auch schon die Frage des TE gestellt, und danke Jobst 
für die Antwort. :)

von H.Joachim S. (crazyhorse)


Lesenswert?

Na gut :-)

Manche Sachen möchte ich wissen, andere eben nicht.
Warum 3 x 0x30 möchte ich nicht wissen, da es mir reinweg gar nichts 
nützt  zu wissen, warum das so ist. Nicht im Moment und auch nicht 
später.

von Ben _. (burning_silicon)


Lesenswert?

Hm... wieso brauchen manche Leute dreimal eins in die Fresse und 
kapieren's nicht schon beim ersten Mal? ;)

von Studi (Gast)


Lesenswert?

Hallo zusammen!
Ich hätte nie gedacht dass sich der Thread zu so einer hitzigen 
Grundsatzdiskussion entwickelt..
Also zu meiner Rechtfertigung möchte ich sagen dass mir schon klar ist 
dass man die Sequenz nicht weglassen kann, das wollte ich auch nicht in 
Frage stellen. Und wenn im Datenblatt steht wirds schon seine 
Richtigkeit haben (Wobei das auch nicht immer stimmt!!!).
Mir gings nur darum das ich definitiv in Erinnerung hatte dass es für 
die Sequenz eine praktische Erklärung gab und ich die nicht mehr 
gefunden habe.

Grundsätzlich möchte ich sagen dass ich Dinge halt nun mal gerne 
verstehe wenn ich sie anwende - das ist auch ungemein praktisch wenn mal 
Fehlersuche ansteht. Mag aber auch daran liegen dass ich 
Naturwissenschaftler bin.

Viele Dank jedenfalls an Jobst für die tolle Erklärung!

von Timm T. (Gast)


Lesenswert?

Danke auch von mir für die Erklärung, eigentlich ganz logisch, wenn mans 
einmal weiss...

Btw: Die Venus ist kein Stern, sondern ein Planet, auch wenn sie 
mitunter als Abendstern und mitunter als Morgenstern bezeichnet wird.

von MagIO (Gast)


Lesenswert?

@H.joachim Seifert:
"Manche Sachen möchte ich wissen, andere eben nicht."

Es tut mir Leid Dir das sagen zu müssen, aber die Welt dreht sich nicht 
um Dich!
Andere wollen es halt wissen und wieder andere geben auch gerne eine 
vernünftige Antwort darauf.

Wenn Du so auf Effektivität stehst, dann solltest Du die Effektivität 
von solchen Threads respektieren und nicht durch Deine unqualifizierten 
Äußerungen den netto-Informationsgehalt eines Threads dermaßen in den 
Keller ziehen - was ja dann nebenbei bemerkt auch deine ach so wertvolle 
Zeit kostet!

Mit anderen Worten: Wenns dich nicht interessiert einfach Thread 
schließen! Das nennt sich dann eine Win-Win-Situation - 1. Du 
verschwendes keine Zeit mit Antworten 2. die hier sowieso kein Mensch 
braucht.

@Jobs: well done!

von Michael U. (amiga)


Lesenswert?

Hallo,

meine Datenblätter des HD44780 sagen in einer Anmerkung zum 4-Bit-Mode, 
daß ein zurückschalten in den 8-Bit-Mode nur durch einen Reset des 
Controllers möglich ist (siehe auch meinen Kommentar von 07.03.2012 
20:37.

Es gibt kein Kommando, das aus dem 4-Bit-Mode wieder in den 8-Bit-Mode 
umschaltet!

Gruß aus Berlin
Michael

von gucki (Gast)


Lesenswert?

> Btw: Die Venus ist kein Stern, sondern ein Planet, auch wenn sie
> mitunter als Abendstern und mitunter als Morgenstern bezeichnet wird.

und ich habe erst vor kurzem gelesen, dass es Planeten gibt, die keinen 
Stern haben (wie auch immer das funktionieren mag, die vagabundieren 
wohl so ohne Plan durchs All ... ?)

von Andreas K. (hammerhead)


Lesenswert?

OT:
die ganzen leute, die hier meinen, dass er mit der Information nichts 
anfangen kann, müssen alles Studenten der theoretischen Informatik sein.
"Es funktioniert so und das reicht mir"
Keinerlei Praxiserfahrung, alles nur theoretisches Denken.

Wenn ihr nix zur Frage zu sagen habt, dann lasst es sein.
Wie einer von euch sagte: Ist verschwendete Zeit und ändert eh nichts.

Wenn andere Leute lernen wollen, dann lasst sie lernen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.