www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

AVR fuse biti in zunanji kristal
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Marko82
Član
Član



Pridružen-a: Sob 24 Mar 2012 18:36
Prispevkov: 24
Aktiv.: 0.15
Kraj: Trnovo pri Gorici

PrispevekObjavljeno: Ned Jun 03, 2012 4:34 pm    Naslov sporočila:  AVR fuse biti in zunanji kristal Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.92
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Jun 03, 2012 5:00 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
RGorazd
Član
Član



Pridružen-a: Čet 20 Maj 2004 15:57
Prispevkov: 1714
Aktiv.: 7.23
Kraj: Ig

PrispevekObjavljeno: Ned Jun 03, 2012 5:21 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Marko82
Član
Član



Pridružen-a: Sob 24 Mar 2012 18:36
Prispevkov: 24
Aktiv.: 0.15
Kraj: Trnovo pri Gorici

PrispevekObjavljeno: Ned Jun 03, 2012 7:07 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
arksi
Član
Član



Pridružen-a: Sre 03 Sep 2008 10:19
Prispevkov: 748
Aktiv.: 3.66
Kraj: Dolenjska

PrispevekObjavljeno: Ned Jun 03, 2012 8:33 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.92
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Jun 03, 2012 8:45 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jaka57
Moderator
Moderator



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5820
Aktiv.: 24.56
Kraj: Grosuplje

PrispevekObjavljeno: Ned Jun 03, 2012 8:51 pm    Naslov sporočila:   Odgovori s citatom

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.



Fusebits.JPG
 Opis:
 Velikost datoteke:  217.04 KB
 Pogledana:  27 krat

Fusebits.JPG



_________________
Lp, Jaka
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Marko82
Član
Član



Pridružen-a: Sob 24 Mar 2012 18:36
Prispevkov: 24
Aktiv.: 0.15
Kraj: Trnovo pri Gorici

PrispevekObjavljeno: Ned Jun 03, 2012 10:08 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Marko82
Član
Član



Pridružen-a: Sob 24 Mar 2012 18:36
Prispevkov: 24
Aktiv.: 0.15
Kraj: Trnovo pri Gorici

PrispevekObjavljeno: Ned Jun 03, 2012 10:10 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 42.78
Kraj: Mengeš

PrispevekObjavljeno: Pon Jun 04, 2012 9:16 am    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Marko82
Član
Član



Pridružen-a: Sob 24 Mar 2012 18:36
Prispevkov: 24
Aktiv.: 0.15
Kraj: Trnovo pri Gorici

PrispevekObjavljeno: Pon Jun 04, 2012 12:41 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3387
Aktiv.: 15.99

PrispevekObjavljeno: Pon Jun 04, 2012 1:12 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Marko82
Član
Član



Pridružen-a: Sob 24 Mar 2012 18:36
Prispevkov: 24
Aktiv.: 0.15
Kraj: Trnovo pri Gorici

PrispevekObjavljeno: Pon Jun 04, 2012 1:18 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 42.78
Kraj: Mengeš

PrispevekObjavljeno: Pon Jun 04, 2012 1:19 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3387
Aktiv.: 15.99

PrispevekObjavljeno: Pon Jun 04, 2012 1:40 pm    Naslov sporočila:   Odgovori s citatom

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š Wink

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... Angel
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
Pojdi na:  
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