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

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Ned Mar 08, 2009 12:09 pm Naslov sporočila: Začetnik na AVR |
|
|
Torej, končno se spravljam k svojemu prvemu AVR projektu (no, mini projektu). Res je da imam že kar nekaj časa Darkotov programator, ampak---
Ker trenutno še izdelujem projekt a-la blok shema, bi samo vprašal, če prav razumem neke osnovne stvari, preden se lotim programa in izberem pravi AVR:
1.AVR ima načeloma po defaultu vključen interni oscilator, frekvenco preberem v datasheet-u.
2.nameravam uporabiti Bascom AVR. Torej tisto vrstico crystal=1000000 napišem samo zaradi pravilnega računanja programa Bascom okoli časovnikov.
3.če uporabim recimo 8-pinski tiny13, ker je za moj projekt dovolj, je ta čip kljub samo 8 pinom možno večkrat programirati, ne glede na to, da bodo vsi pini porti ?Mislim - AVR sam zazna, kdaj ga hočeš programirati?
4.famozni "fusebiti" - če jih pustim pri miru, ali jih bo Bascom pustil na factory default ali jih moram pred programiranjem prebrati, da jih bo pustil enake?
Projekt bo pa neke sorte stikalo za aktivno 5.1 ozvočenje - ker imam LCD TV priključen na te zvočnike, je ideja da ko vključim TV, bo vezje zaznalo audio signal in vključilo najprej 230V, sekundo, dve zatem pa še vključilo zvočnike (ja, so zvočniki taki da se ob vklopu 230 postavijo v standby), potem pa recimo 5 minut po prenehanju audio signala obratno. Torej rabim dva izhoda (2x rele) in dva vhoda (audio sense in on/off sense).
Mogoče ne bi bilo narobe da nekdo, ki to obvlada napiše neke osnovne stvari, na katere je treba paziti in jih objavi tukaj (ali pa če kaj že obstaja) ker iskanje po vseh temah je izredno zamudno, pa še ne da željenih rezultatov, ker so teme več ali manj namenske, ne splošne...
Hvala!
|
|
Nazaj na vrh |
|
 |
Highlag Član


Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 17.02 Kraj: Črnuče
|
Objavljeno: Ned Mar 08, 2009 12:46 pm Naslov sporočila: |
|
|
Nekaj zelo podobnega sem naredil za vklop mojega ojačevalca na lampice.
Detektiram dvoje: Priklop 230, ter prisotnost audio signala.
Program potem po določenem času vklopi napajanje katod, čec nekaj časa pa še anod. Če audio signala ni čez čas zadevo izklopi. Edina razlika je, da sem sam uporabil pica za procesor. Prilagam shemo. Mogoče ti prav pride... Mi pa dela zadeva brezhibno že nekaj let..
Opis: |
|
 Download |
Ime datoteke: |
zakasnitev.pdf |
Velikost datoteke: |
28.74 KB |
Downloadano: |
67 krat |
_________________ If at first you don't succeed, destroy all evidence that you tried. |
|
Nazaj na vrh |
|
 |
RGorazd Član


Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1714 Aktiv.: 7.23 Kraj: Ig
|
Objavljeno: Ned Mar 08, 2009 12:54 pm Naslov sporočila: |
|
|
Citiram: |
1.AVR ima načeloma po defaultu vključen interni oscilator, frekvenco preberem v datasheet-u.
2.nameravam uporabiti Bascom AVR. Torej tisto vrstico crystal=1000000 napišem samo zaradi pravilnega računanja programa Bascom okoli časovnikov.
3.če uporabim recimo 8-pinski tiny13, ker je za moj projekt dovolj, je ta čip kljub samo 8 pinom možno večkrat programirati, ne glede na to, da bodo vsi pini porti ?Mislim - AVR sam zazna, kdaj ga hočeš programirati?
4.famozni "fusebiti" - če jih pustim pri miru, ali jih bo Bascom pustil na factory default ali jih moram pred programiranjem prebrati, da jih bo pustil enake?
|
1. AVR ima frekvenco fabriško nastavljeno na 1MHz
2. V BASCOMU napišeš tisti $crystal = 1000000 da lahko compiler vse časovno odvisne funkcije preračuna na to frekvenco
3. ČE definiraš RESET pin kot I/O pin, potem ne boš več mogel programirati preko SPI. Ireverzibilni pojav, razen če imaš paralelnoi programator.
4. Če FUSEBITOV ne spremeniš, bodo nastavitve take kot so.
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
 |
ticla Član


Pridružen-a: Sob 15 Dec 2007 22:52 Prispevkov: 440 Aktiv.: 2.06 Kraj: Župečja vas
|
Objavljeno: Ned Mar 08, 2009 12:56 pm Naslov sporočila: |
|
|
Pri tiny 13, če uporabiš vse porte, se ga da samo programirati preko pararelnega programatorja, preko ISP pa ne gre več. To sem sam ugotovil na težki načim (beri zaklenil tiny 13 za ISP programiranje)
|
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Ned Mar 08, 2009 12:58 pm Naslov sporočila: |
|
|
Highlag --> hvala za tole. Zelo podobno imam v mislih, ja. Samo AVR bo in časi malenkost manjši ker pač nimam lamp...mi bo prav prišlo, ker je vezje že preizkušeno.
RGorazd --> hvala za tele informacije. V vsakem primeru vem,da moram nabaviti par kosov in ne enega ker vem da bom na začetku zaj***l. Tale reset si moram zapomnit.
EDIT--> nisem opazil da se je vmes prikradel še en post...
v glavnem, torej velja da pri tiny13 lahko porabim največ 5 portov, da mi ostane reset, + in -. A ne? Kar je načeloma dovolj za zdaj.
|
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Pon Mar 09, 2009 4:06 pm Naslov sporočila: |
|
|
Evo uspelo mi je v bascomu simulirati zadevo
samo eno vprašanje še mogoče: RGorazd je sicer rekel da ima AVR serijsko interno frekvenco nastavljeno na 1 MHz, ampak v datasheetu pa piše da je 9.6 MHz - kaj je zdaj prav ? sicer bom itak videl, ko ga sprogramiram (ampak moram še vezje narisati in narediti )...ampak vseeno...
|
|
Nazaj na vrh |
|
 |
damjanmi Član

Pridružen-a: Ned 15 Jan 2006 19:19 Prispevkov: 45 Aktiv.: 0.19
|
Objavljeno: Pon Mar 09, 2009 7:43 pm Naslov sporočila: |
|
|
Moji tiny13 so do sedaj imeli nastavljeno frekvenco 9.6 in vklopljen ckdiv8 (torej je frekvenca 9.6/8).
|
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Pon Mar 09, 2009 7:48 pm Naslov sporočila: |
|
|
No, saj ravno okoli tega dividerja mi ni bilo jasno ali je treba deliti ali ne. Torej je treba...hvala!
BTW---sem pa ugotovil da se v bascomu ukazi wait in waitms ravno prav simulirajo če za kristal določiš 10000 - dobiš realne zakasnitve...
|
|
Nazaj na vrh |
|
 |
gusti Član

Pridružen-a: Pet 15 Feb 2008 17:34 Prispevkov: 112 Aktiv.: 0.53 Kraj: Kotlje - Koroška
|
Objavljeno: Tor Maj 19, 2009 9:23 am Naslov sporočila: |
|
|
Sam eno začetniško vprašanje ....
1.) Ali mora delat avr tudi brez zunanjega kvarčnega oscilatorja? Ali mora bit ta obvezno?
2.) Kaj se zgodi če vežem kvarc med XTAL1 in XTAL2 in potem ta dva pina direkt na maso (brez kondenzatorjev)? SHEMA Recimo, da bi zvezal tako kot je v tej shemi, ampak bi naredil kratek stik, čez C2 in C3?
(Problem je v tem, da mi programator ne zazna čipa, zej pa nevem a je to zarad tega, ker nimam kvarca priklopljenega? Procesor je pa enak kot na shemi 90S8535)
Hvala.
|
|
Nazaj na vrh |
|
 |
cipko Član

Pridružen-a: Sre 22 Okt 2003 14:19 Prispevkov: 137 Aktiv.: 0.58 Kraj: velenje
|
Objavljeno: Tor Maj 19, 2009 10:19 am Naslov sporočila: |
|
|
AVr lahko funkcionirajo z notranjih oscilatorjem (default) ali pa z zunanjim (kvarc) odvisno pač od nastaviteve fuse bitov (nujen pogled datasheeta)
Če boš Xtal1 in Xtal2 (pri izbranem zunajen oscilatorju-kristalu) zvezal z maso, krmilnik ne bo delovala, ker kristal ne bo nihal in ne bo taktnih impulzov za čip.
|
|
Nazaj na vrh |
|
 |
int47 Član


Pridružen-a: Pon 15 Dec 2003 0:10 Prispevkov: 2104 Aktiv.: 8.88 Kraj: Ljubljana
|
Objavljeno: Tor Maj 19, 2009 2:17 pm Naslov sporočila: |
|
|
Citiram: |
1.) Ali mora delat avr tudi brez zunanjega kvarčnega oscilatorja? Ali mora bit ta obvezno? |
Vsak uC potrebuje izvor takta.
Nimajo vsi modeli vseh oscilatorjev.
90S8538 nima internega RC oscilatorja. Glej PDF stran 6.
Citiram: |
2.) Kaj se zgodi če vežem kvarc med XTAL1 in XTAL2 in potem ta dva pina direkt na maso (brez kondenzatorjev)? SHEMA Recimo, da bi zvezal tako kot je v tej shemi, ampak bi naredil kratek stik, čez C2 in C3? |
Izhod Xtal2 si vezal na maso (Xtal1 je vhod). uC je verjetno preživel.
|
|
Nazaj na vrh |
|
 |
