Zablokování procesoru Atmega8 špatným nastavením fuse bitů

13.03.2008 10:38

Tak včera se mi povedlo to, co se snad stalo každému, kdo si hrál s Atmelem, zablokoval jsem si procesor. Sice jsem byl na tento problém upozorněn ale asi málo. A teď se mnou procák nemluví. Tedy ne se mnou ale s PonyProgem.

Co se vlastně stalo? Potřeboval jsem změnit nastavení zdroje hodinového signálu z interního oscilátoru na externí krystal. V dokumentaci jsem si nalezl potřebné nastavení a hodnoty zadal v nastavení fuse bitů v Ponyprogu. Ale zřejmě jsem zapomněl hodnoty invertovat (proč to takhle někdo vymyslel je mi doteď záhadou) a tak jsem místo krystalu nastavil externí zdroj kmitočtu.

No nic. Dneska se pokusím sestrojit zdroj hodin z 555 a uvidím, zda se procák probudí.

14.3.2008

Tak se povedlo. Sestrojil jsem si multivibrátor z jedné 555ky, dvou odporů a jednoho kondíku. Kmitočet kolem 260kHz jsem přivedl na vstup pro externí zdroj hodin (XTAL1 - pin 9). Po načtení hodnot do PonyProgu jsem změnil fuse bity na správné nastavení pro krystal (všechny přepínače v třetí řádce v PonyProgu prázdné - pro krystal 8MHz) a po jeho připojení na piny 9 a 10 + kondenzátory z těchto pinů na zem začalo vše fungovat jak má.

 30.4.2009

Odblokování pomocí druhé ATmegy8. Pin 15 generátoru se propojí s pinem 9 nemocného procesoru.

/////////////////////////////////////////////
//ATMega 8, FOSC 8 000 000
//generator kmitoctu 1MHz se stridou 1:1
//kmitocet na PORTB.1, pin 15
/////////////////////////////////////////////

#include <avr/io.h>

#define setb(port,pin)    port |= 1<<pin    //nastav bit
#define clrb(port,pin)    port &= ~(1<<pin) //nuluj bit
#define negb(port,pin)    port ^= 1<<pin    //neguj bit


int main(void) {

    setb(DDRB,1);
    setb(TCCR1A,COM1A0); //togle
    setb(TCCR1B,CS10); //no prescaling
    OCR1A=8;

    while(1==1) {}
}

----------------------------------------------------------------------------

Pár užitečných odkazů na stránky, které se fuse bity zabývají:

https://palmavr.sourceforge.net/cgi-bin/fc.cgi?P_PREV=&P=ATmega8 - perfektní kalkulačka na nastavení, škoda, že jsem o ní nevěděl dříve

https://www.mlab.cz/Modules/AVR/Text_ATosc/DOC/HTML/Oscilátor%20pro%20ATmega.cs.html - oscilátor z PC desky

https://mp222.wz.cz/Soubory/Ponyprog.htm - nastavení fuse v PonyProgu

 

 

Kontakt

Elektro

pfory@seznam.cz

Vyhledávání

Všechny elektronické součástky pracují na DÝM, jakmile z nich jednou unikne, přestávají pracovat.

© 2008 Všechna práva vyhrazena.

Tvorba webových stránek zdarmaWebnode