logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[atmega8a] - Reset układu mimo wyłączonego resetu z pinu PC6.

stachu_15 16 Kwi 2013 12:18 2766 17
  • #1 12205321
    stachu_15
    Poziom 12  
    Witam,
    może tytuł mówi niewiele... już opisuję o co chodzi.
    Mam poważny problem z atmegą8a w tqfp.
    Układ zasilany z przetwornicy bazującej na a8498. Stabilność napięcia wyjściowego wysoka. W procesor wgrany jest bootloader. Wrzucam wsad przez niego. Wcześniej przez ISP wgrałem boota i wyłączyłem pin PC6 jako reset (teraz pracuje jako normalny I/O). Z racji, że jest niewykorzystywany jako reset nie dawałem żadnego podciągnięcia ani kondensatora, wisi w powietrzu. Podczas pracy zwarcie tego pinu do masy nie zatrzymuje procesora, jednak podczas "smyrania" go np. metalową pęsetą układ co chwila się resetuje... Resetuje się ewidentnie od wyładowania elektrostatycznego, ponieważ po jednym strzale w nóżkę pęsetą na kolejne nie reaguje, muszę np. ruszyć się na krześle i pęseta naładowana do kolejnego resetu procka :/ Mogę identycznie robić z innymi pinami i reset nie następuje. Problem ujawnił się podczas sterowania większym obciążeniem, atmega steruje przekaźnikami. Klikanie ich cewek, lub samo obciążenie powoduje też resety (raczej to drugie, bo bez obciążenia reset następuje rzadko). Oczywiście diody na cewkach obecne.
    Ludzie pomóżcie?!
    Nie mogę udostępnić ani wsadu ani nawet fragmentów schematów - tajemnica służbowa :) - projekt na zamówienie... ale nic nie odbiega od standardowych połączeń zgodnych z ogólnymi zasadami projektowania elektroniki :)
    Może ktoś podrzuci, albo wytłumaczy jak działa wyłączenie resetu z pinu PC6 w Atmega8A (aha kwarc 8 MHz - raczej bez znaczenia przy tym problemie).
    Pozdrawiam
  • #2 12205396
    dondu
    Moderator na urlopie...
    stachu_15 napisał:
    Nie mogę udostępnić ani wsadu ani nawet fragmentów schematów - tajemnica służbowa :) - projekt na zamówienie... ale nic nie odbiega od standardowych połączeń zgodnych z ogólnymi zasadami projektowania elektroniki :)
    Może ktoś podrzuci, albo wytłumaczy jak działa wyłączenie resetu z pinu PC6 w Atmega8A (aha kwarc 8 MHz - raczej bez znaczenia przy tym problemie).

    No to nie będzie łatwo Ci pomóc :|
    A zdjęcia możesz?

    Sprawdź najpierw co tak naprawdę jest przyczyną resetu za pomocą rejestru MCUCSR.
  • #3 12205401
    lukashb
    Poziom 39  
    No niestety, jak nic nie możesz pokazać, to my nic nie możemy doradzić.....szklana kula się stłukła wczoraj. W internecie jest pełno informacji jak zasilać procesor, jak go okondensatorować w koło itp. Dondu pisał nie raz. Nie licz, że ktoś Ci powie, dolutuj R4 tu i tu a tu usuń C5. Wkońcu sam to robisz, i my nic nie wiemy o tym. Poza tym - sam schemat z przekaźnikami to nie tajemnica i wielkie aj-waj. Co do programu - zgoda.
  • Pomocny post
    #4 12205406
    PUPILANDER
    Poziom 15  
    Pokaż jak masz skonfigurowany pin PC6.
    stachu_15 napisał:
    nic nie odbiega od standardowych połączeń zgodnych z ogólnymi zasadami projektowania elektroniki :)

    Dobrą zasadą jest niepozostawianie nieużywanych pinów "luzem". Jeśli chcecsz go zostawić niepodłączonego to ustaw go jako wyjście.
  • #5 12205419
    BlueDraco
    Specjalista - Mikrokontrolery
    lukashb napisał:
    Nie licz, że ktoś Ci powie, dolutuj R4 tu i tu a tu usuń C5.


    Wlutuj diodę szybką, np. 1n4148 albo dowolną Schottky anodą do nogi RESET, katodą do plusa zasilania i napisz, czy pomogło. :)
  • #7 12205442
    stachu_15
    Poziom 12  
    Przyczyną resetu jest EXTRF w MCUCSR - musiałem zmarnować jedną atmegę, żeby wyłączyć reset a wgrać wsad testujący wykrywający źródło resetu... no bo z bootem nie działa odczytywanie MCUCSR.
    Kondensatory?! Po 100n na nażdy pin VCC w medze plus tantal 4,7uF plus 100n za przetwornicą, przed to samo.
    Przekaźniki? Podłączenie jak na obrazku niżej. Tyle, że NPN BC817 i rezystor 820R.
    [atmega8a] - Reset układu mimo wyłączonego resetu z pinu PC6.
    A już odczuwam pewną nutę niechęci pomocy... nie wiem gdzie lukashb Ty pracujesz, ale niektóre firmy mają bardzo rozbudowaną politykę prywatności i poufności... obowiązują mnie pewne umowy, a stracić pracę to trochę szkoda... nie chcesz mi pomóc to omiń ten wątek.

    Dodano po 3 [minuty]:

    Dondu - bloga znam... śledzę na bieżąco, co do zasilania megi jestem pewien poprawności i stabilności.
    Czy wytłumaczy ktoś zasadę odłączania pinu resetu z nogi PC6 ? Dlaczego odłączeni fusebitami poniekąd nie działa...

    Dodano po 6 [minuty]:

    PUPILANDER napisał:
    Pokaż jak masz skonfigurowany pin PC6.


    Niezależnie od konfiguracji PC6 zawsze na dotknięcie pęsetą się procek resetuje. Sprawdzałem na kodzie:
    #include <avr/io.h>
    int main(void)
    {
    	DDRC |=	(1 << PC6);
    	PORTC |= (1 << PC6);
    
        while(1);
    }


    Ustawiałem wszystkie konfiguracje:
    DDR = 1, PORT = 1;
    DDR = 1, PORT = 0;
    DDR = 0, PORT = 1;
    DDR = 0, PORT = 0;
    Zawsze to samo... czyli reset
  • #8 12205482
    dondu
    Moderator na urlopie...
    stachu_15 napisał:
    Przyczyną resetu jest EXTRF w MCUCSR - musiałem zmarnować jedną atmegę, żeby wyłączyć reset a wgrać wsad testujący wykrywający źródło resetu... no bo z bootem nie działa odczytywanie MCUCSR.

    Hmm, to sugeruje że jednak nie masz wyłączonego pinu RESET.
    Wiem, że piszesz, że na pewno masz, ale taki jest wniosek :)
    W tym zakresie nie spotkałem się z takim przypadkiem - Twój jest pierwszy.
    Pokaż zdjęcie tego fragmentu płytki gdzie masz pin PC6 obie strony.


    stachu_15 napisał:
    A już odczuwam pewną nutę niechęci pomocy... nie wiem gdzie lukashb Ty pracujesz, ale niektóre firmy mają bardzo rozbudowaną politykę prywatności i poufności... obowiązują mnie pewne umowy, a stracić pracę to trochę szkoda... nie chcesz mi pomóc to omiń ten wątek.

    Ale on ma dobre intencje, tylko pokazuje problem.


    stachu_15 napisał:
    Czy wytłumaczy ktoś zasadę odłączania pinu resetu z nogi PC6 ? Dlaczego odłączeni fusebitami poniekąd nie działa...

    Musi działać.
    Podaj może jakie ustawiasz wartości fusebitów, gdy pin reset wyłączasz.
  • #9 12205498
    BlueDraco
    Specjalista - Mikrokontrolery
    Wlutuj tę diodę, tak jak napisałem powyżej!
  • #11 12205508
    stachu_15
    Poziom 12  
    Reset odłączony w 100%, podłączam STK500 i mega się nie zgłasza!
    fusy: 04, 3F
    Może zabrzmi śmiesznie - nie mogę udostępnić zdjęcia :)
    Jednak, jak mówię, reset nie następuje samoczynnie gdy układ leży, tylko zawsze podczas rozłączania przekaźnika, lub co gorsza !!! podczas dotknięcia pinu megi, pin jest podłączony z gniazdem goldpinów do przyłączania peryferiów... ale niewykorzystywany w komunikacji z peryferiami, to samo gniazdo w fazie początkowej służy do zaprogramowania bootloadera no i wyłączenia resetu...
  • Pomocny post
    #12 12205524
    BlueDraco
    Specjalista - Mikrokontrolery
    Przestań się chwalić, czego nie możesz pokazać, tylko wlutuj tę diodę. ;)
  • Pomocny post
    #13 12205530
    dondu
    Moderator na urlopie...
    OK, rozumiemy co piszesz - nie trzeba wykrzykników :)
    Niestety, bez schematu, PCB, zdjęć i programu, nie doradzę Ci więcej niż to, co opisałem w podanym linku.
    Mam nadzieję, że mnie rozumiesz.
  • #14 12205580
    stachu_15
    Poziom 12  
    BlueDraco napisał:
    Przestań się chwalić, czego nie możesz pokazać,...

    Mi też nie jest łatwo... ale szefostwo rygorystyczne :)
    BlueDraco napisał:
    ...tylko wlutuj tę diodę. ;)

    Wlutowałem, poniekąd załatwia to sprawę układ jest odporny na wyładowania do tego stopnia, że podłączony do atmegi konwerter UART<> USB mi się "wypiął" spod systemu windows, a mega się nie zresetowała. A piszę poniekąd, bo projekt gotowy i już w produkcji, a tu jeszcze takie problemy się pojawiły :) ale na szczęście jest możliwość naprawy serii :) jest miejsce na wlutowanie diod :)
    dondu napisał:
    ... bo ten pin nie posiada diody zabezpieczającej, w przeciwieństwie do pozostałych I/O.

    To by wiele wyjaśniało...

    Super chłopaki dzięki wielkie za pomoc... myślę, że udało się rozwiązać ten problem, a dla potomnych zostaną pomocnicze posty!
    Pozdrawiam

    Dodano po 1 [minuty]:

    dondu napisał:
    OK, rozumiemy co piszesz - nie trzeba wykrzykników :)
    Niestety, bez schematu, PCB, zdjęć i programu, nie doradzę Ci więcej niż to, co opisałem w podanym linku.
    Mam nadzieję, że mnie rozumiesz.

    Wykrzykniki, znaki zapytania i inne to jakoś tak w nawyku mam i może trochę nadużywam :) nie żebym krzyczał, bo wtedy to bym pisał z CAPSEM :)
    Rozumiem i jeszcze raz dziękuję za pomoc :)
  • Pomocny post
    #15 12205720
    BlueDraco
    Specjalista - Mikrokontrolery
    No patrz, a "pomógł" nie kliknął... No, ale przynajmniej dobrze wiedzieć, że strzał był trafiony.
    ;)
  • #16 12205746
    stachu_15
    Poziom 12  
    BlueDraco napisał:
    No patrz, a "pomógł" nie kliknął... No, ale przynajmniej dobrze wiedzieć, że strzał był trafiony.
    ;)

    Wybaczcie :) już klikam :)
    Ale podekscytowany zacząłem testować pozostałe moduły i meldować przełożonemu co odkryłem yyy odkryliście :) ;-)
  • #17 12205916
    Tomasz Gumny
    Poziom 28  
    Przeczytaj rozdział Parallel Programming -> Enter Programming Mode. Znajdziesz tam m.in.:
    "4. Apply 11.5 - 12.5V to RESET. Any activity on Prog_enable pins within 100 ns after +12V
    has been applied to RESET, will cause the device to fail entering Programming mode."
  • #18 13354329
    stachu_15
    Poziom 12  
    Temat do zamknięcia
REKLAMA