Elektroda.pl
Elektroda.pl
X
Katalog Megger
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

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

smoker 09 Sie 2011 21:09 1892 13
  • #1 09 Sie 2011 21:09
    smoker
    Poziom 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ć?

    0 13
  • Katalog Megger
  • #3 09 Sie 2011 21:52
    smoker
    Poziom 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.

    0
  • Pomocny post
    #4 09 Sie 2011 23:12
    Urgon
    Poziom 36  

    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...

    0
  • Katalog Megger
  • #5 09 Sie 2011 23:28
    smoker
    Poziom 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...

    0
  • Pomocny post
    #6 09 Sie 2011 23:32
    dondu
    Moderator Mikrokontrolery Projektowanie

    smoker napisał:
    Przy impulsie długości 5-10ms chyba nie jest to powodem resetowania.

    5-10ms to cała wieczność.

    0
  • #7 09 Sie 2011 23:33
    smoker
    Poziom 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 :)

    0
  • Pomocny post
    #8 10 Sie 2011 09:15
    94075
    Użytkownik usunął konto  
  • #9 11 Sie 2011 18:23
    smoker
    Poziom 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 ;)

    0
  • #11 14 Sie 2011 14:26
    smoker
    Poziom 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!

    0
  • #12 14 Sie 2011 14:40
    dondu
    Moderator Mikrokontrolery Projektowanie

    A co robisz z niewykorzystanymi pinami mikrokontrolera?

    0
  • #13 14 Sie 2011 16:45
    smoker
    Poziom 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).

    0