Witam!
Piszę w kolejnej sprawie. Mam sterownik trójfazowego silnika BLDC. Kroki są ustawiane na podstawie odczytów z czujników halla.
Tylko jest pewien problem. Po zmianie driverów półmostków z IR2108 na IR2184 silnik delikatnie acz zauważalnie się przycina.
W międzyczasie zmieniłem też czujniki halla(upalone przez przypadek) więc tutaj też może leżeć problem. Ale najpierw chciałbym wykluczyć błąd programowy. IR22184 ma nieco inną logikę i tak:
wejście SD odpowiada za to, czy dany półmostek w ogóle ma działać. Jeżeli 0, jest wyłączony i nie przewodzi żaden z kluczy. Jeżeli 1, to:
gdy wejście IN jest ustawione na 1, przewodzi górny mosfet natomiast jeżeli 0- dolny.
moc silnika jest regulowana poprzez podanie sygnału PWM do wejścia SD.
Fazy są przełączane poprzez zmianę stanu IN.
Oczywiście w danym momencie przewodzą dwa półmostki, w jednym górny mosfet, w drugim dolny. Trzeci jest wyłączony. PWM wystarczy podać na jedną stronę(góra lub dół), bo i tak przerywa cały obwód
Ponieważ drivery działają na zasadzie bootstrap, korzystniejsze będzie podanie sygnału PWM do otwierania mostka w którym przewodzi góra. Wtedy prądu z kondensatorów bez problemu wystarczy do załączenia góry przez PWM.
W takim jednak wypadku silnik przycina się przy niższych wypełnieniach. na full pracuje w porządku.
Silnik za to pracuje całkiem poprawnie, gdy zarówno góra jak i dół dostają sygnał PWM. Ale kiedy działa na full wypełnieniu, raz na kilka sekund pyka, jakby tracił synchro na moment.
Sporo tu tych góra/dół, U/V/W, PWM/bez PWM. Obawiam się, że mogłem coś porypać.
tutaj nagłówek odpowiedzialny za przełączanie PWM i portów:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Generalnie program jest spoko, bo
silnik osiąga nominalne obroty i moc(śmigałem już na rowerze). Ale coś "chrupie", no..