Forum: Mikrocontroller und Digitale Elektronik I2C-Bus Probleme


von Christian (Gast)


Lesenswert?

Ich habe Probleme mit meinem I2C-Bus. Von einem ATmege8 zum PCF8591 die 
Leitungen sind nur ca. 20cm aber bei mir macht der Problem und geht nur 
richtig wenn ich SCL anfasse oder in die nähe komme. Wie kann ich diesen 
Fehler beheben?

von ARM-Fan (Gast)


Lesenswert?

Aber Pullups hast du schon dran, oder?

von Christian (Gast)


Lesenswert?

Jetzt habe ich zwei 10K dran scheint zu gehen.

DANKE

von Ulrich P. (uprinz)


Lesenswert?

10k ist zu viel, nimm 4k7 und Du bist auf der sicheren Seite.
Gruß, Ulrich

von ARM-Fan (Gast)


Angehängte Dateien:

Lesenswert?

Ich würde sie noch kleiner machen.

Guckst du hier:
http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf

von Falk B. (falk)


Lesenswert?

@ ARM-Fan (Gast)

>Ich würde sie noch kleiner machen.

Wozu? Das Diagramm sagt das jedenfalls nicht. 4k7 ist genauso OK wie 
10k.

MFG
Falk

von Mike R. (thesealion)


Lesenswert?

Falk Brunner wrote:
>
> Wozu? Das Diagramm sagt das jedenfalls nicht. 4k7 ist genauso OK wie
> 10k.
>

Woher weißt du das? Das original Poster hat doch nciht geschrieben 
welche Kapazität sein Bus hat.

Ansonsten habe ich auch schon die Erfahrung gemacht, das 10k zu viel für 
einen I2C Bus sind.

Mike

von Falk B. (falk)


Lesenswert?

@ Mike S. (thesealion)

>Woher weißt du das? Das original Poster hat doch nciht geschrieben
>welche Kapazität sein Bus hat.

Doch.

"Leitungen sind nur ca. 20cm"

Uns selbst wenn man 100pF/m annehmen würde, wäre das OK.

>Ansonsten habe ich auch schon die Erfahrung gemacht, das 10k zu viel für
>einen I2C Bus sind.

Bei welcher Kabellänge? Timing WIRKLICH eingehalten? Anderes Ursachen 
WIRKLICH ausgeschlossen?
Man kann I2C auch mit 100k und mehr Pull-Up betreiben, man muss nur 
lagsamer takten.

MFG
Falk

von Ulrich P. (uprinz)


Lesenswert?

Hi!

Ja, man kann, man muss, man sollte. Man kann es für einen bestimmten 
Fall, der aber nur bei einem fixen Layout und in Abstimmung mit allen 
Datenblättern aller angeschlossenen Chips am Bus super hoch optimieren 
und dann auch den Fast Bus auf 700kHz übertakten...

In 80% aller Fälle sind 4k7 wunderbar und funktionieren perfekt bis 
400kHz egal ob 20cm Leiterbahn, SDA+SCL auf Litze oder Steckbrett. In 
einigen wenigen Fällen musste ich für ein überlanges Kabel mal 2k2 
verwenden. Aber ich kenne nur einen einzigen Fall mit max. 4cm 
Leiterbahnlänge, wo 10k eingesetzt wurden... Und da ging es ab 170kHz in 
die Hose.

Gruß, Ulrich

von Christian (Gast)


Lesenswert?

Also liegt es nur an den PullUps wenn mein Bus wieder Streikt sobald ich 
eine längere Leitung dranhänge. Ich will nämlich noch eine DS1620 oder 
LM75 an diesen Bus betreiben der dann an eine ca. 10m Leitung soll. Wo 
sind die Widerstände eigentlich am besten direkt am µC oder am 
entferntesten Busteilnehmer? Ich verwende Bascom und frage mich wie man 
da die Busfrequenz einstellen soll von der ihr hier redet, wenn einen 
niedrige Frequenz besser ist dann ist das auch nicht so schlimm da ich 
nichts Zeitkritisches mit dem Bus vorhabe.

PS.: Welchen Wert empfehlt ihr für die PullUps bei dieser Leitungslänge.

von Falk B. (falk)


Lesenswert?

@ Christian (Gast)

>Also liegt es nur an den PullUps wenn mein Bus wieder Streikt sobald ich
>eine längere Leitung dranhänge.

Nicht unbedingt. Kann sein, muss nicht.

>Wo sind die Widerstände eigentlich am besten direkt am µC oder am
>entferntesten Busteilnehmer?

Das ist egal.

>PS.: Welchen Wert empfehlt ihr für die PullUps bei dieser Leitungslänge.

Nimm 1k, das sollte laufen.

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.