I2C Problem wg. offenen Leitungen?

Gast #1820551
Lesenswert?

Hallo,

ich habe einen Atmega128, ein EEPORM und einen LM75.

Der LM75 ist noch nicht da, darum sieht meine Schaltung aktuell wie auf 
dem Bild gezeigt aus.

Ich nutze die I2C-Bibliotek von Codevision. Leider kann ich mit dem Oszi 
keinen Clock messen(triggern) und auch die SDA-Leitung ist dauerhaft auf 
5V.

Kann das an der offenen Leitung bzw. den Leitungslängen liegen(insgesamt 
ca. 20cm je SCL- und SDA-Leitung)??

Was könnte ich noch testen?!
Angehängte Dateien:
Gast #1820564
Lesenswert?

Wie testest du denn?
Ich persönlich empfinde die TWI-Schnittstelle vom ATmega etwas 
gewöhnungsbedürftig, die Implementierung ist nicht ganz trivial.
Erzeugst du eine START-Condition?
Die solltest du eigentlich sehen.
Gast #1821428
Lesenswert?

Hallo,

ich verwende nicht die Atmel TWI, sondern die I2C-Bibliotek von 
Codevision.
Diese funktioniert in einem anderen Projekt auch problemlos.

Ich messe nun, dass die Signale SCL und SDA vom Atmega aus passen, doch 
die Antwort vom EEPROM ist "dauerhaft" auf high.
Mit dem Oszi sehe ich zwar, dass das EEPROM den Pegel runterziehen will, 
dieser schafft es aber nicht. Geht Bitweise ca. auf 4,7V.

Kennt ihr sowas? Was kann ich nun weiterhin tun? Das Protokoll habe ich 
überprüft :-(
Gast #1821431
Lesenswert?

> Mit dem Oszi sehe ich zwar, dass das EEPROM den Pegel runterziehen will,
> dieser schafft es aber nicht. Geht Bitweise ca. auf 4,7V.

Die I2C Portpins am Atmega auf Open-Collector gestellt ?

HTH
Jörg
#1822087
Lesenswert?

Hallo,
10k Pullups sind nicht zu hoch. Ich meine bei der CC2 sind sie z.B. 
standard. Und bei MSP430F2013 haben die inneren Pullups sogar noch 
höhere Werte. Man kann sich aber die Flanken der Signale per Oszi 
ansehen. Sind sie zu arg verschliffen muss man die Pullups eben 
verringern. Ein Wert von 2,7K oder 2,2K ist da gut vertretbar. Auf 1,5k 
würde ich nicht gehen. Aber bei 20cm Leitungslänge dürften noch keine 
kapazitiven Lasten auftreten die nennswert sind. Mit Pullups von 2,2k 
schafft man locker einige Meter. Einen PCF7574 habe ich mal bei 100KHz 
über eine Kabeltrommel an 50m Leitung betrieben. Ein DS1631 macht da 
schon viel früher nicht mehr mit.
Was mir noch einfällt. Mein Angaben beziehen sich auf 5V. Sollte der Bus 
mit 3,3V betrieben werden sieht es anders aus.
Gruss Klaus.
#1822095
Lesenswert?

Ist die Frage, ob du den EEPROM überhaupt korrekt adressierst? Welcher 
EEPROM ist es? Hat der  Hardware-Adress-Eingänge?
Ich finde die 10k auch ziemlich hoch, noch dazu, da man keinen Einfluss 
auf das Timing in den CodeVision-Routinen hat (ausser ne falsche 
Taktfrequenz anzugeben, was aber wieder andere blöde Auswirkungen hat).
Benutze deshalb die mitgelieferten Routinen nicht mehr.
Versuch mal 3k3.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren