Forum: Mikrocontroller und Digitale Elektronik Ich komme mit dem USI/TWI nicht klar


von AVR-Anfänger (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe jetzt das AVR-GCC-Tutorial durch und möchte jetzt 2 AVRs Daten 
über TWI austauschen lassen.
Der Master ist ein ATmega32L und der Slave ein ATtiny24.
Beide laufen bei 8MHz internem Takt.
Ich verwende 4,7 Kilo Ohm Widerstände als Pull Up.
Die Leitungen von SDA und SCL sind ca. 15cm lang.

Für den Anfang habe ich vor, Beispiele aus der Codesammlung zu 
verwenden.
Für den Master verwende ich folgendes Beispiel:
Beitrag "AVR TWI Master und Slave Funtionen in C"
(TWI_Master-Slave_C_Functions.zip vom 04.01.2008 21:51)

Für den Slave:
Beitrag "Re: attiny USI Slave Implementierung"
(usi-slave.zip vom 4.06.2006 21:29)

Leider bekomme ich keine Komunikation zustande.
Wie es aussieht kommt die Sendeanforderung beim Slave an und er sendet 
auch die Daten an den Master.
Doch der Master meldet mir "Could not start TWI Bus for READ" und "Could 
not start TWI Bus for WRITE"

Ich habe nur ein paar Anpassungen beim Quellcode gemacht.
Und zwar folgende:

Ich habe bei beiden Programmen die gleiche Adresse vergeben.
Bei beiden Programmen werden 3 Bytes gesendet / empfangen
Ich habe das USI-Beispiel auf ATtiny24 erweitert.


Ich weis leider nicht was ich bei der Umsetzung falsch gemacht habe.
Ich brauche eure Hilfe damit ich weiterkomme.
Ich habe die Projekte angehängt.

von AVR-Anfänger (Gast)


Lesenswert?

Ich habe gerade bemerkt, dass ich nach den Tests vergessen habe beim 
Slave DDRB auf DDRB = 0x07; zu ändern.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.