 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Marko82 Član

Pridružen-a: Sob 24 Mar 2012 18:36 Prispevkov: 24 Aktiv.: 0.15 Kraj: Trnovo pri Gorici
|
Objavljeno: Ned Jun 03, 2012 4:34 pm Naslov sporočila: AVR fuse biti in zunanji kristal |
|
|
Pozdravljeni!
Še eno iz serije mojih začetniških vprašanj.
Uporabljam MiniPin2 in Proggy programator. Na MEGA32 bi rad dal 10 MHz kristal pa ne razumem čisto vsega o teh FUSE bitih. Programe pišem z BASCOM AVR.
Zasledil sem , da se fuse bite nastavlja v nekem menuju z AVR Studio, V BASCOM AVR pa tega ne najdem? Ali se ne da teh bitov nastevit tudi programsko?
Pa še bi prosil, če kdo ve kje je kakšna "po kmečko" razlaga teh bitov, ker prebiram datasheet od mega32 pa razumem le bolj na pol!
Hvala za vsakršno pomoč in lep pozdrav iz deževnega Trnova!
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.92 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Ned Jun 03, 2012 5:00 pm Naslov sporočila: |
|
|
S fuse biti nastavljaš določene lastnosti mikrokontrolerja. Kot si že ugotovil - lahko mu določiš vrsto oscilatorja, izklopiš lahko reset pin, itd...
Pazi!!! Pri vklopu zunanjega oscilatorja ti bo postal mikrokontroler neodziven serijskemu programatorju. Potreben bo eksteren clock na OSC pin. Če boš slušajno izključil reset pin, potem do mikrokontrolerja prideš le še s paralelnim programatorjem. Zato pozor pri nastavitvah fuse bitov.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
RGorazd Član


Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1714 Aktiv.: 7.23 Kraj: Ig
|
Objavljeno: Ned Jun 03, 2012 5:21 pm Naslov sporočila: |
|
|
Seveda se v Bascomu da spreminjati fuse bite. Le vedeti moraš, kaj spreminjati. Do fuse bitov pa dostopaš tako, da klikneš na Manual program, ko se ti odpre okno programatorja, imaš potem 3 jezičke:
Flash, EEProm ter Lock&Fuse Bits.
LP G
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
 |
Marko82 Član

Pridružen-a: Sob 24 Mar 2012 18:36 Prispevkov: 24 Aktiv.: 0.15 Kraj: Trnovo pri Gorici
|
Objavljeno: Ned Jun 03, 2012 7:07 pm Naslov sporočila: |
|
|
Silvo.
Če sem prav razumel moram samo na MiniPin dati v ustrezno podnožje kristal in omogočiti jumper pa bi moralo delovati enako kot prej, le da tako dobiva hitrejši urin signal z zunanjega vira! Jaz sem prvo mislil, da fuse biti povejo uC ferkvenco kristala, ne pa da ga samo "obvestijo", da uporabljaš zunanji vir takta!
Če se na igram z nastavitvami reset pina pa bi lahko še vedno programiral uC na MiniPin ali ravno tako rabim paralelni programator?
Bi mi lahko kdo povedal katerega bita ne smem tikat, da ne spremenim reset pina ali naredim kakšne druge neumnosti?
Najlepša hvala!
Marko
|
|
Nazaj na vrh |
|
 |
arksi Član

Pridružen-a: Sre 03 Sep 2008 10:19 Prispevkov: 748 Aktiv.: 3.66 Kraj: Dolenjska
|
Objavljeno: Ned Jun 03, 2012 8:33 pm Naslov sporočila: |
|
|
Najprej ugotovi ali je UC nastavljen na notranji ali zunaji takt. Tovarniško so UC (običajno) nastavljeni na notranji oscilator. V Bascomu ne vem kje se kaj nastavlja, lahko pa povem za AVR studio, da se zunaji oscilator vlopi v zavihku SUT_CKSEL. Obkljukano moraš imeti še SPIEN (vključeno serijsko programiranje).
Dobronamerno rečeno - če ne veš kaj spreminjaš potem zaenkrat pusi ostale fuse bite pri miru, da ne boš zaklenil UC. Potem bo potreben paralelni programator.
Če ti je mikrokontroler deloval že prej z zunajim kristalom in si ti samo zamenjal kristal z višjo frekvenco bi moral UC normalno delovati z frkvenco kristala, ki si ga zamenjal.
LP
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.92 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Ned Jun 03, 2012 8:45 pm Naslov sporočila: |
|
|
Minipina... Bascoma ne poznam. Še enkrat: Potem ko boš zaprogramiral zunanji oscilator s serijskim programatorjem ne boš več mogel programirat razen, da na OSC pin dovedeš nek urni clock. Če izključiš še serijsko programiranje potem obstaja edina rešitev paralelni programator. Vsi avr-ji (vsaj s tistimi, ki sem delal imajo tovarniško vključen interni oscilator. Tisti z bootladerjem, ki se direk programirajo iz USB-ja pa omogočajo le enkratno programiranje - pred sledečim programiranjem pa je potrebno čip "dati" v reset - recimo at90usb162 )
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
Jaka57 Moderator



