PWM elve, mikroszervó motor vezérlése MiniRISC processzoron



Hasonló dokumentumok
Digitális technika (VIMIAA01) Laboratórium 11

Digitális technika (VIMIAA01) Laboratórium 11

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA01) Laboratórium 9

Digitális technika (VIMIAA01) Laboratórium 9

Karakteres LCD kijelző használata MiniRISC processzoron

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

A/D és D/A konverterek vezérlése számítógéppel

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

Összetett feladatok megoldása

Számlálók, adatfeldolgozó egységek

Elektronika Előadás. Digitális-analóg és analóg-digitális átalakítók

T2-CNCUSB vezérlő család hardver segédlet

Nyolcbites számláló mintaprojekt

Analóg-digitál átalakítók (A/D konverterek)

Logikai áramkörök. Informatika alapjai-5 Logikai áramkörök 1/6

HSS60 ( ) típusú léptetőmotor meghajtó

3.6. HAGYOMÁNYOS SZEKVENCIÁLIS FUNKCIONÁLIS EGYSÉGEK

LOGSYS LOGSYS SZTEREÓ CODEC MODUL FELHASZNÁLÓI ÚTMUTATÓ szeptember 16. Verzió

SZORGALMI FELADAT. 17. Oktober

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék

HSS86 ( ) típusú léptetőmotor meghajtó

Digitális technika (VIMIAA02) Laboratórium 5.5

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

Digitális technika (VIMIAA02) Laboratórium 4

Programozható Vezérlő Rendszerek. Hardver

Iványi László ARM programozás. Szabó Béla 6. Óra ADC és DAC elmélete és használata

Ellenőrző mérés mintafeladatok Mérés laboratórium 1., 2011 őszi félév

Digitális technika (VIMIAA02) Laboratórium 4

LÉPCSŐHÁZI AUTOMATÁK W LÉPCSŐHÁZI AUTOMATA TIMON W SCHRACK INFO W FUNKCIÓK W MŰSZAKI ADATOK

Digitális technika VIMIAA hét

Az 555-ös időzítő használata a mikrokontrolleres tervezésben

Analóg digitális átalakítók ELEKTRONIKA_2

Mérés és adatgyűjtés

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA hét

14. TARTALOM FUTTATÁSA A FEJLESZTŐLAP HÉTSZEGMENSES KIJELZŐJÉN

Szinkronizmusból való kiesés elleni védelmi funkció

Mérés és adatgyűjtés

Digitális technika (VIMIAA01) Laboratórium 4

Felhasználói kézikönyv MC442H típusú léptetőmotor meghajtóhoz

Digitális mérések PTE Fizikai Intézet

SYS700-PLM Power Line Monitor modul DDC rendszerelemek, DIALOG-III család

Mintavételes szabályozás mikrovezérlő segítségével

Négyszög - Háromszög Oszcillátor Mérése Mérési Útmutató

Összeadás BCD számokkal

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

Véges állapotú gépek (FSM) tervezése

IRC beüzemelése Mach3-hoz IRC Frekvenciaváltó vezérlő áramkör Inverter Remote Controller

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA01) Laboratórium 10

Digitális technika (VIMIAA02) Laboratórium 1

Elektronika Előadás. Modulátorok, demodulátorok, lock-in erősítők

Nagy Gergely április 4.

FL-11R kézikönyv Viczai design FL-11R kézikönyv. (Útmutató az FL-11R jelű LED-es villogó modell-leszállófény áramkör használatához)

Yottacontrol I/O modulok beállítási segédlet

PERREKUP DxxTx - HDK10 Rekuperátor vezérlő Használati Utasítás

SYS700-A Digitális szabályozó és vezérlõ modul DDC rendszerelemek, DIALOG-III család. Terméktámogatás:

Adatfeldolgozó rendszer tervezése funkcionális elemekkel

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

2. Elméleti összefoglaló

Újrakonfigurálható eszközök

Villamos jelek mintavételezése, feldolgozása. LabVIEW 7.1

Teljesítményelektronika szabályozása. Összeállította dr. Blága Csaba egyetemi docens

Véges állapotú gépek (FSM) tervezése

Elektronika 11. évfolyam

2.3. Soros adatkommunikációs rendszerek CAN (Harmadik rész alapfogalmak II.)

Labor 2 Mikrovezérlők

LED DRIVER 6. 6 csatornás 12-24V-os LED meghajtó. (RDM Kompatibilis) Kezelési útmutató

Elektronika Előadás. Analóg és kapcsoló-üzemű tápegységek

DIGITÁLIS KOMMUNIKÁCIÓ Oktató áramkörök

