HD44780 I2C Adapter

OP #8030549
Lesenswert?

Eine Frage kurz und (vllt. auch nicht) schmerzlos: Zeigt der Plan im Anhang die korrekte Belegung der verkauften I2C-Adapter für Textdisplays?

Ich finde im Netz immer wieder 2 unterschiedliche Belegungen:

Manchmal sind P0..P3 mit den D4 .. D7 des Displays aufgelegt, ein anderes mal sind es P4..P7.

Da ich gerade eine "Library" dafür schreibe, aber einen solchen Adapter selbst nicht habe, habe ich das mal auf die Schnelle aufgebaut, muß jetzt aber wissen, welche Pins des PCF8674 an welche Pins des Displays gehen.

Wie gesagt: zeigt das Bild im Anhang den korrekten Schaltplan des Adapters (es dauert noch etwas bis ich für Experimentierzwecke einen solchen Adapter hier habe, dann kann ich das ausmesen).

Andererseits würde ich gerne zum Einen die Software fertig machen und zum anderen ein PCB, auf dem mehrere Schaltungen platziert werden, auch.

Wenn das Teil also jemand hat, kann er mir das evtl. ausmessen und bestätigen, dass der Plan im Anhang (Pinbelegung) korrekt ist?

Angehängte Dateien:
#8030551
Lesenswert?

Ralph S. schrieb:

muß jetzt aber wissen, welche Pins des PCF8674 an welche Pins des Displays gehen.

Nö, musst du nicht. Die 4 Bits bzw. Control-Bits je nach Bedarf nach links oder rechts schieben ist eine winzige Änderung die du nachträglich immer noch machen kannst. Verglichen mit dem Aufwand die gesamte Ansteuerung zu schreiben ....

Wenn du den Aufwand als beträchtlich ansiehst dann machst du vom Konzept her etwas falsch.

#8030554
Lesenswert?

Arduino F. schrieb:

Alle diese Adapter unterscheiden sich in vielen Dingen

Nö. Elementare Dinge sind gleich. 4 Bit Daten gehen an 4 Bit Daten, 4 Steuerbits gehen an 4 Steuerbits, und das immer in der gleichen Reihenfolge. Im Zweifelsfall bei Arduino spicken. Zur Not kann man immernoch die Defines für die Steuerbits ändern, das muss die Software-Source in aller Geduld ertragen können.

OP #8030558
Lesenswert?

Wastl schrieb:

Wenn du den Aufwand als beträchtlich ansiehst dann machst du vom Konzept her etwas falsch.

ganz ganz tolle Antwort!

Das das ein "Klacks" ist, weiß ich selbst. Will man aber mit anderer Software kompatibel bleiben (und eine PCB dafür macht, weil auf der PCB eben noch Platz ist) dann macht das schon Sinn (damit eben auch die Arduino-User dann it der Platine Plug and Play machen können).

Eine Platine wird so oder so funktionieren und natürlich kann ich auch die Software so schreiben, dass sie über einen Parameter konfiguriert wird, welche Pins denn jetzt verwendet werden.

Will man aber mit den käuflich erwerbbaren Teilen kompatibel bleiben (und mit deren Software), dann muß man das wissen.

Es ist immer wieder nett, für wie doof man hier gehalten wird!!!!

Arduino F. schrieb:

Alle diese Adapter unterscheiden sich in vielen Dingen, auch im Schaltplan/Belegung und Adressen.

okay, das ist schon einmal eine Aussage, vielen Dank. Dann sollte man (ich) das konfigurierbar machen!

Wastl schrieb:

Nö. Elementare Dinge sind gleich. 4 Bit Daten gehen an 4 Bit Daten, 4 Steuerbits gehen an 4 Steuerbits, und das immer in der gleichen Reihenfolge.

Falsch! Es sind 3 Steuerbits und wenn r/w Leitung fest verdrahtet wird, sind es nur 2!

#8030561
Lesenswert?

Ralph S. schrieb:

muß jetzt aber wissen, welche Pins des PCF8674 an welche Pins des Displays gehen.

Wo gibt es einen PCF8674, von Philips / NXP jedenfalls nicht.

Wastl schrieb:

Ralph S. schrieb:

muß jetzt aber wissen, welche Pins des PCF8674 an welche Pins des Displays gehen.

Nö, musst du nicht.

Ja, muss er doch.

Arduino F. schrieb:

Mir sind bisher min. 3 verschiedene Adapter untergekommen. Plus eins, mit einem gänzlich anderem Erscheinungsbild.

Alle diese Adapter unterscheiden sich in vielen Dingen, auch im Schaltplan/Belegung und Adressen.

So ist das, und was man wirklich bekommt, sieht man erst, wenn man das I2C-Board selbst auf dem Tisch hat.

Wastl schrieb:

Arduino F. schrieb:

Alle diese Adapter unterscheiden sich in vielen Dingen

Nö. Elementare Dinge sind gleich.

Sabbel kein' Stuß, der A*Fanboy kennt das Zeug besser als Du.

Rainer W. schrieb:

Solange dort ein PCF8674 werkelt, gibt es zumindest für die Adressen nicht viel Spielraum. Über die herausgeführten Adressbits A0..A2 lassen sich acht verschiedene Adressen einstellen - und das war's.

Gerne genommen ist noch PCF8574A mit seiner abweichenden Grundadresse. Ob auf der Chinaplatine ein 8574 oder 8574-A ist, sieht man auch erst, wenn man sie auf dem Tisch hat.

Ralph S. schrieb:

(damit eben auch die Arduino-User dann it der Platine Plug and Play machen können).

Was soll den Arduino hier, für die gängiggen I2C-Adapter gibt es diverse fertige Dateien. Was ich bislang benutzt habe, braucht halt eine Initialisierung mit Adresse und Pinfolge, das geben die beigefügten Programmbeispiele her.

OP #8030562
Lesenswert?

Manfred P. schrieb:

Was soll den Arduino hier, für die gängiggen I2C-Adapter gibt es diverse fertige Dateien. Was ich bislang benutzt habe, braucht halt eine Initialisierung mit Adresse und Pinfolge, das geben die beigefügten Programmbeispiele her.

Mensch Leute, ich wollte doch nur wissen, wie das Teil verdrahtet ist (weil ich keines habe). Das Ding zu programmieren ist sicherlich kein Hexenwerk, aber ich mache eben im Moment Libraries für CH32 - Arduino und möchte hier eben einige Dinge haben, die der "normale Arduino-User" verwendet und denk ich, können auch solche Platinen vorkommen.

Einfach, dass das dann mit dem Chip funktioniert.

By the way: so kompatibel ist Arduino mit unterschiedlicher Hardware nicht. Ein direkt verdrahtetes HD44780 komatibles Display funktioniert mit dem CH32V003 Core nicht (Timing stimmt nicht, war das erste mal, dass ich das so gesehen habe).

Manfred P. schrieb:

Wo gibt es einen PCF8674, von Philips / NXP jedenfalls nicht.

Schreibfehler von mir, muß natürlich PCF8574 heißen!

Wastl schrieb:

Ralph S. schrieb:

Falsch! Es sind 3 Steuerbits und wenn r/w Leitung fest verdrahtet wird, sind es nur 2!

Das vierte Bit ist die LED.

Ich bin so stolz auf dich und so froh, dass ich von dir lernen darf. Was würde ich nur ohne hartundweichware machen?

#8030569
Lesenswert?

Ralph S. schrieb:

(..) Da ich gerade eine "Library" dafür schreibe, aber einen solchen Adapter selbst nicht habe, habe ich das mal auf die Schnelle aufgebaut, muß jetzt aber wissen, welche Pins des PCF8674 an welche Pins des Displays gehen.

Ich habe exakt das Modul welches in deinem Schaltplan abgebildet ist. Das habe ich gerade mal gemessen, es stimmt mit dem Plan überein.

Wenn das Teil also jemand hat, kann er mir das evtl. ausmessen und bestätigen, dass der Plan im Anhang (Pinbelegung) korrekt ist?

Ja, kann ich bestätigen.

: Bearbeitet durch User
OP #8030596
Lesenswert?

Jörg R. schrieb:

Wenn das Teil also jemand hat, kann er mir das evtl. ausmessen und bestätigen, dass der Plan im Anhang (Pinbelegung) korrekt ist?

Ja, kann ich bestätigen.

suuuuper, vielen Dank

Harry L. schrieb:

Btw.: vielleicht kannst du ja mit meinem Code was anfangen: Beitrag "[STM32/HAL] generischer Treiber für die beliebten I²C-Text-Displays"

Danke für den Link, aber meine Software läuft schon stabil, es ging nur um die Belegung.

#8030613
Lesenswert?

https://homepages.uni-regensburg.de/~erc24492/LCD-Adapter/LCD-Adapter.html

Da sind nicht nur die korrekte Bezeichnung 8574 sondern gleich zwei Schreibfehler zu finden:

I2C Adapter für LCD Display mit PCF7574

Datenblatt: I2C-PCF8674 LCD Modul Pollin.PDF kann für ein paar € von Pollin gekauft werden

https://de.wikipedia.org/wiki/Lese-_und_Rechtschreibst%C3%B6rung

OP #8031196
Lesenswert?

Christoph db1uq K. schrieb:

https://de.wikipedia.org/wiki/Lese-_und_Rechtschreibst%C3%B6rung

