Forum: Mikrocontroller und Digitale Elektronik TWI - Pull-Up ungewöhlich klein


von Peder (st_peter)


Angehängte Dateien:

Lesenswert?

Hi,

ich benutze nicht zum ersten Mal TWI/I²C, aber bisher waren meine 
Pull-Ups mit 3k3R absolut ausreichend. Dieses Mal habe ich gerade noch 
erraten können, wo auf dem Oszi die Flanken sein sollten. Die 
Datenblätter von Attiny 3216 und Attiny n14 sind in Bezug auf 
TWI-Pull-Ups identisch und geben eine Formel an, mit der ich für 400kHz 
auf 885R komme. Und mit dem (820R) sah dann auch das Signal wieder gut 
aus.
Aber ist das für ein Pull-Up nicht ungewöhnlich klein? Zumal 4mA pro Pin 
dann auch "messbarer" sind als die üblichen <1mA.


Grüße
Peder

von Richie (mikro123)


Lesenswert?


von Nemopuk (nemopuk)


Lesenswert?

Peder schrieb:
> Aber ist das für ein Pull-Up nicht ungewöhnlich klein?

nein

Es ist eher so, daß die im Arduino Umfeld üblichen 10k Ohm schon immer 
viel zu scheach waren.

Lies mal die I2C Spezifikation von Philips.

von Stephan S. (uxdx)


Angehängte Dateien:

Lesenswert?

Das hängt auch von der Spannung ab, siehe Bild, stammt von TI

von Peder (st_peter)


Lesenswert?

Dann muss ich mich fast fragen, warum das bisher immer funktioniert hat.

Aber danke. Das ist beruhigend zu wissen.

von Rainer W. (rawi)


Lesenswert?

Nemopuk schrieb:
> Es ist eher so, daß die im Arduino Umfeld üblichen 10k Ohm schon immer
> viel zu scheach waren.

Die 10kΩ auf den Slaves im Arduino Umfeld sollen auch eher nicht als 
Pull-Up für den Bus dienen, sondern sorgen nur für definierte Pegel an 
den I/Os.
Die für dynamische Signale in Abhängigkeit von der kapazitiven Last 
durch den Bus erforderlichen Ströme müssen schon woanders her kommen.

Peder schrieb:
> Dann muss ich mich fast fragen, warum das bisher immer funktioniert hat.

Kurzer, kapazitätsarmer Bus und eine Portion Glück - aber darauf möchte 
man sich beim Systemdesign nicht unbedingt verlassen.

: Bearbeitet durch User
von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Peder schrieb:
> 4mA

3mA muss ein I2C Treiber können!
Bei 100kHz mag 1MA reichen, bei 400kHz sollte man schon deutlich weiter 
an die Grenze gehen.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Arduino F. schrieb:
> 1MA

Natürlich: 1mA

von Rainer W. (rawi)


Lesenswert?

Peder schrieb:
> Dieses Mal habe ich gerade noch
> erraten können, wo auf dem Oszi die Flanken sein sollten.
> ...
> Und mit dem (820R) sah dann auch das Signal wieder gut aus.

So schlecht sieht das Signal in dem Screen Shot doch gar nicht aus, nur 
etwas schwer zu erkennen. Zoom doch einmal etwas rein, so dass man die 
einzelnen Bits besser sehen kann ;-)

: Bearbeitet durch User
von Christian M. (christian_m280)


Lesenswert?

Rainer W. schrieb:
> Signal in dem Screen Shot

Ironie? Ich sehe jedenfalls nix.

Gruss Chregu

von Martin (martin32)


Lesenswert?

Peder schrieb:
> Dann muss ich mich fast fragen, warum das bisher immer funktioniert hat.

Wenn der Master Clock Stretching unterstützt, dann kann der Slave die 
Clock-Leitung länger auf LOW, wenn er mehr Zeit braucht.

Der Master kann nicht unterscheiden, ob spätere HIGH-Pegel von Clock 
Stretching oder einer langsam steigenden Flanke durch einen zu schwachen 
Pullup stammt. In Grenzen kompensiert der Master langsamere steigende 
Flanken in der Annahme es würde sich um Clock Stretching handeln.

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.