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

Generisanje kvadratnog signala

[es] :: Elektronika :: Mikrokontroleri :: Generisanje kvadratnog signala

[ Pregleda: 2270 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Branislav83
Branislav83
Lmb Technologie
Nis

Član broj: 180247
Poruke: 43
*.adsl-4.sezampro.yu.



Profil

icon Generisanje kvadratnog signala08.09.2010. u 16:53 - pre 138 meseci
Pozdrav svima

Da li neko zna, ili ima ideju kako da na najlaksi nacim generisem kvadratni signal sa PIC18F4620.
Potreno je da se generise signal frekvencije od 4000Hz do 4100Hz u 100 korako, tj.
sa rezolucijim od 1Hz i ispune 50%.
Pokusao sam sa CCP modulom sa taktom MCU 10MHz i 4XPLL ali nije islo. Bila je problem rezolucija.

Unapred hvala na odgovorima


 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
195.252.66.*



+28 Profil

icon Re: Generisanje kvadratnog signala08.09.2010. u 18:46 - pre 138 meseci
PWM (HPWM) ?



Edit: 'bem ti ovu ES skriptu koja ti napise sledece "Preveliki deo teksta Vaše poruke je napisan velikim slovima. Ovo se uglavnom smatra VIKANJEM, što nije dopušteno na forumu. Molimo da izmenite poruku i pokušate ponovo."
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15510
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2346 Profil

icon Re: Generisanje kvadratnog signala08.09.2010. u 19:45 - pre 138 meseci
Citat:
Sepa011: PWM (HPWM) ?


tesko. sa epwm modulom ima 16 bitnu rezoluciju duty cycle-a, ali frekvenciju ne menja tako lako.

PWM Period = [(PR2) + 1] • 4 • TOSC • (TMR2 Prescale Value)

ako je kloknut na 40MHz na primer najblize 4000Hz je

PR2 = 0b10011011 ;
T2CON = 0b00000111 ;
CCPR1L = 0b01001101 ;
CCP1CON = 0b00111100 ;

sto ce dati 4006.41Hz

prvi pre njega je 3980.89Hz a prvi posle njega je 4032.26Hz pa 4058.44Hz pa 4084.97Hz ... dakle rezolucija sa 1Hz ... nece da radi ..

ako ga poteras na 20MHz bude jos gore ... na 8 i 4MHz je prilicno isto %$%# kao i sa 40MHz (malo gore ali ..)

koliko brza promena izmedju vrekvencija je potrebna?

Mozes i sam da napravis brojac koji pici na tajmeru u taktu i da u while petlji proveravas "dokle je dosao" i sam da radis on/off na izlaznom pinu .. dovoljno je niska rezolucija da bi to mozda i mogao da izvedes ... dakle uzmes neki 16bitni counter (ako se dobro secam imas 3 komada) i pustis ga da radi na lokalnom taktu (npr 8MHz pic, znaci on ce da roka na 1MHz (dakle na svakih 0.000001sec, 4KHz je 0.00025 dakle na svakih 250 tikova tajmera tebi prodje jedna perioda na 4K) proveravas njegov brojac u while petlji i kada stigne do 125 togglujes izlaz i resetujes timer na 0. menjanjem tog broja gde toglujes izlaz menjas frekvenciju, 125 ce biti 4KHz, svaki sledeci ce biti 0.000002 sec duzi/kraci, tj frekvencija izlaznog signala ce ti biti 1/("broj"*0.000001*2) sto znaci

125 : 4000Hz
124 : 4032.25Hz

dakle .. opet isti problem kao sa pwm-om :) (jeli, on radi isto tako samo sam) .. ako ga podignes na 40MHz imaces malo manju gresku rucno nego sa pwm-om ali opet neces imati 1Hz rezoluciju



mozes da experimentises sa varijantom da uzmes i napravis PWM izlaz sa varijabilnim DC-om (imas visoku rezoluciju na tom picu, uzmi neku frekevnciju koja ti odgovara da radi sa sto vecom preciznoscu, na primer 39.06KHz na 40MHz (prescaler 1, pr2 FF ti daje 10bitni pwm). Taj pwm izlaz pretvori u DC napon Vss-Vdd uz pomoc obicnog RC filtera (eventualno moze i jedan op amp da izbaferujes DC koji ti izbaci RC filter).
Onda taj DC dovedes na voltage to frequency (npr LM231) i "voila" dobio si varijabilni freq ...


ono sto bi bilo "pravilno" je da uzmes neki oscilator koji ti daje mogucnost da se usiljis blize frekvencijama koje ti trebaju ...3.2768MHz bi mozda mogao da odradi posao ... uradi racunicu ..


 
Odgovor na temu

plc
vladislav
Velika Plana

Član broj: 266870
Poruke: 107
212.200.54.*

Sajt: www.industrijasrbije.rs


+1 Profil

icon Re: Generisanje kvadratnog signala08.09.2010. u 20:39 - pre 138 meseci
bogdan je naveo pametan primer,al da se ne mucis odi na sajt mikroelektronike i skini demo verziju kompajlera.
Ima da se igras do sutra.Izmedju ostalog imas gotov primer u folderima za PWM.
 
Odgovor na temu

Branislav83
Branislav83
Lmb Technologie
Nis

Član broj: 180247
Poruke: 43
*.adsl-4.sezampro.yu.



Profil

icon Re: Generisanje kvadratnog signala08.09.2010. u 21:18 - pre 138 meseci
Pozdrav

Odradio sam vec tu racunicu i eksperimentisao sam.
Pokusao sam i sa PWM-om i sa Compare mod, ali je problem isti.
Ne moze da se postigne tezolucija od 1Hz.
Koristio sam Timer1 koji se klokuje sa 10MHz (10Mhz kristal i 4xPLL, na ulazu brojaca imao slosk od 10Mhz).
To daje perod od 0.1uS. I sa njom imam recimo osd 4001Hz do 4010Hz samo tri promene frekvencije (zbog zaokruzivanja).
A meni je potrebno 10 i to da se promene u intervalu od 2s.
Razmosljao sam i VCO-u ali sam to ostavio za sutra da probam (za danas je bilo dosta pokusaja )
Ne znam mozda nesto moze da se odradi sa nekim PLL-om, ali o tome cu razmisliti sutra.

Plc, ne znam sta si mislio da uradiom sa mikroC-om. Radio sam u njemu i mogu da kazem da ga solidno poznajem. Sada
trednutno radim u CCS i MikroC. Zavi sta treba da se uradi, tj. tamo gde je lakse.

Hvala na odgovorima
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15510
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2346 Profil

icon Re: Generisanje kvadratnog signala08.09.2010. u 21:29 - pre 138 meseci
to je zez sa pwm-om, dc je prilicno ok rezolucija ali frekvencija nije ... jedino ako si pravio racunicu sa nekim "cudnim" frekvencijama ... (da ga teras npr na 32.768MHz sa 8.192 kristalom i pll-om)
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.adsl-a-1.sezampro.yu.



Profil

icon Re: Generisanje kvadratnog signala09.09.2010. u 12:22 - pre 138 meseci
Ako ne grešim trajanje poluperiode za signal od 4000Hz je 125us dok je za 4100Hz 121,85us. Ako je instrukciski takt 10Mhz najbrža promena stanja izlaznog pina može da bude u koracima od 0,1us. Razlika izmeđi min i max dužine trajanja poluperioda je 125us-121,85us=3,15us što daje da je moguće imati nekih 31 koraka, znači ~3Hz rezolucije. Znači da ti je potreban mcu koji ima veći instrukciski takt a kako 18 nemaju toliku procesorsku moć (mislim da je 16mips-a maksimalno) znači odabereš 24H seriju (40mips-a) i završiš posao.

 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 911
*.dynamic.isp.telekom.rs.



+80 Profil

icon Re: Generisanje kvadratnog signala10.09.2010. u 12:58 - pre 138 meseci

Pogledaj http://www.myplace.nu/avr/minidds/index.htm mozda pomogne. Ja sam to radio sa AVR.
gorankg
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.adsl-a-1.sezampro.yu.



Profil

icon Re: Generisanje kvadratnog signala22.09.2010. u 09:26 - pre 138 meseci
Citat:
goran_68: Pogledaj http://www.myplace.nu/avr/minidds/index.htm mozda pomogne. Ja sam to radio sa AVR.


To je OK ali ta rezolucija o kojoj se govori je teoretska zato što dobijene periode nisu uvek iste dužine i kad se uzme srednja vrednost onda se i dobija ta rezolucija. Sa stanovišta jedne periode koja bi trebala biti uvek iste dužine ne može se nikako dobiti ta rezolucija jer promenu stanja pinova može najbrže izvršiti za 0,8138us (9 ciklusa sa oscilatorom od 11,05920Mhz) u tom slučaju.
 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 911
*.dynamic.isp.telekom.rs.



+80 Profil

icon Re: Generisanje kvadratnog signala22.09.2010. u 19:58 - pre 138 meseci
Za uslove koje je postavio Branislav83 OK je. Ne treba mu ni otpornicka mreza. Problem je sto taj kontroler ne moze da radi nista dok obavlja generisanje signala. S obzirom da ne predstavlja neki finansijski izdatak moze da ima dva povezana kako god, glavni i ovaj koji radi kao generator.
gorankg
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Generisanje kvadratnog signala

[ Pregleda: 2270 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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