-         

Ergebnis 1 bis 7 von 7

Thema: massive I2C probleme

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.07.2005
    Ort
    Enns
    Alter
    32
    Beiträge
    129

    massive I2C probleme

    Anzeige

    hallo,

    ich probier schon 4 stunden um meine I2C kommunikation zu einem display herzustellen, aber es geht einfach nicht. hab das rnbfra 1.22 board und die I2C hardware onboard funktioniert.

    ich hab schon alle befehle für I2C probiert. weiters habe ich schleifen laufen lassen, die alle adressen beschreiben und alle möglichen daten von 0-255 scheiben, aber ich bekomm einfach nix auf das display. hab mit einem picaxe auf das display geschrieben und das geht, was mache ich falsch??? gibts da noch irgendwo sondereinstellungen, auf welche ich vergessen haben könnte???

    Code:
     $regfile = "m32def.dat"
     $framesize = 32
     $swstack = 32
     $hwstack = 32
     $crystal = 8000000
     $baud = 19200                                              'Quarzfrequenz
    
    Const Powerport_adr = &H74                                  'I2C Adr PCF 2
    Const Display_adr = &HC6
    
    Dim I2cdaten As Byte
    Dim Bytes As Byte                                           'Datenbyte aus PCF8574
    
    Config Portc = Output
    Config Scl = Portc.0                                        'Ports fuer IIC-Bus
    Config Sda = Portc.1
    
    'Print "Write Powerport"
    I2cinit
    I2cstart
    I2cwbyte Powerport_adr                                      'Schreibbefehl an PCF schicken
    I2cwbyte &B00000010                                         'Datenbyte an PCF
    I2cstop
    
    
    I2cdaten = &H0C
    Bytes = 1
    
    
    Do
    
    'Print "Versuch 1"
    I2csend 255
    I2csend Display_adr
    I2csend "B"
    I2csend &HC6 , &H0C
    
    
    I2cinit
    I2cstart
    I2cwbyte Display_adr                                        'Schreibbefehl an PCF schicken
    I2cwbyte 12                                                 'Datenbyte an PCF
    I2cstop
    
    Loop
    
    End
    danke, lg philipp

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Mach doch mal das Display-senden so, wie das PCF schicken.
    also
    start
    cwbyte adresse
    cwbyte "B"
    etc., etc.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.07.2005
    Ort
    Enns
    Alter
    32
    Beiträge
    129
    erstmal danke, aber so hab ichs schon probiert --> das zweite beispiel im code...

    hast du oder wer anderer noch einen rat für mich???

    danke, lg

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,

    ein LCD will ja auch noch Initialisiert werden, deshalb wird da auch nix rauskommen wenn man nur irgendwelche Bytes an das LCD sendet.

    Lass' mal den Absatz nach 'Versuch 1' weg, da ist kein Start und kein Stop, da kommt der I2C-Bus nur durcheinander !

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.07.2005
    Ort
    Enns
    Alter
    32
    Beiträge
    129
    hallo,

    hab das jetzt mal probiert, aber da kommt auch nix raus...

    im displaydatenblatt steht, es schluckt sofort nach dem hochlauf alles was ihm gesendet wird und visulisiert es (natürlich keine steuerzeichen)

    dieses teil ist es:
    http://www.roboter-teile.de/Shop/the...id=40&source=2

    danke, lg

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    48
    Beiträge
    1.254
    Hallo Zentauro,
    dieses teil ist es:
    dieses Display hat einen Controller onboard, der das Display beim Anlegen der Betriebsspannung initialisiert und dann auf I2C Daten wartet.
    Man sollte ihm also zuerst etwas Zeit lassen (das Display selbst braucht ja auch noch eine Weile)

    Zum Löschen des Displays wird das Kommando 12 gesendet.
    Dazu braucht es zuerst die Schreibadresse des Displays, dann die Auswahl des (Kommando-)Registers 0 und dann den eigentlichen Befehl.
    Das sieht dann so aus:
    Code:
    Waitms 1000
    I2cstart
    I2cwbyte Lcd_schreibadresse
    I2cwbyte 0 'Auswahl Register
    I2cwbyte 12 'Kommando clear
    I2cstop
    Der nächste Schritt wäre, den Cursor blinken zu lassen. Mit dem Datenblatt (bei deinem Link) schaffst du das bestimmt ab jetzt alleine

    Gruß, Michael

    P.S.: Pullup-Widerstände sind vorhanden?

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.07.2005
    Ort
    Enns
    Alter
    32
    Beiträge
    129
    es klappt!!!!

    herzlichen dank euch allen!!!!!

    lg, philipp

Berechtigungen

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