Wie gut, dass du über andere urteilen kannst. Wenn man fachlich nichts beitragen kann, mach man sich über Schreibfehler her.

Geh her und füttere chatgpt mit einem technischen Problem, sagen wir hier für uns gültig, mit einem Programmierproblem. chatgpt wird keine Rechtschreibfehler aufweisen, erzählt aber extrem oft technischen Müll (mache ich mir manchmal einen Spaß daraus).

Was ist dir lieber? Rechtschreibfehler, die man als solche erkennt, dafür technisch (wie gut, dass es hier nicht um wirkliche Probleme ging) in Ordnung, im besten Fall fundiert sind. Oder ist es bessr du schreibst in einem perfekten Deutsch mit absolut korrekter Schreibweise dann absolut technischen Mist?

By the way, ich habe Legasthenie (wenn auch nur in schwacher Form, das man an bestimmten Wörtern bis heute merkt). Vor zig Jahren habe ich mir das Rechtschreibung hart antrainieren müssen. Grammatik war nie ein Problem.

Von daher: wenn du schon einen Artikel aus Wikipedia verlinkst, dann denke daran, dass das eine Krankheit ist, die Menschen die das betrifft sicherlich nicht glücklich darüber sind und so ganz nebenbei hier vollkommen unrelevant ist, solange man weiß, um was es geht!

#8031293
Lesenswert?

Ja entschuldige meine kurze Nebenbemerkung. Dass gleich mehrere Autoren zu einem "uralten" Bauteil die Bezeichnung falsch schreiben ist seltsam.

Das Philips-Datenbuch von 1997: https://bitsavers.org/components/philips/_dataBooks/1997_IC12_Philips_I2C_Peripherals.pdf#page=396

Zum Unterschied der "A"-Version: "The PCF8574 and PCF8574A versions differ only in their slave address as shown in Fig.9."

Es wird anscheinend heute von Texas Instruments in vier Gehäusen angeboten: https://www.ti.com/lit/ds/symlink/pcf8574.pdf Juli 2001, Revision Sept. 2024 hier gibt es anscheinend keine A-Version?

: Bearbeitet durch User
#8031342
Lesenswert?

Christoph db1uq K. schrieb:

Dass gleich mehrere Autoren zu einem "uralten" Bauteil die Bezeichnung falsch schreiben ist seltsam.

Du vergisst, dass der Zugang zu diesem Forum oft über PCs erfolgt, wo Copy&Paste eine übliche Methode im Umgang mit Texten ist. Was ist also an einem Folgefehler so seltsam?

Selbst die Forensoftware erkennt "PCF8674" als Bauteilbezeichnung und verlinkt auf eine Seite https://www.mikrocontroller.net/part/PCF8674, die wiederum auf Threads mit PCF8574 und das Datenblatt des PCF8574 verknüpft.

Nimm's einfach hin - passiert.

https://www.ti.com/lit/ds/symlink/pcf8574.pdf Juli 2001, Revision Sept. 2024 hier gibt es anscheinend keine A-Version?

Für die A-Version gibt es ein eigenes Datenblatt:

https://www.ti.com/lit/ds/symlink/pcf8574a.pdf

: Bearbeitet durch User
#8031400
Lesenswert?

Rainer W. schrieb:

Für die A-Version gibt es ein eigenes Datenblatt

Danke für die Info.

Ich habe mal nachgesehen, wann ich einen I2C-Bus in AVR-Assembler angesprochen habe, das war 2002. Am I2C-Bus hingen ein ADC/DAC PCF8591P und ein 2,4GHz Satellitentuner Comtech mit einem AT90S2313 der auch noch einen Drehgeber DDM427 auswertete und ein 2*16-stelliges Display ansteuerte. Alles lange vor Arduino. https://hopt-schuler.com/sites/default/files/medien/dokumente/2022-11/miniature_2bit_encoder_427_2022.pdf Also kein PCF8574, das wußte ich nicht mehr. Der Tuner für 2,4GHz mit PLL-Ansteuerung über I2C-Bus: https://www.hb9afo.ch/articles/Comtech/RX13.pdf

2011 gab es hier einen Thread zu einer C-Library für I2C-Chips: Beitrag "C: AVR: Library für verschiedene I2C-Chips unter Verwendung der P.Fleury-Lib inkl. Datenblätter" Ist schon seit 2015 nicht mehr weitergeführt worden.

#8031436
Lesenswert?

Ich hab den mit dem "A" am Ende. Der hat nur eine andere I2C-Adresse. (Steht im Programm.) Ansonsten: LCD im Vierbitmodus.

Wastl schrieb:

Ralph S. schrieb:

Falsch! Es sind 3 Steuerbits und wenn r/w Leitung fest verdrahtet wird, sind es nur 2!

