XMEGA I2C Problem beim Stop Signal

Gast #3154097
Lesenswert?

Hallo Leute,

ich verwende einen XMEGA256A3U Mikrocontroller von Atmel. An dem 
Mikrocontroller ist ein Schrttmotor per I2C angeschlossen. Es gibt nur 
einen Master am Bus und das ist mein XMEGA256A3U.

Ich schreibe Testdaten in den Slave (siehe Sreenshot). Zuerst erzeuge 
ich den Start-Pulse, anschließend übertrage ich die Adresse vom Slave 
und das Bit 0 für schreiben. Dies wird auch alles richtig übertragen und 
ich erhalte ein ACK vom Slave zurück. Anschließend übertrage ich die 
Testdaten 0xAA, 0xFF und 0xDD. Alle Testdaten werden richtig übertragen 
und werden vom Slave mit einem ACK quitiert.

Doch nun zu meinem Problem. Nach erfolgreicher Übertragung sende ich die 
Stop Bedingung doch wie man im zweiten Screenshot sehen kann ist dieser 
nur sehr kurz und wird daher nicht erkannt.

Der XMEGA besitzt das CTRLC (Control Register C) Register. Ich habe in 
Bit 0 und 1 0b11 reingeschrieben. Durch diesen Befehl soll der 
XMEGA256A3U automatisch einen Stop Bedingung erzeugen. Ich habe extern 
zwei Pullups am SDA und SCL angeschlossen.

Es sind auch keine Fehler bei der Datenübertragung aufgetreten ich habe 
das RXACK, ARBLOST und BUSERR Flag geprüft.
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