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í.
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á.
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
Elektro
Všechny elektronické součástky pracují na DÝM, jakmile z nich jednou unikne, přestávají pracovat.