Forum: Analoge Elektronik und Schaltungstechnik I2C Problem SCL bleibt auf 1.5V sobald Daten geschickt werden


von David (Gast)


Lesenswert?

Hi,

ich versuche hier einen I2C Chip (besser gesagt ist es ein kleines Board 
mit einem Sensor drauf,) mit einem FTDI anzusteuern, sobald ich jedoch 
Daten auf dem Bus sende sinkt mir SCL nur auf 1.5V herab und ich bekomme 
kein ACK vom Client.
Komischerweise geht SDA auf 0V herunter. Ich nehme an das der Pull-Up 
Widerstand hier zu klein ist?

Testweise habe ich auch noch einen anderen I2C Master zur Kommunikation 
verwendet, dieser funktioniert problemlos, daher würde ich das Board an 
sich lieber nicht modifizieren.

Kann mir hier jemand einen Workaround für dieses Problem vorschlagen?

Vielen Dank,
David

von David (Gast)


Lesenswert?

Hab's mir noch etwas weiter angesehen, also SCL und SDA gehen direkt in 
den chip hinein

Der FTDI nimmt 20mA sobald SCL auf Low gesetzt wird, wobei wenn ich 
jetzt Ground mit dem Pin verbinde komme ich auf 26mA jetzt die Frage wie 
kann ich die restlichen 6mA auch noch fressen :-)

von Ralf (Gast)


Lesenswert?

Moin,

> ...mit einem FTDI anzusteuern ...
Genau, die haben auch nur einen Chip im Angebot...

> Ich nehme an das der Pull-Up Widerstand hier zu klein ist?
Ja, nimm lieber 1206 oder noch besser einen bedrahteten... ;)
Welchen WERT hat denn der Widerstand?

> Kann mir hier jemand einen Workaround für dieses Problem vorschlagen?
Naja, was erwartest du? Kein Schaltplan vorhanden, etc. Das Problem ist 
also mit einem wachsweichen Informationsgehalt beschrieben...
Ist es wenigstens ein FT-Chip mit MPSSE?

> ... also SCL und SDA gehen direkt in den chip hinein ...
oO Was bedeutet das? Direkt verbunden? Das sollte die übliche 
Verbindungsart sein, ja.

> Der FTDI nimmt 20mA sobald SCL auf Low gesetzt wird, ...
20mA ist m.E. zuviel.

> ...wobei wenn ich jetzt Ground mit dem Pin verbinde komme ich auf 26mA
> jetzt die Frage wie kann ich die restlichen 6mA auch noch fressen :-)
Ein FT-Chip ohne MPSSE kann die Ausgänge nur schlecht oder gar nicht auf 
Tristate schalten, das nächst-"beste" ist Input. Hast du das für 
Tristate gemacht?
Falls nicht, dann frisst eh irgendwann der Strom deinen FT-Chip.

Ralf

von David (Gast)


Lesenswert?

Hi,

in dem erwähnten Beispiel verwende dort keinen Pull-Up Resistor, das 
kommt bereits aus dem Chip raus.
Einen EEprom Chip hatte ich direkt angesprochen indem ich einfach einen 
10k Pullup Widerstand verwendet habe, das hat soweit auch funktioniert.

Ich hab mir jetzt ein anderes Beispiel (USB Soundkarte mit EEprom) 
besorgt wo ein i2c eeprom angesteuert wird, wenn ich dort SCL mittels 
amperemeter direkt mit Grounding verbinde bekomme ich 60mA, wenn du 
schreibst das 26mA bereits zu viel ist was wäre denn normal - das 
verwirrt mich jetzt etwas?

Kannst du mir eine Dokumentation bezüglich i2c Empfehlen? (Das Protokoll 
an sich ist ja leicht zu verstehen, damit habe ich soweit auch keine 
Probleme).

Ich verwende das hier zum Spielen:
http://www.tiaowiki.com/w/TIAO_USB_Multi_Protocol_Adapter_User's_Manual

Also ja, es unterstützt MPSSE damit spreche ich das auch an.

von David (Gast)


Lesenswert?

So nebenbei, der SN74LVC16T245 dort steht "Input clamp current" -50mA? 
Bedeutet das nicht das dort 25mA kein Problem wäre? Oder ist das der 
falsche Parameter?

SN74LVC16T245 an dem hängt quasi der I2C Slave:
http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=sces636a&fileType=pdf

Wenn ich den 50Ohm Widerstand (welcher sich auf dem TIAO Board beim i2c 
input befindet) parallel schalte mit einem 10Ohm Widerstand (rechnerisch 
kommt dann ja ca 8 Ohm raus) dann fällt die Voltage auf ca 0.2V was ja 
eigentlich reichen sollte.

von David (Gast)


Lesenswert?

Nachdem ich mir das, via MPSSE emulierte I2C Protokoll des FTDI Chips, 
angesehen habe muss ich ohnehin feststellen dass das nicht so einfach 
klappt.

Der FTDI Chip spricht wohl kein funktionierendes I2C. Es hängen 
testweise 2 Master gleichzeitig am Bus, ich kann die soweit unabhängig 
ansteuern, funktionieren tut jedoch nur der Cypress I2C Master.

Habe soweit einen Screenshot des Scopes an FTDI geschickt, die 
überprüfen das

wichtig hier FTDI supportet nur die eigenen Boards, das Board das ich 
verwendet habe wird nicht supportet von denen (deren Windows Lib klappt 
damit einfach nicht ordentlich, alternative Software klappt) Ich 
bezweifle das die Funktionalität anders ist, aber wie es bei Firmen so 
ist .. durchaus verständlich das die keine alternativen Dinge supporten.

Nunja heute mal kurz ab zum Elektronikladen und ein originales abholen. 
Scheint so als ob beim Ack etwas schief geht (zumindestens ist dort auf 
dem Oszi ein Unterschied zu erkennen).

Das ursprüngliche Problem wurde durch einen einfachen Widerstand an der 
richtigen Stelle gelöst :-)

von David (Gast)


Lesenswert?

Angemerkt sei hier das I2C via MPSSE des FTDI2232H Chips mit einem Eprom 
funktioniert, es scheint der I2C Slave zu sein welcher hier wohl 
genaueres Timing benötigt. Wenn's um Timing Details geht ist MPSSE des 
FTDI2232H anscheinend sehr schwierig anzusteuern und ohne den FTDI 
Support wohl fast unmöglich.

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.