Forum: Mikrocontroller und Digitale Elektronik TWI Spannungspegel unterschiedlich


von Lukas H. (lukas1)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

Betreibe einen ATMEGA168 der mit einem anderen Board über TWI/I2C 
kommunizieren soll.

Frequenz ist 100kHz. Verwendet wird der interne OScillator von 8MHz.Pull 
up Widerstände von 4k7.
Bekomme nun auch schon die ersten Daten aus der SDA und SCL Leitung 
heraus.

Problem ist, dass ich unterschiedliche Spannungspegel bei der SDA und 
SCL Leitung herausbekommen siehe Bild im Anhang.
Oben Daten
Unten Clock

Wisst ihr was das Problem ist, was kaputt sein könnte ?
Chip hab ich schon gewechselt, keine Veränderung.

LG
Lukas

von Bronco (Gast)


Lesenswert?

Kann es sein, daß Du den Ausgangsport des AVR falsch konfiguriert hast?
Beim I2C/TWI muß SDA als Open-Collector arbeiten d.h. starke 0 und 
schwache 1.

In Deinem Bild könnte es sein, daß der AVR eine starke 1 auf SDA legt 
und der Slave eine starke 0 dagegen legt (Kurzschluß!), so daß sich eine 
Spannung von ca. 2,5V einstellt.

Die Idee ist, daß alle an SDA angeschlossenen Treiber aktiv nur nach 
Masse ziehen dürfen, aber nicht nach VCC. Durch den Pullup ergibt sich 
ein High, wenn kein Treiber aktiv nach Masse zieht.

von Lukas H. (lukas1)


Lesenswert?

Kann sein nur wie konfiguriere ich die AUsgangsport des AVR richtig?


LG
Lukas

von spess53 (Gast)


Lesenswert?

Hi

>Kann sein nur wie konfiguriere ich die AUsgangsport des AVR richtig?

Brauchst du nicht. Mit dem Setzen von TWEN in TWCR übernimmt das TWI die 
Kontrolle über die Pins. Lediglich der interne Pull-Up-Widerstand ist 
zuschaltbar.

MfG Spess

von Lukas H. (lukas1)


Lesenswert?

Ja dann ist die Frage was ich ändern könnte oder was kaputt ist, denn 
diese Spannungsunterschiede dürften nicht vorhanden sein.

Bekomme auch keine Kommunikation hin. Kein ACK wird empfangen.

LG
Lukas

von spess53 (Gast)


Lesenswert?

Hi

>Ja dann ist die Frage was ich ändern könnte oder was kaputt ist, denn
>diese Spannungsunterschiede dürften nicht vorhanden sein.

Hast du die Signale mal ohne 'Gegenstelle' gemessen? Also nur 
Pull-Up-Widerstände.

MfG Spess

von Lukas H. (lukas1)


Lesenswert?

Ja hab ich.. Genau die selben Spannungspegel.

LG
Lukas

von spess53 (Gast)


Lesenswert?

Hi

>Ja hab ich.. Genau die selben Spannungspegel.

Da du den Controller schon gewechselt hast, würde ich mal die Schaltung 
genau kontrollieren.

MfG Spess

von Lukas H. (lukas1)


Lesenswert?

Es muss aber dann eigentlich an der TWI Applikation liegen vom 
Controller, denn ich habe mal einfach den TWI ausgeschaltet und die PINS 
wo SDA und SCL sind high und low gesetzt und hab da dieselben 
Spannungspegel!

LG Lukas

von Bronco (Gast)


Lesenswert?

Lukas H. schrieb:
> Es muss aber dann eigentlich an der TWI Applikation liegen vom
> Controller, denn ich habe mal einfach den TWI ausgeschaltet und die PINS
> wo SDA und SCL sind high und low gesetzt und hab da dieselben
> Spannungspegel!

Meinst Du mit "dieselben Spannungspegel", daß sie in diesem Fall okay 
sind? Oder dieselben falschen Spannungen wie in Deinem Oszi-Bild?

Kannst Du die Leitung auftrennen und nachmessen?
Zeig doch mal Deine Schaltung.

von Lukas H. (lukas1)


Lesenswert?

Nein da sinds die richtigen Spannungen. 4,6 V sowas.
und Beide gleich groß!

LG Lukas

von Bronco (Gast)


Lesenswert?

Schaltest Du vielleicht TWEN zwischen durch wieder aus?

von Lukas H. (lukas1)


Lesenswert?

Nein TWEN ist definitv nicht ausgeschaltet´.
Immer eingeschaltet.

Ist doch komisch oder wenn ich den TWI einschalte und er erzeugt mir 
solche SPannungspege und wenn ich ihn ausschalte ist alles in Ordnung.

von Bronco (Gast)


Lesenswert?

Lukas H. schrieb:
> Ist doch komisch oder wenn ich den TWI einschalte und er erzeugt mir
> solche SPannungspege und wenn ich ihn ausschalte ist alles in Ordnung.

Nicht unbedingt.
Wenn Du den TWI ausschaltest, wird kein Slave adressiert und damit wird 
auch kein Slave aktiv SDA treiben.
Wenn Du TWI aktivierst und dieser einen Slave adressiert, dann will der 
Slave antworten und treibt SDA. Falls gleichzeitig -warum auch immer- 
irgendjemand eine starke '1' auf SDA legt, bekommst Du diese seltsamen 
Pegel.

von Lukas H. (lukas1)


Lesenswert?

Warum? Ich bekomme  auch diesen seltsamen Pegel wenn keine Kommunikation 
besteht, also kein SLAVE an SDA und SCL dran ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.