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

ATMEGA8 – odblokowanie po złym ustawieniu fuse bitów zegara, XTAL1 jako zegar

pawelvod 10 Maj 2006 15:05 17991 21
REKLAMA
  • #1 2611824
    pawelvod
    Poziom 18  
    Posty: 357
    Ocena: 25
    Chciałbym prosić o potwierdzenie, bo nie mam pewności. Zablokowałem ATMEGA8 poprzez zzerowanie wszystkich fusebitów (stan 0) odpowiadających za zagar. Czy gdy w innym urządzeniu z mikrokontrolerem wykonam program:

    while (1){PORTB ^ = 0xFF;}

    i podłącze jeden z pinów do wyjścia xtal1 to zablokowany mikrokontroler ruszy?
    Czy będzie w ruszaniu przeszkadzał kwarc 16mhz z kondensatorami, bo tak wcześniej pracował mikrokontroler, czy też muszę go na czas ruszania wylutować?
  • REKLAMA
  • #2 2611874
    morph13
    Poziom 25  
    Posty: 987
    Pomógł: 25
    Ocena: 32
    Podaj sygnał zegarowy z generatora zewnętrznego na pin wejściowy generatora w AT8. Najlepiej przez rezystor 1k szeregowo połaczony z 10nF. Generator na bramkach lub tranzystorach. Nie musi to byc od razu 10MHz, wystarczy 100kHz. Ale proces odczytu z procka potrwa trochę dłużej.

    Jeśli tylko zmieniłes bity konfiguracji generatora to...
    Powodzenia.
  • REKLAMA
  • #3 2620759
    pawelvod
    Poziom 18  
    Posty: 357
    Ocena: 25
    Dla wszystkich co kiedyś zablokują mikrokontroler napiszę co i jak, bo udało mi się odblokować bez budowania generatora:

    Wziąłem poprzednie urządzenie mikrokontrolerowe, które działało, odpaliłem na nim program:

    DDRC = 0b11111111;
    while (1) {PORTC ^= 0b11111111}
    

    Przylutowałem jedną z nóżek C działającego mikrokontrolera do niedziałającego XTAL-1. Oprucz tego w układnie z niedziałającym mikrokontrolerem musi być układ reset i zasilanie :) bo ja początkowo zapomniałem o tym.
    Ja swój reset zrobiłem trochę dłuższy, ale może zadziała na standardowym. Ja dałem opornik 10kΩ + kondensator 100µF.
    Wgrałem ww program do działającego układu z ustawieniami CKSEL 0011.
    W programie ISP Programmer po podłączeniu do niedziłającego mikrokontrolera ustawiłem częstotliwość na 1 000 000 bo domyślnie mam FASTEST.
    Zablokowany mikrokontroler ruszył... powodzenia.
  • #4 2706821
    wujo17
    Poziom 12  
    Posty: 108
    Pomógł: 4
    Odswiezam temat bo mam pytanie do tego co napisal pawelvod.

    Po co jest ten reset o ktorym jest mowa. Ja mam na plytce klawisz do resetowania podlaczony przez rezystor i kondensator, czy o to chodzi?

    Zrobilem tak jak jest napisane powyzej (CKSEL 0011 czyli Internal RC oscilator 4 Mhz) wgralem program, podalem go na XTAL1 niedzialjacego procka no i lipa.

    A moze nie da sie tego zrobic przez SPI?

    Pomozcie bo mam juz 3 zablokowane Atmegi8 i troche ich szkoda.
  • #5 2707468
    Holy

    Poziom 14  
    Posty: 155
    Pomógł: 5
    Ocena: 6
    Jak w fusebitach wyłączyłeś SPI to zostaje Ci tylko programowanie równoległe. :(
    Konto firmowe:
    HOLTECH
    Fabryczna 18 lok. U6, Białystok, 15-483 | Tel.: +48XXXXXXXXX (Pokaż) | Strona WWW: www.holtech.eu
  • REKLAMA
  • #6 2708149
    wujo17
    Poziom 12  
    Posty: 108
    Pomógł: 4
    A jak na fusach wylacza sie SPI?

    Ja przestawialem tylko CKSEL3..0 i CSOP
  • #7 2708242
    Holy

    Poziom 14  
    Posty: 155
    Pomógł: 5
    Ocena: 6
    Jest w fusach coś takiego jak SPIEN. Niestety miałem 2 takie przypadki (ATMEGA128 i ATTINY2313), które po zmianie konfiguracji zegara na niepoprawną w jakiś "magiczny" sposób wyzreowały sobie wszystkie fusy (łącznie z SPIEN). Złóż sobe programator równoległy, albo poszukaj na necie kogoś kto może "sprzedaje" taką usługę.
    Konto firmowe:
    HOLTECH
    Fabryczna 18 lok. U6, Białystok, 15-483 | Tel.: +48XXXXXXXXX (Pokaż) | Strona WWW: www.holtech.eu
  • #8 2730133
    pawelvod
    Poziom 18  
    Posty: 357
    Ocena: 25
    Mikrokontrolery które "zablokowałem" miały poprzestawiane tylko CKSEL w ten sposób, że chodziły na generatorze zewnętrznym. Mój opis tyczy się więc budowy takiego generatora przy użyciu programiku na innym kontrolerze. Oczywiście ma się to na nic kiedy zablokujemy port RESET mikrokontrolera, albo całe programowanie SPI. Wtedy tylko programator równoległy. Ja jednak najczęściej kombinuje coś przy bitach odpowiedzialnych za sztbkość zegara taktującego więc takich zablokowanych mikrokontrolerów zebrało mi się kilka. Zamiast budować generator można wtedy wykożystać stary działający układ na mikrokontrolerze, co w sumie jest oczywiste jak się pomyśli, ale po przeczytaniu jeszcze oczywistrze :) . Dlatego o tym napisałem.
  • REKLAMA
  • #9 2730357
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 570
    Budowa takiego generatorka to banał 1 opcja wyjąc jaki bądz generator z zakresu 1MHz do 16MHz ze starej płyty od komputera , i podłaczyć do niej +5V mase i doprowadzić sygnał do we zegarowego
    2 możliwiść podłaczyć dowolny inny procek z kawarcem obok zasilić go dodać 1 buforek do Xtal out i zabrać sobie sygnał zegarowy do zablokowanego proca ... można nawet podpiąc układ na dowolnej ttlce lub c-mosie 7404 czy np ma 4060 ...
  • #10 2730439
    Espablo
    Poziom 14  
    Posty: 98
    Pomógł: 5
    Ocena: 48
    Mnie też udało się zablokować atmege8 przy zmianie fusebitów. Czytając na tym forum sposoby odblokowania, coraz bardziej otwierał się przede mną czarny scenariusz. Jednak udało mi się go odblokować bez programatora równoległego i dodatkowych "bajerów". A zrobiłem to tak:
    do programowania atmegi używam program Adama Dybkowskiego "ISP prog" (nim też udało mi się uC zablokować). Miałem dwa zmontowane układy na Atmega8 i chciałem je przełączyć na zew. kwarc 4MHz no i oczywiście jeden układ "padł", programator go nie wykrywał, brak reakcji na wszelkie sposoby "ożywienia". Następnie podłączyłem układ z dobrym działającym uC i "zczytałem" z niego (tak mi się wydaje) ustawienia Fuse and lock bits, nie zatwierdzając żadnych ustawień przełączyłem programator (przełożyłem wtyczkę) na martwy uC i zatwierdziłem ustawienia fusbitów. I tu niespodzianka Atmega8 ŻYJE i ma się dobrze już kilka miesięcy.
    Może to w czymś Ci pomoże Pozdrawiam.
  • #12 2735304
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 130
    delta85 napisał:
    Niestety przy probie odblokowania ATmega 8535 sposobem opisanym przez pawelvod wszystkie bity ustawiaja sie na jedynki

    hmmm... same się ustawiają? Czy może im troszeczke pomogłeś? ;)
  • #14 2736871
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    To włącz autodetekcję , bo z zaptaszkowanym Don't autodetect device , force możesz odczytać fusebity , nawet z filiżanki po kawie :D

    Piotrek
  • #19 2740361
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    Zaquadnik napisał:
    Czyli zachowuje się jakby nie wykryłprocesora.

    Dokładnie tak.
    Zaquadnik napisał:

    Może SPIEN zaprogramowałeś, a wtedy tylko programator równoległy pomoże.

    Z poziomu ISPprog-a , nie da się zmienić stanu bitu SPIEN.

    Piotrek
  • #20 2741643
    KwoiteK
    Poziom 16  
    Posty: 112
    Pomógł: 14
    Ocena: 10
    nie wiem czy do tego tametu ale napisze.

    Mam magiczna atmege:). stracila sygnature, programatory ja nie widza, ale....
    ale sie programuje. Co najlepsze tylko przez Simple programmer i tylko przez bascoma. STK200 jej nie chce programowac.

    nie mozna zmienic fusebitow. kwarc jest wiec caly czas 11.0592 tak jak ustawilem kiedys przed "awaria".

    A co do odblokowania fusebitow. Pomysl z generatorkiem podlaczonym do xtal nie we wszystkich atmegach pomaga.

    Dziwaczne te procki:)
  • #21 2743681
    Holy

    Poziom 14  
    Posty: 155
    Pomógł: 5
    Ocena: 6
    Tak sobie poczytałem, to dołożę i swoje. Ostatnio odblokowywałem dwa atmele m128 i t26 programatorem PAR/HVS (równoległy i wysokonapięciowy szeregowy). Jak zawsze przed tą robotą sprawdzam fusy - i co ciekawego? Człowiek niby zmieniał tylko opcje zegara za pomocą STK200, a wszystie fusy ustawiły się na jeden. A właśnie podobno SPIEN nie można zmienić szeregowym. :) I co Wy na to, hihi. :)
    Konto firmowe:
    HOLTECH
    Fabryczna 18 lok. U6, Białystok, 15-483 | Tel.: +48XXXXXXXXX (Pokaż) | Strona WWW: www.holtech.eu
  • #22 2794872
    simoneus1
    Poziom 16  
    Posty: 282
    Pomógł: 7
    Ocena: 10
    to musiałbym zbudować zewnętrzny zegar hhmmm..... A co potem zrobić jesli zrobie ten sygał zegarow na tym 7414 to co z tymi FuseBitami jak je ustawic żeby ich znowu nie zablokować ??

    Moderowany przez And!:

    Fusebity FAQ

