www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C Bus Aufbau


Autor: Daniel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.