RE: Sterownik rotora antenowego - Projekt i wykonany egzemplarz
Ważna informacja.
Darek wykonał dwa takie urządzenia. Napisał, że borykał się z dziwnym stanem nieustalonym gdzie sterownik resetował się itpe.
Próbował zmieniać układ resetu czy też dokładał rezystory podciągające pod klawiaturę. Okazuje się, że problem u niego istnieje nadal.
Dzisiaj właśnie rozmawialiśmy telefonicznie i po dokładniejszym opisaniu tego co się dzieje, doszedłem do wniosku, że problem jest mi przecież znany, tyle że zupełnie o nim zapomniałem :-). Aby było ciekawiej, od dawna mam nawet jego rozwiązanie:-)
Już wyjaśniam o co chodzi.
Wejścia procesora AIN0 PIN-3 oraz AIN1 PIN-4, to wejścia wewnętrznego komparatora. Komparator czuwa nad napięciem zasilania.
AIN0 podłączone jest programowo z wewnętrznym napięciem odniesienia 1,28V. Tak więc w chwili gdy napięcie na wejściu AIN1 zrówna się z 1,28V, komparator wyzwala przerwanie. W przerwaniu zapisywana jest do pamieci EEPROM aktualna pozycja rotora, następnie program wpada w niekończącą się pętlę. Dalszy spadek napięcia zasilania powoduje bezpieczne zatrzymanie pracy procesora.
Z relacji Darka doszedłem do wniosku, że to co u niego zachodzi, to nie jest jakiś reset czy zawieszanie, lecz właśnie niekontrolowane wyzwolenie przerwania przez ten komparator. W następstwie wejście programu w pętlę nieskończoną (co w sumie wygląda jak zawieszenie się procesora, bo nie reaguje on już na żadne bodźce).
Napięcie na wejście AIN4 dostarczane jest z mostka prostowniczego D1-D4, przez układ składający się z elementów R2, C1, R3, D13. Jest to prosty dzielnik z niewielką pojemnością całkującą i do tego jeszcze na "w razie W" zabezpieczająca dioda zenera D13.
Ja już kiedyś właśnie zdiagnozowałem u siebie ten problem za pomocą oscyloskopu. Podczas pracy silnika, zwłaszcza podczas startu lub hamowania, po masie "latają" zakłócenia i zdarzało się, że komparator generował fałszywe przerwania.
Okazuje się że rezystor R3 10kohm jest zbyt dużą rezystancją aby dostatecznie uziemić wejście AIN1 przed różnymi takimi nieprzewidzianymi sytuacjami.
Rozwiązaniem jest zmiana wartości dzielnika:
R2 - zamiast 56k wstawiamy 5,6k
R3 - zamiast 10k wstawiamy 1,5k
U mnie to pomogło.
Jeszcze jedna uwaga. U mnie na mostku D1-D4 jest około 12V. Jeżeli u kogoś napięcie to znacznie odbiega od 12V, należy wartość R2 odpowiednio dobrać.
Chodzi o to, aby przy zaniku napięcia, czas rozładowania kondensatora C7 1000uF (u mnie obecnie jest 2200uF/16V) był na tyle długi, aby wygenerować przerwanie i jeszcze w czasie tego przerwania procesor zdążył zapisać do pamięci EEPROM aktualną pozycję.
I jeszcze jedna uwaga.
Warto wstawić rezystor rozładowujący równolegle z kondensatorem C14. Wystarczy około 22k. Zabezpieczy nas to przed niespodziankami. Podczas spoczynku nie ma co za bardzo tego kondensatora rozładować. Miałem sytuację że zrobiłem niechcący zwarcie tego kondensatora przy wyłączonym urządzeniu i w wyniku przepięcia uszkodzeniu uległ transoptor OK1.
Cieszę się, że przybywa użytkowników tego urządzenia :-)
Proszę o uwagi, każda jest mile widziana.
(Ten post był ostatnio modyfikowany: 10-01-2016 17:08 przez SP9MTV.)
|