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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.