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

[ATMega16] Zablokowany, mam JTAG, co robić?

bajerybajery 07 Sty 2009 18:38 2832 11
REKLAMA
  • #1 5964926
    bajerybajery
    Poziom 10  
    Witam, jestem początkujący w temacie odblokowywania procesorów ;-) - nigdy mi się nie zdarzyło zablokować, aż tu nagle... ;-) Procesor sterujący oświetleniem choinkowym ATMega16 nie daje się programować. W AVR Studio mogę bez problemu odczytać FuseBity, LockBity a nawet odczytać pamięć programu. Jakimś cudem LockBity są ustawione jak na dołączonym obrazku - czyli totalne zablokowanie zapisu ;-). Dopiszę, że nie Ja je tak poustawiałem. I tu pierwsze pytanie - nóżki mC dostąpiły kiedyś zaszczytu zwarcia i potraktowania napięciem 12V - czy to może być przyczyną takiego stanu rzeczy (nic mi nie przychodzi innego do głowy co mogło by przestawić LockBity - FuseBity pozostały w porządku - taktowanie wewnętrznym zegarem 8MHz). I wreszcie najważniejsze pytanie: czy posiadanym przeze mnie programatorem JTAG ICE można coś wskurać czy procesor do wywalenia?

    [ATMega16] Zablokowany, mam JTAG, co robić?
  • REKLAMA
  • REKLAMA
  • #3 5965084
    bajerybajery
    Poziom 10  
    Niestety nie kasuje / choć wykonuje się niby poprawnie (komunikat zakończony OK):
    Dodam, że inny posiadany przeze mnie mikroukład (również ATMega16) mogę bez problemu programować, więc to nie wina ani programatora, ani systemu Vista, ani AVR Studio.

    [ATMega16] Zablokowany, mam JTAG, co robić?
  • #4 5966823
    kemot55
    Poziom 31  
    Czytam to co napisałeś i nie bardzo mi to wszystko pasuje. Raczej przy takich "fusach" nie powinno się dać odczytać programu. Sprawdź plik po odczycie czy tam jest rzeczywiście Twój program a nie np. kolejne wartości bajtów 0,1,2,3...255 i od początku.
    I jeszcze jedno-spróbuj obniżyć szybkość zegara programatora (jak najwolniej). Kiedyś obserwowałem zjawisko polegające na zgłoszeniu po wykonaniu jakiejś operacji (chyba właśnie kasowanie) przez podobny programator (prog. po SPI nie JTAG) ALL OK i nic więcej! Wtedy miałem problem ze zaśmieconą linią zegara.
  • REKLAMA
  • #5 5968534
    bajerybajery
    Poziom 10  
    kemot55 napisał:
    Czytam to co napisałeś i nie bardzo mi to wszystko pasuje. Raczej przy takich "fusach" nie powinno się dać odczytać programu. Sprawdź plik po odczycie czy tam jest rzeczywiście Twój program a nie np. kolejne wartości bajtów 0,1,2,3...255 i od początku.
    I jeszcze jedno-spróbuj obniżyć szybkość zegara programatora (jak najwolniej). Kiedyś obserwowałem zjawisko polegające na zgłoszeniu po wykonaniu jakiejś operacji (chyba właśnie kasowanie) przez podobny programator (prog. po SPI nie JTAG) ALL OK i nic więcej! Wtedy miałem problem ze zaśmieconą linią zegara.


    Spróbowałem obniżyć prędkość JTAGa - to samo - nic się nie zmieniło poza czasem przesyłania programu. ALE! Zauważyłem dzisiaj dość dziwną rzecz która może pomóc - kiedy odłącze układ od programatora i podłączego go ponownie - LockBity i Fusy są czytane tak jak powinny być ustawione (choćbym naciskał Read kilkaset razy). Natomiast (i tu ciekawe) kiedy próbuje cokolwiek zapisać do kontrolera (czy to FuseBity, czy LockBity czy też program) to po takiej operacji gdy próbuje odczytać LockBity - znów się ustawiają na blokadę. Dziwne, nie?

    Co do zawartości programu... po jego odczytaniu widzę coś takiego (i tu chyba miałeś rację - to nie jest program tylko zbiór śmieci):

    
    :1000000000000000000000000000000000000000F0
    :1000100000000000000000000000000000000000E0
    :1000200000000000000000000000000000000000D0
    :1000300000000000000000000000000000000000C0
    :1000400000000000000000000000000000000000B0
    :1000500000000000000000000000000000000000A0
    :100060000000000000000000000000000000000090
    :100070000000000000000000000000000000000080
    :100080004040404040404040404040404040404070
    :100090004040404040404040404040404040404060
    :1000A0004040404040404040404040404040404050
    :1000B0004040404040404040404040404040404040
    :1000C0004040404040404040404040404040404030
    :1000D0004040404040404040404040404040404020
    :1000E0004040404040404040404040404040404010
    :1000F0004040404040404040404040404040404000
    :1001000080808080808080808080808080808080EF
    :1001100080808080808080808080808080808080DF
    :1001200080808080808080808080808080808080CF
    :1001300080808080808080808080808080808080BF
    :1001400080808080808080808080808080808080AF
    :10015000808080808080808080808080808080809F
    :10016000808080808080808080808080808080808F
    :10017000808080808080808080808080808080807F
    ...
    :00000001FF
    


    Dodano po 3 [godziny] 1 [minuty]:

    Właśnie przed chwilą zablokowałem drugą ATMegę (ostatnią jaka mi została ;). Wiem co było przyczyną. W trakcie pracy układu obniżyłem a następnie podniosłem napięcie do 6V. Wprawdzie układ jest najprawdopodobniej fizycznie sprawny, to ponoć (z tego co znalazłem w angielskiej sieci) zdarzają się problemy z loaderami lub jakimiś jeeper'ami (ang. jeepers) (co to jest?) tych układów - z reszta przytoczę cytat:

    Cytat:
    I unlocked quite a few by just doing a factory default. Write the files using jeepers.


    Moje pytanie do Was - co to są jeepery i czy może być uszkodzony loader? Jak zrobić to o czym pisze angielski kolega (przywrócenie ustawień domyślnych i zapisanie plików przy użyciu jeeperów)?

    Co do loadera - skąd mogę go wziąść i jak go przenieść do ATMega16 przez JTAG? Dzięki wielkie z góry.
  • #6 5971655
    Konto nie istnieje
    Poziom 1  
  • #7 5971910
    GienekS
    Poziom 32  
    Jedynie mnie zastanawia dlaczego w okienku "Programing mod" nie masz żadnego z tych programatorów ? Chyba powinno być dostępne ISP mod i JTAG. Jak wybierzesz JTAG to powinien się on po tym interfejsie skomunikować z procesorem. No chyba że procek jest faktycznie uwalony.
  • #8 5971989
    bajerybajery
    Poziom 10  
    emarcus napisał:

    To nie ma nic wspolnego z twoim problemem.


    OK.

    emarcus napisał:

    Jeepers jest to popularny program wsrod hackerow, uzywany do programowania kart (budowanych na processorach AVR glownie AtMega 128) pozwalajace na 'intercept' satelitarny sygnal telewizyjny, nie posiadajac legalnej subskrypcji.\


    Yhm... Czyli nie trafiłem kompletnie. Dzięki za info.

    emarcus napisał:

    Czy mozesz uzyc inny programator?


    Kłopot jest w tym, że nie za bardzo. Nikt z pośród znajomych nie robi takich rzeczy. Natomiast co do programatora - jestem pewien, że jest sprawny. Przez dwa tygodnie (od momentu padnięcia pierwszej ATMegi) programowałem nim drugą ATMegę i wszystko było idealnie - żadnych błędów.


    emarcus napisał:

    Jedynie mnie zastanawia dlaczego w okienku "Programing mod" nie masz żadnego z tych programatorów ? Chyba powinno być dostępne ISP mod i JTAG. Jak wybierzesz JTAG to powinien się on po tym interfejsie skomunikować z procesorem. No chyba że procek jest faktycznie uwalony.

    Odkąd pamiętam - ta lista wyboru była pusta w tym okienku - nie mogę z niej wybrać niczego bo niczego na niej nie ma. Do tej pory programowanie przebiegało bez problemu - mam JTAG ICE. Chciałbym jeszcze raz zaznaczyć, że programator jest OK. Procesor zablokował się raczej podczas pracy (wtedy gdy zmieniałem napięcie).
  • REKLAMA
  • #10 5975559
    bajerybajery
    Poziom 10  
    Balu napisał:
    DUMP flasha nie wskazuje na jakąkolwiek blokadę założoną.
    Fusey i LockBity da się czytać z założonymi blokadami.


    Co sugerujesz? Zniszczyłem dwa procesory bezpowrotnie?

    Pzdr.
  • #11 5976637
    kemot55
    Poziom 31  
    Niestety AVR'y są dość wrażliwymi układami (właśnie ze względu na błędne zasilane obserwowałem nawet niekontrolowany zapis całej pamięci flash!). Podniesienie napięcia powyżej 5.5V może generować dziwne zjawiska. Np. procesor zasilany poprawnie pobiera w szczycie 4mA (wybudzony na krótki czas ze stanu uśpienia, aplikacja-zeagrek), "uszkodzony napięciowo" zaczyna pobierać nagle 20mA. Wszystko pracuje bez zarzutu (urządzenie od strony programowej nie wykazuje, żeby było w jakiś sposób uszkodzone)
    Ja osobiście nie traciłbym czasu (ale to jest podejście tylko i wyłącznie "przemysłowo-produkcyjne" i nie dotyczy zagadnień poznawczych). Oczywiście szkoda kasy na scalaki. Z drugiej strony zastanawiałem się czy przez przypadek nie znalazłeś dziury w stylu "jak obejść" zabezpieczenia odczytu pamięci programu (dlatego zapytałem o postać pliku odczytanego z pamięci).
  • #12 5976919
    bajerybajery
    Poziom 10  
    kemot55 napisał:
    Ja osobiście nie traciłbym czasu (ale to jest podejście tylko i wyłącznie "przemysłowo-produkcyjne" i nie dotyczy zagadnień poznawczych).


    Fajnie i trafnie to ująłeś ;D Już nigdy nie będe zmieniał napięcia podczas pracy. Nie wiedziałem, że to aż tak ryzykowne. Dzięki za ten post.
REKLAMA