Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • Pouzitie Capture a zaroven PWM

Pouzitie Capture a zaroven PWM

Všetko čo sa týka mikropočítačov + Sekcia Arduino

Moderátori: psichac, Moderátori

Pouzitie Capture a zaroven PWM

Odoslaťod romiadam » 20 Aug 2019, 12:04

Cavte.

Mozem pouzit PWM na jednom CPP1 a zaroven na CPP2 Capture mode? Ide to? Mne sa zda ze nie, ale spytam sa. Alebo bud len PWM alebo len Capture? Jedna sa o 28 pinovy PI18F2550.

https://ww1.microchip.com/downloads/en/ ... 39632c.pdf

Potrebujem merat otacky ventilatora (Capture) a zaroven regulovat rychlost (cez PWM).

Ako by ste to riesli vy? Cez interrupt on change na RB pine a merat dlzku impulzu na niektorom volnom timeri?
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje
romiadam
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 2959
Založený: 09.04.2008
Bydlisko: Wicklow, Irsko
Karma: 15

Re: Puzitie Capture a zaroven PWM

Odoslaťod Najgel » 20 Aug 2019, 16:27

A skúsil si to vôbec ?
Keď neodpisujem tak tu nie som, alebo som a neodpisujem :D

MPLAB & PIC
Texas Instruments DSP TMS320Fxxxxx
Tevo Tarantula 3D
Ponúkam 3D tlač.
Ponúkam návrh a vývoj elektroniky na zákazku.

UNIZA 5.ročník
Najgel
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 1630
Vek: 24.43
Založený: 02.07.2010
Bydlisko: Námestovo, Žilina(škola)
Karma: 31

Re: Puzitie Capture a zaroven PWM

Odoslaťod romiadam » 20 Aug 2019, 17:08

Zatial nie. Priznam sa ze neviem ako. A chcel som sa opytat este skor ako zase zacnem sa sprtat v datasheete. Ci to ma zmysel sa v tom sprtat. Teoreticky by to mohlo chodit u 44 pinoveho MCU, ale ja mam len 28 pinovy.

Dva dni som teraz riesil rozkmitanie MCU (reset). Potrebujem chvilu oddych od datasheetu. Preto sa pytam ci to niekto riesil niekedy.
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje
romiadam
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 2959
Založený: 09.04.2008
Bydlisko: Wicklow, Irsko
Karma: 15

Re: Puzitie Capture a zaroven PWM

Odoslaťod romiadam » 20 Aug 2019, 19:45

Uz sa v tom zacinam sprtat. Vyzera to ze by to malo ist. 3 a 5 riadok zdola.

Capture_PWM.PNG
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje
romiadam
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 2959
Založený: 09.04.2008
Bydlisko: Wicklow, Irsko
Karma: 15

Re: Puzitie Capture a zaroven PWM

Odoslaťod misocko » 20 Aug 2019, 20:58

romiadam napísal:Ako by ste to riesli vy? Cez interrupt on change na RB pine a merat dlzku impulzu na niektorom volnom timeri?

mne sa najviac pacilo zmerat celkove trvanie 10-15 pulzov (pulzy som pocital cez prerusenie)
misocko
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 2986
Vek: 42.9
Založený: 14.06.2009
Bydlisko: Hlohovec
Karma: 23

Re: Puzitie Capture a zaroven PWM

Odoslaťod romiadam » 20 Aug 2019, 21:59

Ja si myslim, ze taketo meranie (merat 15 otacok) je dobre pri vysokych otackach a hlavne ked sa meria urcity rozsah otacok napr od 2000 po 3000 ot/min. Nie je to vhodne pre cely rozsah otacok. Pre 180 ot/min, jedno meranie bude trvat 5 sekund.
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje
romiadam
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 2959
Založený: 09.04.2008
Bydlisko: Wicklow, Irsko
Karma: 15

Re: Puzitie Capture a zaroven PWM

Odoslaťod misocko » 20 Aug 2019, 22:20