Pridružen-a: Ned 12 Dec 2004 21:47 Prispevkov: 5820 Aktiv.: 24.56 Kraj: Grosuplje
|
Objavljeno: Ned Jun 03, 2012 8:51 pm Naslov sporočila: |
|
|
Fuse bit kalkulator najdeš tukaj.
Silvo ti je razložil, česa ne smeš z fuse biti programirat, da boš še naprej dostopal s Proggy programatorjem.
- nikakor ne sme biti programiran zunanji clock,
- programiran mora biti SPIEN.
Pri programiranju CKSEL fuse bitov bodi pozoren kaj programiraš, kajti z lahkoto se ti zgodi, da oscilator ne bo zanihal potem se pa zgodi, kar ti je že Silvo povedal.
Če bi imel v Megi32 bootloader, ne bi potreboval programatorja.
Opis: |
|
Velikost datoteke: |
217.04 KB |
Pogledana: |
27 krat |

|
_________________ Lp, Jaka |
|
Nazaj na vrh |
|
 |
Marko82 Član

Pridružen-a: Sob 24 Mar 2012 18:36 Prispevkov: 24 Aktiv.: 0.15 Kraj: Trnovo pri Gorici
|
Objavljeno: Ned Jun 03, 2012 10:08 pm Naslov sporočila: |
|
|
Hvala za vse nasvete in za link na kalkulator!
Da, uC ki ga imam sedaj tiktaka na internem oscilatorju. Za zunanjega sem pomislil ker sem dostikrat zasledil, da notranji naj nebi bil zelo točen, zdaj pa ravno preiskušam eno zadevo s timerjem. Nisem pa nikjer zasledil kolikšna je nenatančnost internega osc. Ima kdo kakšne iskušnje?
Sicer pa sem sedaj v datasheetu zasledil, da se da tudi internemu oscilatorju povečat takt do 8MHz!?(saj sem prav prebral????)
Namreč, nekje sem hotel za pravokotni signal 36kHz uporabit kar SOUND ukaz, paima ta že clock prescaler 12 tako da s tem ukazom in 1MHz osc. nisem mogel proizvest dovolj natančne ferkvence.Če nenatančnost internega osc. ni prehuda, bi za moje potrebe morda zadostoval interni osc. na višji ferkvenci.
Prosim še za kak komentar, iskušnjo, nasvet... glede tega.
|
|
Nazaj na vrh |
|
 |
Marko82 Član

Pridružen-a: Sob 24 Mar 2012 18:36 Prispevkov: 24 Aktiv.: 0.15 Kraj: Trnovo pri Gorici
|
Objavljeno: Ned Jun 03, 2012 10:10 pm Naslov sporočila: |
|
|
Aja, pa še to.
Sem probal manual program v BASCOM, pa mi ne odpre nobenega okenca za fuse bite(uporabljam DEMO verzijo, če je morda to pomembno).
|
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.77 Kraj: Mengeš
|
Objavljeno: Pon Jun 04, 2012 9:16 am Naslov sporočila: |
|
|
V bascomu moraš v nastavitvah (options-->programmer) najprej določiti, kateri programator uporabljaš, šele potem se ti bo odprl ustrezni programator. kateri protokoli uporablja proggy moraš pa imeti napisano v navodilih (mislim da je proggy tudi tam)
Pa malce premalo podatkov ste dali, fantje: vsi opozarjate da ne sme programirati zunanji oscilator (kar je prav!), noben pa ni omenil da naj programira zunanji kristal, ker on želi prav to. Razlika je zunanji OSCILATOR: to je kompletno vezje, ki oscilira, na AVR pa pripelješ samo clock; ter zunanji KRISTAL, kar pa je na ustrezna dva pina priklopljen kristal in dva 22pF kondenzatorja proti masi (ta dva sta mislim že na minipinu, ko boš delal vezje pa jih ne pozabi dati!). Teh dveh izrazov ne smeš zamenjati!
Poleg tega, da ne smeš izklopiti SPIEN moraš pustiti na miru tudi RESET pin! Če boš tega izklopil boš prav tako zaklenil AVR.
Fusebiti ti povejo samo kakšen tip oscilatorja uporabiš (pri zunanjem kristalu programiraš samo območje od-do), točno frekvenco določiš v programu.
|
|
Nazaj na vrh |
|
 |
