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

PIC18F4520 - Nie startuje bez programatora.

korrus666 14 Sty 2014 11:42 2580 7
  • #1 14 Sty 2014 11:42
    korrus666
    Poziom 40  

    Mam dziwny problem z procesorem 18f4520. Układ zasilany z zasilacza (4,9V) a programowany klonem ICD2. Programuje się bez problemu i zwolnienie z RESET w MPLAB uruchamia program i wszystko działa. Jeśli odłączę programator od procesora to procesor nie startuje. MCLR podłączone do + przez 10k rezystor. Wszystkie linie zasilające podłączone, Podłączony kondensator 100n + 10uF przy zasilaniu procesora.
    Układ zbudowany na płytce stykowej. Po podłączeniu programatora układ startuje. Nie mam pojęcia czemu jeśli nie podłącze programatora to przy włączeniu zasilania układ nie startuje. Jeśli po tym wyłączę zasilacz to na chwilę procesor startuje. Spadek napięcia uruchamia procesor a potem kiedy spadnie już za bardzo to się wyłączy.
    Miałem kiedyś podobny problem z takim procesorem. O dziwo działał prawidłowo jeśli jego napięcie zasilające było w okolicach 4,6 V. Jest to przecież bez sensu bo prawidłowo powinien działać w zakresie 4.2V do 5.5V.
    Nie próbowałem jeszcze dać mu z zasilacza regulowanego napięcia i obniżając sprawdzić czy w jakimś momencie rusza. Ale nawet jeśli to zadziała to jest bez sensu. Zasilacz zasila jeszcze kilka innych rzeczy i nie mogę zejść niżej niż 4,9V.
    Ma ktoś jakiś pomysł?
    Może napięcie z zasilacz rośnie zbyt wolno i POR nie działa. Tylko czemu przy podłaczonym programatorze zaczyna działać. Nawet jak programator nie jest podłączony do USB a tylko wpięty w układ to wszystko działa.

    0 7
  • #2 14 Sty 2014 20:07
    Marek_Skalski
    Moderator Projektowanie

    Na początku pomyślałem o tym, że zaprogramowałeś go do współpracy z debugerem (tryb Debug) i wtedy to normalne, że nie ruszy bez ICDx. Aby działał bez programatora musi być zaprogramowany w trybie Release.
    Ale z tego co piszesz to chyba coś innego się dzieje. Czy programator może być zasilany przez złącze ICD? Może zasila się jak pasożyt i wtedy startuje i umożliwia pracę uC?
    Możesz podłączyć pojedyncze piny i sprawdzić dla jakich podłączeń jeszcze/już działa?
    Jaki jest czas narastania napięcia zasilającego?
    Z czego jest pędzony uC?

    0
  • #3 14 Sty 2014 21:51
    korrus666
    Poziom 40  

    Z pinami posprawdzam, chociaż dziś zachowuje się znów trochę inaczej. Nawet z podłączonym programatorem nie zawsze działa.
    Programator to klon zrobiony przez kolegę z tego forum.
    https://www.elektroda.pl/rtvforum/viewtopic.ph...lon+icd2&sid=07e6335d93c2a8339d3dcb43c6126b48
    Czas narastania zmierzyłem i jest 1V/ms czyli do 5V podnosi się w 5ms.
    uC działa na wewnętrznym oscylatorze.

    0
  • #4 20 Sty 2014 15:57
    szymonjg
    Poziom 15  

    Dla 100% pewności, że to nie wina RESETu możesz go pogramowo wyłączyć. Jedyne co mi jeszcze do głowy przychodzi to za mała moc zastosowanego zasilacza. Polecam zasilanie z USB przy pomocy kabla USB z uciętą końcówką. U mnie działa bez problemu. Czerwony to + a Czarny to GND. Ale sprawdź miernikiem na wszelki wypadek.

    0
  • #5 20 Sty 2014 19:57
    Marek_Skalski
    Moderator Projektowanie

    korrus666
    Pokaż schemat albo jeszcze lepiej zdjęcia, bo to trochę dziwne jak na PIC18.
    Wiem, że jest problem ze startem PIC24 czy dsPIC33, jeżeli VCAP jest za mały lub zbyt oporny.
    Na pewno ustawiłeś mu CONFIGi na wewnętrzny zegar? Możesz pokazać program?

    "VDD Rise Rate to Ensure Internal Power-on Reset Signal 0.05 V/ms" - mieścisz się w specyfikacji i tutaj problemów nie ma co szukać.

    Ostatnie co widzę, to 7. punkt erraty. Jeżeli wyłączyłeś BOD i ponownie włączasz, a nie włączyłeś HLVD. Ale to mało prawdopodobne :/

    0
  • #7 01 Lip 2014 10:48
    szymonjg
    Poziom 15  

    Wyłączenie resetu sugerowałem w poprzednim poście, tylko źle się wysłowiłem bo to się nie robi programowo a w bitach konfiguracyjnych. Jestem początkujący i się nie znam a chodziło mi o to, że po jego wyłączeniu sprzętowo może na nim być dowolne napięcie i na pewno procesor nie będzie w stanie RESETU.

    A programowanie niskonapięciowe teoretycznie ICD2 obsługuje ale obsługuje też normalne programowanie wysokonapięciowe wiec nie wiem jaki jest sens używania go.

    Dzięki wyłączeniu tych dwóch rzeczy to pin LVP może pracować jako normalny I/O RB5 natomiast RE3 pracije tylko jako input.

    Dla ciekawości możesz jeszcze miernikiem sprawdzić napięcie na pinie resetu czy wspomniany rezystor rzeczywiście podnosi mu je do stanu wysokiego.

    0
  • #8 22 Paź 2014 08:17
    korrus666
    Poziom 40  

    Jak wcześniej pisałem problem rozwiązany. Sprawa jednak dziwna bo czas narastania napięcia jest wystarczający a reset podciągnięty do zasilania. Nie pomagał również reset po dłuższym czasie od podłączenia zasilania. Żadne układy z kondensatorem też nie przynosiły efektów. Jedyne co pomogło to wyłączenie resetu.

    0