wake up Sensor klappt nicht

Gast #2831311
Lesenswert?

Hi,

lese per SPI Beschleunigungs-Sensordaten aus, welche ich dann per UART
rausschicke, beides Polling basiert, also keine ISR.
Funktioniert wunderbar ohne Probleme.

Jetzt wollt ich mal das wake up feature hinzufügen und der INT2 Pin vom 
Sensor liefert mir keinen high Pegel um dem µC zu sagen, dass es losgehn 
kann.

Hier die Application note auf S.35, 9.5 Inertial wake up:

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/CD00229883.pdf

Mein Beispiel ist auf wake up durch treshold an z-Achse und auf +-8g 
konfiguriert.
Deshalb weichen bei Punkt 1 und 6 die zu schreibenden Registerinhalte 
vom Beispiel ab.

Hier ist der Code Ausschnitt um den es sich handelt.
Die Funktionen wurden schon geprüft, sodass der Fehler eigentlich nur 
beim Algorithmus liegen kann.
Angehängte Dateien:
Gast #2831364
Lesenswert?

Kristijan M. schrieb:

> 1. µc ?
> 2. Compiler
> 3. Genauere erklärung was du machst, was du vor hast.

1. ATmega 328P
2. AVR Studio 5

3.
Ich möchte dass mein Beschleunigungsensor ab einer gewissen threshold 
welche ich auf 720mg konfiguriert habe, einen high Pegel an seinem INT2 
Pin liefert.

D.h. sobald ein high Pegel am INT2 pin vom Sensor anliegt, soll der 
Sensor ausgelesen werden.

Leider kommt kein high Pegel am INT2 Pin. Hab sogar mit Oszi 
nachgemessen.
Ohne den High Pegel am INT2, wird die while-Schleife unter Punkt 7. nie 
verlassen.
Gast #2831977
Lesenswert?

Danke Kristijan.

Es klappt jetzt.

Hab den Pin falsch abgefragt.
Anstatt PORTC muss es PINC heißen.

Leider ist die Performance erheblich runtergegangen im Vergleich zu 
meinem alten Programm ohne wake up.
Gast #2833134
Lesenswert?

Hab jetzt folgendes Problem:

Wenn der Sensor nicht mehr angeregt wird gibt es ne ungewollte 
Nachlaufzeit.

Hatte mal ein Amperemeter an der Zuleitung der Gesamtschaltung und 
konnte dann immer sehn wenn der Sensor aufwacht und dann eben wieder 
schlafen geht.

Hatte dann versucht am PINC4 vom µC welcher den INT2 pin vom Sensor 
pollt einen Pulldown Widerstand anzuschließen um die Nachlaufzeit zu 
unterbinden.

Dadurch wacht der Sensor nicht mehr auf.

Der zieht leider den INT2 Pin anscheinend so sehr auf Masse, sodass er 
nicht mehr aufwacht.

Dies ist das erste mal, dass ich mit Pins einlese bzw. events abarbeite.

Jemand eine Idee?

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