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

atmega16a - Martwy atmega16a po zmianie JTAGEN (czyli ustawieniu na 1)

Metalista 21 Mar 2014 22:31 1335 2
REKLAMA
  • #1 13429519
    Metalista
    Poziom 2  
    Posty: 2
    Cześć

    Szukam pomocy po wyłączeniu JTAGa w ATmega16a.

    Próbowałem użyć pinów PC2 i PC3 w procesorze ATmega16a.
    Nie działały - stwierdziłem, że może to być związane z włączonym JTAG.
    Użyłem więc Burn-O-Mat i ustawiłem fuse bit JTAGEN na 1 (czyli go wyłączyłem).
    Od tego momentu procek jest martwy ;(

    Używam programatora USBASP.
    avrdude daje komunikat:
    avrdude.exe: error: programm enable: target doesn't answer. 1
    avrdude.exe: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    Czy jest jakaś metoda aby go ożywić ?

    Pozdrawiam i prosze o pomoc.
  • REKLAMA
  • #2 13430338
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 571
    W zasadzie temat wielokrotnie wałkowany i powinieneś użyć opcji "szukaj " jednak jesteś tu nowicjuszem w ilości postów ;) więc troszkę ci pomogę . Jeśli programator nie rozpoznaje procesora ani przez spi , ani przez Jtaga pozostaje HVPP czyli wysokonapięciowy programator równoległy lub układ który w taki sposób ustawi prawidłowe "fusy" możesz jeszcze sprawdzić czy przez przypadek nie ustawił się oscylator na zewnętrzny generator podając zewnętrzny sygnał zegarowy np. 4MHz z generatora np. na układzie 74HC04 lub innego...
  • #3 13432405
    Metalista
    Poziom 2  
    Posty: 2
    Mam tylko programator USBASP (nie mam JTAGa) dlatego tylko przez usbasp mogę testować połączenie z uC - właśnie to nie działa.

    Zanim napisałem mój post przejrzałem forum i inne strony - niestety podobnego przypadku nie spotkałem - tzn. wg. mojej wiedzy wyłączenie JTAGEN w fuse bitach nie powinno było zablokować uC.

    Zastosowałem następujący sposób gdy ustawiałem fuse-y:
    (wszystko przy pomocy Burn-O-Mat i usbasp)
    - odczytałem fuse-y z działającego uC
    - zmieniłem tylko i wyłącznie bit JTAGEN (wyłączyłem go)
    - i wgrałem fuse-y do uC
    Od tego momentu dostawałem błąd avrdude o którym poprzednio napisałem.

    Hmmmmm.... chyba, że faktycznie stało się coś innego niż mi się wydaje (mogłem się gdzieś pomylić...).

    Acha - do procka mam podłączony zewnętrzy kwarc 8MHz - nic to nie daje ;(

    Rozumiem, że na teraz nie pozostaje nic innego jak znalezienie programatora JTAG lub równoległego i przy jego pomocy ustawienie fuse-ów na default-owe.

    BTW.
    Aby wykorzystać PC2 i PC3 w ATmega16 (zrobiłem to na innym - żywym układzie) wyłączyłem JTAG programowo poprzez użycie 4 takich samych instrukcji (jedna nie wystarczyła) - to kawałek kodu w C:
    MCUCSR|=(1<<JTD);
    MCUCSR|=(1<<JTD);
    MCUCSR|=(1<<JTD);
    MCUCSR|=(1<<JTD);

    Pozdrawiam !
REKLAMA