aj v pripade nizkych otacok by som nemeral dlzku pulzu, rozhodne nie jedneho (par pulzov a priemer) ale to sa dostanes na to co som opisal ja. v pripade ze mas siroky rozsah otacok, mozes si pocet pulzov urcovat dynamicky (velke otacky - viac pulzov, male otacky - menej pulzov)
merat cas jedneho pulzu , rozhodne nie, dostanes sa do bodu ked budes opet merat cas viac pulzov a priemerovat aby ti neskakali hodnoty.
misocko
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 2986
Vek: 42.9
Založený: 14.06.2009
Bydlisko: Hlohovec
Karma: 23

Re: Puzitie Capture a zaroven PWM

Odoslaťod mac26 » 20 Aug 2019, 22:59

plavajuci priemer. V nejakej premennej mas sucet poslednych n merani. Ked ti pride prerusenie (nove meranie), pripocitas ho ku suctu a tiez odcitas to najstarsie (aby si tam mal stale rovnaky pocet merani). Potom ti to len staci vydelit poctom merani a mas vysledok. ten pocet si zvol nejaku mocninu 2. (4, 8, 16, ...), potom mozes pekne delit bitovym posunom.
mac26
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1070
Založený: 01.02.2010
Bydlisko: Martin
Karma: 7

Re: Puzitie Capture a zaroven PWM

Odoslaťod peterple » 20 Aug 2019, 23:04

Z vlastnej skúsenosti môžem doporučiť meranie rýchlosti práve cez periódu. Hlavne vtedy ak na to ide potom PWM regulácia. Tam je dôležité mať info o rýchlosti čo najrýchlejšie. Chce to samozrejme precízny snímač. V aplikáciách používam optické s počtom 100 až 2000 impulzov na otáčku (podľa rýchlosti otáčania). Že to málinko poskakuje od merania k meraniu až tak nevadí. Hmota zariadenia to odfiltruje sama aj bez nejakého algoritmu. Okrem toho nejaký plávajúcu priemer v pohode stíha aj mrňavý MCU kludne aj na 3000ot/min.
No a samozrejme že capture register je na to ideálny nakoľko celé meranie robí hw a rozlíšenie sa môže pohybovať pokojne aj 1μs.
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
peterple
Ultimate člen
Ultimate člen
Príspevky: 1898
Vek: 52.81
Založený: 25.06.2013
Bydlisko: Krajné
Karma: 52

Re: Puzitie Capture a zaroven PWM

Odoslaťod romiadam » 21 Aug 2019, 01:42

Diki za rady.

peterple (alebo hocikto), ak sa nieco toci 3000 ot/min (50 ot/sek) tak pri 100 impulzoch na 1 otacku dostneme 5000 impulzov/sek. Dlzka jednej periody je potom 1/5000 = 200usek. Ak MCU bezi na frekv. 4Mhz (moze byt aj 8 alebo 16Mhz, to len priklad), najblizsia hodnota co sa da namerat je 201 usek. 1/0,000201 = 4975 /100 = 4975 *60 = 2985ot /min. Cize hodnota ot/min poskakuje po 15ot/sek. Toto sa potom zpriemeruje na kolkych meraniach 3, 5 alebo aj 10?

Ak otacky klesnu na 1200 ot/min a stale mame 100 impulzov na otacku. Potom analogicky nameriame 1197,6ot/min a otacky poskakuju po ca 2,5 otackach. Toto uz je lepsie.

Ak otacky klesnu na 120 ot/min a stale mame 100 impulzov na otacku. Potom analogicky nameriame 119,76ot/min a otacky poskakuju po ca 0,3 otackach. Tu uz ani priemerovat netreba.

Prave som pochopil, preco na prednom kolese snimac pre ABS ma nenormalne vela na husto zubov. (okolo 200 zubov na obvod, mozno viac, odhadujem)


Ale spat k teme.
Vyzera to tak ze to MCU zvladne aj PWM aj Capture. Momentalne to kodujem a uvidim. Potom dam vediet ci MCU zvladlo oboje naraz, ak to rozbeham.

Toto je len taka priprava na rocnikovy projekt do skoly (na stare kolena sa ucim). Nasiel som "sufliku" PC ventilator ktoreho otacky sa riadia cez PWM (mam tu o tom tiez temu) a otacky sa snimaju cez hall snimac. Tam su iba dva impulzy na otacku. Z predoslyh vypoctov 2 impulzy to nie je bohvie co pre presne merane, ale ako pre naucenie sa to postaci.

