Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

EA 7123-I2C von Conrad Kategorie: I²C-Bus (von ortwin - 20.03.2006 11:01)
Als Antwort auf Thema hat sich erledigt von ortwin - 17.03.2006 16:41
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board, eigenes Board
Hallo
an alle Freunde des 3x12 Display von Conrad (EA7123-I2C)

hatte bei meinem letzten posing nicht bedacht das sich doch so viele Leutchen mit dem Display
befassen.

habe jetzt von Freitag bis Montag 42 E-mail Anfragen für den Init-Code bekommen.

Sorry - ich kann beim besten Willen nicht alle persönlich anscheiben - (zeitgründe)

deshalb hier meine Erfahrungen für alle öffentlich.

Grundsätzlich mu� man unterscheiden zwischen Single Supply und Dual Power

Ich betreibe mein Display momentan versuchsweise am Conrad App-Board mit 0V und +5V
alle hier gemachten Aussagen gelten auch nur für Single Supply Gnd und 5V

Hier mal die Stolpersteine für den Anfänger:

so gehts nicht:
Die IC intern erzeugte Negativspannung für das LCD wird mit bit G=1 eingeschaltet.
wenn G=0 muÃ? daÃ? Kontrastpoti am Schleifer ca. 0.18V haben
Das Display zeigt dann nur Zeile 1 und 2 und in der 3. Zeile erscheint die Information von Zeile 1

so ist es richtig
G=1
N und M =1 (4 Zeilen)
Das Kontrastpoti muÃ? am Schleifer ca. 1.8 Volt haben
Das Display muÃ? mit D=1 eingeschaltet werden. (wichtig)

dann braucht man mindestens:

   I2C_Init(I2C_100kHz);                   // I2C Bit Rate: 100 kHz

   //-------------------------- Disp 3x12 init
   I2C_Start();              // LCD-Init
      I2C_Write(0x74);       // adresse
      I2C_Write(0x00);       // nop
      I2C_Write(0x2e);       // funktion set
      I2C_Write(0x0f);       // display on off cursor   0d=Cursor an
      I2C_Write(0x06);       // entry mode
      I2C_Write(0x01);       // Adr im DDRAM   01=clear   02=home
      AbsDelay(10);          // notwendig nach clear ??? ist noch nicht klar ob das notwendig ist
   I2C_Stop();               //

   //-------------------------- Disp 3x12 Curser positinieren
   I2C_Start();              // Cursor auf Zeile 1 Pos 1
      I2C_Write(0x74);
      I2C_Write(0x00);
      I2C_Write(0x02);
   I2C_Stop();

   //-------------------------- Disp 3x12 Zeichen ausgeben nur zum Test
   for (z=70;z<150;z++)
   {
   I2C_Start();
      I2C_Write(0x74);
      I2C_Write(0x40);        // schreibe jetzt
      I2C_Write(z);           // Buchstabe
   I2C_Stop();  AbsDelay(200);  // delay nur damit mein Auge folgen kann
   }


habe es aus Zeitgründen noch nicht geschafft den Cursor beliebig zu positionieren
bin mir auch nocht nicht klar ob das delay noch CLEAR oder HOME notwendig ist.

so läuft es jetzt bei mir versuchsweise auf dem Conrad App-Board.

Wenn jemand den Cursor positionieren kann - bitte mail an mich

gruÃ? aus Aalen
ortwin

















    Antwort schreiben


Antworten: