BLDC mit Sinuskommutierung

Gast #2579571
Lesenswert?

Hallo,
ich verwende einen LPC2468. Ich möchte damit einen BLDC ansteuern, 
allerdings mit Sinuskommutierung. Dazu habe ich mir die Application Note 
AVR447 zu gemüte geführt (http://www.atmel.com/Images/doc8010.pdf), wo 
das einigermassen gut erklärt wird. Dort kommt auch ein interessantes 
Verfahren zum Zug:

Die Rotorposition wird interpoliert, indem mittels Timer die Dauer der 
High-Phase eines Hallsensors gemessen wird. Lässt man den Timer 120 mal 
schneller laufen, dann zählt der Timer quasi die Rotorposition in Grad.
Genau sowas will ich hier auch implementieren, das braucht man ja 
sowieso für Sinuskommutierung.
Mein uC hat entsprechende Input Capture Eingänge sowie ausreichend 
Timer, aber ich weiss jetzt grade nicht so recht, wie ich das angehen 
kann.
Könnt ihr mir einen Tipp geben?

Ich denke mir das so:
Mit Input Capture die High-Zeit eines Hallsensors messen, und danach 
einen Timer so einstellen, dass er 120 mal schneller hochzählt. Der 
Timer muss nicht unbedingt einen IRQ generieren; vielmehr stelle ich mir 
das so vor, dass ich einfach dann, wenn ich die Rotorposition wissen 
will, das Timerregister lese. Geht das?
Ich stehe momentan extrem auf dem Schlauch.

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