Forum: Mikrocontroller und Digitale Elektronik Raspberry Pi I2C SDA Problem


von Luca Z. (soundstorm)


Angehängte Dateien:

Lesenswert?

Hallo ihr lieben,

ich habe einen PCF8574 (für LCD) mit integriertem (Platine, nicht im IC) 
4.7k Pull-Up an meinen Raspberry angeschlossen. Zum Test habe ich 
i2cdetect laufen lassen, SCL vom RasPi zum IC und Logic Analyzer, SDA 
vom IC nur zum Logic Analyzer (um zu testen, ob ACK-Low gesendet wird).
Unter 3.3V VCC sagt der IC gar nichts, die Clock läuft einfach nur 
durch. Bei 5V sendet er manchmal ein paar (?) unverständliche Lows 
(s.o.). Verbindet man SDA zusätzlich mit dem RasPi, so sagt er wieder 
nichts, bleibt auf High. Auch schon mit je einem MOFSET (S=RasPi, D=IC, 
G=3.3) als Pegelwandler (IC mit 5V Logik, RasPi mit 3.3V) dazwischen 
versucht (ohne Pull-Ups, da sowohl RasPi, als auch die ICs eigene haben) 
- nichts anderes. Habe die Pull-Ups auch schon entfernt, ebenso nichts.
Mein PN532 mit 1k Pull-Up (könnte man auch entfernen) sagt überhaupt 
nichts, lässt nur die LED blinken (SCL/Rx). Lässt sich aber immerhin 
über UART ansteuern.
Meine MCP23017 habe ich noch nicht ausprobiert.

Ich hoffe ihr könnt mir helfen. Wenn ihr weitere Informationen braucht, 
kann ich die euch auch liefern.

Danke schon mal im Voraus.

: Bearbeitet durch User
von Oliver R. (orb)


Lesenswert?

Bei I2C sollten nur an einer Stelle PullUps sitzen und da der Pi schon 
welche hat darf man keine weiteren anschließen, übliches Problem bei 
fertigen Erweiterungsplatinen die nicht speziell für den PI sind.
Die PullUps legen auch den Spannungspegel am Bus fest, Du kannst also 
den PCF8574 mit 5Volt betreiben, der I2C-Bus läuft trotzdem mit 3,3Volt 
Highpegel.

von Luca Z. (soundstorm)


Lesenswert?

Also alle Pull-Ups raus löten, Pegelwandler mit Pull-Ups auf der 5V 
Seite wieder dazwischen (zumindest für den PN532, denPCF8547 auf 3.3V 
Seite)?

von Hans (Gast)


Lesenswert?

Massen verbunden?

von Luca Z. (soundstorm)


Lesenswert?

Inwiefern?
Alle Geräte nutzen die selbe Masse...

: Bearbeitet durch User
von Luca Z. (soundstorm)


Lesenswert?

Mal eine blöde Frage: ist es denn überhaupt richtig, dass bei i2cdetect 
nur die Clock gesendet wird und SDA vom Slave (ACK) auf Masse gezogen 
werden muss und sonst durchgängig High ist? Oder liegt hier schon ein 
Fehler vom BUS vor (Adressierung über SDA?!)? Leider konnte ich kein 
Logic Diagramm eines funktionierenden Busses finden, habe mich halt nur 
gewundert.

: Bearbeitet durch User
von Klaus (Gast)


Lesenswert?

Luca Zimmermann schrieb:
> Mal eine blöde Frage: ist es denn überhaupt richtig, dass bei i2cdetect
> nur die Clock gesendet wird und SDA vom Slave (ACK) auf Masse gezogen
> werden muss und sonst durchgängig High ist?

i2cdetect ist ein Programm, das Slaves auf dem Bus sucht. Soetwas wie 
ping für TCP. Dazu legt es nacheinander alle gültigen Slaveadressen auf 
den Bus und schaut, ob sie mit einem ACK quitiert werden. SDA 
durchgängig high heißt Adresse 0x7f, da wird kaum ein Slave antworten.

Statt mit einem LA solltest du mal mit einem Scope schauen. Ich glaube, 
deine Signale sind nicht wirklich ok. Für "durchgängig high" sind 
zuviele Lows zu sehen, für wirkliche Werte, sind die Lows zu kurz.

MfG Klaus

von Luca Z. (soundstorm)


Lesenswert?

Klaus schrieb:
> SDA durchgängig high heißt Adresse 0x7f, da wird kaum ein Slave antworten.

Das dachte ich mir, deswegen hab ich noch mal nachgefragt, ob ich da 
richtig liege. Danke für die Bestätigung.

Klaus schrieb:
> Für "durchgängig high" sind zuviele Lows zu sehen, für wirkliche Werte, sind die
> Lows zu kurz.

Das war auch nur ein seltenes Beispiel - sonst passiert nichts... Ich 
werde mal i2c-0 überprüfen, ob der korrekte Befehle sendet und der SDA 
von i2c-1 evtl. blockiert ist. Ich konnte ihn zumindest auf Low ziehen.

: Bearbeitet durch User
von Luca Z. (soundstorm)


Angehängte Dateien:

Lesenswert?

Alles funktioniert super, seit ich die Problemquelle gefunden habe:
Alles auseinander gebaut, es stellte sich heraus, dass das 
Flachbandkabel 5+ und SDA verbunden hatte… Hätte man auch einfacher 
haben können.
Danke aber für eure Hilfe!

: Bearbeitet durch User
von Oliver R. (orb)


Lesenswert?

Dann sei froh daß der Pi überlebt hat, der mag garkeine 5Volt auf den 
IOs

von Luca Z. (soundstorm)


Lesenswert?

Ich weiß, bin auch froh drum, der hat schon so viel mitgemacht und alles 
bisher überlebt. Robust!

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.