Witam,
Mam problem z normalnym działaniem programu napisanego na atmedze 328p.
Po kolei:
Zrobiłem z bratem swój sterownik, na potrzeby kilku szaf sterowniczych. Projekt w załączniku, płytki drukowane przez firmę zewnętrzną, wykonane solidnie, profesjonalnie.
Szafy docelowo mają załączać sekwencyjnie kilka silników o mocy w granicach 1-2kW (+ jeden większy, ale o tym potem), dodatkowo obsługiwać kontrolę wejść alarmowych, oraz przycisków wł/wył.
Program jest dość prosty, po prostu instrukcja warunkowa if(), która sprawdza czy na wejścia są podane sygnały, jeśli tak, to cyklicznie załącza wentylatory.
Pierwszy na 10 sek, przerwa 5 sek.
Drugi na 10 sek, przerwa 5 sek.
Trzeci na 10 sek, przerwa 5 sek.
Czwarty na 10 sek, przerwa 5 sek.
i tak w kółko.
Program pisałem kilka razy w różnych wersjach (pierwotnie myślałem, że wina leży po stronie programu), program nie używa żadnych delay'ów, tylko operuje na porównaniu czasu od początku programu.
Tak czy inaczej problem występuje w każdej z szaf, na każdej wersji programu, mimo że wszędzie jest inaczej napisany program (nie powiela się, więc o błędzie ze strony programu raczej nie powinno być mowy).
Wniosek - Zakłócenia, lub wina po stronie sprzętu.
Tylko teraz jak sobie z tym poradzić?Wejścia sterownika:Wejścia działają na zasadzie podania na nie MASY, która jeśli już tam trafi (wejście aktywne) przechodzi przez filtrację, tj rezystor, kondensator, dioda, znowu rezystor, transoptor i przed samą nóżką procesora jest rezystor 10k podciągający do VCC.
Wejść jest w sumie 8.
Wyjścia sterownika:Wyjścia sterowane są przez podanie przez procesor stanu wysokiego, który idzie przez rezystor, na tranzystor i na przekaźnik.
Zasilanie procesora wygląda tak, że z zasilacza 12V idzie przez bezpiecznik, dwie diody, kondensatory, stabilizator na wszystkie wejścia VCC procesora.
Reset jest podciagnięty opornikiem 4,7k (pierwotnie był 10k) do VCC,
wszystkie wejścia VCC procesora mają dołożony kondensator.
Objawy:Program losowo się resetuje. Wydaje mi się, że w momencie lub w okolicach momentu, gdy stycznik (zapalany przez przekaźnik wlutowany w sterownik) "puszcza", wtedy idzie duży prąd. Może to dlatego. Program czasem też się "zawiesi" na dłuższą chwilę (około kilkanaście - kilkadziesiąt sekund) lub dłużej.
Ktoś wie dlaczego?
Czytałem poradniki ..., zgodnie z informacjami tam napisanymi wdrożyliśmy kilka zmian. Wejścia nieużywane w programie mimo, że są fizycznie podciągnięte do VCC, też programowo podciągnąłem do VCC. Zmniejszyliśmy rezystor podciągający pin RESET do VCC z 10k na 4,7K (najmniejszy z przedziału który podał producent w nocie katalogowej). Wczoraj to zrobiliśmy i program nadal się resetuje. Dodatkowo wyczytałem, że w przypadkach niesprzyjającego środowiska można też obudowę z kwarcu zewnętrznego 16MHz przylutować do masy. Przylutowaliśmy.
Niestety problem nie ustąpił.
Jedna z szaf ma jeszcze duży silnik 20kW, ale on załącza się na początku programu, a sam program nie wykonuje sekwencji. Tutaj restartów nie ma. Co tym bardziej utwierdza mnie w przekonaniu, że biorą się one albo od przekaźników, albo styczników, które są przez nie załączane.
Bardzo proszę o pomoc kogoś bardziej doświadczonego ode mnie.
Przekaźniki mają napięcie cewki 12V, więc zasilanie moim zdaniem jest odseparowane, a jednak problem wygląda jakby było coś nie tak z zasilaniem.
W załączniku pełny schemat płytki w pdf (z Eagla, ale plik .sch nie przechodzi), wraz z podanymi wartościami rezystorów, kondensatorów, numerami układów, itd.
Link do przekaźnika:
http://lispol.com/produkt/przekaznik-ce ... pr-s-112-aLiczę na jakieś wskazówki. Z góry dziękuję i pozdrawiam.
Załącznik:
sterownik mały1.pdf