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

Zablokowałem Atmega8 - Fuse Bits [bardzo proszę o pomoc]

piotrek5001 12 Lip 2005 23:46 13144 17
REKLAMA
  • #1 1649481
    piotrek5001
    Poziom 24  
    Posty: 913
    Pomógł: 26
    Ocena: 21
    Witam!
    Wiem że było na forum dziesiątki razy, oczywiście szukałem i znalazłem kilka informacji. Jednak nie mogę znaleść jednoznaczenej odpowiedzi.

    Mój problem polega na tym, że w Bascom-AVR zmieniłem Fuse Bit dotyczący oscylatora taktującego mikrokontroler. Na początku było 1MHz internal oscilator a ja zmieniłem na External oscilator i zapisałem - dokładnie nie pamiętam nazw tych ustawień.

    Teraz procesorek jest martwy.

    Gdzieś (na forum) znalazłem że wystarczy dołączyć zewnętrzny zegar i znalazłem taki schemat:
    Zablokowałem Atmega8 - Fuse Bits [bardzo proszę o pomoc]

    Czy to wystarczy? I co podłączyć do złączy XTAL - tych dwóch na dole.
    Czy jak to podłączę będę mógł spowrotem ustawić "Internal 1MHz iscilator"?

    Posiadam również multimetr, który ma funkcję generowanie przebiegu prostokątnego. Czy można jakoś to podłączyć do mikrokontrolera jako ten generator częstotliwości? W załączniku zdjęcie fragmentu miernika z zaznaczoną tą funkcją.

    Bardzo proszę o pomoc.

    P.S.
    Schemat znalazłem tutaj:
    https://www.elektroda.pl/rtvforum/topic298299.html
    Załączniki:
    • Zablokowałem Atmega8 - Fuse Bits [bardzo proszę o pomoc] 050712_225457.jpg (26.45 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #2 1649498
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Do tych końcuwek możesz nic nie podłączać. Ten układ będzie Ci generował przebieg prostokątny zależny od stałej czasowej R1 C1
    Ten sygnał z multimetru ma zaniską częstotliwość bo chyba tylko 1kHz.
  • REKLAMA
  • #3 1649546
    piotrek5001
    Poziom 24  
    Posty: 913
    Pomógł: 26
    Ocena: 21
    Czy muszę mieć jakąś określoną częstotliwość (chodzi o dobranie R1 i C1)? I czy to wystarczy do przywrócenia mikrokontrolera do poprawnej pracy?
  • Pomocny post
    #4 1649730
    tajwoj
    Poziom 26  
    Posty: 559
    Pomógł: 106
    Ocena: 102
    Hej,
    Przy ustawieniu na zewnętrzny generator nie ma specjalnych wymagań co do częstotliwości sygnału zegarowego. W dokumentacji na str. 30 jest
    Cytat:
    When applying an external clock, it is required to avoid sudden changes in the applied
    clock frequency to ensure stable operation of the MCU. A variation in frequency of more
    than 2% from one clock cycle to the next can lead to unpredictable behavior.

    Na stronie 241, tabelka 99 są parametry impulsów generatora zewnętrznego. Wydaje się, że krytyczne są tylko czasy narastania (Rise Time) i opadania (Fall Time) oraz stałość częstotliwości (te 2% między następującymi cyklami jak w cytacie). To może być powód żeby nie stosować multimetru jako generatora.
    Pozdrowienia
  • Pomocny post
    #5 1649735
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Nic się nie stanie, jeśli poeksperymentujesz z wartościami. Jesli wstawisz tam coś rzędu 470k i kilkadziesiąt pF, to powinno wzbudzić oscylator kwarcowy ppodłączony do tych punktów, o które pytasz.
    --
    Pozdrawiam, Daniel
  • Pomocny post
    #6 1649737
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Możesz dać 1k i 220pF
  • REKLAMA
  • #7 1650211
    piotrek5001
    Poziom 24  
    Posty: 913
    Pomógł: 26
    Ocena: 21
    Dzięki za wszystkie wskazówki.

    Light'I napisał:
    to powinno wzbudzić oscylator kwarcowy ppodłączony do tych punktów, o które pytasz.
    Pozdrawiam, Daniel


    Czyli do tych punktów (XTAL) na dole schematu mam jednak coś podłączyć? Kolega GienekS pisał że tam nic nie muszę podłączać.

    I jeszcze takie pytanie, czy jak podłączę to do mokrokontrolera to czy będzie z nim normalna komunikacja? Czy będzie zachowywał się normalnie? Czy będę mógł w ten sam sposób co zepsółem naprawić (zmienić z External na Interal) w AVR-BASCOM?

    I jeszcze jedno :) . Mianowicie chodzi o to jakie napięcie podpiąć do VCC na tym schemacie? Czy może to być to napięcie co zasila mokrokontroler - zasilam go 4.5V z zasilacza stabibizowanego (jest to Atmega8L więc spokojnie wystarcza).
  • REKLAMA
  • Pomocny post
    #8 1650259
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    pioszura napisał:
    Czyli do tych punktów (XTAL) na dole schematu mam jednak coś podłączyć? Kolega GienekS pisał że tam nic nie muszę podłączać.
    Nie musisz, ale możesz... ;) Jak rysowałem ten schemat, miałem na myśli możliwość użycia kwarcu oryginalnie podłączonego do układu, trzeba go wtedy odłączyć i wmontować na chwilę w układ, ustawić właściwie fusy i wrócić do poprzedniej konfiguracji. Moje zalecenia są dla kwarcu, GienkaS - dla generatora bez kwarcu, z tym że 1kΩ to trochę za mało, na mój gust, daj 10kΩ i 22pF(10x większy rezystor i 10x mniejszy kondensator). Masz wybór... ;)
    pioszura napisał:
    I jeszcze takie pytanie, czy jak podłączę to do mokrokontrolera to czy będzie z nim normalna komunikacja? Czy będzie zachowywał się normalnie? Czy będę mógł w ten sam sposób co zepsułem naprawić (zmienić z External na Interal) w AVR-BASCOM?
    Spróbuj, to nic nie kosztuje, popsuć nie popsujesz... ;)
    pioszura napisał:
    I jeszcze jedno :) . Mianowicie chodzi o to jakie napięcie podpiąć do VCC na tym schemacie? Czy może to być to napięcie co zasila mokrokontroler - zasilam go 4.5V z zasilacza stabibizowanego (jest to Atmega8L więc spokojnie wystarcza).
    Układy serii HC pracują poprawnie 2-5,5V(6V max.), więc nie ma obawy.
  • #9 1650271
    piotrek5001
    Poziom 24  
    Posty: 913
    Pomógł: 26
    Ocena: 21
    Dzięki,

    po południu [jak będę mieć układ HC] podejmę się próby odblokowania procesora. Oczywiście napiszę o skutkach. Gdyby jeszcze ktoś miał jakieś uwagi, bardzo proszę pisać.

    Dodano po 5 [godziny] 20 [minuty]:

    Witam ponownie!

    Jeszcze raz bardzo dziękuję wszystkim biorączym udział w dyskusji. Właśnie udało mi się odblokować układ. Podłączyłem układ ze schematu załączonego powyżej, przestawiłem spowrotem na Internal i działa jak nowy. Dla mających podobny problem dodam że do punktów XTAL na dole schematu nic nie podłączyłem. Kondensator i opornik 1k i 220pF

    Mam jeszcze takie pytanie przy okazji. Jak muszę ustawić, żeby procesor był taktowany zewnętrznym kwarcem 8MHz? Kwarc mam podłączony do XTAL1 i XTAL2 w mikrokontrolerze. Nóżki kwarca są również podpięte przez kondensator 22pF do masy.

    Poniżej screen, co tam wybrać żeby znowu nie zepsuć. Myślałem że ma być External clock i dlatego też musiałem napisać ten temat.


    Wielkie dzięki,
    Pozdrawiam
    Załączniki:
    • Zablokowałem Atmega8 - Fuse Bits [bardzo proszę o pomoc] screen2.JPG (13.76 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Zablokowałem Atmega8 - Fuse Bits [bardzo proszę o pomoc] screen.JPG (73.75 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • Pomocny post
    #10 1651311
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    pioszura napisał:
    Mam jeszcze takie pytanie przy okazji. Jak muszę ustawić, żeby procesor był taktowany zewnętrznym kwarcem 8MHz? Kwarc mam podłączony do XTAL1 i XTAL2 w mikrokontrolerze. Nóżki kwarca są również podpięte przez kondensator 22pF do masy.
    Ostatnia pozycja na liście (screen2.jpg - ta jeszcze jedna, co widać tylko jej górny fragment ;)) :
    1111:XXXX external Xtal
    Proponuję też wizytę na stronie FAQ o AVR tego działu... ;)
    --
    Pozdrawiam, Daniel
  • #11 1651462
    piotrek5001
    Poziom 24  
    Posty: 913
    Pomógł: 26
    Ocena: 21
    Dzięki, ustawiłem ostatnią pozycję z listy i działa.

    FAQ też sobie poczytam, myślę że znajdę coś dla siebie - jestem początkujący w programowaniu mikrokontroerów.

    Jeszcze raz wszystkim dziękuję i pozdrawiam.
  • #12 1673949
    roblob
    Poziom 12  
    Posty: 68
    Pomógł: 1
    Ocena: 1
    Witam.

    Ja nawiązując do tematu mam pytanie czy dla oscylatora wewnętrznego w Bascom AVR muszę ustawić A987 na 0011:0011

    pzdr

    Dodano po 1 [minuty]:

    Nie napisałem-chodzi o oscylator wewnętrzny 4 Mhz
  • #13 1927034
    Pfemek
    Poziom 24  
    Posty: 1036
    Pomógł: 83
    Ocena: 337
    Witam. Mam podobny problem. Zablokowałem atmega8. Próbowałem zmienić ustawienia fuse bitów na zewnętrzny oscylator i tak ustawiłem że nie wiem co się ustawiło. :) Ustawiłem fuse bity zgodnie z opisem jaki znalazłem, kliknąłem programuj i wszystkie bity się przestawiły na zaznaczone (czyli chyba na 0) i tyle, po ponownym uruchomieniu programatora już nie wykrył procesora. Używam do programowania progamatora z tej strony:

    http://www.amwaw.edu.pl/~adybkows/elka/ispprog.html

    Nie wiem na jaki rodzaj taktowania procesor się przestawił. Czy jak podłącze mu zewnętrzny generator opisany wyżej to ruszy? Czy juz po procku? :)
  • #14 1927054
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Musisz próbować wszystkich kolejno aż który zaskoczy. W ostateczności zostaje programator równoległy.
  • #15 1936841
    Procekk
    Poziom 12  
    Posty: 77
    Pomógł: 3
    Temat nie poruszany od pewnego czasu.. Miałem podobny problem, fusy CKSEL0..3 ustawilem na 1111 w PonyProg (zaznaczone bity), programuje przez STK500 -> ISP. Jednak zaraz po tym procek przestał być wykrywany :) - przestał działać z dołączonym kwarcem i wew. oscylatorem - taktowanie sygnałem z zewnątrz na XTAL1. Pomyliło mi sie zaznaczenie z zaprogramowaniem CKSELi :D. Aby to naprawić zaprogramowałem AT90S2313 w następujący sposób:
    
    #define LED_ON sbi(DDRB,PB7);sbi(PORTB,PB7)
    #define LED_OFF sbi(DDRB,PB7);cbi(PORTB,PB7)
    
    int main(void)
    {
      while(1)
      {
        LED_ON;
        asm("NOP");
        LED_OFF;
      }
    }
    

    dzieki czemu uzyskałem czestotliwość ok. 777 460 Hz na PB7 przy kwarcu 8 MHz. Sygnał ten pdajemy na XTAL1 zablokowanego proca, uruchamiamy ISPProg, wybieramy AVR i wpisujemy zegar 777 460 Hz. To wszystko - o ile nic wiecej nie zablokowaliśmy, powinno sie dać wykryć proca, odczytać i zaprogramować na nowo fusy. Jeśli to nie zadziała to najwidoczniej pozostaje programowanie równoległe. W każdym bądź razie powodzenia! :D
  • #16 2935694
    grabek_radek
    Poziom 21  
    Posty: 579
    Pomógł: 2
    Ocena: 37
    Jest lepsza metoda wystarczy podpiac tezonator kwarcowy 8MHz do procka z kondensatorami i podlaczyc go do portu i zaczac programowac pamietajac na abysmy przestawili na CKSEL 1111:1111 external XTAL
    wcisnac WRITE fs tylko raz
    oraz 1:CKOPT 1 na 0:CKOPT 0
    wcisnac WRITE FSH tylko raz
    Załączniki:
    • Zablokowałem Atmega8 - Fuse Bits [bardzo proszę o pomoc] rezonator.JPG (4.31 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #17 2935814
    Granat :)
    Poziom 34  
    Posty: 3043
    Pomógł: 202
    Ocena: 666
    witam
    ja kiedyś też zablokowałem sobie avr'a, m32.
    udało mi się go odblokować podłączając do XTAL IN sygnał z XTAL OUT z 89C2051 i avr ruszył :D
  • #18 2936469
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    podejrzewam, że ruszyłby nawet z generatora w mierniku, tylko że trzeba by uważać na poziom napięcia na wyjściu generatorka, czy aby napewno jest to TTL. oczywiście działało by to trochę powoli. ja odblokowywałem przy częstotliwości ok 100KHz (z innego procka) i ruszało z kopyta.

