Forum: Mikrocontroller und Digitale Elektronik Merkwürdiges Problem bei I2C


von Kai S. (hugstuart)


Lesenswert?

Hallo,
ich habe einen ATMega16 mit einem IC verbunden. Die SDA- und 
SCL-Leitungen sind jeweils mit einem 100k-Pullup gegen 5 V geschaltet. 
Eine Übertragung über den Bus funktioniert normalerweise problemlos 
(Vorgehen nach Datenblatt des uCs, Seite 185). Wenn ich jedoch mit einem 
Oszilloskop-Tastkopf die Leitung berühre, erfolgt kein Setzen des 
TWINT-Bits. Demnach bleibt der Prozess in der While-Schleife hängen. 
Mechanische Probleme schließe ich aus; wenn ich die Leitung mit Plastik 
berühre, gibt es kein Problem. Das Problem tritt auch auf, wenn ich 
meinen Finger an die Leitung halte. Hat jemand eine Idee?

Viele Grüße und lieben Dank,
Kai

von Peter K. (peterka2000)


Lesenswert?

Nimm mal nen kleineren Pullup, 4.7k oder 10k

von spess53 (Gast)


Lesenswert?

Hi

SCL-Leitungen sind jeweils mit einem 100k-Pullup gegen 5 V geschaltet.

Das ist 1..10 mal zu groß.

>Wenn ich jedoch mit einem
>Oszilloskop-Tastkopf die Leitung berühre, erfolgt kein Setzen des
>TWINT-Bits. Demnach bleibt der Prozess in der While-Schleife hängen.

Kein Wunder. Nimm mal 4,7k.

MfG Spess

von Kai S. (hugstuart)


Lesenswert?

Zwei schnelle Antworten, beide plausibel. Der kleinere Pullup wird 
morgen eingebaut. Vielen Dank euch Beiden!

von spess53 (Gast)


Lesenswert?

Hi

>Das ist 1..10 mal zu groß.

10..100 mal zu groß.

MfG Spess

von Joachim B. (jar)


Lesenswert?

ich würde den Querstrom um 1mA halten, bei 5V eben 4,7k bei 3,3V eben 
3,3k
nur am Rande my 2ct,

aber I2C ist ein Bus und kein Stern und die pullups sollten am letzten 
i2c Baustein sitzen

von spess53 (Gast)


Lesenswert?

Hi

>ich würde den Querstrom um 1mA halten, bei 5V eben 4,7k bei 3,3V eben
>3,3k
>nur am Rande my 2ct,

Mehr ist der 'Rat' auch nicht wert. Dann lieber richtig ausrechnen:

http://www.nxp.com/documents/user_manual/UM10204.pdf

MfG Spess

von Joachim B. (jar)


Lesenswert?

spess53 schrieb:
> Mehr ist der 'Rat' auch nicht wert. Dann lieber richtig ausrechnen:

geiler Spruch, mit unbekannte Kabelkapzitäten -> Länge, mit unbekannten 
Busteilnehmer usw.

logisch schaue ich in die Datenblätter aller Beteiligter ob der Strom 
'runter' gezogen werden kann, ich bin nicht sicher ob das für alle I2C 
oder TW Bausteine gleichermaßen gilt, NXP kann ja was nettes schreiben 
aber stellen die alle I2C Teile der Welt her? oder meinst du wirklich 
alle halten sich an die Theorie?
Ich habe da zu oft anders erlebt.

von daher ist 1mA erst mal ne Hausnummer die vermutlich besser 
funktioniert als 470k.

von spess53 (Gast)


Lesenswert?

Hi

>logisch schaue ich in die Datenblätter aller Beteiligter ob der Strom
>'runter' gezogen werden kann, ich bin nicht sicher ob das für alle I2C
>oder TW Bausteine gleichermaßen gilt, NXP kann ja was nettes schreiben
>aber stellen die alle I2C Teile der Welt her? oder meinst du wirklich
>alle halten sich an die Theorie?

Welche Theorie? I2C ist ein Markenzeichen von NXP. Und die vergeben die 
Lizenzen für dafür. Deswegen kannst du davon ausgehen das dort wo I2C 
draufsteht auch I2C drin ist. Umsonst heißt das Ganze z.B. bei ATMEL TWI 
und nicht I2C.

>geiler Spruch, mit unbekannte Kabelkapzitäten -> Länge, mit unbekannten
>Busteilnehmer usw.

Die Eingangskapazitäten von SDA und SCL sind in den Datenblätter der mir 
bekannten I2C-ICs enthalten. Und für die Kabelkapazitäten gibt es auch 
in vielen Fällen Datenblätter.

Also alles mit etwas gutem Willen kein Problem.

MfG Spess

von Joachim B. (jar)


Lesenswert?

spess53 schrieb:
> Und für die Kabelkapazitäten gibt es auch
> in vielen Fällen Datenblätter.

klar und das kann jeder rechnen der es benutzt, ich denke du bist doch 
vom Fach, mal zurückkommen auf dem Teppich, was denkst du wie viele I2C 
oder TWI nutzen ohne nur ein einzigen Ohmwert real oder imaginär rechnen 
zu können?

spess53 schrieb:
> Umsonst heißt das Ganze z.B. bei ATMEL TWI

eben drum, aber die werden deiner Meinung nach nicht benutzt?

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.