ATMEGA88: Nekorektně nabíhá
Napsal: 07 črc 2010, 22:08
Zdravím.
Měl jsem na nepájivém poli odlaďenou konstrukci s ATMEGA88čkou. K té býl přímo připojený třímístný multiplexně řízený display, pár diskrétních vstupů a výstupů a přes SPI devítimístný maličký display, řízený taky AVRkem /MEGA8/.
Už na tom poli se mi občas po zapnutí, /nebo po flashování/ stávalo, že místo toho, aby processor začal vykonávat program, tak na jendom, nebo dvou digitech rozsvítil všechny segmenty a nereagoval na nic ... pomohl jen reset. Když to ale přežilo zapnutí napájení, nebo reset, bylo to schopné běžet třeba 12 hodin v kuse.
Teď jsem si udělal tišťák, osadil ho a výšezmíněná situace nastává tak v polovině případů a to ešte v případě, že je ten devítimístný SPI dispaly odpojený. Pokud je připojený, skoro nikdy to nenaběhne. Pokud už se to ale rozjede, můžu ho klidně připojit a chodí to zase až do vypnutí OK.
Ta konstukce má takovou vymyšlenost, že na log. 1 na jednom pinu se to uspí ( asm(sleep) - myslim, že to jednoho z těch režimů "tvrdšího" spánku). Probouzení se děje log. 0 na stejném pinu, resp. INT1, které se v tomto pžípadě zavolá-. Na bastdesce to fungovalo bez problémů, na plošňáku to snad naběhlo třirkát ... v drtivé většině případů se to "sekne", jak jsem popsal výše.
BOD je nastavený na střední úroveň. Když ho nastavím na tu nejvyšší (4,5V), processor je v RESETu i když ho napájím napětím 5,01V přímo ze 78M05. Ta má mimochodem z obou stran 100nF blokovací kondík, stejně jako ta MEGA. Na výstupu té 78M05tky je ještě 100uF kondík. Processor začne něco delat, až když zvýším externím zdrojem napětí na cca 5.5 - 6V. SUT (delay po resetu ... možná se ten FUSE menuje trochu jinak) je taky na maximu.
Už fakt nevím, co s tím ... nezdá se mi, že by ta MEGA byla vadná .. to by snad nejela vůbec a nedělala takový kraviny. Eště mě napadlo, jestli to nedělá ten interní RC oscillátor ... ale nidky jsem s ním problémy neměl.
Napadá vás někoho něco?
Měl jsem na nepájivém poli odlaďenou konstrukci s ATMEGA88čkou. K té býl přímo připojený třímístný multiplexně řízený display, pár diskrétních vstupů a výstupů a přes SPI devítimístný maličký display, řízený taky AVRkem /MEGA8/.
Už na tom poli se mi občas po zapnutí, /nebo po flashování/ stávalo, že místo toho, aby processor začal vykonávat program, tak na jendom, nebo dvou digitech rozsvítil všechny segmenty a nereagoval na nic ... pomohl jen reset. Když to ale přežilo zapnutí napájení, nebo reset, bylo to schopné běžet třeba 12 hodin v kuse.
Teď jsem si udělal tišťák, osadil ho a výšezmíněná situace nastává tak v polovině případů a to ešte v případě, že je ten devítimístný SPI dispaly odpojený. Pokud je připojený, skoro nikdy to nenaběhne. Pokud už se to ale rozjede, můžu ho klidně připojit a chodí to zase až do vypnutí OK.
Ta konstukce má takovou vymyšlenost, že na log. 1 na jednom pinu se to uspí ( asm(sleep) - myslim, že to jednoho z těch režimů "tvrdšího" spánku). Probouzení se děje log. 0 na stejném pinu, resp. INT1, které se v tomto pžípadě zavolá-. Na bastdesce to fungovalo bez problémů, na plošňáku to snad naběhlo třirkát ... v drtivé většině případů se to "sekne", jak jsem popsal výše.
BOD je nastavený na střední úroveň. Když ho nastavím na tu nejvyšší (4,5V), processor je v RESETu i když ho napájím napětím 5,01V přímo ze 78M05. Ta má mimochodem z obou stran 100nF blokovací kondík, stejně jako ta MEGA. Na výstupu té 78M05tky je ještě 100uF kondík. Processor začne něco delat, až když zvýším externím zdrojem napětí na cca 5.5 - 6V. SUT (delay po resetu ... možná se ten FUSE menuje trochu jinak) je taky na maximu.
Už fakt nevím, co s tím ... nezdá se mi, že by ta MEGA byla vadná .. to by snad nejela vůbec a nedělala takový kraviny. Eště mě napadlo, jestli to nedělá ten interní RC oscillátor ... ale nidky jsem s ním problémy neměl.
Napadá vás někoho něco?