Marko82 Član

Pridružen-a: Sob 24 Mar 2012 18:36 Prispevkov: 24 Aktiv.: 0.15 Kraj: Trnovo pri Gorici
|
Objavljeno: Pon Jun 04, 2012 12:41 pm Naslov sporočila: |
|
|
Protonček, hvala! Res je, ti izrazi so za začetnika podobni in četudi se mi približno sanja kaj je kaj nisem bil prepričan, če prav mislim.
Glede programatorja, imam nastavljeno kot je opisano v brošuri(STK500), ki jo dobiš zraven MiniPina in mi vse lepo deluje, le teh FUSE bitov nikjer ni!
Sem pa pomislil, ali se nebi dalo vključit assamblerja v BASCOM in z asm. ukazom nastavit te bite?(seveda bi mi moral nekdo natančno napisat te ukaze, ker sam nimam še potrebnega znanja--upam, da je tisti "še" upravičen...)
|
|
Nazaj na vrh |
|
 |
lojzek Član



Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3387 Aktiv.: 15.99
|
Objavljeno: Pon Jun 04, 2012 1:12 pm Naslov sporočila: |
|
|
Za osnove in za potrebe učenja bo interni oscilator čisto dovolj dober. Če že kaj, se je dobro čimprej naučiti uporabo prekinitev (interrupts). Čeprav za nekaj lažjega tudi te niso 100% nujne..
Ko pa boš malce napredoval, bo pa tudi znanje o Fuse bitih kar samo prišlo.
|
|
Nazaj na vrh |
|
 |
Marko82 Član

Pridružen-a: Sob 24 Mar 2012 18:36 Prispevkov: 24 Aktiv.: 0.15 Kraj: Trnovo pri Gorici
|
Objavljeno: Pon Jun 04, 2012 1:18 pm Naslov sporočila: |
|
|
Prekinitve ravnokar uporabljam s proženjem iz timer1 prekoračitve, vendar mi ne da željene ferkvence. To je ta problem! Rabil bi nastavljanje ferkvence med 30 in 40 kHz! Ne vem kaj je narobe, nimam pa niti nobenega instrumenta, da bi lahko videl kaj mi na izhodu daje!
|
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.77 Kraj: Mengeš
|
Objavljeno: Pon Jun 04, 2012 1:19 pm Naslov sporočila: |
|
|
Fusebiti se pri AVRju ne nastavljajo programsko, tako kot pri PIC-u.
Imaš kot "programmer" nastavljeno "STK500 native driver"? Potem se ti odpre novo okno Atmel STK500 protocol compatible driver.
Sicer pa če imaš stk500 kompatibilen programator zadevo odpri z AVR studio 4 in boš tam tudi videl fusebite.
|
|
Nazaj na vrh |
|
 |
lojzek Član



Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3387 Aktiv.: 15.99
|
Objavljeno: Pon Jun 04, 2012 1:40 pm Naslov sporočila: |
|
|
Poglej, na tejle povezavi je takšen enostaven timer kalkulator za AVRje. Pozor, timer calc, ne Fuse calc!, kot je večinoma govora v tej temi
In glede na predpostavko, da imaš najverjetneje osnovni 1MHz takt, glede na podatke iz izračunov na podani strani moraš uporabiti osnovni timer prescaler (CS00 - CS02 biti v registru TCCR0) z vrednostjo 1, TCNT0 register pa se ti mora povečati 33 krat za frekvenco 30kHz, (ali pa 25 krat za 40kHz,), preden pride do overflow-a TCNT0. Ta dogodek lahko uporabiš kot vir timer prkinitve, in takrat ponovno napolniš register TCNT0 z vrednostjo 255-33=222 za 30kHz ali z vrednostjo 255-25=230 za 40kHz.
Torej, v vsaki časovni prekinitvi (overflow-u) moraš NUJNO postaviti TCNT0 na zahtevano vrednost, kajti drugače je timer točen samo prvič, potem pa v TCNT0 registru šteje od 0 naprej namesto od npr 255-33=222 in v tem primeru porabi približno 10 krat več časa do overflow-a. To kot začetnik z lahkoto pozabiš
Je pa res, če potrebuješ večjo točnost, pa je bolj primerna uporaba višje interne frekvence, ob največji zahtevani točnosti pa celo kristal, ki bo preko prescalerjev usklajen z zahtevanim časom. Ampak, glede na to, da si začetnik, najverjetneje še ne delaš raketo za na luno in bo morebiti dovolj že osnovni moj nasvet...
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 495 dni
Powered by phpBB © 2001, 2005 phpBB Group
|