-
        

Ergebnis 1 bis 3 von 3

Thema: PIC18F45K20: Problem mit I²C-Bus

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    30.04.2008
    Beiträge
    81

    PIC18F45K20: Problem mit I²C-Bus

    Anzeige

    Hi leute, ich möchte das MSSP-Mudul nutzen um über einen I²C-Bus einen Seriellen EEprom zu steuern.

    Mein Problem dabei: Start-Condition geht. Ich kann Daten Senden und bekomme auch ACK vom EEprom nach jedem byte, dass ich sende. Dass die ACKs vom EEprom kommen, weiß ich, weil kein ACK mehr kommt, wenn ich den Identifier ändere.

    nur kann ich keine Daten empfangen. Ich empfange nur "1-worte" also 0xff.

    So in etwa sieht mein Flowchart aus:

    Fürs schreiben:

    - Start-Condition
    - Deviceselect-byte senden (R/W=0)
    --- empfange ACK
    - Address High-byte senden
    --- empfange ACK
    - Address Low-byte senden
    --- empfange ACK
    - Data-byte senden
    --- empfange ACK
    - Stop-Condition

    Fürs lesen:

    - Start-Condition
    - Deviceselect-byte senden (R/W=0)
    --- empfange NOACK !!!!!

    - Start-Condition
    - Deviceselect-byte senden (R/W=0)
    --- empfange ACK
    - Address High-byte senden
    --- empfange ACK
    - Address Low-byte senden
    --- empfange ACK
    - ReStart-Condition
    - Deviceselect-byte senden (R/W=1)
    - Data-byte empfangen
    --- NOACK senden
    - Stop-Condition

    ich schreibe b'11110000' und lese b'11111111'. Dazwischen habe ich eine Warteschleife von ca 30msec.

    Der verwendete EEprom ist ein M24C32
    http://www.datasheetcatalog.org/data...cs/mXrrswv.pdf

    Hat jemand eine idee was daran falsch sein kann? danke für die Mühe des lesens..

    Gruß Jango1987

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    09.07.2005
    Ort
    Hangover
    Alter
    51
    Beiträge
    45
    Hä ?
    Was für ein Byte sendest Du an erster Stelle ???
    Beim Lesen und Schreiben das gleiche ?

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    30.04.2008
    Beiträge
    81
    ich verstehe die frage nicht ganz...

    lesen tu ich wie folgt: ich führe einen sog. "dummy-write" aus um die addresse zu selectieren, von der ich später lesen will.. das Deviceselect-byte ist natürlich das selbe.. bzw. R/W ist anders

    aber eigentlich hatts sichs erledigt. War ein Hardwareproblem.. Der tread ist somit geschlossen schätze ich.

    trotzdem danke für deine antwort..

Berechtigungen

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