Forum: Mikrocontroller und Digitale Elektronik STM32F0 -> I2C -> PCF8574 -> 20x4 LC-Display


von Gerald R. (visitor)


Lesenswert?

Hallo!

Ich suche jetzt schon seit Tagen einen Treiber oder Beispielcode mit dem 
man mit einem DicsoveryF0 über I2C ein 20x4 oder ein 16x2 Display 
ansteuern kann.

Gefunden habe ich Code für Arduino und STM32F1.

Ich benutze CooCox und die Treiber die ich da finde funktionieren alle 
nicht.
Das bedeutet Fehler beim Compilieren da die Helper Files nicht zu meinem 
Board pasen.


Ein Arduino Sketch mit super Beschreibung ist hier zu finden, ich habe 
das V1 in gelb.
http://arduino-info.wikispaces.com/LCD-Blue-I2C

Bleibt hier nichts anders übrig als den Treiber selber zu schreiben oder 
an das F0 anzupassen?

Alternativ kann ich natürlich den PCF8574 entfernen und das Display über 
GPIO mit 4Bit ansteuern.

von Thorsten (Gast)


Lesenswert?

Arduino-Bibliothek für das Display nehmen und die Funktionen, die auf 
I2C zugreifen und Delays für den STM32 anpassen funktioniert nicht?

von Gerald R. (visitor)


Lesenswert?

Das funktioniert bestimmt.
Ich bin aber noch sehr unerfahren und vermute dass es bei mir Monate 
dauern wird.
Mal sehen, das wird wohl eher was für den Winter ;-)

Möglicherweise wäre es einfacher den Treiber für das F1 an das F0 
anzupassen.

von Thorsten (Gast)


Lesenswert?

Ich habe hier wohl ein ähnliches Display rumliegen und einen STM32. 
Hatte in nächster Zeit mal vor das auch zu nutzen. Also wenn ich was 
habe, dann lass ich dich teilhaben. ;-)

von Gerald R. (visitor)


Lesenswert?

Danke Thorsten!

Ich schaue mit in der Zwischenzeit mal den code für das F1 an.
Eventuell bekomme ich das ja hin.

von Stefan F. (Gast)


Lesenswert?

> Alternativ kann ich natürlich den PCF8574 entfernen und das
> Display über GPIO mit 4Bit ansteuern.

Sicher? Das Diplay wird mit 5V betrieben, der STM32 vernutlich mit 3,3V. 
Dann bräuchtest Du statt des PCF8574 Pegelwandler.

von Gerald R. (visitor)


Lesenswert?

Hallo Stefan!

Ich bin mir da schon sicher, da ich bereits ein Display mit GPIO und 
einem HD4470 betreibe.
Kann mir kaum vorstellen, dass die Chinesen da einen anderen Controller 
eingebaut haben, Bzw. einen der nicht 3V kompatibel ist.

Wenn es wirklich nicht geht, kann ich ja einen ULN2003 oder ähnliches 
dazwischen schalten.

Kann es aber nicht testen, da ein Kumpel das Display unbedingt  haben 
wollte.
Werde mir aber noch eines bestellen da es knapp unter EUR 5.- inkl. 
Versand kostet.

von Falk B. (falk)


Lesenswert?

@ Gerald R. (visitor)

>Gefunden habe ich Code für Arduino und STM32F1.

>Ich benutze CooCox und die Treiber die ich da finde funktionieren alle
>nicht.
>Das bedeutet Fehler beim Compilieren da die Helper Files nicht zu meinem
>Board pasen.

Da die STM32 ja ein vielgeprieseneFamilie sind, deren Mitglieder alle 
SEHR ähnlich sind, um nicht zu sagen, das gleiche Module absolut 
identisch aufgebaut sind, sollte ein leichtes sein, einen Code vom F1 
auf F0 umzubauen.

Beitrag "I2CLCD Library für HD44780 LCDs"

Ist für AVR, man muss nur den untersten I2C Teil anpassen.

von Gerald R. (visitor)


Lesenswert?

Hallo Falk!

Vielen Dank, werde ich auf jeden Fall versuchen.
Bis ich das Display bekomme versuche ich es im Trockenlauf.

von Falk B. (falk)


Lesenswert?

Nimm aber die verbesserte Version.

Beitrag "Re: I2CLCD Library für HD44780 LCDs"

von Gerald R. (visitor)


Lesenswert?

Hallo Falk!

Danke für den Hinweis.

von Stefan F. (Gast)


Lesenswert?

> Kann mir kaum vorstellen, dass die Chinesen da einen anderen
> Controller eingebaut haben, Bzw. einen der nicht 3V kompatibel ist.

Mir ist es schnmal passiert. Anstatt deswegen die Schaltung zu ändern, 
hatte ich jedoch einfach ein anderes Display gekauft (wieder auf gut 
Glück), und damit ging's dann.

> Wenn es wirklich nicht geht, kann ich ja einen ULN2003 oder ähnliches
> dazwischen schalten.

Das war doch ein Open-Kollektor Darlington Leistungstreiber, oder nicht? 
Ich würde sie nicht als Pegelwandler einsetzen. Dann eher einen aus der 
74LSxxx Serie (mit VCC=5V). Für deren Eingänge reichen 2V als High Pegel 
aus.

von Thorsten (Gast)


Angehängte Dateien:

Lesenswert?

So, habe die Arduino-Bibliothek mal so hingebogen, dass sie jetzt mit 
dem STM32 läuft. (Olimexino STM-32)
Der Code ist mein Testprojekt, dementsprechend wenig ansehnlich und 
übersichtlich, aber ich denke die benötigten Funktionen findest du 
dadrin. :D

Der PCF8574 kann auch mit 3,3V betrieben werden. Mein Display zumindest 
auch.
Für die Kontrastspannung müsste ist dann noch eine Ladungspumpe nötig.

von Gerald R. (visitor)


Lesenswert?

Dankeschön, habs mir runtergeladen.
Muss es noch auf das F0 anpassen und auf mein neues Display warten.

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.