-         

Ergebnis 1 bis 5 von 5

Thema: I2C (Levelshifter) funktioniert nicht

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544

    I2C (Levelshifter) funktioniert nicht

    Anzeige

    Hi,

    ich habe zwei Platinen, welche mit unterschiedlichen Versorgungsspannungen (3V3 & 5V) arbeiten. Da diese über I2C kommunizieren sollen, hab ich einen I2C-Levelshifter aufgebaut, nach der Application Note AN97055 von Phillips. Als Mosfets verwende ich zwei BSS138, als Pullups auf jeder Seite 3k3.
    Sobald ich jedoch die Kabel einstecke, geht die 5V-Seite (SDA & SCL) auf 0V. http://playground.arduino.cc/Main/I2...alLevelShifter

    Wenn ich die Kabel rausziehe, arbeiten beide Seiten korrekt!

    Hat jemand einen Hinweis, was falsch sein könnte?

    Vielen Dank & Gruß
    Chris

    EDIT:
    Achja, das noch: Immer, wenn der Master (ATXMega32A4 @ 3V3) etwas an den Slave sendet, resettet sich dieser...
    Geändert von Che Guevara (13.01.2013 um 17:11 Uhr)

  2. #2
    Eine Antwort ist schwer ohne Deine Platine zu sehen. Ich habe auch gerade einen Level-Shifter für I2C aufgebaut, vielleicht hilft das (Schaltplan, Platine) weiter: http://lookmanowire.blogspot.de/2012...pberry-pi.html
    XBee, Arduino, RaspberryPi und Elektronik-Blog
    http://lookmanowire.blogspot.de/

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hi,

    danke für deine Antwort!
    Meine Schaltung des Levelshifters entspricht 1:1 der in deinem Link, bis auf die Pullups, ich verwende 3k3 anstatt 10k.
    Vom Rest habe ich keinen Schaltplan, könnte ihn aber notfalls erstellen.

    Gruß
    Chris

  4. #4
    Wenn die Platine tatsächlich 1:1 ist (was ohne diese zu sehen schwer zu beurteilen ist), bleibt ja nur noch die Software. Wie sieht denn der Programmcode des ATXMega aus? Welcher IC ist als Slave angeschlossen? Funktioniert das ganze mit einem simplen Level-Shifter aus Widerständen (Beispiel im Beitrag am Ende).
    XBee, Arduino, RaspberryPi und Elektronik-Blog
    http://lookmanowire.blogspot.de/

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hi,

    ich meine nicht die Platine ansich, sondern den Schaltplan des Levelshifters
    Dass es ein Softwareproblem ist, glaube ich nicht, weil der Fehler auch auftritt, wenn der I2C-Bus überhaupt nicht im Programm verwendet wird.
    Der ATXMega ist der Master, an ihm hängen ein MPU6000 als I2C-Slave und der ATMega328p als Slave.
    Mit Wiederständen hab ich es noch nicht ausprobiert.

    Gruß
    Chris

    EDIT:
    Ok, ich habs nochmal probiert, es scheint wohl doch ein Softwareproblem zu sein..... Sobald ich im Slave die "Config TWISlave = ..." auskommentiere, funktioniert der Levelshifter... Aber das werde ich dann in meinem anderen Thread zu diesem Thema schreiben
    Geändert von Che Guevara (13.01.2013 um 18:38 Uhr)

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 30.12.2010, 23:03
  2. RNST I2C Motorsteuerung funktioniert nicht
    Von daniel16 im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 26.06.2008, 16:17
  3. I2C Funktioniert nicht mit Atmega8
    Von semicolon im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 22.01.2007, 10:28
  4. Antworten: 9
    Letzter Beitrag: 04.03.2006, 17:46
  5. Problem was sonst (neues RNBFRA) i2c funktioniert nicht
    Von paladin im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 1
    Letzter Beitrag: 17.12.2005, 16:38

Berechtigungen

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