Witam.
Postanowiłem zająć się ostatnio tematem związanym z "zablokowanymi' mikrokontrolerami. Mam kilka egzemplarzy Atmega8 i atmega 168, które w jakiś tam sposób podczas programowania zostały "zablokowane. Poczytałem w necie posty na temat fuse doktor'ów i innych metod ich reanimcaji. Ponieważ nie posiadam żadnego urządzenia typu resuerektor czy programator równoległy, zainteresowała mnie metoda polegająca na próbie podania zewnętrznego sygnału zegarowego dla procesora.
Otóż metoda ta polega na podaniu na nóżkę XTAL1 sygnału z zewnętrznego generatora. Ponieważ można to zrobić korzystając z innego działającego układu mikroprocesora, to przygotowałem prosty programik powodujący generowanie przebiegu prostokątnego na jednym z wyjść działającego procka.
Aby przekonać się, że na wyjściu faktycznie jest sygnał o przebiegu prostokątnym, ustawiłem najpierw jego "okres" na 1s, co powodowało zmianę stanu diody LED co 1s. OK, działa.
Następnie zmieniłem parametry w programie, tak by otrzymać sygnał zbliżony do częstotliwości ok. 1Mhz. Na początku postanowiłem poeksperymentować z układem atmega sprawnym, tzn. takim który jest rozpoznawany np. przez program mkvKalkulator firmy Atnel.
Przy włączonym rezonatorze kwarcowym (nawet bez kondensatorów włączonych do masy) program bez problemu wykrył procesor i odczytał stan jego fusebitów.
No to teraz przystąpiłem do drugiego etapu eksperymentu i postanowiłem usunąć rezonator. Obie nóżki XTAL odłączyłem od rezonatora i do nózki XTAL1 (nóżka 9 dla Atmega8) podłączyłem z działającego układu sygnał prostokątny wygenerowany programowo o częstotliwości ok. 1MHz.
Oczywiście masy obu układów były połączone ze sobą.
Niestety wspomniany wcześniej program nie był w stanie odczytać procesora, ponieważ w takim połączeniu twierdził, iż nie można go zainicjować. Również device signature była nierozpoznana i wynosiła 0x000000.
Jak należy zbudować generator zewnętrzny (poza oscylatorem kwarcowym) aby można było uruchomić sprawny mikrokontroler? Próbowałem również podać sygnał z nózki XTAL1 działającego mikrokontrolera ale bez rezultatu.
Postanowiłem zająć się ostatnio tematem związanym z "zablokowanymi' mikrokontrolerami. Mam kilka egzemplarzy Atmega8 i atmega 168, które w jakiś tam sposób podczas programowania zostały "zablokowane. Poczytałem w necie posty na temat fuse doktor'ów i innych metod ich reanimcaji. Ponieważ nie posiadam żadnego urządzenia typu resuerektor czy programator równoległy, zainteresowała mnie metoda polegająca na próbie podania zewnętrznego sygnału zegarowego dla procesora.
Otóż metoda ta polega na podaniu na nóżkę XTAL1 sygnału z zewnętrznego generatora. Ponieważ można to zrobić korzystając z innego działającego układu mikroprocesora, to przygotowałem prosty programik powodujący generowanie przebiegu prostokątnego na jednym z wyjść działającego procka.
Aby przekonać się, że na wyjściu faktycznie jest sygnał o przebiegu prostokątnym, ustawiłem najpierw jego "okres" na 1s, co powodowało zmianę stanu diody LED co 1s. OK, działa.
Następnie zmieniłem parametry w programie, tak by otrzymać sygnał zbliżony do częstotliwości ok. 1Mhz. Na początku postanowiłem poeksperymentować z układem atmega sprawnym, tzn. takim który jest rozpoznawany np. przez program mkvKalkulator firmy Atnel.
Przy włączonym rezonatorze kwarcowym (nawet bez kondensatorów włączonych do masy) program bez problemu wykrył procesor i odczytał stan jego fusebitów.
No to teraz przystąpiłem do drugiego etapu eksperymentu i postanowiłem usunąć rezonator. Obie nóżki XTAL odłączyłem od rezonatora i do nózki XTAL1 (nóżka 9 dla Atmega8) podłączyłem z działającego układu sygnał prostokątny wygenerowany programowo o częstotliwości ok. 1MHz.
Oczywiście masy obu układów były połączone ze sobą.
Niestety wspomniany wcześniej program nie był w stanie odczytać procesora, ponieważ w takim połączeniu twierdził, iż nie można go zainicjować. Również device signature była nierozpoznana i wynosiła 0x000000.
Jak należy zbudować generator zewnętrzny (poza oscylatorem kwarcowym) aby można było uruchomić sprawny mikrokontroler? Próbowałem również podać sygnał z nózki XTAL1 działającego mikrokontrolera ale bez rezultatu.