Podsumowanie tematu

✨ Problem dotyczy zablokowania mikrokontrolera Atmega8 przez nieprawidłową zmianę fuse bitów dotyczących oscylatora z wewnętrznego 1 MHz na zewnętrzny. W efekcie procesor przestał działać, ponieważ nie był podłączony zewnętrzny sygnał zegarowy. Rozwiązaniem jest podłączenie zewnętrznego generatora sygnału zegarowego do nóżek XTAL1 i XTAL2, co pozwala na przywrócenie komunikacji i zmianę fuse bitów z powrotem na wewnętrzny oscylator. Do generowania sygnału można użyć układu opartego na 74HC14 z kwarcem i elementami R1, C1, lub sygnału prostokątnego o odpowiedniej częstotliwości i stabilności. Zalecane wartości elementów to np. rezystor 10 kΩ i kondensator 22 pF. Napięcie zasilania generatora HC powinno być zgodne z zasilaniem mikrokontrolera (np. 4,5 V dla Atmega8L). Użytkownicy potwierdzili skuteczność metody, podkreślając, że do punktów XTAL nie zawsze trzeba podłączać dodatkowe elementy, ale kwarc z kondensatorami jest standardowym rozwiązaniem. Po przywróceniu zegara zewnętrznego można zmienić fuse bity w Bascom-AVR na odpowiednie ustawienia, np. "external crystal oscillator" (CKSEL=1111). W dyskusji pojawiły się także alternatywne metody odblokowania, takie jak użycie sygnału z innego mikrokontrolera lub programatora równoległego. Ważne jest, aby sygnał zegarowy miał stabilne czasy narastania i opadania oraz stałą częstotliwość, co wyklucza użycie niektórych generatorów z multimetru o niskiej częstotliwości i niestabilnym przebiegu.
Wygenerowane przez model językowy.
REKLAMA