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

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.