RGorazd Član


Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1714 Aktiv.: 7.23 Kraj: Ig
|
Objavljeno: Tor Maj 19, 2009 5:46 pm Naslov sporočila: |
|
|
Uc je že preživel, kristal pa ni zanihal, tako da se program ne bo izvajal. Tako napravi, kakor piše v datasheetu, bo najbolj prav. Če sem se nečesa naučil v teh letih programiranja je to, da če narediš drugače kot je v datasheetu potem je
LP G
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
 |
gusti Član

Pridružen-a: Pet 15 Feb 2008 17:34 Prispevkov: 112 Aktiv.: 0.53 Kraj: Kotlje - Koroška
|
Objavljeno: Tor Maj 19, 2009 6:34 pm Naslov sporočila: |
|
|
Hvala vam za odgovore. Da nebo pomote ... nisem vezal na maso, samo vprašal sem če to smem nardit. Včasih se najde kje kakšen kondenzator, ki je kje bolj za okras (zmanjšuje kakšnje motnje in to) in zadeva brez vseeno dela. To sem imel v načrtu naredit, ker bo trajalo spet en teden da pridem do kakšne štarcune z takšno robo. Bom že zrihtal ... upam da je to vzrok mojih težav.
LP
|
|
Nazaj na vrh |
|
 |
RGorazd Član


Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1714 Aktiv.: 7.23 Kraj: Ig
|
Objavljeno: Tor Maj 19, 2009 9:26 pm Naslov sporočila: |
|
|
Uh...a nimaš doma nobene krame? Kako staro mamaplato, ali pa kak star disk? Na takih ploščah imaš cel kup kristalov ter pripadajočih kondenzatorjev. Saj ni treba da je točno 22pF...lahko je 18 ali pa več...skratka, vse je boljše kot nič, čeprav preveč ali premalo pa spet ne sme biti. V datasheetu imaš napisano, kake vrednosti kondezatorja moraš dati za določeno frekvenco. Lahko pa uporabiš resonator (to je taka bunka ponavadi modre barve s tremi tacami). Ta resonator ne rabi kondenzatorjev. Skrajni dve taci vežeš na Xtal1 ter Xtal2, srednjo pa na maso. Slabost reosnatorjev je v tem, da niso tako zelo točni kot kristali, vendar če boš delal z AVRji se boš navadil tudi vpisovati v kalibrirni register in boš lahko pri časovno kritičnih aplikacijah bolj natančno pokalibriral svoj oscilator. Lahko pa uporabiš tudi kvarčni oscilator (pravokone srebrne škatlice s 4 tacami) ki daje na izhodu TTL nivo urinega takta. Na kaki stari matični plošči sigurno dobiš kakega (24MHz) ali pa na starejšig grafičnih karticah jih je kar mrgolelo. Tudi to lahko uporabiš za takt. Malce poeksperimentiraj. Se splača. Včasih se splača tudi kak mikrokontroler uničini, če iz tega potegneš kaj konstrukntivnega in ti to naslednjič prišpara ure mukotrpnega mozganja.
LP G
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
 |
TECHNIC Član


Pridružen-a: Tor 31 Okt 2006 11:18 Prispevkov: 582 Aktiv.: 2.57 Kraj: Senovo
|
Objavljeno: Tor Jul 14, 2009 3:39 pm Naslov sporočila: |
|
|
Pozdrav!
Bi lahko kdo na hitro pogledal tale program?
Portb.0 je "sprožilec"
Portb.1 je izhod --> FET --> solenoid
Portb.2 je povratna zanka
uC je attiny13.
Program je narejen tako, da ob pritisku sprožilca sproži solenoid in čaka na povratno zanko. Nato ugasne solenoid. Če je v tem trenutku sprožilec še vedno pritisnjen, pač čaka dokler ni spuščen in nato nadaljuje od začetka.
Watchdog sem sprogramiral (poskušam ...), da resetira uC, če na povratni zanki ne zazna nizkega stanja. Logično je, da, ko se to zgodi, se program zacikla (če držiš sprožilec bo vseskozi vklapljal solenoid, ne le enkrat - watchdog vedno vklopljen). Dogaja pa se, da se tudi ko uC prejema signal iz povratne zanke, zacikla. Zakaj? Po vsakem dobljenem impulzu feedbacka watchdog namreč ugasnem ...
Koda: |
$crystal = 4800000
Config Portb.0 = Input
Config Portb.1 = Output
Config Portb.2 = Input
Portb.0 = 1
Portb.2 = 1
Config Watchdog = 128
Config Debounce = 10
Do
Debounce Pinb.0 , 0 , Program , Sub
Bitwait Pinb.0 , Set
Loop
Program:
Reset Watchdog
Start Watchdog
Set Portb.1
Bitwait Pinb.2 , Reset
Reset Portb.1
Stop Watchdog
Return
End |
EDIT:: Ah, sedaj pa kar naenkrat deluje ...
|
|
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
|