Forum: Mikrocontroller und Digitale Elektronik AVR32 TWI Problem mit dauerhaftem Busy-Zustand


von Marc S. (euro)


Angehängte Dateien:

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.

von Wusel D. (stefanfrings_de)


Lesenswert?

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

von Marc S. (euro)


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

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.