Momentalne len ako cvicenie som si dal ulohu ze z PC z Labview ("potenciometer") sa kazdych napr. 250ms posle do MCU cez RS232 iformacia o PWM periode (30% duty cycle), MCU to nastavi do PWM, ventilator sa ustali na tych otackach a MCU priebezne neustale posiela tiez kazdych 250ms informaciu spat do PC, kde sa otacky zobrazia v PC ako aktualne islo a aj ako graf. Nieco taketo:

Ventilator3.png


Ale neskor budem potrebovat aj riadenie. Rozmyslam ze urobim stary znamy projekt levitacia pingpongovej lopticky vo vzduchu PID regulaciou. Ale to mi este musi odsuhlasit koordinator projektu, co bude az v niekedy v oktorbri. Tam budem potrebovat co najrychlejsie merat poziciu lopticky a rozmyslam ze asi to urobim ultrazvukovym snimacom, ale este uvidim, lebo nepaci sa mi presnost. Na ebay pisu ze tie moduly maju presnost +-5mm To je dost. Tiesz tam mozem dat otacky ventilatora. Ale to tu teraz nechcem riesit. Potom tu na ten projekt zalozim temu, a tam to mozeme preriesit, ze co odporucate, co a ako by to bolo najlepsie.

Zatial sa ucim veci co budem potrebovat. Uz som komunikaciu Labview MCU cez RS232 (VISA Serial) zvladol. Predvcerom som riesil PWM, teraz riesim Capture a potom ci to pojde spolu naraz.

Teraz mam nenormalne vela casu. Zdrbal som sa z rebrika (taky vyklapaci z povaly a rebrik sa zlozi ako vejar z troch kusov). Ked som bol v polovici dva sroby hore co drzia rebrik k tomu poklopu sa vytrhly a ja s rebrikom v ruke som sa zacal dozadu otacat-vyuklapat. Potom pri vyklapani sa vytrhli dalsie dva dole. Tam sa v tom okamihu nedalo coho chytit. Uz ked som bol vyklopeny asi tak 45stupnov, skoro chrbtom k zemi, nohy sa mi zosmykli z rebrika a dopadol rovno na patu a kurna bol som akurat bosy. Jak keby mi v pate nieco vybuchlo, taky to bol pocit, vtom okamihu. Mam to stale pred ocami. Museli mi ju operovat aby dali kosticky namiesto (srobiky a pod.). Takze teraz nemozem nic robit len lezat pri TV a sediet pri PC..... co mi vyhovuje pre pripravu na projekt. Takze tak.
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje
romiadam
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 2959
Založený: 09.04.2008
Bydlisko: Wicklow, Irsko
Karma: 15

Re: Puzitie Capture a zaroven PWM

Odoslaťod romiadam » 21 Aug 2019, 03:03

Capture funguje pekne. Osciloskopom som nameral jednu periodu vystupnych impulzov z ventilatora 8,829ms (na pol otacky). Capture nameral 22BHh co je 8890usec a to je 8,890ms. Zajtra spustim PWM a uvidim ci to pojde naraz aj s Capture
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje
romiadam
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 2959
Založený: 09.04.2008
Bydlisko: Wicklow, Irsko
Karma: 15

Re: Puzitie Capture a zaroven PWM

Odoslaťod peterple » 21 Aug 2019, 08:38

romiadam napísal:peterple (alebo hocikto), ak sa nieco toci 3000 ot/min (50 ot/sek) tak pri 100 impulzoch na 1 otacku dostneme 5000 impulzov/sek. Dlzka jednej periody je potom 1/5000 = 200usek. Ak MCU bezi na frekv. 4Mhz (moze byt aj 8 alebo 16Mhz, to len priklad), najblizsia hodnota co sa da namerat je 201 usek. 1/0,000201 = 4975 /100 = 4975 *60 = 2985ot /min. Cize hodnota ot/min poskakuje po 15ot/sek. Toto sa potom zpriemeruje na kolkych meraniach 3, 5 alebo aj 10?

