Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Heiko, > > > hat jemand schon ein StandardLCD an einem MAX7311 anstelle des PCF betrieben? > > Ich würde gern neben dem LCD noch zusätzliche Tasten abfragen können (ähnlich, wie bei > > Andre's I2C Terminal). Der Max7311 bietet halt die Möglichkeit neben den 16 Ports mehr > > Bausteine an einem Bus zu betreiben (wichtig für Heizungs Einzelraumsteuerung, ohne Expander). > > Es macht nicht viel Sinn einen MAX7311 für die LCD-Ansteuerung zu benutzen. > Es müssten dann ein vielfaches an Daten über den Bus übertragen werden, was > die Ausgabe entsprechend langsamer macht. > Als kleines Bsp.: > Ein String mit 5 Zeichen benötigt bei einem LCD am PCF8574 mit pcflcd.c2 > 21Byte an Daten am Bus. > > Mit einem MAX7311 im 4-Bit Mode am MAX7311 wären das schon > 60 Byte am Bus. > Würde man das Display am MAX7311 im 8Bit-Mode betreiben (10 bzw. 11 Ports), > so würde sich das Datenvolumen auf 35Byte reduzieren. > Das wäre immernoch fast doppelt so viel, wie bei einem LCD am PCF8574. > > Darum habe ich auch noch nicht daran gedacht, ein LCD an einem anderem > Portexpander, als dem PCF8574 anzuschließen. > > > Andre, > > an welchen Stellen des Moduls PCFLCD müßten Änderungen vorgenommen werden? > > Von Änderungen kann man hier nicht sprechen. > Es müsste ein komplett neues Modul geschrieben werden, da die Ansteuerung komplett > unterschiedlich ist. > > Beim PCF8574 muß man den Baustein nur am Anfang des LCD-Zugriffs einmal > Adressieren. Danach werden die Daten als "Datenstrom" gesendet. > Darum ist auch das Ausgeben von Strings beim PCFLCD am schnellsten. > Beim MAX7311 muß man hier den Baustein für jedes Byte/Integer neu Adressieren. > D.h. bei einem LCD im 8Bit Mode 4mal Adressieren pro Zeichen/Kommando. > Adressieren heißt beim MAX7311 jedoch 1xBus-Adresse + 1xRegisteradresse. > Dazu kommt noch das Datenbyte. Macht also 4x3=12Byte pro Zeichen/Kommando. > > Selbst wenn Zeichenweise geschrieben werde würde, wären es beim PCF8574 5Byte. > Also immernoch weniger als die Hälfte an Daten, als mit dem MAX7311. > > Wenn Du also wirklich einen MAX7311 für eine LCD ansteuerung benutzen willst, > solltest Du dieses wenigstens im 8Bit-Mode betreiben. > Der Ablauf wäre dann folgender (pro Zeichen/Kommando): > - MAX7311 adressieren > - Register für Port A setzen > - Datenbyte senden > - Konfigurationsbyte senden (hier nur 2 oder 3 Bit für RS, En(,R/W), mit En high) > - I2C-Stop > - MAX7311 adressieren > - Register für Port B setzen > - Konfigurationsbyte senden (hier nur 2 oder 3 Bit für RS, En(,R/W), mit En low) > - I2C-Stop > > Also Vorlage kannst Du hier aber lcdext.c2 (Version vor 2.2) > und srlcd.c2 benutzen. > Diese Module haben mit dieser Art der Ansteurerung mehr gemeinsam. > (srlcd.c2 wg. 8Bit-Mode) > > Die restlichen 6 bzw. 5 Ports des MAX7311 kannst Du dann frei verwenden. > Wenn Du sie nur als Eingänge benutzt, mußt Du beim ansteuern des LCDs > nichts weiter beachten. > > MfG André H.