Forum: Mikrocontroller und Digitale Elektronik STM32L4 - Overflow für LPTIM im Encoder Mode und Low Power


von NE 5. (x-team)


Lesenswert?

Hallo zusammen,

ich habe folegendes Problem und hoffe das mir einer von euch helfen 
kann.
Ich nutze einen STM32L433 für eine Anwendung mit Batterie.


In der Anwendung muss ich die Quadratursignale eines Drehgebers 
auslesen. Damit dabei so wenig Strom wie möglich verbraucht wird möchte 
ich den LPTIM1 im Encoder Mode dafür verwenden und den µC in den 
Low-Power-Mode STOP2 schicken.


Leider sind die 16Bit des Zählers nicht außreichend für mich, sodass es 
im Betrieb zu Überläufen des Zählerwertes kommen kann. Ist dies der Fall 
muss der µC kurz aufwachen und intern einen Wert inkrementieren oder 
dekrementieren.


Um dies richtig zu erfassen, habe ich das Auto-Reload-regsiter auf 
0xFFFF und das Compare Register 0x0000 gesetzt und die jeweiligen 
Interrupts eingeschaltet. Zusätzlich verwende ich noch die Interrubts 
bei einem Richtungswechsel.


Mit dieser Konfiguration kann ich zwar einen Überlauf richtig erkennen, 
der µC muss aber auch dauernd aus dem Low-Power Modus aufwachen. 
Besonders kritisch ist das Verhaletn natürlich wenn das Signal von 
0x0000 nach 0xFFFF und zurück toggelt.


Hat jemand eine Idee wie ich die gewünschte Funktionaliät implementieren 
kann und die beschriebene Problematik umgehen.








Folgende anderen Ansätze hatte ich mir noch überlegt:
 - Den Zählerert beim erreichen von 0x0000 oder 0xFFFF auf 0x7FFFF 
setzen. Dies geht aber leider nicht, da das Zählerregister im Encoder 
Mode nur lesbar ist.

- Einfach keinen Encoder Interrupt verwenden und statdessen einfach nach 
einer Zeit x durch die RCT aufwachen und schauen wie sich der Zählerwert 
verändert hat. Wenn man den Intervall so kurz wählt, dass bei der 
maximalen  Drehgeschwinindigkeit nur der halbe Wertebereich des Zählers 
durchlaufen werden kann, kann der Überlauf immer richtig zugeordnet 
werden. Dann müsste in meinem Fall der µC aber auch jede Minute 
aufachen.



Vielen Dank für eure Antworten.

von pegel (Gast)


Lesenswert?

Kannst Du den Übertrag irgend wie in LPTIM2 bringen?

von NE 5. (x-team)


Lesenswert?

pegel schrieb:
> Kannst Du den Übertrag irgend wie in LPTIM2 bringen?


Im Stop2 funktioniert nur der LPTIM1.
Wenn der LPTIM2 benötigt wird, kann man nur in Stop1 gehen.


Es gibt wie ich das sehe kein Signal mit dem man den LPTIM2 füttern 
könnte. Es gibt auch keinen Overflow interrupt.

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.