??? hádam 15ot/min to je iba 0,5% z tých 3000. To nemá cenu riešiť. Či?
Ak máš 4Mhz takt, tak rozlíšenie môžeš hnať až na 250ns. Samozrejme si ale obmedzený aj z druhej strany. Ak je čítač 16bitový tak je ideálne ak pokryješ celý rozsah otáčok bez pretečenia 16bitového rozlíšenia. Ja v mojej aplikácii mám tick čítača až 8μs nakoľko ma to zajíma tak do 2000ot/min a viac ma zaujímajú nižšie otáčky.
Regulačná slučka rýchlosti mi beží s periodou okolo 30ms, s obyčajným 8bitovým PWM. Regulujem otáčky podľa profilov ktoré sa skladajú z konštantných úsekov alebo z rámp. Používam iba PI algoritmus nakoľko to vyhovuje povahe veci. D zložka síce zrýchľuje reguláciu ale zase ju môže viacej rozkmitávať. To je samozrejme o hľadaní optimálnych konštant regulátora pre danú sústavu.

Tiež sa dá pridať aj tretí byte rozlíšenia, teda natiahnuť to až na 24 bitov. Ale tam už máličko komplikuje situáciu ako to správne sw odchytiť aby si občas nemal chybu o 0x10000 impulzov. A navyše ak to potrebuješ aj logovať tak to aj zvyšuje objem dát.
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
peterple
Ultimate člen
Ultimate člen
Príspevky: 1898
Vek: 52.81
Založený: 25.06.2013
Bydlisko: Krajné
Karma: 52

Re: Puzitie Capture a zaroven PWM

Odoslaťod romiadam » 21 Aug 2019, 13:14

15ot/min ma nezaujima, skor som to len informativne chcel zobrazit na displeji (v Labview) plynule.

Ako sa to riesi realne v praxi, ked nieco ukazuje otacky. Ukauje to od 0 plynule po napr. 3000 ot/min?
alebo ukazuje stale nulu a otacky naskocia niekde az od napr. 100 ot/min a potom plynule (alebo skokovo) ukazuje po 3000ot/mi? A ked otacky klesaju tak pod 300 ot/min to prestane ukaozvat otacky aj ked sa to nieco este toci?

V toyota yaris je digitalny tachometer. Tam to ako riesi, ze to ukaze rychlost 1, 2, 3, 4, 5, 6, .....km/h pekne plynlej ked to skace napr. 2, 4,,5, 7, 10... druhy krat 1, 3, 8, 10 km/h, cize su tam vsetky cisla, len niekedy sa niektore cisla preskocia.

Vidim ze si v tom doma ohladom PID regulacie s MCU. Mozem sa potom ozvat s otazkami (otvorim tu temu potom)?
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje
romiadam
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 2959
Založený: 09.04.2008
Bydlisko: Wicklow, Irsko
Karma: 15

Re: Pouzitie Capture a zaroven PWM

Odoslaťod peterple » 21 Aug 2019, 23:07

Neviem ako to robia u toyoty. Ja to robím tak že jedným čítačom meriam počet impulzov, druhý volne beží s taktom 8μs a hrana pulzu snímača otáčania spôsobí odchytenie jeho hodnoty do capture registrov. Tak viem dostatočne presne zmerať rýchlosť aj pri nízkych otáčkach lebo mám nameraný čas medzi impulzami zo snímača otáčania a aj mám presný počet impulzov. Z počtu impulzov a presného času medzi nimi sa potom dá presne vypočítať rýchlosť aj keď by to bol len jeden jediný impulz za tú dobu 30ms. Okrem toho si viem tak aj vypočítať rýchlosť medzi dvoma meraniami čo je zase dôležité pre experiment. Jedna vec tak slúži aj na reguláciu rýchlosti aj na vyhodnocovanie experimentu.
Mašinka potom behá takto
https://youtu.be/tqz2fMXxmhY
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
peterple
Ultimate člen
Ultimate člen
Príspevky: 1898
Vek: 52.81
Založený: 25.06.2013
Bydlisko: Krajné
Karma: 52


Naspäť na Mikropočítače

Kto je prítomný

Užívatelia prezerajúci si toto fórum: Žiadny registrovaný používateľ a 0 hostí.

Forums ©
Autor stránky je Ondrej Závodský(zawin), o graficky design sa stará Ľuboš Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
Čas potrebný k spracovaniu stránky 0.60 sekúnd