Elektroda.pl
Elektroda.pl
X
AM TechnologiesAM Technologies
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

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

12 Lip 2005 23:46 12460 17
  • Poziom 24  
    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
  • AM TechnologiesAM Technologies
  • Pomocny post
    Poziom 32  
    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.
  • Poziom 24  
    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
    Poziom 24  
    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
  • AM TechnologiesAM Technologies
  • Pomocny post
    VIP Zasłużony dla elektroda
    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
    Poziom 32  
    Możesz dać 1k i 220pF
  • Poziom 24  
    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).
  • Pomocny post
    VIP Zasłużony dla elektroda
    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.
  • Poziom 24  
    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
  • Pomocny post
    VIP Zasłużony dla elektroda
    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
  • Poziom 24  
    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.
  • Poziom 22  
    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? :)
  • Poziom 32  
    Musisz próbować wszystkich kolejno aż który zaskoczy. W ostateczności zostaje programator równoległy.
  • Poziom 12  
    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:
    Code:

    #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
  • Poziom 21  
    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
  • Poziom 28  
    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.