Die genannten Steuerbits werden "verkapselt".

Und im Anhang eine getestete Init mit USI für ATiny2313/4313 Sain Smart LCD Platine -> Pinout identisch.

ciao gustav

: Bearbeitet durch User
#8031604
Lesenswert?

Ralph S. schrieb:

By the way: so kompatibel ist Arduino mit unterschiedlicher Hardware nicht.

Full ack. Siehe auch hier: Beitrag "Re: I2C Display einfache Frage" Und zurück obigem Beispiel: Hatte ich noch vergessen: Zu den "Steuerbits" gehört hier auch die Hintergrundbeleuchtung (ein/aus).

ldi temp, 0b00001000 ; LED-backlight on

; P7 | P6 | P5 | P4 | P3 | P2 | P1 | P0 ; D7 | D6 | D5 | D4 | LED| ENA| R|W| RS

Insofern auch Übereinstimmung mit Bild https://www.mikrocontroller.net/attachment/preview/693952.jpg

ciao gustav

: Bearbeitet durch User
#8031637
Lesenswert?

Ralph S. schrieb:

By the way: so kompatibel ist Arduino mit unterschiedlicher Hardware nicht. Ein direkt verdrahtetes HD44780 komatibles Display funktioniert mit dem CH32V003 Core nicht (Timing stimmt nicht, war das erste mal, dass ich das so gesehen habe).

Was soll man mit dieser Aussage anfangen? Was GENAU funktioniert da nicht, d.h. was ist dort am Timing falsch?

Karl B. schrieb:

Insofern auch Übereinstimmung mit Bild https://www.mikrocontroller.net/attachment/preview/693952.jpg

Warum verlinkst du so eine unlesbare Briefmarke und nicht das richtige Bild? https://www.mikrocontroller.net/attachment/693952/hd44780_i2c_adapter.png

: Bearbeitet durch User
#8031799
Lesenswert?

Rainer W. schrieb:

Warum verlinkst du so eine unlesbare Briefmarke und nicht das richtige Bild?

Es sollte auf das Bild im ersten Beitrag hingewiesen werden, sonst nichts. Und auf den ersten Post. Zum LESEN!! Wenn da "Grafikadresse kopieren" steht, steht da nichts von Auflösung. Und ich gehe davon aus, dass dann auch automatisch auf den ersten Post gelinkt wird.

ciao gustav

#8031802
Lesenswert?

Karl B. schrieb:

Rainer W. schrieb:

Warum verlinkst du so eine unlesbare Briefmarke und nicht das richtige Bild?

Es sollte auf das Bild im ersten Beitrag hingewiesen werden, sonst nichts. Und auf den ersten Post. Zum LESEN!!

Halbwegs normale Foristen verlinken dann einfach den ersten Beitrag oder verweisen an das EP/ET, etc., statt so einen Stuss anzustellen, der NATÜRLICH nicht zu dem Text führt, den man lesen soll.

: Bearbeitet durch User
#8031850
Lesenswert?

Karl B. schrieb:

Rainer W. schrieb:

Warum verlinkst du so eine unlesbare Briefmarke und nicht das richtige Bild?

Es sollte auf das Bild im ersten Beitrag hingewiesen werden, sonst nichts. Und auf den ersten Post. Zum LESEN!! Wenn da "Grafikadresse kopieren" steht, steht da nichts von Auflösung. Und ich gehe davon aus, dass dann auch automatisch auf den ersten Post gelinkt wird.

Kannst du noch nicht wissen..bist ja erst seit 18 Jahren im Forum mit 8600 Beiträgen🤔 Das wird schon..😀

: Bearbeitet durch User
#8032094
Lesenswert?

https://www.avrfreaks.net/s/topic/a5C3l000000U3jAEAS/t028128 Da wir als Leichenzerfledderer bekannt sind, bin ich noch auf eine Info gestoßen. In der Tat, es gab "#pragma unsupported instructions". Nicht nur bezüglich besagter, sondern auch anderer. Also war das mit dem z+ nicht ganz so falsch. Ich kann mich erinnern, dass genau das angemeckert wurde "no such instruction Z+" Allerdings linkt jetzt Studio 4 automatisch auf die richtige Includedatei. Damit entfällt der entsprechende Codeschnipsel vom Uralt-Programm. Ich tendiere sowieso dazu, tn4313def.inc zu bevorzugen. Hab keine 2313-er mehr hier rumliegen, nur noch ATMegas und 4313-er. Spare mir den "neuen Code" einzukopieren. Erst, wenn wirklich etwas Vernünftiges dabei herauskommt. Momentan noch die Adressierprobleme im 4-Bit-Modus. Mit Busyflagabfrage brauchen wir uns hier erst garnicht herumzuschlagen.

ciao gustav

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren