Probleme mit USI - Sendet kein ACK

OP #2804058
Lesenswert?

Hallo!

Ich versuche gerade eine TWI-Komunikation zwischen einem Atmega8 und 
einem ATTiny261 aufzubauen. Der Atmega soll der sendente Master sein, 
der Attiny demzufolge der empfangende Slave. Der Atmega hat ja 
bekanntlich ein richtiges TWI-Modul in HArdware welches ich mit dem 
Beispiel-Code aus dem Datenblatt beschreibe. Dieser Code ist sicher 
nicht effektiv, aber er sollte auf alle Fälle funktionieren, was für den 
Anfang auch völlig ausreicht. Den Code habe ich im Anhang mit Namen 
Atmega_I2C.c . Ich nutze das TWI erstmal nur mit geringer 
GEschwindigkeit, habe hier etwas weniger als 10khz gewählt.

Der Attiny 261 hat nur ein USI-Interface. Um ein Byte zu empfangen nutze 
ich größtenteils Code aus der Atmel App AVR 312. Meinen Code habe ich 
angehangen, habe ihn etwas gekürzt, um ihn übersichtlicher zu gestalten. 
Alles was Timer-Sachen sind habe ich rausgelöscht, die sollten keinen 
Einfluss auf das USI-Interface haben. Dateiname BLDC.c

Ich habe einige LED's an beiden Controllern angeschlossen, die mir 
sozusagen Auskunft über den Stand geben. So weis ich, das der 
Atmega8/Master erfolgreich die Startbedingung sendet und auch die 
Adresse sendet. Ich weis auch, das der Attiny/Slave die Adresse empfängt 
und als korrekt bewertet. Ab da hängt das ganze. Ich habe mit meinem 
Oszi mir die Sache angesehen, Bild ist im Anhang. Der CH1/rot ist die 
SDA-Leitung, CH2/blau ist die SCL-Leitung. Dort ist eindeutig ganz links 
die Startbedingung zu sehen. Danach genau acht Takte und auf der 
Datenleitung meine Adresse und das Schreib-bit. Jetzt müsste eigentlich 
der Slave die SDA-Leitung auf Low ziehen und der Master noch einen Takt 
auf der SCL-Leitung ausgeben. Beides ist nicht der Fall.
Mich wundert, das ich bei meinem Slave genau sagen kann, dass er nach 
der Adresserkennung meine Status-LED anschaltet, aber zwei Befehle 
weiter die SDA-Leitung als Ausgang schalten scheint er nicht mehr 
auszuführen.

Ich hoffe, jemand nimmt sich die Zeit meinen Code mal anzusehen und kann 
mir einen hilfreichen Tip geben, woran es hängen könnte.

Danke schonmal im Voraus für eure Antworten.


MfG Dennis
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren