www.mikrocontroller.net

Forum: Compiler & IDEs ATmega8 und PCF8574


Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich mache gerade meine ersten Gehversuche mit I2C am mega8 und habe dazu 
einen PCF8574 mit LEDs an den Controller angeschlossen sowie ein kleines 
Testprogramm geschrieben. Leider funktioniert es nicht :-(

Folgendes Problem:

Ich setze den Takt mit den Teilerfaktoren in TWBR und TWSR, das geht 
soweit.

Danach kommt folgender Code, um den I2C-Chip anzusprechen:
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); //Start
loop_until_bit_is_set(TWCR,TWINT); //Hier ist das Problem
//Bis hierher läuft das Programm gar nicht mehr

TWDR = adress;
TWCR = (1<<TWINT)|(1<<TWEN);
loop_until_bit_is_set(TWCR,TWINT);

Leider bleibt TWINT nach dem Start aber immer 0, d.h. das Programm 
bleibt in der loop_until-Anweisung gefangen.
Auf dem Oszilloskop sehe ich sowohl auf SCL als auch SDA einen Rechteck 
mit dem Bustakt. Ist das normal? Sollte nicht SCL high und SDA low sein 
als Start-Condition?

Hat jemand eine Idee was das Problem sein könnte oder gar eine Lösung 
parat?

Vielen Dank für alle Hinweise!

Gruß
Carsten

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carsten wrote:

> Auf dem Oszilloskop sehe ich sowohl auf SCL als auch SDA einen Rechteck
> mit dem Bustakt.

Kurzschluss zwischen beiden?

Der Code sieht korrekt aus.  Es muss irgendwas mit der Hardware zu
tun haben.

Die Pullups hast du dran, ja?

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pullups habe ich 1k dran, tausche aber gerade gegen 4k7. Der Controller 
kann die 1k aber problemlos auf low ziehen.

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für den Tip mit dem Kurzschluss! Es war tatsächlich einer 
da! Jetzt gehts!

73

Carsten

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.