Podsumowanie tematu

✨ Temat dotyczy odblokowania mikrokontrolera ATMEGA8 po błędnym ustawieniu fuse bitów zegara, które spowodowało zablokowanie układu. Głównym problemem jest brak reakcji mikrokontrolera na programowanie ISP z powodu nieprawidłowej konfiguracji fuse bitów, zwłaszcza CKSEL i ewentualnego wyłączenia SPIEN, co uniemożliwia programowanie szeregowe. Proponowane rozwiązania obejmują podanie zewnętrznego sygnału zegarowego na pin XTAL1 z innego działającego układu lub generatora (np. z innego mikrokontrolera, układu TTL 7404, CMOS 4060 lub generatora z płyty komputerowej) przez rezystor i kondensator, co pozwala na uruchomienie zablokowanego mikrokontrolera i ponowne zaprogramowanie fuse bitów. Wskazano, że reset układu i poprawne zasilanie są niezbędne podczas tej procedury. W przypadku całkowitego zablokowania SPI (wyłączenie SPIEN) konieczne jest użycie programatora równoległego lub wysokonapięciowego. Niektóre użytkownicy opisali metodę kopiowania fuse bitów z działającego mikrokontrolera do zablokowanego za pomocą programatora ISP, co w niektórych przypadkach pozwoliło na odblokowanie. Dyskusja podkreśla, że nie zawsze można odblokować mikrokontroler bez programatora równoległego, a budowa prostego generatora zegara jest stosunkowo prosta i często wystarczająca do przywrócenia działania. Wspomniano także o problemach z odczytem fuse bitów i konieczności odpowiedniego ustawienia opcji autodetekcji w oprogramowaniu ISPprog.
Wygenerowane przez model językowy.
REKLAMA