- Labornetzteil AliExpress         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 22

Thema: Problem: Ansteuerung eines LCD über I2C

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.02.2010
    Ort
    irgendwo in BW
    Beiträge
    154
    Anzeige

    E-Bike
    hallo zusammen,
    nach deiner beschreibung würde ich es nicht ausschließen, dass das display oder dein ic kaputt sind!

    gruß josua

  2. #12
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo josua,

    du betreibst die Hintergrundbeleuchtung ohne Transistor/FET und ohne Vorwiderstand direkt über den PCF8574. Das wird dieser nicht lange überleben, bzw. hat er wohl nicht überlebt.

    Das Display selbst wird wohl noch i.O. sein.

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    29.10.2007
    Alter
    34
    Beiträge
    25
    Vielen Dank erstmal an alle, die bereits geantwortet haben und mir helfen wollen! =D>

    du betreibst die Hintergrundbeleuchtung ohne Transistor/FET und ohne Vorwiderstand direkt über den PCF8574. Das wird dieser nicht lange überleben, bzw. hat er wohl nicht überlebt.
    Wie hättest du das Display bzw. die Beleuchtung denn angeschlossen? Im Datenblatt steht ja, dass an Pin 15 (LED+) +5V und an Pin 16 (LED-) 0V anliegen sollten. Warum kann meine Schaltung dann meinen IC zerstört haben? Ich verändere doch nur den Ausgang P6 am PCF, um die Beleuchtung ein- oder auszuschalten.

    Inzwischen denke ich selber, dass da was defekt ist bzw. zerstört wurde. Ich möchte nur wissen, was ich evtl. falsch gemacht habe, um beim nächsten Versuch nicht wieder den gleichen Fehler zu machen.

    Gruß, olli

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    29.10.2007
    Alter
    34
    Beiträge
    25
    Würde ein einfacher NPN-Transistor reichen?
    Ich würde ihn dann mit Collector an Pin 16 vom LCD, Basis an P6 vom PCF und Emitter an GND anschließen. Würde das so gehen?

    Edit: Sehe ich es richtig, dass der IC (PCF) durch meine Beschaltung zu viel Strom abbekommen hat? Oder wie kann der IC dadurch kaputtgehen?

  5. #15
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Basis an P6 vom PCF
    Ja, aber einen Widerstand 4,7 kOhm dazwischen.

    Sehe ich es richtig, dass der IC (PCF) durch meine Beschaltung zu viel Strom abbekommen hat?
    Ja.

    Gruß Dirk

  6. #16
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Josua,

    ich habe mir mal das "Datenblatt" von Pollin zu dem LCD Modul angeschaut. Viel schlauer werde ich dadurch allerdings nicht. Dort steht nur etwas von 18..20mA Stromaufnahme mit Backlight, was selbst für den PCF8574 eigentlich kein Problem wäre. Allerdings schweigt sich das Datenblatt gänzlich aus, ob im Display bereits ein Vorwiderstand drin ist oder nicht. Für die Kontrastspannung wird zudem ein Poti von 10..20kOhm empfohlen, nicht 5KOhm. Offen bleibt auch die Frage, wie man die Datenbits 0..3 im 4-Bit Mode beschalten soll. Offen lassen, mit GND verbinden. Bei DOGM Module werden die nicht benutzten Datenpins mit VCC verbunden.

    Zum Transistor möchte ich noch folgendes anmerken. Zwar geht das auch mit einem NPN, allerdings leuchtet dann das Backlight nach dem Einschalten solange bis das Display initialisiert wurde. Bei einem PNP Transistor passiert das nicht. Auch mit einem Transistor ist ein Vorwiderstand für das Backlight notwendig.

  7. #17
    Neuer Benutzer Öfters hier
    Registriert seit
    29.10.2007
    Alter
    34
    Beiträge
    25
    @Dirk: Vielen Dank!

    ich habe mir mal das "Datenblatt" von Pollin zu dem LCD Modul angeschaut. Viel schlauer werde ich dadurch allerdings nicht.
    Das ging mir genauso, hatte allerdings ein anderes Datenblatt (siehe hier). Da ich es nicht besser wusste, hab ich es dann so angeschlossen wie ich es für richtig hielt.

    Dort steht nur etwas von 18..20mA Stromaufnahme mit Backlight, was selbst für den PCF8574 eigentlich kein Problem wäre.
    Hm, also im Datenblatt vom PCF gibts einen Maximalwert für "maximum allowed input current through protection diode" der I/Os. Dort steht als Maximum +/-400 µA! Ist das nicht der entscheidende Wert? Oder hab ich da was übersehen?

    wie man die Datenbits 0..3 im 4-Bit Mode beschalten soll
    Also in meinem Datasheet steht: "In case of 4 bits instruction [...] D0 - D3 are not used." Das würde ich verstehen wie: werden nicht verbunden?!

  8. #18
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo zusammen,

    ich tippe auch auf einen 'angeschlagenen' PCF8574.

    Die Outputpins schaffen als typichen Wert 25mA. Werden aber mit nur 10mA beim Minimum angegeben. Seite 15 bei "LOW level output current"
    http://www.datasheetcatalog.org/data.../PCF8574_4.pdf

    Bei LCDs würde ich mich schwer wundern, wenn dort ein Vorwiderstand schon eingebaut wäre. Der würde dann ja die Betriebspannung für die Beleuchtung festlegen.
    Aber genau das lese ich aus folgendem Datenblatt:
    http://www.jameco.com/Jameco/Product...DS/1585979.pdf
    Letzte Seite unter "Electrical Characteristics" und "Block Diagram"

    Möglicherweise hatte der verwendete PCF zu wenig Power und konnte nur diese 10mA liefern.

    Jetzt stellt sich nur noch die Frage, warum aber genau dieser Pin noch schaltbar ist und ein anderer Pin zur Datensteuerung deshalb kaputt sein soll. Allerdings wäre ein zerstörter 'Nachbar'-Portpin P7 schon zuständig, dass der LCD-Enable-Eingang nicht mehr schaltet.

    Gruß Sternthaler
    Lieber Asuro programieren als arbeiten gehen.

  9. #19
    Neuer Benutzer Öfters hier
    Registriert seit
    29.10.2007
    Alter
    34
    Beiträge
    25

    Immer noch kein Erfolg

    Also, habe jetzt einen Nachmittag mit dem Teamkollegen verbracht, um das wieder zum Laufen zu kriegen - erfolglos!

    Erstmal haben wir die Hintergrundbeleuchtung vom Display gekappt, dann haben wir den PCF ausgetauscht - nichts. Nochmal neu programmiert, sollte nun nacheinander die Buchstaben von "Hallo" ausgeben. Als erstes kommt ein merkwürdiges Sonderzeichen, dann folgen "! , , /".
    Ok, haben wir uns ASCII-Tabelle angschaut und Hexcodes - da ist was faul:

    'a': 0110 0001 => 0010 0001
    'l': 0110 1100 => 0010 1100
    'o': 0110 1111 => 0010 1111

    Jetzt weiß ich nicht sicher welche Bits bzw. Pins das sind, also von wo man zählt?
    Andererseits ist das allein von der Hardware unmöglich, da wir ja eine 4-Bit-Ansteuerung haben?! Dann müssten ja noch weitere Bits fehlerhaft sein.
    Ich habe den Code im Programm abgeändert, um zu testen, ob ich das mit der Software beeinflussen kann.

    Code:
    #define LCD_D0		(1 << LD4)
    #define LCD_D1		(1 << LD5)  
    #define LCD_D2		(1 << LD6)  
    #define LCD_D3		(1 << LD7)
    
    #define LCD_D4		(1 << LD4)
    #define LCD_D5		(1 << LD5)  
    #define LCD_D6		(1 << LD6)  
    #define LCD_D7		(1 << LD7)
    Habe diese Werte verändert - die Anzeige blieb gleich!!!

    Das kann doch nicht sein? Wenn diese Werte doch relevant sind, wie kann ich dann das Display ansteuern?

    Bitte helft uns, es muss doch ne Erklärung geben? Ist das Display jetzt doch futsch? Oder warum kommt diese merkwürdige Ausgabe?

  10. #20
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo Olli08,

    dein Muster könnte man so interpretieren, dass das höchste Bit in der 4´er-Gruppe für das 'falsche' Bit zuständig ist.

    Bitsfolge 3210 ... Beim '-' soll es egal sein wie das Bit steht.
    Regel 1) 0x-- -> liefert x=0
    Regel 2) 1x-- -> liefert x=1

    'a': 0110 0001 => 0010 0001
    'l': 0110 1100 => 0010 1100
    'o': 0110 1111 => 0010 1111

    Da ja bei deinen Buchstaben bis jetzt nur das höhere Nibble (die ersten 4 Bit) zu einem Fehler führen, könnte man Buchstaben suchen die auch im unteren Nibble nach meinen "Regeln" den Fehler machen sollten.

    Als Testmuster wäre somit folgendes Bitzeug interessant:
    000- ---- - Leider keine druckbaren Zeichen. Entfallen
    1--- ---- - Können die Displays meistens nicht. Entfallen

    0011 0000 "0" => 0011 0000 "0" (Zahl 0)
    0011 0100 "4" => 0011 0000 "0"
    0011 1000 "8" => 0011 1100 "<"
    0011 1001 "9" => 0011 1101 "="
    ....

    Na, ob das wirklich so ist? Aber etwas anderes fällt mir nicht ein.

    Gruß Sternthaler
    P.S.: Ich hoffe, ihr habt Ostern gut verbracht.
    Lieber Asuro programieren als arbeiten gehen.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress