controllo brushless con AVR
Salve.
Mi sono cimentato nell'implementazione di un controlo brushless trapezoidale, sensor based, su un atmel AVR tiny861.
Per il momento ho implementato la commutazione delle fasi alimentate: al cambiamento dello stato dei sensori ad effetto Hall, va in esecuzione una routine di interrupt (interrupt on change) che provvede a commutare l'alimentazione sulle fasi.
Il problema è: come faccio a determinare la corrispondenza tra stato dei sensori ad effetto Hall e stato delle fasi alimentate? Ho provato andando per tentativi, ma per ora ho un comportamento anomalo: il motore si avvia ruotando in un verso, poi inverte il senso di rotazione (questo fa sospettare che il campo magnetico generato dallo statore sia asincrono rispetto a quello del rotore), e poi si ferma.
Suggerimenti?
Mi sono cimentato nell'implementazione di un controlo brushless trapezoidale, sensor based, su un atmel AVR tiny861.
Per il momento ho implementato la commutazione delle fasi alimentate: al cambiamento dello stato dei sensori ad effetto Hall, va in esecuzione una routine di interrupt (interrupt on change) che provvede a commutare l'alimentazione sulle fasi.
Il problema è: come faccio a determinare la corrispondenza tra stato dei sensori ad effetto Hall e stato delle fasi alimentate? Ho provato andando per tentativi, ma per ora ho un comportamento anomalo: il motore si avvia ruotando in un verso, poi inverte il senso di rotazione (questo fa sospettare che il campo magnetico generato dallo statore sia asincrono rispetto a quello del rotore), e poi si ferma.
Suggerimenti?