Witam,
Projektuje na potrzeby pracy inżynierskiej sterownik do silników BLDC z wykorzystaniem czujników Halla na procku AT90PWM3B. Procek oprócz sterowania silnikiem i odczytywaniem stanów czujników ma podczepiony wyświetlacz lcd4x16, komunikacje po rs232 i 3 przyciski do przełączania ustawień. Sterowanie silnikiem odbywa się za pomocą modułu PSC, w którym mam dostępne 6 synchronicznych kanałów PWM. Oprócz modułu PSC wykorzystuje 3 komparatory analogowe z dopiętymi na ich wejścia czujnikami Halla. Odpowiednie sekwencje sterujące wywoływane są poprzez przerwania od komparatorów analogowych.
Wyświetlacz, przyciski i komunikacja po rsie działa, natomiast mam problem z przełączaniem sekwencji na tranzystory kluczujące, a mianowicie wyjścia PWM kompletnie głupieją... zamiast odpowiednio się przełączać to włączają się wszystkie naraz zaraz po wystąpieniu jakiegokolwiek przerwania ze strony komparatorów. Próbowałem odpalać sam moduł PSC bez wyświetlacza, przycisków i RSa, ale niestety problem pojawiał się nadal. Jeżeli ktokolwiek miałby chwilę czasu i mógł sprawdzić kod, który zamieszczam poniżej, byłbym ogromnie wdzięczny za jakąkolwiek pomoc.
Załącznik:
modul_sterujacy_2.0.pdf
MAIN.C
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
CONFIG.H
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.