AVR32 TWI Problem mit dauerhaftem Busy-Zustand

OP #3127078
Lesenswert?

Hallo,

ich habe folgendes Problem:

ich nutze einen AVR32UC3A1512 um per Hardware-TWI 2 Sensoren des Types 
L3G4200D sowie lis3lv02dq (und später noch mehr) anzusteuern.

der Relevante Code ist im Anhang. Das Auslesen erfolgt in der 
Init-Routine der Sensorik.c

Als TWI-Interface nutze ich das im AVRStudio 6, Atmel Software Framework 
2.11.1 enthaltene Beispielinterface.

Das auftretende Problem ist folgendes:

Nutze ich als TWI-Frequenz 400 KHz funktioniert alles wie gewollt. Beide 
Sensoren können problemlos geschrieben und ausgelesen werden.

Wenn ich nun aber als TWI-Frequenz 100KHz einstelle wird zwar der erste 
Sensor eingelesen, beim zweiten Read-Befehl verbleibt das Programm aber 
in einer Endlosschleife in der es darauf wartet dass das TWI-Interface 
fertig wird.

Hat einer eine Idee woran dies liegen könnte ? Ich bin mittlerweile 
ratlos.

Vielen Dank,

Marc S.
Angehängte Dateien:
OP #3127604
Lesenswert?

Stefan Frings schrieb:
> Pull-Up Widerstände vergessen? Oder hat der Sensor eventuell eine
> mindest-Frequenz, die Du unterschritten hast?

hatte ich beides mehrfach gecheckt daran lags nicht.

das problem lag daran dass in der isr der busy-status nicht 
zurückgesetzt wurde.

habe es nun mit iner zusätzlichen abfrage des txcomp-flags in der 
bsy-abfrage gelöst.

das Problem das dahintersteckt kenne ich aber trotzdem leider nicht

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