Forum: Mikrocontroller und Digitale Elektronik wake up Sensor klappt nicht


von Tom (Gast)


Angehängte Dateien:

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.

von Tom (Gast)


Lesenswert?

Wo liegt mein Fehler, bzw. Denkfehler?

von Kris M. (kristijan_m)


Lesenswert?

Dein erster Denkfehler ist schonmal davon auszugehen das jeder deine 
Denkweise versteht..

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

Satzfetzen die etwas andeuten bringt niemandem was.
Das Problem genau beschreiben dann kann dir bestimmt wer helfen

von Tom (Gast)


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.

von Tom (Gast)


Lesenswert?

Man kann doch theoretisch das wake up feature des Sensors auch ohne 
µC-sleep-modes verwenden, auch wenn es eigentlich nicht sinnvoll?

von Tom (Gast)


Lesenswert?

Ich möchte Schrittweise vorgehn und erst wenn das Sensor wake up feature 
läuft mich um den passenden sleep-mode des µC kümmern.

von Kris M. (kristijan_m)


Lesenswert?

Wenn der Sensor auf den Wert vorprogrammiert ist und er kein High-Signal 
ausgiebt würde ich mir mal die Konfiguration des Sensors nochmal genau 
anschauen...

Pull-up´s/down´s oder richtige Adresse gesetzt ? Floating pins ?

von Tom (Gast)


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.

von Tom (Gast)


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?

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.