Witam wszystkich!
_Sprzęt_:
- urządzenie oparte na ATMEGA16,
- program napisany w WINAVR,
- programator ISPCABLE II firmy Propox - pracowałem na dedykowanym software Propox'u (ProprogRS 1.1g) i AVRStudio (ISPCABLE pracuje wtedy jako emulacja AVRProg).
_Problem_: Po załadowaniu do nowego urządzenia program nie startuje. Czasem po wielu próbach zmian fuse'ów udaje się przestawić procesor w taki stan, że zaczyna działać poprawnie - tzn. program startuje i realizuje wszystkie funkcje.
Procesor od tego momentu już działa ("na zawsze") - tzn. uruchamia poprawnie program, po skasowaniu flash'a i ponownym załadowaniu wszystko jest OK.
Niestety problem powtarza się z "dziewiczym" procesorem. Trzeba wykonać parę "magiczych" zmian w fusach i czasem to pomaga a czasem nie.
Procesor działa z zewnętrznym kwarcem, nie używam BOOT'a, używam Brown-Out'a. Sygnał zegarowy na oscylku jest Ok. Kwarc 16MHz, procesor ATMEGA16-16I - czyli też nie jest to przetaktowanie.
_Uwagi_: Mam podejrzenie, że chodzi o fuse BOOTRST, najczęściej przy manipulacjach przy tym bicie procesor "rusza".
Tylko, że wg. datasheta Atmela ten bit jest "not programmed" w nowych procesorach co znaczy "startuj od adresu 0, nie używamy boot'a" wiec to raczej nie jest przyczyną.
Jak myślicie gdzie jest przyczyna takiego zachowania?
P.S. Wiem, że w oprogramowaniu Propox'a jest błąd - nie programuje dobrze tego fuse'a - czekam na upgrade, może to być przyczyna. Ale może coś jeszcze...