Pojistky ATMEGA32
Moderátor: Moderátoři
Pojistky ATMEGA32
Jak nastavit pojistky, abych mohl procesor přeprogramovávat? chci se učit programovat a asi jsem si znehybnil už dva ATMEGA 3216. Ne uzamčením, ale někde se něco nastavilo a nevím co. Není možné je ani smazat. Zajímá mě hlavně nastavení
JTAGEN, OCDEN, BOOTRST, BOOTSZ, BODEN, SUT,CKSEL
Programátor používám Presto.
Může např chybně nastavený oscilátor způsobit, že se programátor na součástku nepřipojí? Jak z toho ven? Je mi líto ty procesory prostě vyhodit.
Používám oscilátor int RC.
Díky za info
JTAGEN, OCDEN, BOOTRST, BOOTSZ, BODEN, SUT,CKSEL
Programátor používám Presto.
Může např chybně nastavený oscilátor způsobit, že se programátor na součástku nepřipojí? Jak z toho ven? Je mi líto ty procesory prostě vyhodit.
Používám oscilátor int RC.
Díky za info
Všechny informace jsou v datasheetu k atmega32. Nejlepší pro začátečníka je nenastavovat pojistky vůbec a nechat defaultní nastavení.
Pokud už se něco v pojistkách nastavuje, tak obezřetně.
Solidní IDE programátoru by mělo uživatele varovat, když se chystá přepsat pojistky...
Chipy, které ti nejdou nevyhazuj, prodej je někomu, kdo má paralelní programátor a bude schopen si je přeprogamovat.
Edit1: pro ISP programování musí být funkční oscilátor + vhodně nastavená rychlost na straně programátoru.
Pokud už se něco v pojistkách nastavuje, tak obezřetně.
Solidní IDE programátoru by mělo uživatele varovat, když se chystá přepsat pojistky...
Chipy, které ti nejdou nevyhazuj, prodej je někomu, kdo má paralelní programátor a bude schopen si je přeprogamovat.
Edit1: pro ISP programování musí být funkční oscilátor + vhodně nastavená rychlost na straně programátoru.
A tedy když budu mít paralelní programátor, tak budu mít možnost procesor smazat a tím bude opět schopný i programování sériového?
Mohu v pojistkách zakázat JTAGEN? Na těchto pinech mám připojený didplej a na jeho segmentech vidím, že na pinech jsou nějaké pulsy. V datasheet je psáno, že pokud není rozhraní využito, mělo by být vypnuto. Mám už strach cokoliv v pojistkách měnit... Presto používá MOSI, MISO, SCK a RESET, které jsou na jiných pinech.
Mohu v pojistkách zakázat JTAGEN? Na těchto pinech mám připojený didplej a na jeho segmentech vidím, že na pinech jsou nějaké pulsy. V datasheet je psáno, že pokud není rozhraní využito, mělo by být vypnuto. Mám už strach cokoliv v pojistkách měnit... Presto používá MOSI, MISO, SCK a RESET, které jsou na jiných pinech.
Abys mohl znovu programovat Mega32,
vezmi nějaký zdroj obdélníkového signálu 5 V / cca 1 MHz a připoj
ho na pin XTAL1.
Pročti důkladně nastavení fusebitů tady:
http://www.engbedded.com/fusecalc/
U nastavení oscilátoru vyber vždy řádek s nejdelším startup časem (+64ms).
JTAG můžeš zakázat v programu. Na začátek main() dej
vezmi nějaký zdroj obdélníkového signálu 5 V / cca 1 MHz a připoj
ho na pin XTAL1.
Pročti důkladně nastavení fusebitů tady:
http://www.engbedded.com/fusecalc/
U nastavení oscilátoru vyber vždy řádek s nejdelším startup časem (+64ms).
JTAG můžeš zakázat v programu. Na začátek main() dej
Kód: Vybrat vše
int main(void)
{
MCUCSR=(1<<JTD);
MCUCSR=(1<<JTD); // musí být dvakrát
Ty v tom máš nějaký guláš.
Jsou dva typy programování -
paralelní, pak je úplně jedno, co jsi kde předtím nastavil, ten programátor má úplnou kontrolu nad tou atmegou. Je jedno, jestli zmastíš pojistky, hodiny atd. Prostě tímhle to dokážeš vymazat a nastavit jak chceš.
Druhý typ programování je pomocí SPI - tam ale musíš dávat pozor, co děláš. Nesmíš si zakázat reset, a pokud jsi přeprogramoval hodiny na externí (z fabriky tuším atmega přijde naprogramovaná na 1MHz interní), a nemáš připojený nějaký zdroj hodin, tak to nebude chodit. Pak většinou pomůže připojit nějaký TTL zdroj hodin (TTL oscilátor) na vstup od krystalu, a pomocí SPI naprogramovat znovu.
Nebo pak použít paralelní a opravit ty blbě nastavené bity.
Jukni do datasheetu, je to tam popsané.
Já používám Elnec Smartprog2 (umí jak paralelní, tak SPI).
Jsou dva typy programování -
paralelní, pak je úplně jedno, co jsi kde předtím nastavil, ten programátor má úplnou kontrolu nad tou atmegou. Je jedno, jestli zmastíš pojistky, hodiny atd. Prostě tímhle to dokážeš vymazat a nastavit jak chceš.
Druhý typ programování je pomocí SPI - tam ale musíš dávat pozor, co děláš. Nesmíš si zakázat reset, a pokud jsi přeprogramoval hodiny na externí (z fabriky tuším atmega přijde naprogramovaná na 1MHz interní), a nemáš připojený nějaký zdroj hodin, tak to nebude chodit. Pak většinou pomůže připojit nějaký TTL zdroj hodin (TTL oscilátor) na vstup od krystalu, a pomocí SPI naprogramovat znovu.
Nebo pak použít paralelní a opravit ty blbě nastavené bity.
Jukni do datasheetu, je to tam popsané.
Já používám Elnec Smartprog2 (umí jak paralelní, tak SPI).