Forum: Mikrocontroller und Digitale Elektronik I2C Bus-Probleme


von I2C_user (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

habe folgendes Problem: bei der Kommunikation zwischen ATmega128 - 
eDIP240 und AD-Wandler ( AS1536 ) kommt es ab und zu zu Abbrüchen, so 
das sich der Bus völlig aufhängt. Das tritt undefiniert auf - meist aber 
wenn viel über den Bus geht - z.B Abfrage des AD's. Habe mit den Ossi 
mal mitgeschnitten was auf dem Bus passiert. Dabei ist fraglich woher 
die unsauberen Pegelzustände kommen können. Zeihe ich den AD ab, so ist 
die Verunreinigung geringer aber noch gut sichtbar. Als Pull-Up 
wiederstände habe ich 2.1K gewählt. Hat jemand ne Idee woran das liegen 
kann ?

von Falk B. (falk)


Lesenswert?

@ I2C_user (Gast)

>habe folgendes Problem: bei der Kommunikation zwischen ATmega128 -
>eDIP240 und AD-Wandler ( AS1536 ) kommt es ab und zu zu Abbrüchen, so

Ich hoffe deine Ansteuerung per ATmega ist korrekt und arbeitet als Open 
Drain und NICHT als PushPull Ausgang. Denn du hast da komische Treppen 
im Signal, als ob einer nach HIGH pullt aber ein anderer nach LOW. Das 
kann bei I2C nicht auftreten. Soft-I2C greift nur auf die DDRx Register 
zu (und PINx). PORTx bleibt einmal eingestellt unangetastet. Oder nutzt 
du das TWI?

>mal mitgeschnitten was auf dem Bus passiert. Dabei ist fraglich woher

Was ist SCL und SDA?

MFg
Falk

von I2C_user (Gast)


Lesenswert?

die Treppen sind nicht immer - meist sieht der Bus gut aus.

Clock ist unten, Daten ( SDA ) oben.

von Falk B. (falk)


Lesenswert?

@ I2C_user (Gast)

>die Treppen sind nicht immer - meist sieht der Bus gut aus.

Es reicht wenn an einigen Stellen ein Programmierfehler drin ist . . .

MFG
Falk

von I2C_user (Gast)


Lesenswert?

Es wird die I2C-Library von Peter Fleury verwendet welche das TWI 
benutzt..
Also alles Open-Drain. Da arbeiten doch keine Ausgänge gegeneinander?!?

von Andreas K. (a-k)


Lesenswert?

Wenn die Ansteuerung per Hardware-I2C erfolgt und die Software ein als 
funktionsfähig geltendes Modul ist, bleibt als Ursache nur die Hardware 
selber.

Weshalb jede Diskussion ohne genauere Kenntnis derselben etwas fruchtlos 
ist.

von chris (Gast)


Lesenswert?

Hallo, gewisse SW Implementationen, sollte sich der Bus aufhängen,
clocken einfach den Bus 9x zusätzlich, um aus dem Stall herauszukommen.

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.