Mintavételezés és AD átalakítók

Digitális technika VIMIAA01 5. hét

Proporcionális hmérsékletszabályozás

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

Multi-20 modul. Felhasználói dokumentáció 1.1. Készítette: Parrag László. Jóváhagyta: Rubin Informatikai Zrt.

Az 555-ös időzítő használata a mikrokontrolleres tervezésben

Jelgenerátorok ELEKTRONIKA_2

88-as sorozat - Többfunkciós dugaszolható időrelék 8 A

8. Laboratóriumi gyakorlat INKREMENTÁLIS ADÓ

Érzékelők és beavatkozók

Digitális jelfeldolgozás

5. Laborgyakorlat. Számláló funkciók, időzítő funkciók.

A gyakorlatokhoz kidolgozott DW példák a gyakorlathoz tartozó Segédlet könyvtárban találhatók.

EB134 Komplex digitális áramkörök vizsgálata

X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

11. KÓDÁTALAKÍTÓ TERVEZÉSE HÉTSZEGMENSES KIJELZŐHÖZ A FEJLESZTŐLAPON

Orvosi Fizika és Statisztika

Felhasználói kézikönyv. 3DM860A típusú léptetőmotor meghajtó

5. Hét Sorrendi hálózatok

Hobbi Elektronika. Bevezetés az elektronikába: Műveleti erősítők - 2. rész

Elektronika laboratóriumi mérőpanel elab panel NEM VÉGLEGES VÁLTOZAT! Óbudai Egyetem

Villamos jelek mintavételezése, feldolgozása. LabVIEW előadás

Akusztikus MEMS szenzor vizsgálata. Sós Bence JB2BP7

Digitális technika VIMIAA hét

Az MSP430 mikrovezérlők digitális I/O programozása

Átírás:

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron F1. A mikroprocesszorok, mint digitális eszközök, ritkán rendelkeznek közvetlen analóg kimeneti jelet biztosító perifériával, tehát valódi, minőségi digitális-analóg konverterrel (DAC). Kis pontossági igények, illetve lassú kimeneti jelváltozási sebesség esetén a DAC kimeneti jele jól helyettesíthető egy digitális pulzussorozat átlagolásával megkapható analóg kimeneti jellel. Az átlagolást a legegyszerűbb RC simító/átlagoló szűrővel elvégezve, elfogadható minőségű kimeneti jelet kapunk. A digitális pulzussorozat egy rögzített periódusidejű, (T PWM ), de változó pulzusszélességű (T w <T PWM ) jel, aminek a hosszúidejű átlaga (feltételezve a CMOS logikai jelszintek névleges V H =V cc és V L =GND értékét) a következő V ki analóg = V cc * (T w /T PWM ) Ideális átlagolást feltételezve a V ki analóg kimeneti DC szint a következő: Az ideális átlagolás csak megközelíthető. A gyakorlatban LC (induktivitás-kapacitás) vagy RC (ellenálláskapacitás) alkatrészekből felépített alacsony frekvenciás szűrőket alkalmaznak. Amennyiben az átlagoló szűrő határfrekvenciája jóval az f PWM =1/T PWM érték alatt van, akkor az U ki analóg jel már egy elfogadhatóan kisimított DC átlagértéket reprezentál. Az ábrán a t=0 időpillanatban indított, kék színnel jelölt digitális PWM jelet 3 szűrőfokozaton vezetjük keresztül, melyek kimenetei sorrendben: RC1 lila, RC2 piros, RC3 zöld, mely kimenet bár lassan éri el, de egészen kis ingadozással kiadja a 3,75V kimeneti analóg jelszintet, a PWM jel 75%-os kitöltési tényezőjének megfelelően.

