Nastavení frekvence v BASCOM - není možné nastavit 16MHz

Zdravím ,již delší dobu si hraju s AT MEGA 32 a programuji v bascomu.poslední dobou se mi stává ,že když zadám v bascomu $crystal = 16000000 tak mi celej program pracuje asi tak 10x zpomaleně. pokud frekvenci v bascomu upravím na 1600000 tak to pracuje celkem normálně. nevím kde dělám cybu.programátor mám presto a krystal je opravdu 16 000 000.

:arrow_right: administrator: přejmenováno z "nastavení frekvence v bascomu"

Chyba není v Bascomu ale v oscilátoru.
Jak máš fuses?
Low byte by měl být 0xff a bit CKOPT naprogramovaný.
Pak zkontrolovat napájení, blokování mproc (keramický kond. 100nF),
zkusit změnit hodnotu kondenzátorů u krystalu, vyměnit krystal.

kondíky i krystal jsou OK je to na kitu EvB4.3 a chodívalo to dobřě.pojistky moc nevím už jsem 1 megu umrtvil.zkusím si s tím ještě pohrát.

S fuse bitama si nepohrávej, jenom je přečti a hodnoty napiš sem.

Lock bits…No lock
Boot lock bits 0…no restrictions
boot lock bits 1…no restrictions
CKOPT…XT up to 16MHz rail to rail
SUT,CKSEL…In RC 1,0MHz ,6ck + 65ms

Máš tam nastavený interný RC oscilátor s frekvenciou 1MHz. Nastav tam EXT crystal.

Skus pozrieť tu : engbedded.com/fusecalc/

Hlavne na CKSEL0 - 3

Bylo by dobré napsat všechny možnosti oscilátoru, které ti programátor nabízí. Z nich pak jednu vybereme.

OK zkusím to vypsat,minule jsem tam něco blbě nastyvil a mega KO.
XT 3,0-8,0MHz…16ck+65ms
16ck+4,1ms
16ck
1ck+65ms
1ck+4,1ms
1ck
258ck+65ms
258ck+4,1ms

XT 0,4-0,9Mzz…16ck+65ms
16ck+4,1ms
16ck
1ck+65ms
1ck+4,1ms
1ck
258ck+65ms
258ck+4,1ms
reserved
LPXT 32ck+65ms
1ck+65ms
1ck+4,1ms

EXT RC 8-12MHz…6ck+4,1ms
18ck+65ms
18ck+4,1ms
18ck

EXT RC 3,0-8MHz…6ck+4,1ms
18ck+65ms
18ck+4,1ms
18ck

EXT RC 0,9-3MHz…6ck+4,1ms
18ck+65ms
18ck+4,1ms
18ck

EXT RC< 0,9MHz…6ck+4,1ms
18ck+65ms
18ck+4,1ms
18ck
reserved
INT RC 4MHz
INT RC 2MHz
INT RC 1MHz

E CLK 6ck+65ms
6ck+4,1ms
6ck

toť vše co mi presto mabízí

OK již vyřešeno,díky za ochotu

Takže správná volba je

XT 3,0-8,0MHz…258ck+65ms

CKOPT je snad zapnutý podle toho co jsi poslal.

Aby se nezměnilo něco co nechceme, je třeba postupovat takto:

  1. načíst fuse bity z čipu
  2. změnit jenom oscilátor
  3. zapsat fuses zpátky do procesoru

Tak zlom vaz.

jo jo již vše funguje a tentokrát bez zničení procesoru.
jinak bych se ještě zeptal, pokud jsem u toho minulýho procáku ten oscilátor nastavil blbě a on teď nejde smazat ani naprogramovat protože ho PRESTO nevidí,je úplně KO nebo se dá ještě nějak oživit?

Asi je nastavený externí zdroj hodin.
Dá se oživit tak, že se na pin XTAL1 připojí nějaký oscilátor 1 - 8 MHz. S takto připojeným oscilátorem půjdou fuse bity opravit.
Jako oscilátor je možno použít jiný Avr nebo 555 apod.

Ale on predsa nie je mrtvy!

takto tu koluju vseliake famy o tom, ako sa da AVR-ko programatorom zabit. To je nezmysel. Procesor akurat robi co si mu povedal. Caka na pripojenie spravneho zdroja hodin.
Este lepsie je ak mu povies, ze chces pouzit pin RESET ako normalnu IO nohu. :slight_smile: :slight_smile: :slight_smile:

Ale ak sa hociako blbo naprogramovali fuses, VZDY sa da s procesorom spojit cez high voltage programing. Slusne programatory ho podporuju. Napriklad Dragon. P sucasnom stave Presta neviem.