Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Tacno merenje vremenskog intervala

[es] :: Elektronika :: Mikrokontroleri :: Tacno merenje vremenskog intervala

Strane: 1 2

[ Pregleda: 2912 | Odgovora: 33 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zofr

Član broj: 126534
Poruke: 53
*.dynamic.sbb.co.yu.



Profil

icon Tacno merenje vremenskog intervala21.12.2006. u 20:58

Pozdrav svima!

Olako sam sam se uhvatio sa jednim, naizgled, jednostavnim problemom. Pre nego sto ga opisem,
da kazem da sam do sada radio sa AT89C51RC a sada sa PIC16F877. Problem:

Treba izmeriti vremenski period od 22ms sa tacnoscu 5ppm. Vremnski period je odredjen sa dva
signala: A i B. Period pocinje kada A sa log. 1 padne na log. 0, a zavrsavase kada B skoci
sa log. 0 na log. 1. Ovo se radi da bi se kontrolisao neki uredjaj koji mora vremenski da
radi precizno.

Nabavio sam dva precizna, temperaturno kompenzovana oscilatora. Oba su od 10MHz, jedan ima
stabilnost 2.5ppm a drugi +/- 1ppm. Oni su jako skupi (oko 40 EUR) pa molim za ideju kako
ovaj problem da resim sa sto manje para.

Sve moje racunice kazu da sa pomenutim mikrokontrolerima ne mogu da resim ovaj problem.

Unaped zahvalan.
21.12.2006. u 20:58 

tomam
Tomislav Milicevic

Član broj: 104895
Poruke: 22
*.eunet.yu.



Profil

icon Re: Tacno merenje vremenskog intervala21.12.2006. u 21:23
Mozda moze sa 51 (nisam dogo radio sa njom pa se ne secam najbolje detalja)
Inace generalno sa PLD-om i nekim brojacem (moze biti i mikrokontroler)
21.12.2006. u 21:23 

zofr

Član broj: 126534
Poruke: 53
*.dynamic.sbb.co.yu.



Profil

icon Re: Tacno merenje vremenskog intervala21.12.2006. u 22:10
tomam,

hvala na interesovanju, ali

tacnost 5ppm (5 milionita) na 22ms se moze postici brojanjem impulsa periode

0.022*5/1000000 = 110ns, odnosno polovinom od toga, sto je 55ns, a odgovarajuca
frekvencija je 18.18MHz. Za merenje treba koristiti Capture mod tajmera, a na
ovoj frekvenciji 51-ca to ne moze da uradi.

Ipak jos jednom hvala.
21.12.2006. u 22:10 

tomam
Tomislav Milicevic

Član broj: 104895
Poruke: 22
*.eunet.yu.



Profil

icon Re: Tacno merenje vremenskog intervala22.12.2006. u 09:26
Brojac ne ide do 10 MHz???
22.12.2006. u 09:26 

korak
Nis

Član broj: 125522
Poruke: 256
*.dynamic.sbb.co.yu.



Profil

icon Re: Tacno merenje vremenskog intervala22.12.2006. u 13:35
zofr


Mozda mogu da pomognem, kada dodjem do malo vremena.

Pozdrav
22.12.2006. u 13:35 

zofr

Član broj: 126534
Poruke: 53
*.dynamic.sbb.co.yu.



Profil

icon Re: Tacno merenje vremenskog intervala22.12.2006. u 22:34
tomam, korak

U tehnickim karakterisikama nisam nasao koja je najveca moguca frekvencija
tajmerskog brojaca AT89C51RC-24, ali se iz seme tajmera vidi, kada on generise
neku frekvenciju, da se brojacu moze dovesti 12MHz.

Nazalost, za tacnost koja mi je potrebna frekvencija brojaca mora biti
najmanje 18.18MHz.

Pozdrav


22.12.2006. u 22:34 

tomam
Tomislav Milicevic

Član broj: 104895
Poruke: 22
*.eunet.yu.



Profil

icon Re: Tacno merenje vremenskog intervala22.12.2006. u 23:55
Za tu tacnost ti je potrebna frekvencija 9.09 MHz
Procesor po data situ ide do 33MHZ.
Za istu tacnost ti je potrebno 18 bita(16 bita brojac + 2 soft.(imas vremena).
Logiku ulaza uradis sa nekoliko AC(ili F ) kapija(simetricno=>isti broj kapija start stop-capture).
Doduse kompleksnost ulaza zavisi od uslova(u definiciji problema nisu obuhvaceni svi uslovi)?
Uzmes oscilator 10 MHz i to ti je to.
Pitanje kod koga si cije oznake oscilatora si nabavio ?
Bilo bi mozda jednostavnije da se cujemo(ako ti jos uvek nije sve jasno) posalji broj tel na PM
22.12.2006. u 23:55 

zofr

Član broj: 126534
Poruke: 53
*.dynamic.sbb.co.yu.



Profil

icon Re: Tacno merenje vremenskog intervala23.12.2006. u 00:24
Za tomam,

Za moj problem je ipak potrebna frekvencija od 18.18MHz. Zamisli:

1. Vreme koje merim pocne neposredno po zavrsetku periode odbrojavanja brojaca,
a zavrsava se neposredno pre kraja periode odbrojavanja.

2. Vreme koje merim pocne neposredno pre zavrsetku periode odbrojavanja brojaca,
a zavrsava se neposredno posle kraja periode odbrojavanja.

U oba slucaja brojac ce isto odbrojati, ali ce se merene periode pod 1 i 2 razlikovati
za skoro 2 periode frekvencije brojanja.

Srdacan pozdrav.

PS: oscilatore sam nabavio kod Farnela

23.12.2006. u 00:24 

_str_

Član broj: 53798
Poruke: 634
80.74.160.*



Profil

icon Re: Tacno merenje vremenskog intervala23.12.2006. u 23:55
Dali taj pic poseduje komparator na 16bit brojacu?
__*__
*___*
23.12.2006. u 23:55 

zofr

Član broj: 126534
Poruke: 53
*.dynamic.sbb.co.yu.



Profil

icon Re: Tacno merenje vremenskog intervala24.12.2006. u 23:36
Za _str_

Da PIC16F877 ima Input Capture tajmer, ali se njegov brojac moze klokovati
najvise sa 5MHz.

24.12.2006. u 23:36 

zofr

Član broj: 126534
Poruke: 53
*.dynamic.sbb.co.yu.



Profil

icon Re: Tacno merenje vremenskog intervala25.12.2006. u 01:50
.

[Ovu poruku je menjao zofr dana 25.12.2006. u 03:08 GMT+1]
25.12.2006. u 01:50 

rsinisa
Sinisa Radanocevic
Smederevo

Član broj: 2716
Poruke: 332
213.244.197.*

Sajt: elmi.co.rs


Profil

icon Re: Tacno merenje vremenskog intervala25.12.2006. u 18:20
Mislim da sam nasao resenje za tvoj problem, nisam se posebno udubljivao, ali bi trebalo da to moze da ti zavrsi posao. Elem, moje resenje pored mikrokontrolera zahteva i jedan binarni brojac koji mora da ima od ulaza CLK, -EN i RES, a od izlaza 4 (ili vise, procenis sam posle) izlaza, a sve bi se povezalo na sledeci nacin: napravis oscilator potrebne frekvence koji vodis na, naravno, CLK ulaz brojaca. Signal kome treba da meris trajanje log. nule povezes na -EN i na jedan ulazni pin kontrolera, zvacemo ga U1. Izlaze iz brojaca (Q0 do Q3) povezes na 4 ulaza od kontrolera (U2 do U5) i jedan izlazni pin kontrolera (I1) spojis sa RES ulazom brojaca. Program za kontroler bi radio ovako: na pocetku resetujes sa I1 brojac i cekas da na U1 padne nivo na 0. Tog trenutka binarni brojac pocinje da radi (jer je na -EN stigao nizak nivo), a ti kontrolerom proveravas stanje na U5, odn. brojis koliko je "shesnaestica" proslo. Kada na U1 dobijes visok nivo (brojac prestaje da radi zbog visokog nivoa na -EN) uzmes stanje sa sva 4 izlaza brojaca, odn. ulaza U2 do U5, i uz malo matematike dobijes rezultat. Posle toga sve u krug, resetujes brojac itd. E sad, broj izlaza brojaca koji bi se koristili zavisio bi od brzine kontrolera; ako je kontroler spor, uzmes vise izlaza i obrnuto. Ako ne mozes da nadjes brojac sa -EN (nemam sada vremena da trazim po katalozima) mozes da uzmes jednu ILI kapiju na cije bi ulaze doveo izlaz iz oscilatora i mereni signal, a izlaz spojio na CLK.
Ako nisam bash dobro objasnio mogu da ti nacrtam okvirnu shemu.

Pozdrav.
Sinisha
25.12.2006. u 18:20 

tomam
Tomislav Milicevic

Član broj: 104895
Poruke: 22
*.eunet.yu.



Profil

icon Re: Tacno merenje vremenskog intervala25.12.2006. u 19:01
Ljudi su sa PIC16F84 pravili brojace frekvencije preko 30MHz pogledaj po netu?
25.12.2006. u 19:01 

rsinisa
Sinisa Radanocevic
Smederevo

Član broj: 2716
Poruke: 332
213.244.197.*

Sajt: elmi.co.rs


Profil

icon Re: Tacno merenje vremenskog intervala25.12.2006. u 19:05
Jeste, i Voja Antonica pravio do 50 Mhz, ali koja rezolucija?

Pozdrav.
Sinisha
25.12.2006. u 19:05 

tomam
Tomislav Milicevic

Član broj: 104895
Poruke: 22
*.eunet.yu.



Profil

icon Re: Tacno merenje vremenskog intervala25.12.2006. u 19:25
Ne razumem to o rezoluciji?
On je direktno u kontroler uvodio tu frekvenciju bez predskalera(samo uoblicavac impulsa) i brojao te impulse!
25.12.2006. u 19:25 

rsinisa
Sinisa Radanocevic
Smederevo

Član broj: 2716
Poruke: 332
*.vdial.verat.net.

Sajt: elmi.co.rs


Profil

icon Re: Tacno merenje vremenskog intervala25.12.2006. u 20:48
Kao prvo, cinjenica da je taj instrument pravio Voja Antonic (a poznato je da on hardver i softver iskoristi do krajnjih granica) meni je bila dovoljna da ne sumnjam u to da nije moglo i bolje. U textovima, kao i na displeju instrumenta, jasno se vidi da ima deljenja, a merenje je podeljeno na 4 opsega kako bi preciznost na nizim frekvencama bila veca (zbog manje vrednosti preskalera). Evo, kopao sam malo po prasini i nasao casopis u kome je objavljen prvi deo texta u kome autor kaze:
" I kod frekvencmetra je iskoriscen interni brojac TMR0, cime je dobijena granicna ucestanost od (za ovakav instrumet) zavidnih 50 MHz. Ipak, posto je za ovakvu brzinu bilo neophodno uposliti i preskaler, a povecan stepen deljenja automatski znaci i gubitak rezolucije ocitavanja instrumenta, napravljen je izbor faktora deljenja preskalera u pet koraka, od faktora 0 (pri cemu se dobija granicna ucestanost od 5 MHz, uz rezoluciju ocitavanja od dve jedinice), do faktora 16 (50 MHz / rezolucija 32)."
Doduse, u finalnoj verziji autor je smanjio frekvencu na 40 MHz i podelio to u 4 opsega.

Znaci, da je moglo bez preskalera, Voja bi to sigurno i uradio.

Pozdrav.
Sinisha


[Ovu poruku je menjao rsinisa dana 25.12.2006. u 23:03 GMT+1]

[Ovu poruku je menjao rsinisa dana 25.12.2006. u 23:03 GMT+1]
25.12.2006. u 20:48 

zofr

Član broj: 126534
Poruke: 53
*.dynamic.sbb.co.yu.



Profil

icon Re: Tacno merenje vremenskog intervala26.12.2006. u 00:03
rsinisa

Potpuno ti je tacan komentar sto se tice merenja 50MHz-a.

Tvoj predlog za resenje problema tacnog merenja vremena je najozbiljniji od svih koji su mi ponudjeni.
Sve je u redu samo bih morao da resim nekoliko problema:

1. Tesko mi pada da izdvojim jos 40-tak EUR za tacan i stabilan oscilator od 20 MHz, jer sam vec nabavio
dva od 10MHz.
2. Tvoj predlog ne zahteva da softverski produzujem tajmerski brojac za nekoliko bita, sto je dobro. Nije dobro
to sto se ti bitovi nalaze u spoljasnjem brojacu i vrlo brzo se menjaju, i dok ih pokupim u interrupt proceduri
oni ce biti promenjeni. To ce ozbiljno ugroziti tacnost merenja.

Ipak hvala.

PS: pocecu da razmisljam da trazim resenje sa mozda nekim drugim kontrolerom.
26.12.2006. u 00:03 

rsinisa
Sinisa Radanocevic
Smederevo

Član broj: 2716
Poruke: 332
*.beobug.com.

Sajt: elmi.co.rs


Profil

icon Re: Tacno merenje vremenskog intervala26.12.2006. u 17:37
Hm, a zasto si kupovao oscilatore pre nego sto si utvrdio koji ti treba?
Nego, nisi me do kraja razumeo; uopste ti ne treba interapt jer pratis samo stanje najtezeg bita brojaca (dok traje uslov za brojanje) i time uvecavas brojac tih, kako da se izrazim, grupa brojeva. Npr. ako koristis 4 bita brojaca, pratis samo najtezi i kada on predje prvo sa 0 na 1 ne radis nista, samo pamtis da je presao sa 0 na 1. Kada nakon toga predje sa 1 na 0 uvecas jedan brojac koji pamti koliko je grupa od po 16 proslo. Znaci, ako ti je frekvenca oscilatora 16 MHz, ti na Q3 imas frekvencu od samo 1 Mhz (koja otprilike moze da se prati sa 20 MHz oscilatorom na PIC-u). A mozes da gledas stanje na Q4 i kada god se promeni uvecas brojac grupa koji opet oznacava grupu od 16 brojeva (jer gledas svaku promenu). Mozes ti da pratis i neki tezi bit brojaca koji se jos sporije menja, npr. Q7 i imas veoma sporu promenu na njemu. Znaci, ako bi pratio svaku promenu Q7 imao bi brojanje grupa od 128. Jedino sto moras onda da upotrebis vise pinova kontrolera za krajnji broj.
Ne znam da li si me sada bolje razumeo, a ja cu za svaki slucaj da nacrtam shemu (posle sam video da imas 2 signala koja pratis, ali to nije nikakav problem).

Pozdrav.
Sinisha
26.12.2006. u 17:37 

_str_

Član broj: 53798
Poruke: 634
80.74.160.*



Profil

icon Re: Tacno merenje vremenskog intervala26.12.2006. u 20:40
Ljudi su bili i na Mesecu bez pic-a:,
Koja je oznaka tog glupog (ogranicenog) kontrolera, 16Fxx?

__*__
*___*
26.12.2006. u 20:40 

grabik

Član broj: 32507
Poruke: 160
80.80.60.*



Profil

icon Re: Tacno merenje vremenskog intervala26.12.2006. u 23:26
Nisam do sada koristio capture modul iz pic mc-a tako da ovo nisam nikada radio u praksi.

Trebalo bi da se iz tog temp. stabilnog oscilatora pogoni pic(16f877a) na 10mhz ujedno i jedan od njegovih brojaca TMR1 ili TMR3 ,

kod nailaska prve ivice koju mjerimo capture upisuje stanje koje je u 16bit brojacu u capture registar ujedno signal koji mjerimo dovodimo na portb gdje kod svake promene na ulazu dobijamo prekid koji oznacava da je prva vrednost tmr1 brojaca capture registru ,

provera logickog stanja na pinu porta b da nije doslo do nekog kratgog prekida onda ponistimo vrednosti i cekamo ponovo ulaznu ili silaznu ivicu ako je signal bio jako kratak doslo je do smetnje,

promjenimo setovanje capture modula da na ulaznom pinu ccp sa ulazne ivice generise capture sada na silaznu ili obrnuto,

brojimo prekide koje dolaze sa ccp registra kod prekoracenja 16bit ccp registra ,vrime je oko 22ms znaci 2-4 prekida,


kod nailaska sledece ivice koja generise ponovo upis vrednosti koja je u tajmeru u ccp ,ocitamo ponovo capture registar ,


sada obracunamo obje vrednosti koje smo ocitali iz capture registara + broj prekida sa ccp modula -1.

Tajmer broji direktno klokove koji dolaze sa vanjskog oscilatora bez preskalera, tmr1 ili tmr3 se ne zaustavlja i samo se iz njega upisuju vrednosti u ccp registar.
Kako pic radi hardverski upis iz tmr u capture registar greska je vrlo mala odnosno kasnjenje upisau ccp registar , a ako postoji greska treba je softverski eliminisati verovatno je konstantna ,eventualno ako zavisi od temperature sa adc meriti temp i izvrsiti korekciju.

26.12.2006. u 23:26 

[es] :: Elektronika :: Mikrokontroleri :: Tacno merenje vremenskog intervala

Strane: 1 2

[ Pregleda: 2912 | Odgovora: 33 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.