A változó pulzusszélességű kimeneti jel sokszor nem csak átlagolás után, hanem közvetlenül is felhasználható. Ilyen alkalmazás pl. a LED diódák fényerő vezérlése digitális PWM jellel, ahol a szükséges simítást, átlagolást a szemünk tehetetlensége végzi el. További alkalmazási terület pl. a mikroszervó motor vezérlése, ahol a pulzusszélesség, mint a szögelfordulás időskálára konvertált lineáris kódja szerepel és vezérli a mikroszervó motort a megfelelő pozícióba. (Emlékezzünk a félév elején tanult ofszet számábrázolási kódra!) A vezérlő jelet folyamatosan fenn kell tartanunk, mert a mikroszervó belső szabályozó áramkörei csak akkor tudják az adott pozíciót stabilan tartani. F1.a. Tervezzünk egy olyan digitális hardver egységet, ami legalább 0,5% pontossággal képes PWM pulzusszélesség modulált jelet előállítani. A T w pulzusszélesség egy 8 bites bemeneti változóval adható meg (pl. a LOGSYS kártyán az SW kapcsolóval.) A T periódusidő legyen ms nagyságrendű. Adjuk meg az egység Verilog HDL kódját! Alkalmazzuk a kimenetet LED fényerő vezérlésére! A LED PWM hardveres digitális megoldása a fenti paraméterek szerint 3 funkcionális elemet igényel. A LOGSYS kártya 16MHz-es órajelét egy 10 bites bináris számlálóval leosztjuk 64us-ra. Ezzel működtetjük a 8 bites PWM periódusidő mérőt, ami így 64us*256 = 16,384 ms idejű periódust állít be, ami kb. 61Hz frekvenciának felel meg. A kimeneti PWM jel előállítása egyszerű: A 8 bites SW kapcsoló értéket komparáljuk a PWM számláló értékéhez. Amíg az SW nagyobb, addig a kimeneti jel 1, ha már kisebb, akkor a kimeneti jel 0 lesz. A komparálási operátortól függően ( > vagy >= ) a PWM határok 0 99,6% vagy 0,39 100% tartományban használható, de biztosan jobb, mint 0,5% beállítási pontosság/felbontás mellett. A PWM egység Verilog HDL kódja (csak a lényeges kódrészletek): 10 bites előosztó a 64us ütemező jelhez: A PWM generátor egység, 8 bites számláló és komparátor:

F1.b Készítsünk egy PWM kimeneti jelet előállító programot, a processzor TIMER perifériáját használva a kimeneti jel vezérléséhez! A programban a fenti időzítéseket használhatjuk. A TIMER-t beállítjuk 64us-os, periódikus időzítésre. Ennek ütemében működtetünk egy regiszter alapú 8 bites PWM számlálót (r1), amit komparálunk a kapcsoló perifériáról beolvasott értékkel (r2). Az induláskor bekapcsolt LED-eket addig hagyjuk bekapcsolva, amíg a PWM számláló értéke kisebb az SW kapcsolókon beállított értéknél. Amint a PWM számláló eléri az SW kapcsolókon beállított értéket, (tehát r1-r2 =0x00) a LED-eket kikapcsoljuk. A LEDek addig maradnak kikapcsolva, amíg a PWM számláló a 255 végértéket elérve át nem fordul és felveszi a 0x00 értéket.

F1.c A mikroszervó motorok vezérlése hasonló jelalakú pulzussorozattal történik, adott előírások betartása mellett. A motorok nem precíziós alkatrészek, elsősorban modellek, távirányításos játékok működtetésére szolgálnak, tehát a specifikáció csak közelítőleg, jellegére teljesül. A kívánt vezérlőjel jellemzően egy 1ms-2ms közötti pulzusszélességű jelsorozat, aminek frekvenciája 50-100 Hz közötti, azaz periódusideje 10-20ms. Válasszunk egyszerűen kezelhető időzítési paramétereket a MiniRISC processzor paraméterihez alkalmazkodva! A mikroszervó motor vezérléséhez az 1ms 2ms impulzus szélesség könnyű és megfelelő felbontású beállíthatósága a legfontosabb szempont. Ha a 8 bites értékkel szeretnénk átfogni a teljes változást jelentő 1ms időtartományt, ahhoz 1000/256 = 3,9us -> 4us alapütemezést érdemes választanunk. Ezzel az 1ms 1,024ms-ra adódik, ez a mikroszervó szempontjából nem okoz problémát. A teljes pulzusszélesség beállításához szükséges 1ms ofszet numerikus értéke 256. A teljes periódusidőt ~16ms-ra választva a 4us ütemezéssel egy 12 bites szoftver számlálót használhatunk a teljes periódus időzítéséhez.

F1.d Készítsünk el egy olyan programot, amelyben a mikroszervó vezérlése megszakításos működéssel, az ISR megszakítás kiszolgáló szubrutinon belül történik! A TIMER ISR egy regiszterpárban kapja meg a kimeneten beállítandó impulzusszélesség időtartamát, 4us-os időkvantumot feltételezve. Ennek megfelelően a kapott érték 256 511 között változhat, a középérték 383. A 12 bites vezérlőjel periódust az (r11:r10) regiszterpárban realizált számláló méri. Ennek aktuális értékéhez hasonlítjuk az (r13:r12) regiszterpárban beállított pulzusszélességet. Az összehasonlítás 16 bites aritmetikát használva történik. Az eredményt jelző C flag értékét léptetési műveletekkel másoljuk a GPIO_C[1] kimenetként konfigurált portlábra.