I2C Problem wg. offenen Leitungen?

Gast #1820551
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:
#1820563
Hallo,
bei 20 cm sollte es auch bei einem Takt von 400 KHz noch keine Probleme 
geben. Den Clock solltest Du triggern können. Gerade das Signal hat ja 
einen konstanten Rechteck. Der SDA zappelt meist herum.
Gruss Klaus.
Gast #1820564
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
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
> 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
Gast #1821438
Rückzug, vielleicht will das EEPROM auch gar nicht anworten, da auch 
wenn ich von meinem Atmega 0xFF sende, diese schmallen Pics auf 4,7V 
kommen
> der Baustein rührt sich einfach gar nicht.
Gast #1821715
10 k-Widerstände sind zu hoch, das geht zwar oft, oft aber auch in die 
Hose. Von Philips/NXP sind spezifiziert bei 5 V: 1.5-1.8 k, 2.7 k geht 
fast immer noch,
#1822087
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
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.