Forum: Mikrocontroller und Digitale Elektronik TWI - Pullup-Widerstände?


von Thomas Klingbeil (Gast)


Lesenswert?

Hallo,

wir haben hier eine Schaltung aufgebaut:

Der Master ist ein ATmega128
Slaves: ein Ultraschallmodul und ein Kompass (bei I²C)

Bustakt: 100kHz

Zwischen den beiden Leitungen und +5V befindet sich keine
Verbindung.
Das Problem ist jetzt, dass das ganze schon einmal funktioniert hat und
plötzlich geht's nichtmehr... Kann das evtl. daran liegen, dass keine
Widerstände da sind (hab gerad gesehen, dass in der Beschreibung zum
Atmel auch gesagt wird, dass man die benötigt)
Allerding bin ich der Meinung irgendwo gelesen zu haben, dass bis zu 4
Geräte ohne diese Widerstände funktionieren...

Schonmal im Vorraus vielen Dank,
Thomas

von Eddi (Gast)


Lesenswert?

Zumindest an der SDA-Leitung sollte ein Pullup sein. Bei SCL ist's
nicht so wild, da immer nur Output.
Probier's mal mit 2k2 an SDA und dann sollte es laufen.

Gruss
Eddi

von Matthias (Gast)


Lesenswert?

Hi

I2C braucht immer Pull-Ups da mit Open-Collector-Treibern gearbeitet
wird. Und SCL ist, ganau wie SDA, bidirektional (siehe
Clock-Stretching)

Matthias

von Tobias Schneider (Gast)


Lesenswert?

Hi,
im Atmel-Datenblatt steht auch, das man die internen Pull-Ups
anschalten kann, wenn der Mega der einzige Master am Bus ist.

Gruß Tobias

von Matthias (Gast)


Lesenswert?

Hi

wobei die etwas hochohmig sind. Bei 100kHz und nicht allzuvielen
Busteilnehmern sollte das aber noch gehen.

Matthias

von Thomas Klingbeil (Gast)


Lesenswert?

Danke erstmal für die Antworten.
Also die internen Pullups waren aktiviert.
Jetzt haben wir es probiert und haben 2,2KOhm-Widerstände als externe
Pullups benutzt. (allerdings die internen Pullups nicht
deaktiviert...)

Das ganze hat ja wie gesagt auch schonmal alles geklappt...
Kann es sein, dass nur der I²C-Bus den Abgang macht und der Rest des
Controllers normal weiterfunktioniert?

Oder hat vllt. noch jemand eine andere Idee, woran das liegen könnte?

Danke,
Thomas

von Christof Krüger (Gast)


Lesenswert?

>Kann es sein, dass nur der I²C-Bus den Abgang macht und der Rest des
>Controllers normal weiterfunktioniert?

Man kann durchaus einzelne Pins oder Ports schmoren, ohne den ganzen
Chip ausser Gefecht zu sethen.

von Ratber (Gast)


Lesenswert?

Yo,is aber auch leicht rauszufinden.

I2C Bus abklemmen,LED sammt Vorwiderstand dranklemmen,Testproggier
laden und sehen was passiert ;)

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.