Sari la conținut
ELFORUM - Forumul electronistilor

Setare fuse biti atmega8 in BASCOM


Cilibiu

Postări Recomandate

  • 4 ani mai târziu...
  • Răspunsuri 37
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • PKP98

    7

  • XAN77

    6

  • Cilibiu

    6

  • Liviu M

    4

Top autori în acest subiect

Imagini postate

Se da o schema cu atmega8 unde am oscilator extern de 8mhz, se poate scoate din montaj sa folosesc oscilatorul intern? Se face strap in locul oscilatorului sau ramane asa? Multumesc.

Link spre comentariu

salutare colegias dori sa programez atmega 8 si trebuie sa setez pentru quart de 12 mhz,am doar programatorul cel simplu pe serial,care susebiti trebuie setati?

Nu pot incerca acum pentru 12Mhz insa pentru 16Mhz l-am setat astfel:

post-175768-0-34397300-1454961435_thumb.jpg

Link spre comentariu

Se da o schema cu atmega8 unde am oscilator extern de 8mhz, se poate scoate din montaj sa folosesc oscilatorul intern? Se face strap in locul oscilatorului sau ramane asa?Multumesc.

Am atasat si schema

post-182761-0-21195000-1454972562_thumb.png

Link spre comentariu

In mod normal nu merge direct, trebuie reprogramat microcontrollerul si setet pe oscilator intern (asta daca are oscilator intern de 8 MHz). In locul quarzului nu se monteaza nimic se lasa asa locul gol.

Link spre comentariu
  • 10 luni mai târziu...

Salutare!

Am un ATmega8 si un crystal oscillator de 8Mhz.Inainte sa ma apuc sa setez fuse bits am citit pdf de la atmega8 si m-am uitat la cateva tutoriale pana am inteles cum sta treaba.Initial nu am umblat la fuse high bits ,adica nu am modificat CKOPT care are 1.post-245415-0-74518800-1481567280_thumb.jpg

In acest tabel am ales CKSEL3..1=111,pentru ca eu am 8Mhz,iar din acest tabel post-245415-0-27235500-1481567497_thumb.png am ales CKESL0=1 SUT1..0=11 pentru o stabilitate cat mai buna.Deci fuse low bits=0b11111111=0xFF,iar fuse high bits au ramas D9,folosesc Extreme Burner.

Am scris fuse bits si spre bucuria mea a mers.

Dupa asta in primul tabel pentru CKOPT=0 CKSEL3..1=101,110,111.Am modificat fuse high bits doar pe CKOPT=0 si fuse low bits a ramas tot FF.La CKSEL am ales 111,conteaza ce valoare aleg?Apoi am scris fuse bits si din nou totul a fost ok.Care este diferenta dintre primul caz CKOPT=1 si al doilea caz CKOPT=0.Dupa mine CKOPT=0 este pentru valori mai mari de 8Mhz ,dar pot sa pun si valori mai mici care sunt incluse in intervalul [3.0,8.0]Mhz ,deci care este diferenta?

O alta problema este cum calculez timpul real,desi scriu _delay_ms(1000); parca nu este 1s. Am pus un led pe PINB0 ,iar la frecventa de 1Mhz adica fara cristal la _delay_ms(1000); ledul sta aprins/stins mai mult de 5s ,iar la 8Mhz cu crystal parca se apropie de 1s.

Deci cum calculez timpul real?

 

Pdf ATmega8:http://www.atmel.com/Images/Atmel-2486-8-bit-AVR-microcontroller-ATmega8_L_datasheet.pdf

Link spre comentariu

Deci cum calculez timpul real?

Compilatorul nu stie ce setezi tu la fuse si ce oscilator conectezi la microcontroler, asa ca trebuie sa-i spui.

La compilatorul pe care-l folosesc eu (XC8, picuri), e nevoie de un define de genul

#define _XTAL_FREQ 20000000 //20 MHz 

Trebuie sa vezi cum functioneaza compilatorul tau. Din ce am gasit cu google, pentru avr-gcc poti scrie in cod

#define F_CPU 8000000UL

sau poti folosi parametri de compilare:

-dF_CPU=8000000UL
Editat de Liviu M
Link spre comentariu

Daca stiam ziceam din prima, dar cum nu am facut nimic cu atmeli (arduino nu se pune, ca ascunde implementarea), nu stiu asa ca decat sa zic prostii, mai bine las pe altii.

Link spre comentariu

Putin google search:

"When CKOPT is programmed, the Oscillator output will oscillate a full rail-to-rail swing on the output. This mode is suitable when operating in a very noisy environment or when the output from XTAL2 drives a second clock buffer. This mode has a wide frequency range.

When CKOPT is unprogrammed, the Oscillator has a smaller output swing. This reduces power consumption considerably. This mode has a limited frequency range and it cannot be used to drive other clock buffers."

I.E. la frecvente mici de ceas (sub 1MHz) CKOPT va fi 0, iar la fecvente de ceas peste 1MHz CKOPT va fi 1, iar reciproca nu este adevarata (conform tabel 4 din postarea #24)

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări