I2C Bus Aufbau

Gast #156385
Lesenswert?
• ▲
▼
Hallo zusammen,

ich habe schon wieder ein schwerwiegendes Problem.
Also ich habe eine Schaltung  mit dem ATMega aufgebaut, am I2C Bus
hängen in zwei Richtungen je ein PCF8574 nach dem einen PCF geht der
Bus noch weiter zu einem ST24C02 (Serieller Speicher) und einem PCF8583
(RTC).
Zwischen dem ST und dem RTC liegen die Pull-UPs (je 4k7). Das ganze ist
einige Zentimeter lang.

               PCF8574     ST24C02  Pullups    PCF8583
ATMega--+-------+------------+------+-------------+
        |
        |
     PCF8574

Ich verwende den Hardware-TWI und die Routinen aus der Atmel App. Note
315 für C. Dies ist mein Test-Code (ich habe die Namen der Funktionen
abgeändert, aber in den Funktionen sonst nur das was nötig war um die
Dateien kompilieren zu können):

[...]

TWIInit();

// Test für einen der PCF8574

messageBuf[0]=DevLCD+TWIWrite;
messageBuf[1]=0xff;
TWISend(messageBuf,2);

// Code um die Uhrzeit zu bekommen

messageBuf[0]=DevRTC+TWIWrite;
messageBuf[1]=0x01;
TWISend(messageBuf,2);
messageBuf[0]=DevRTC+TWIRead;
TWISend(messageBuf,8);
TWIGet(messageBuf,8);

// Code fürs EEPROM

messageBuf[0]=DevEEPROM+TWIWrite;
messageBuf[1]=addr;
messageBuf[2]=byte;
TWISend(messageBuf,3);

[...]

Keiner der Befehle scheint zu regelmäßig zu funktionieren. In letzter
Zeit bekomme ich oft den Fehlercode F8 (Atmel: TWI_No_State).

Ich habe die Frequenz des Buses (mittels der Register TWBR und TWPS )
mittlerweile weit unter die 100kHz gesetzt. Weil ich dachte, dass es
vielleicht daran liegen würde, geholfen hat es leider nicht.
Also definitiv funktionieren die beiden PCFs nicht. Manchmal scheint
die Uhr zu funktionieren, d.h. sie zählt, aber leider erstens viel zu
schnell (2fach) und zweitens funktioniert das auch nicht immer.

Ist grundsätzlich irgendwas am Aufbau oder am Code den ich verwende
irgendwas falsch?

Frohe Ostern!

Daniel
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.