Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[PIC16F877A][nieznany] Zwiesza się / resetuje po chwili działania

smoker 09 Aug 2011 21:09 2036 13
  • #1
    smoker
    Level 18  
    Wykonałem układ według strony:
    eDrum
    Niestety firmware jest zamknięty, dystrybuowany tylko w Hexie.
    Jest to mój pierwszy mikroprocesorowy układ, więc nie mam żadnego doświadczenia. Udało mi się go uruchomić, jednak bardzo często zawiesza się, wywala krzaki na LCD lub się restartuje. Zwykle problem pojawia się podczas mocniejszego uderzenia w pad perkusyjny (duża "szpilka" z przetwornika piezo na wejściu LM324), czasem sam z siebie, albo podczas "pstrykania" lutownicą transformatorową podłączoną do tego samego gniazdka co zasilacz wtyczkowy tego układu. Kombinowałem na wszystkie strony z kondensatorami filtrującymi napięcie dla PICa, przy nóżkach układu mam podłączone równolegle 1800uF, 100nF i 1nF oraz przy wzmacniaczach operacyjnych 1uF i 100nF - niestety to nie pomogło. Próbowałem też różnych zasilaczy, w tym 12V z zasilacza komputerowego. Wszystkie nieużywane wejścia procka mam ściągnięte do masy. Firmware jest dobry, w sieci można znaleźć bezproblemowo działające wykonania tego projektu. Co jeszcze powinienem sprawdzić?
  • #3
    smoker
    Level 18  
    Próbowałem - układ docelowo będzie zmontowany w obudowie rack 19" od uszkodzonego switcha. Problem z lutownicą ewidentnie pochodzi od zasilania - na zasilaniu z baterii 9V układzik nie łapie zakłóceń EM nawet bez ekranu, za to po odłączeniu części analogowej i uziemieniu wejść ADC PIC resetuje się przy "tricku" z lutownicą. Analogicznie, jak lutownicę podłączę do gniazdka na innej fazie problem znika (pozostaje tylko zwiech od ew. uderzenia w pad).
    Może warto by było podnieść do testów prockowi napięcie? Ile taki PIC wytrzyma bez ryzyka? Posiadam niestety tylko cyfrowy miernik i jedyne co wskazuje to cały czas stabilne 5V na zasilaniu i nóżce RESET procka. Zmajstruję jeszcze tradycyjny zasilacz transformatorowy, bo te które testowałem do tej pory to różne impulsowe zasilacze od sprzętu sieciowego, ładowarki od telefonów itd.

    Dodano po 10 [minuty]:

    Na zasilaczu transformatorowym dodatkowo stabilizowanym LM317 na 12V objawy bez zmian.
  • Helpful post
    #4
    Urgon
    Editor
    AVE...

    Maksymalnie 5.5V...
    Wlutuj kondensator 100nF między pin 1 (MCLR) i masę...
    Co do reakcji na lutownicę, to mnie to w sumie nie dziwi, nie masz tam żadnych filtrów EMI po stronie pierwotnej. Co do resetowania się przy mocnym uderzeniu to możliwe, że zwyczajnie sygnał przekracza maksymalną wartość dla ADC...
  • #5
    smoker
    Level 18  
    Według projektu, aby wykorzystać cały zakres dynamiki, część analogowa zasilana jest z 8V. Dziwne tylko, że nigdzie nie mogę znaleźć odpowiedzi na taki przypadek, a na forum projektu próbuję uzyskać rejestrację od kilku miesięcy - admin olewa nowe requesty i nie mogę założyć konta. W sumie niewiele by to pomogło - 99% userów wrzuca posty w stylu: "Nie umiem trzymać lutownicy, ale mam obok RadioShack. Pomóżcie mi jak to zbudować".

    W datasheecie procka nie ma informacji o maksymalnym napięciu ADC, jedynie z analogowego modelu wejścia wynika, że napięcia powyżej VDD + 0,6V są zwierane diodą do VDD... Przy impulsie długości 5-10ms chyba nie jest to powodem resetowania.

    Po dodaniu kondensatora na MCLR problem dalej występuje. Zaczynam podejrzewać dziwne uszkodzenie PICa...
  • #7
    smoker
    Level 18  
    Dziś już nie mam na to siły. Pojutrze, jak wrócę z pracy sprawdzę jak układ zachowa się przy zasilaniu obu modułów tym samym napięciem. Póki co dzięki za sugestie :)
  • Helpful post
    #8
    User removed account
    User removed account  
  • #9
    smoker
    Level 18  
    Niestety zawiechy dalej występują, pomimo zasilania obydwu części napięciem 5V. Widzę za to, że sygnał docierający do ADC jest zgodnie z przewidywaniami wyraźnie słabszy, nie wysterowuje w pełni wejścia.
    Może spróbować przeprogramować kostkę na nowo, warto? Musiałbym od nowa składać programator na płytce stykowej, dlatego jeszcze tego nie zrobiłem ;)
  • #11
    smoker
    Level 18  
    Problem udało mi się rozwiązać w trochę inny sposób, przy okazji namierzając sprawcę :)
    Wgrałem starszą wersję firmware'u dostępnego na stronie autora projektu i problemy z zawiechami zniknęły. Co do łapania zakłóceń z sieci, to zakłócenia te indukowały się na wejściach ADC, który był odpowiedzialny za zawieszanie procka. Bardzo możliwe, że nowa wersja zmieniła kod ADC, który przy większych zakłóceniach niż przewidziane przez autora "nie wyrabiał się". W tej chwili układ śmiga aż miło (pomimo sporadycznego przeładowywania ADC) a w/w zakłócenia od lutownicy co najwyżej triggerują kilka losowych kanałów :)
    Zastanawia mnie tylko, dlaczego wszystkim, którzy opisują budowę kontrolera wersja 1.6.5 firmware'u działa bez problemu a u mnie były takie problemy.
    Tak czy inaczej, problem okazał się specyficzny dla (zamkniętego) kodu tego projektu, problem został rozwiązany trochę "the hard way", a wątek nadaje się do zamknięcia.

    Dziękuje za porady i pozdrawiam!
  • #13
    smoker
    Level 18  
    Wszystkie są ściągnięte przez 1k do masy, zarówno te nieużywane w projekcie, jak i niewykorzystane wejścia ADC i '4051. Wyjątkiem są wejścia "digital input" te mam podciągnięte przez 1k do VCC - w projekcie zwarcie ich do masy wysyła komunikat midi (tłumiki talerzy).