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

PIC 16F628A - problem z programowaniem, losowe dane w pamięci flash

mkpl 19 Cze 2014 23:43 2568 14
REKLAMA
  • #1 13723243
    mkpl
    Poziom 37  
    Posty: 5659
    Pomógł: 306
    Ocena: 854
    Witam

    Chcę zaprogramować 16F628A. Sto razy wszystkie połączenia sprawdzałem. Sprawdzałem też sygnały częstotliwość lini zegarowej (1.8kHz) itp.

    Procesor kasuje się dopiero za którymś podejściem i przechodzi test czystości. Przy programowaniu jest problem wgrywa randomowe śmieci w kilku miejscach pamięci flash i tyle.

    Mój programator to Oshon Parallel Port PIC Programmer i też programuję za pomocą dedykowanego softu (programator wykonałem wg strony radio.dxp.pl).

    Napięcie Vdd to 4.98V a Vpp 13.3V. Układ sprawdzony pod kontem zwarć i innych.

    Nie pierwszy raz mam takie problemy z zaprogramowaniem ale zawsze za którymś razem się udawało. Dziś zwyczajnie zabrakło mi cierpliwości.

    Testowałem opóźnienia od 1ms do 30ms. Najsprawniej kasuje w okolicach 14ms (przy innych wartościach jest to mocno losowe).
  • REKLAMA
  • #2 13723475
    mickpr
    Poziom 39  
    Posty: 4630
    Pomógł: 579
    Ocena: 295
    mkpl napisał:
    Nie pierwszy raz mam takie problemy z zaprogramowaniem ale zawsze za którymś razem się udawało. Dziś zwyczajnie zabrakło mi cierpliwości.

    1. Nie prościej byłoby kupić PICkit'a (lub nawet jakiś klon), niż męczyć się z LPT?
    2. Nie masz za długich przewodów połączeniowych?
  • #3 13723628
    mkpl
    Poziom 37  
    Posty: 5659
    Pomógł: 306
    Ocena: 854
    Programator składałem jakieś 5 lat temu. Używam sporadycznie raz na rok ale może chyba warto zainwestować. Chwilowo kombinuję programator USB na PL2303.

    Przewody połączeniowe do lpt to około 1m a z samego programatora do procesora 10cm więc myślę, że są ok

    Po głębszych testach wyszło, że pamięć eeprom się programuje poprawnie natomiast flash procesora to same 3FFF. Czyli niestety muszę założyć uszkodzenie układu?
  • #4 13724311
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #5 13724502
    mkpl
    Poziom 37  
    Posty: 5659
    Pomógł: 306
    Ocena: 854
    Problem rozwiązany. Picowi przeszkadzał kondensator 100n w zasilaniu Vdd. Nie przypuszczałem, że to może mieć taki wpływ...
  • REKLAMA
  • #6 13724537
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #8 13724564
    mkpl
    Poziom 37  
    Posty: 5659
    Pomógł: 306
    Ocena: 854
    Przecięcie ścieżki Vdd od procesora i wpięcie się w nią programuje go za każdym razem bezbłednie. Wiec chyba czegoś nie rozumiem.
  • #10 13724954
    archanoid
    Poziom 26  
    Posty: 865
    Pomógł: 76
    Ocena: 249
    Witam . Kondensator to mógłby ci przeszkadzać na pinie MCLRE czyli reset , ale nie na zasilaniu .
  • #11 13725011
    rysel
    Poziom 13  
    Posty: 38
    Pomógł: 2
    Ocena: 4
    Aby PIC wszedł w tryb programowania, musi być podane napiecie VDD oraz na MCLR podane we włwściwej kolejnosci. Cżęść mikrokontrolerów pic wymaga by napiecie VDD narosło w czasie nieco szybszymj niż na MCLR (ok. 100us). Pojemność 100n akurat wystarczy do tego by napiecie VDD narosło nieco później niż na MCLR. Stąd PIC nie chciał wejść w tryb programowania
  • #12 13725023
    mkpl
    Poziom 37  
    Posty: 5659
    Pomógł: 306
    Ocena: 854
    No i praktyka potwierdza to co kolega rysel dokładnie napisał. Jak się przed tym chronić projektując układ?

    Czasami muszę coś zaprojektować z picem a nie lubię elementów przewlekanych więc zostaje programowanie w układzie. Na MCLR daję zawsze diodę a na VDD to chyba tylko rozwiązanie z zworką? Dawanie tam diody zaprzecza temu aby dawać pojemność jak najbliżej układu cyfrowego...
  • #13 13725105
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    rysel napisał:
    Aby PIC wszedł w tryb programowania, musi być podane napiecie VDD oraz na MCLR podane we włwściwej kolejnosci. Cżęść mikrokontrolerów pic wymaga by napiecie VDD narosło w czasie nieco szybszymj niż na MCLR (ok. 100us). Pojemność 100n akurat wystarczy do tego by napiecie VDD narosło nieco później niż na MCLR. Stąd PIC nie chciał wejść w tryb programowania

    Poprosimy o źródła tych informacji tym bardziej, że programator steruje MCLR i może zrobić dowolne opóźnienie.
  • #14 13725214
    archanoid
    Poziom 26  
    Posty: 865
    Pomógł: 76
    Ocena: 249
    Witam . Kondensatory na zasilaniu nie mają najmniejszego wpływu na proces programowania . Ja stosuję zawsze 100nF jak najbliżej każdej nóżki VDD . Ale już zastosowanie kondensatora na resecie do masy powodowało zakłucenia w procesie programowania . Dlatego stosuje ścieżki tak zwane sierżanty . Po ostatecznym zaprogramowaniu zwieram kroplą cyny .
  • #15 13725241
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    archanoid napisał:
    Ale już zastosowanie kondensatora na resecie do masy powodowało zakłucenia w procesie programowania.


    na co Microchip zwraca uwagę w instrukcjach programatorów (np. PICKIT3):

    PIC 16F628A - problem z programowaniem, losowe dane w pamięci flash

    a jak łatwo zauważyć, nie ma tutaj nic na temat zagrożeń ze strony kondensatorów na Vdd.

Podsumowanie tematu

✨ Użytkownik ma problemy z programowaniem mikrokontrolera PIC 16F628A, który wgrywa losowe dane do pamięci flash. Po sprawdzeniu połączeń i sygnałów, problem okazał się związany z kondensatorem 100nF w zasilaniu Vdd, który zakłócał proces programowania. Po usunięciu kondensatora, programowanie przebiegało poprawnie. Dyskusja porusza również kwestie związane z długością przewodów, ustawieniami programatora oraz wymaganiami dotyczącymi napięcia na pinach MCLR i VDD.
Wygenerowane przez model językowy.
REKLAMA