Sunteți pe pagina 1din 32

Capitolul 5: Comanda motoarelor cu microcontrollere

Foarte multe aplicaii din domeniul microcontrollerelor au sarcina acionrii unor motoare. De exemplu aplicaiile auto-motoarele de la geamurile electrice, motoarele indicatoarelor de bord etc. sau aplicaiile din domeniul echipamentelor periferice - imprimant, hard disc etc. Sau aplicaiile industriale - acionri de vane, robinete etc. Motoarele pot fi: de curent continuu cu perii sau fr perii; motoare pas cu pas; de curent alternativ cu inducie; motoare cu reluctan comutat. Primele dou categorii de motoare sunt utilizate mai des n aplicaiile cu microcontroller de aceea vor fi abordate n acest capitol. Un motor poate fi comandat de ctre un microcontroller att direct, ct i prin intermediul unor interfee specializate, programabile. 5.1.Comanda motoarelor de curent continuu Schema bloc a sistemului de acionare cu motor de curent continuu este dat n figura 5.1. Valoarea numeric a poziiei finale
Comparator numeric

Traductor de vitez
SERVOMECANISM

Convertor D/A Traductor de poziie MCC

Poziia actual

SARCINA

Figura 5.1: Schema bloc a unei acionri cu motor de curent continuu Cel mai simplu de comandat, pentru a obine o vitez variabil, sunt motoarele de c.c. deoarece cu ct tensiunea aplicat este mai mare cu att viteza este mai mare. O micare de poziionare este compus dintr-o accelerare, dintr-o deplasare cu vitez constant i o frnare, conform unei traiectorii de vitez ca n figura 5.2. v

t Accelerare Viteza ta constant tc Frnare tf

Figura 5.2: Traiectoria de vitez

97

Timpul de deplasare este td= ta+ tc +tf iar timpul de poziionare este suma dintre timpul de deplasare i timpul de stabilire (de amortizare a oscilaiilor sistemului de poziionare dup atingerea poziiei finale), tp= td+ ts Pentru a obine viteza variabil este suficient s aplicm o tensiune variabil. Tensiunea variabil poate fi aplicat n mai multe feluri: informaia numeric este convertit ntr-o informaie analogic i este aplicat unui tranzistor (pentru comanda ntr-un sens) sau la doi tranzistori (pentru comanda n ambele sensuri). Tensiunea variabil astfel obinut se aplic motorului de c.c. Un dezavantaj este folosirea unui convertor D/A i puterea pierdut n tranzistorii care lucreaz n zona liniar. informaia numeric creeaz un semnal PWM, cu frecvena destul de mare ca motorul, datorit ineriei, s integreze impulsurile. Motorul va avea o vitez proporional cu factorul de umplere. Acest mod de comand este mult mai simplu i tranzistorul, fiind n regim de comutaie nu disip inutil. Dificultatea acionrilor cu motor de curent continuu este partea de traductor de poziie care, mai ales la precizia cerut n aplicaiile noi sunt dificil de implementat. n diagrama urmtoare (figura 5.3) se arat comanda PWM n ambele sensuri:

PWM1P0=1 PWM2P0=0 PWM1P0 PWM2P0 Tensiunea pe motor Factorul de umplere este egal la cele 2 canale PWM i motorul nu se rotete pentru c tensiunea la bornele lui este 0
MCC

PWM1P0=0 PWM2P0=1
MCC

Motorul se rotete pentru c tensiunea la bornele lui (PWM1P0-PWM2P0) este diferit de 0.

Figura 5.3: Comanda unui motor de curent continuu

Cuplnd un motor de curent continuu ntre PWM1P0 i PWM2P0 se poate obine o rotire cu vitez variabil n ambele sensuri ale motorului. Motorul de curent continuu se rotete cu o vitez proporional cu tensiunea aplicat. Dac tensiunea aplicat este sub form de impulsuri motorul se rotete proporional cu valoarea medie a tensiunii.

98

O simulare n SIMULINK dovedete valabilitatea acestei metode de control. S-a folosit un model din SIMULINK pentru motorul de curent continuu i cele 2 canale PWM au fost simulate cu generatoare de impulsuri cu lime variabil, figura 5.4.

Figura 5.4: Model SIMULINK pentru simularea funcionrii motorului de curent continuu Rezultatele simulrii sunt reprezentate n figura 5.5. n stnga sus este reprezentat forma curentului prin motor i jos turaia obinute pentru factor de umplere de 90% respectiv 10%.

Figura 5.5: Rezultatele simulrii SIMULINK

Se observ c acestea au aceeai form de variaie. n dreapta sunt reprezentate aceleai curbe, dar cu factor de umplere 10% respectiv 90%. Se vede c motorul se rotete n sens contrar.

99

Din punct de vedere constructiv motoarele de curent continuu pot fi cu perii la care rotirea cmpului magnetic este realizat prin comutarea curentului prin nfurri cu un sistem colector i perii. Aceste motoare sunt asociate cu un nivel mare de perturbaii electromagnetice generate. n figura 5.61 este reprezentat un motor de acionare a hrtiei la o imprimant HP lng o urubelni pentru a putea aprecia dimensiunea. Se poate observa tubul de ferit de pe cablu care are rolul de a micora perturbaiile.

Figura 5.6: Motor de curent continuu O alt variant este motorul de c.c. la care cmpul nvrtitor este realizat prin excitarea pe rnd a unor bobine, funcionarea fiind asemntoare motoarelor pas cu pas. Motoarele cu micare circular pot aciona liniar printr-un sistem de conversie mecanic al micrii, cele mai cunoscute fiind acionarea unui urub fr sfrit sau cu band elastic. O categorie deosebit sunt motoarele de c.c. liniare electrodinamice. Motorul liniar este format dintr-un stator magnet permanent i o bobin mobil. Aceasta este acionat de fora electrodinamic care rezult din interaciunea dintre cmpul produs de curentul care parcurge bobina i cmpul magnetic staionar produs n stator de magneii permaneni. Se utilizeaz dou tipuri constructive: cu bobin lung i ntrefier scurt i cu bobin lung i ntrefier scurt. Lungimea bobinei lungi i a ntrefierului lung trebuie s fie suficient de mari pentru ca n timpul micrilor de poziionare fora s se menin constant, deci n ntrefier s se afle aceeai lungime de bobin, figura 5.7.

Figura 5.7: Motorul electrodinamic cu bobin lung (stnga), cu bobin scurt (mijloc) i fotografia unui motor

n acest capitol majoritatea fotografiilor sunt ale unor subansamble din colecia autorilor

100

5.2.Comanda motoarelor pas cu pas Motorul pas cu pas este un dispozitiv pentru conversia informaiilor numerice n lucru mecanic pe baza unui consum de energie de la o surs. Motorul pas cu pas este un motor de curent continuu comandabil digital, cu deplasarea unghiular a rotorului proporional cu numrul de impulsuri primite. La fiecare impuls rotorul execut un pas unghiular apoi se oprete pn la sosirea unui nou impuls. Motorul pas cu pas este capabil de reversarea sensului de micare. Dac este comandat corect (cu o frecven mai mic dect cea admisibil) rmne n sincronism cu impulsurile de comand la accelerare, mers constant i ncetinire. O schem bloc de acionare este dat n figura 5.8. Impulsuri de comand

SERVOMECANISM

SARCINA

MPP

Figura 5.8: Schema bloc de acionare cu motot pas cu pas

Se poate observa din schema bloc c traductorul de poziie poate lipsi pentru c, n aplicaii mai simple motorul va executa numrul de pai comandat i va ajunge n poziia dorit. Se ctig astfel o simplificare a schemei dar se pierde la performan. Comanda cu traiectorie de vitez este posibil prin variaia frecvenei impulsurilor dar schema de acionare se complic. Motoarele pas cu pas pot fi motoare unipolare sau bipolare. La motoarele bipolare comanda pailor se face prin inversarea curentului prin nfurri. Principiul comenzii seamn cu cel de la comanda motorului de curent continuu, cu diferena c n acest caz de regul sunt 2 nfurri, figura 5.9.

n acest caz controllerul trebuie s poat inversa polaritatea pentru o deplasare a curentului n ambele sensuri. Controllerul trebuie s alimenteze nfurrile succesiv cu o anumit secven pentru un sens i secvena invers pentru cellalt sens. n desenul alturat o parcurgere a 4 faze nseamn o rotire de 360. Motoarele reale au mai multe nfurri i un pas nseamn o deplasare unghiular mic.

Figura 5.9: Structura motorului pas cu pas bipolar Conectarea unei nfurri (de exemplu 1a-1b) la cele 2 canale PWM permite inversarea curentului ca n diagramele din figura 5.10. 101

PWM1P0 PWM2P0 Tensiunea pe nfurarea 1a-1b Factorul de umplere al PWM1P0 este > dect al PWM2P0, tensiunea aplicat este pozitiv +V 0 -V Factorul de umplere al PWM1P0 este < dect al PWM2P0, tensiunea aplicat este negativ

Figura 5.10: Inversarea curentului n nfurri la motoarele bipolare

MPP unipolare folosesc o priz median legat la alimentare, inversarea curentului obinnduse prin legarea la mas succesiv a terminalelor extreme ale nfurrii, ca n figura 5.11. V I I V

Se obin astfel cmpuri magnetice de sens contrar fr inversarea polaritii

Figura 5.11: Inversarea curentului n motoarele unipolare

nfurrile motorului sunt conectate ca n figura 5.12.

Prizele mediane sunt legate la alimentare i secvena de impulsuri se aplic terminalelor 1a, 1b, 2a, 2b.

Figura 5.12: Structura i nfurrile motorului unipolar

102

Secvenele digitale pentru comanda unui motor pas cu pas unipolar cu 4 faze n varianta cea mai simpl sunt date n figura 5.13 [5].
TACT FAZA 1 FAZA 2 FAZA 3 FAZA 4 t t t t t

Un pas ntr-un sens

Un pas n sensul contrar

Meninere

Figura 5.13: Secvenele digitale pentru comanda unui motor pas cu pas unipolar Pentru exemplificare se alege un port paralel pentru microcontrollerelor compatibile x86, linia D0 este cel mai puin semnificativ bit i un motor pas cu pas cu 3 faze. Un pas nseamn parcurgerea tuturor fazelor. Schema de conectare i programul care genereaz un pas ntr-un sens sunt date n figura 5.14.
Port paralel, adresa adr
D0 D1 D2 D3 ........

F1 F2

F3

MOV DX, adr MOV AL,01 OUT DX, AL CALL delay MOV AL,02 OUT DX,AL CALL delay MOV AL, 04 OUT DX,AL CALL delay

Figura 5.14: Schema de conectare a unui motor pas cu pas la un port paralel i programul Programul din acest exemplu este dat pentru a arta principiul de comand. Este necesar introducerea unei ntrzieri pentru meninerea alimentrii fazei un timp suficient pentru acionarea electromecanic, timp care depinde de motor. Schema mai trebuie completat cu amplificatoare de curent i/sau tensiune pentru acionarea motorului. Un exemplu de motor pas cu pas modern, comandat cu dou semnale (asigurarea semnalelor pentru faze sunt create intern) este dat n figura 5.15.
Motor bipolar pas cu pas Tensiunea de alimentare +12 - 24 VDC Curentul de pas pe faz 0.25 - 2.0 Amperi Pasul 1,8 grade Se poate comanda cu semnale: Pas, Directie, Validare, decuplate optic Protecie la depirea temperaturii de lucru i la subtensiune

Figura 5.15: Motor pas cu pas

103

Observaie Un canal PWM poate fi folosit pentru a comanda o faz a motorului pas cu pas pentru a obine un curent variabil. Semnalul PWM nu asigur succesiunea fazelor ci valoarea medie a tensiunii de alimentare a unei faze. Conectarea ieirilor PWM la fazele unui motor unipolar este dat n figura 5.16.

PWM1P0 conectat la 1a PWM1M0 conectat la 2a PWM2P0 conectat la 1b PWM2M0 conectat la 2b Figura 5.16: Comanda PWM a fazelor unui motor unipolar

Un modul de comand poate controla un motor pas cu pas asigurnd un curent bine definit prin nfurri. Acest tip de comand creeaz de exemplu posibilitatea de a comanda motorul cu un curent mai mare la pornire sau permite realizarea unor traiectorii optime de vitez (regim accelerat- frnat).

5.3.Traductori de poziie i circuite driver Exist o mare diversitate de traductoare de poziie pentru poziionarea motoarelor. Cteva exemple vor demonstra acest lucru. Senzorii cei mai utilizai sunt cei care genereaz dou semnale defazate la deplasare (encoder), cu form liniar sau circular. Aceti senzori pot fi inductivi, capacitivi sau optici. Senzorii optici echipeaz imprimantele cu jet de cerneal la poziionarea capetelor de scriere. n funcie de modelul de imprimant exist senzori optici liniari sau circulari. Un senzor optic circular (encoder) i unul liniar sunt prezentai n figura 5.17, alturi de o rulet gradat n mm pentru comparaie. Se poate vedea precizia mai mare a traductorului circular (imprimant de 600dpi) fa de cea a traductorului liniar (300dpi). La echipamentele la care precizia unor asemenea senzori nu este suficient, aa cum este poziionarea capetelor la hard disc sau unitatea optic, se folosesc pentru poziionare semnalele scrise pe suport. La aplicaii mai modeste pot fi folosii senzori cum sunt cei prezentai n figura 5.18. Senzorul de poziie M150 este un poteniometru miniatur (18,8mm) la care axul este rotit prin tragerea unui fir de oel acoperit cu plastic cu lungimea de 1,5 (38,1mm) care se retracteaz automat [1]. Acurateea senzorului este mai bun de 1%. Rezistena maxim a poteniometrului este de 5k i tensiunea aplicat poate fi de maximum 20V. Extinderea firului poate s nu fie liniar, cu condiia respectrii unor unghiuri limit. Senzorul SP1 este de

104

dimensiuni mai mari (50mm) dar firul poate atinge lungimea de 1270mm. Senzorul LX-EP [2] este un senzor cu fir de oel dar principiul de detecie a poziiei este optic iar ieirea este digital, oferind la ieire dou semnale defazate (encoder). Lungimea maxim a firului este de 1270mm.

1mm

Roata dinat de antrenare

Zona traductor

Ruleta gradat

Figura 5.17: Traductor optic de poziie, circular (stnga), un detaliu (mijloc) i liniar (dreapta)

Figura 5.18: Senzor de poziie M150 (stnga) i SP1 (mijloc) i LX-EP (dreapta) n funcionarea anumitor motoare se urmrete obinerea unei viteze constante i nu a poziionrii precise (de exemplu la motoarele imprimantelor LASER). n aceste situaii se pot utiliza traductori Hall sau spirale pe cablaj n care se induce o tensiune proporional cu viteza de rotaie, figura 5.19. n figura 5.19 dreapta se poate remarca structura intern a unui motor de curent continuu fr perii n care cmpul nvrtitor este realizat prin mai multe bobine. La acest motor rotorul este exterior i este un magnet permanent.

105

Senzor Hall fixat pe cablaj Magnet fixat pe rotor

Figura 5.19: Traductor Hall (stnga) i spiral traductor de vitez (dreapta)

Un traductor Hall este de exemplu cel produs de Infineon, TLE4921. Traductorul const n 2 senzori Hall la 2,5mm distan formnd un traductor diferenial utilizat pentru determinarea poziiei i turaiei. Piesa mobil poate fi un magnet permanent dar poate fi i din material feromagnetic, caz n care pe senzor trebuie montat un magnet permanent. Traductorul conine sisteme de protecie la supratensiune i alimentare invers i poate fi alimentat n gama 030V. Ieirea este digital. Traductorul i o schem de conectare sunt date n figura 5.20.

Figura 5.20: Traductorul Hall Infineon TLE4921 i schema electric de conectare

Pentru acionarea motoarelor care absorb un curent de comand mai mare dect cel generat de microcontroller se pot folosi amplificatoare de curent. Un circuit integrat preferat n proiectele noastre este ULN2003, figura 5.21. Circuitul conine apte tranzistoare Darligton integrate care asigur un curent mediu de 500mA i un curent de vrf de 600mA la o tensiune de maxim 50V. Pentru mrirea curentului se pot folosi dou canale n paralel. Intrrile sunt comandabile TTL /CMOS. Intrrile i ieirile sunt pe pri diferite ale capsulei, uurnd astfel proiectarea cablajului. Cte o diod pe fiecare canal asigur protecia n cazul sarcinilor inductive.

106

Figura 5.21: Circuit driver pentru motoare ULN2003

Un circuit driver mai sofisticat prin care se pot comanda motoare de curent continuu bidirecional cu un singur canal PWM i 2 semnale linii de semnal ajuttoare este circuitul Allegro A3950. Acesta poate asigura cureni de pn la 2,8A la o tensiune de 36V. Circuitul are protecie la scurtcircuitul motorului, la subtensiune i la supratemperatur. Circuitul conine o punte Full Bridge prin care curentul poate fi furnizat bidirecional. Circuitul poate fi comandat ntr-o stare de economie de energie cu un semnal de SLEEP. Diagrama de timp pentru comanda bidirecional este dat n figura 5.22.

ENABLE PHASE IMOTOR

Figura 5.22: Diagrama de timp pentru comanda bidirecional a unui motor de curent continuu cu Allegro A3950

Dac semnalul PWM este aplicat la intrarea ENABLE motorul va fi comandat ntr-un sens dac semnalul PHASE este 1 logic i n sensul contrar dac semnalul PHASE este 0 logic. Diversitatea driverelor este foarte mare, aa cum de fapt este diversitatea motoarelor. Pe pagina Sanyo (http://semicon.sanyo.com/en/motor/index.php) exist prezentate multe modele de drivere grupate du tipul motoarelor la care se folosesc dar i dup domeniul de aplicabilitate: uz casnic, auto, echipamente periferice, aparate foto etc.

107

5.4.Generarea semnalelor PWM Generarea semnalelor PWM cu microcontrollere se poate realiza folosind un timer de uz general din structura microcontrollerului sau module specializate n cazul microcontrollerelor dedicate controlului motoarelor.

5.4.1. Timere I/O Un timer de I/O tipic familiei de microcontrollere Fujitsu [3] const n 2 numrtoare de 16 bii care au asociate 4 module de comparare i 4 module de captur. Modulele de comparare au 8 pini externi de ieire iar modulele de captur au 8 pini externi de intrare. Numrtorul numr liber un tact intern sau un tact extern care pot fi divizate de un circuit de prescalare. Se poate genera o ntrerupere dac numrtorul a ajuns la capt (Overflow) sau la egalitatea ieirilor numrtorului cu un registru de comparare. Numrtorul se poate iniializa la un Reset extern, la un Reset soft sau la egalitatea cu registrul de comparare. Regitrii de comparare sunt de 16 bii i sunt controlai de un registru de control. Cnd un numrtor ajunge la valoarea stocat n registrul de comparare nivelul de ieire al pinului extern corespunztor este modificat, se cere o ntrerupere i se iniializeaz numrtorul (dac aceast opiune este validat). Pentru generarea PWM este folosit numrtorul i regitrii de comparare. Regitrii de captur sunt de 16 bii i sunt controlai de un registru de control. La apariia unui front de la un pin extern valoarea numrtorului poate fi stocat ntr-un registru de captur i se genereaz o ntrerupere. Frontul de declanare poate fi programat: cel cresctor, descresctor sau ambele fronturi. Schema bloc a timerului este dat n figura 5.23. Liniile gri din spatele blocurilor semnific faptul c fiecare numrtor are asociate module de comparare OCU (Output Compare Unit) i module de captur ICU (Input Capture Unit). Numrtorul 0 este conectat cu OCU 0/1/2/3 i cu ICU 0/1/2/3 iar numrtorul 1 este conectat cu OCU 4/5/6/7 i cu ICU 4/5/6/7. Se poate spune c timerul const n 2 canale identice bazate pe cte un numrtor, fiecare canal avnd asociate 2 module de comparare, 2 module de captur i 8 pini externi din care 4 de ieire i 4 de intrare. Numrtorul conine un registru de date TCDT0/1 (Data Register of Free Running Timer) de 16 bii din care se poate citi valoarea numrtorului sau se poate scrie (doar cnd numrtorul este oprit). Tactul numrtorului poate fi selectat tactul intern sau tactul de la un pin extern. Selecia se face cu un bit din registrul TCCSH0/1.

108

intern Numrtor de 16 bii 0/1 Selecie tact FRK0 FRK1

Registru de comparare 0/2/4/6

OUT0 OUT2 OUT4 OUT6

Registru de comparare 1/3/5/7

OUT1 OUT3 OUT5 OUT7

Registru de captur 0/2/4/6

IN0 IN2 IN4 IN6

Registru de captur 1/3/5/7

IN1 IN3 IN5 IN7

Figura 5.23: Schema bloc a timerului de I/O Un registru de control TCCSL0/1 programeaz funcionarea numrtorului. Cererea de ntrerupere IVF este validat de bitul IVFE. Schema bloc a numrtorului este dat n figura 5.24.
Cerere de ntrerupere

TCCSL IVF IVFE STOP MODE CLR CLK2 CLK1 CLK0 tact TCDT0/1 Numrtor pe 16 bii Divizare

Tact intern FRCK

Ieire pentru comparare TCCSH ECKE

Figura 5.24: Schema bloc a numrtorului din componena timerului de I/O

109

TCCSL0/1 (Control Status Register of Free Running Timer) este un registru de 8 bii care conine: IVF este un flag de cerere de ntrerupere, IVFE valideaz cererea de ntrerupere, STOP oprete numrtorul, MODE stabilete modul de iniializare (cu nivel H numrtorul se iniializeaz prin comparare i egalitate cu regitrii de comparare), CLR iniializeaz numrtorul cu 0000H, 3 bii CLK stabilesc factorul de divizare al tactului. TCCSH0/1 (Control Status Register of Free Running Timer) este un registru de 8 bii din care este folosit un singur bit (ECKE) care selecteaz tactul intern sau tactul extern de la pinul FRCK. O diagram de timp arat evoluia numrtorului i iniializarea prin depire (figura 5.25a) i iniializarea prin egalitate cu registrul de comparare (figura 5.25b). Pentru analiza evoluiei unui timer sunt utile diagramele de timp cu reprezentare analogic a valorii digitale din numrtor. Modulul de comparare const n 2 regitrii de 16 bii, 2 pini de comparare de ieire i un registru de control. n MB90350 sunt integrate 4 module de comparare separate (dar acelai numrtor la 2 module).

Valoare numrtor FFFFH BFFFH 7FFFH 3FFFH 0000H timp /RESET INT Figura a

Valoare numrtor FFFFH BFFFH 7FFFH 3FFFH 0000H

Registrul de comparare este BFFFH

timp /RESET INT Figura b

Figura 5.25: Iniializarea numrtorului prin depire i prin egalitate cu registrul de comparare

Pentru fiecare modul regitrii de comparare pot fi utilizai independent. n funcie de modul de operare regitrii pot comanda pinii de ieire. Valoarea iniial a fiecrui pin poate fi programat separat. Fiecare modul poate genera un semnal PWM folosind ambii regitrii de comparare. Schema bloc a modulului de comparare este dat n figura 5.26.

110

OCCP0 Registru de comparare 0

OUT0

Valoare numrtor

OCCP1 Registru de comparare 1

OUT1

OCS Controlul comparrii ICP1 ICP0 ICE1 ICE0 CST0 CST1

Cerere de ntrerupere comparator 1 /comparator 0

Figura 5.26: Schema bloc a modulului de comparare

OCCP (Registru de comparare, Output Compare Register) de 16 bii conine valoarea cu care se compar valoarea numrtorului. Acest registru trebuie ncrcat nainte de a valida operarea. OCS0/2/4/6 (Control Status Register of Output Compare Low) sunt regitrii de 8 bii n care ICP este o cerere de ntrerupere la egalitate (cte una pentru fiecare registru de comparare), ICE sunt bii de validare a cererii de ntrerupere iar 2 bii (CST) valideaz operaia de comparare. OCS1/3/5/7 (Control Status Register of Output Compare High) sunt regitrii de 8 bii n care 2 bii (CMOD0 i CMOD1) valideaz modul de operare al pinilor de ieire (nivelul lor logic se schimb sau nu la egalitate), 2 bii valideaz pinii de ieire iar 2 bii schimb valoarea logic a ieirilor. Funcionarea poate fi fr schimbarea valorii logice a pinilor de ieire la egalitate (CMOD0/1=00B) i funcionarea cu schimbarea valorii logice a ieirii OUT0 i OUT1 la egalitatea OCCP0 cu OCCP1 (CMOD0/1=01B). De asemenea ieirea poate s schimbe sau nu valoarea logic la iniializarea numrtorului. Generarea a 2 semnale PWM este exemplificat n figura 5.27.

111

Valoare numrtor FFFFH BFFFH 7FFFH 3FFFH 0000H timp /RESET OUT0 OUT1

OCCP0=BFFFH OCCP1=7FFFH Ieirile schimb valoarea logic la iniializarea numrtorului.


CMOD1/0=00B

Figura 5.27: Dou moduri de lucru ale modulului de comparare

5.4.2. Exemplu de modul pentru comanda motoarelor n microcontrollere specializate MC Fujitsu sunt folosite mult n aplicaii auto, de aceea se integreaz un modul dedicat comenzii motoarelor pas cu pas, dar care poate comanda i motoare de curent continuu. Acest modul apare deja la MC pe 8 bii de tip vechi (MB89940), echipeaz multe MC pe 16 bii (MB90390, 90420, 90590, 90595) i MC pe 32 de bii (MB91360). Modulul de comand pentru comanda motoarelor conine 2 generatoare PWM, 4 etaje de ieire de putere (drivere de motor) i logica de selecie. Driverele pot asigura un curent mare care permite conectarea direct a motoarelor de mic putere. Un mecanism de sincronizare asigur funcionarea sincronizat a celor 2 generatoare PWM. n general MC conin mai multe asemenea module. Schema bloc a unui modul de control motoare care conine 2 canale PWM i 4 drivere de ieire este dat n figura 5.28. Numrtorul PWM pentru fiecare canal numr pn la capt, apoi se rencarc i numrarea rencepe. La coincidena valorii din numrtor cu cea stocat n registrul de comparare semnalul de ieire i schimb starea logic. La sfritul numrrii semnalul de ieire i schimb din nou starea logic. Regitrii de comand sunt: PWM Control Register (8 bii) controleaz pornirea/ oprirea operrii, pinii externi i ntreruperile. 2 bii selecteaz funcionarea pinilor externi ca pini de control motor sau pini de I/O de uz general, 2 bii selecteaz tactul (tact divizat cu 1, 2, 4 sau 8), un bit pornete operarea (PWM2 pornete un tact dup PWM1 pentru a micora zgomotul produs n driver la o comutare simultan de cureni mari), un bit selecteaz operarea PWM pe 8 sau 10 bii.

112

Selecie tact

PWM1

Selecie ieire

PWM1P0 PWM1M0

Registru de comparare PWM1

Registru de selecie PWM1

PWM2

Selecie ieire

PWM2P0 PWM2M0

Registru de comparare PWM2

Registru de selecie PWM2

Figura 5.28: Schema bloc a modulului de comand a motoarelor

PWM1/2 Compare Register (16 bii) specific limea impulsului PWM (formatul de scriere este pe 8 sau 10 bii). O valoare de 000H indic un factor de umplere de 0% iar o valoare de 3FFH indic un factor de umplere de 99,9% (99,6% pentru formatul pe 8 bii). Pentru a putea stoca valori pe 10 bii regitrii de comparare sunt pe 16 bii. Trei variante de semnale cu factor de umplere diferit sunt artate n figura 5.29.

Ciclu PWM

Registru de comparare 8 bii 10 bii 00H 000H 80H 200H FFH 3FFH

Figura 5.29: Trei diagrame de timp pentru 3 factori de umplere diferii

PWM1/2 Selection Register controleaz pinii de ieire. Un bit asigur sincronizarea ieirilor n sensul c orice modificare n configurarea canalelor PWM nu se reflect la ieire dect dup ce acest bit este setat. Cte 3 bii selecteaz tipul de semnal de ieire la ieirile PWM1P0, PWM1M0, PWM2P0, PWM2M0- semnal n stare L, H, impedan ridicat sau PWM.

113

5.5. Interfaa pentru comanda motoarelor HCTL 1100 (Hewlett Packard) Un circuit de interfa specializat n comanda motoarelor este circuitul HCTL 1100 [4]. Acesta poate comanda att motoare pas cu pas ct i motoare de curent continuu cu traiectorie determinat de vitez. Aceast interfa poate fi conectat la un microcontroller de uz general obinnd un sistem nglobat performant de control. Alegerea acestei variantei n locul celei cu microcontroller specializat n controlul motoarelor depinde de aplicaie i de costurile din acel moment. Schema bloc a interfeei HCTL-1100 este dat n figura 5.30.

Interfaa cu microprocesorul
AD0/DB0 ........ AD5/DB5 DB6 DB7 /ALE /CS /OE R//W RESET REGISTRE INTERNE

LIMIT STOP Flaguri urgene INIT Flaguri de stare PROF Generator de profil

Port de comand a motorului MC0 ............ MC7

Port PWM

PULSE SIGN

Comutator Reacie CHA CHB INDEX

/SYNC Timer EXTCLK

PHA PHB PHC PHD

Figura 5.30: Schema bloc a interfeei HCTL-1100 AD0/DB0- AD5/DB5- sunt 6 linii de adrese multiplexate cu date. Selecia adresei se face cu /ALE; DB6, DB7- 2 linii de date nemultiplexate. La nceput se stabilete adresa pe liniile de date, apoi cu /ALE, aceasta se stocheaz n registrele interne. Apoi se stabilesc datele i se valideaz cu R//W. Semnalul /OE stabilete momentul citirii datelor n registrul intern al lui HCTL1100. Semnalele CHA, CHB i INDEX provin de la traductorul foto de turaie. Aceste impulsuri incrementeaz un registru de poziie actual de 24 de bii (se incrementeaz sau decrementeaz). Pentru evitarea impulsurilor eronate CHA i CHB, acestea trebuie s rmn active cel puin 3 perioade EXTCLK pentru a fi luate n considerare. Intrrile LIMIT i STOP sunt semnale de urgen care comand oprirea motorului independent de procesorul sau MC gazd. Ieirile PROF i INIT pot fi interogate de MC gazd pentru a afla starea circuitului. Cu /SYNC se pot sincroniza ntre ele mai multe circuite HCTL 1100. Semnalul RESET aduce circuitul n starea iniial.

114

HCTL 1100 are 64 de registre interne pe 8 bii din care 35 utilizabile din exterior. Aceste registre sunt adresate pe liniile de adres AD0-AD5. Traductorul optic de poziie i de sens este format dintr-un disc cu orificii dreptunghiulare dispuse pe circumferin. Orificiile sunt sesizate de dou sisteme optice decalate. Din formele de und generate de cele dou sisteme decalate se poate deduce sensul rotaiei, (figura 5.31). FOTO 1 SENS FOTO 2

FOTO 1 SENS FOTO 2 Figura 5.31: Formele de und generate de traductorul de poziie i sens i un traductor optic cu disc Pe disc mai este realizat un orificiu pentru impulsul de INDEX. La o rotaie se genereaz un impuls INDEX. Impulsurile de la traductoare sunt sensibile la perturbaii, de aceea se impun msuri specifice EMC de protecie. Aceste semnale pot constitui att semnale pentru stabilirea poziiei (prin numrarea impulsurilor), a sensului prin verificarea defazajului ct i a vitezei, printr-un convertor tensiune/frecven.

5.5.1. Comanda unui motor de curent continuu printr-un convertor D/A La ieirile MC0-MC7 se cupleaz un convertor D/A, ca n figura 5.32.
HCTL 1100 MC0 MC1 +5V

CD/A

Io
MC7

+
Conv. I-U

vo

Figura 5.32: Conectarea unui motor de c.c. la HCTL 1100

115

Datele se stocheaz n registrul 08H al HCTL pe 8 bii. Pentru a putea comanda motorul n ambele sensuri, se consider tensiuni negative n intervalul de comand 00H-7FH i valori pozitive n intervalul 80H-FFH, figura 5.33. U

+5V 2,5V

00H

40H -2,5V -5V

80H

C0H

FFH registrul 08H

Figura 5.33: Generarea tensiunilor de comand prin convertorul AD

5.5.2.Comanda PWM a unui motor de c.c. cu HCTL 1100 Comanda unui motor de c.c. se face cu semnalul PULSE. Frecvena acestuia este stabilit la EXTCLK/100. Semnalul SIGN comand sensul de rotaie. n registrul 09H al HCTL 1100 se ncarc limea impulsului, figura 5.34. Comanda se face cu valori zecimale, astfel 00H=0D nseamn un factor de umplere de 0%, 32H=50D nseamn 50% iar 64H=100D nseamn 100%.
100% 50%

Factor de umplere

80H 9CH

00H 32H registrul 09H

64H

SIGN=1

SIGN=0

Figura 5.34: Programarea HCTL 1100 pentru comanda unui motor de c.c. cu modulaie PWM

5.5.3. Comanda unui motor pas cu pas cu HCTL 1100 Se pot comanda motoare pas cu pas cu 2,3 sau 4 faze, cu diferite succesiuni de comand a fazelor. Semnalul INDEX servete la stabilirea poziiei iniiale a motorului. Succesiunea fazelor se poate programa prin registrul 07H. Pentru o programare n care toate fazele sunt active se genereaz o secven ca n figura 5.35.

116

Frecvena impulsurilor poate fi variabil (programabil). Ca urmare se pot comanda i motoare pas cu pas cu un anumit profil de vitez.
/INDEX PHA PHB PHC PHD

Figura 5.35: Secven de comand a unui MPP cu patru faze

5.5.4. Cuplare circuitului HCTL 1100 la microcontroller Cuplarea circuitului HCTL1100 la microcontrollerul AT90S1200 este dat n figura 5.36. Circuitul driver pentru motoare pas cu pas i pentru motoare de curent continuu, HCTL-1100, primete semnalele de comand i date de la microcontroller prin porturile acestuia. Pe portul B al microcontrollerului se trimit date catre circuitul HCTL1100 i se citesc date din acesta, iar pe portul D se trimit comenzi (semnale) pentru circuitul HCTL1100.

U4 1 U4 AT90S1200 pb0 pb1 pb2 pb3 pb4 pb5 pb6 pb7 pd0 pd1 pd2 pd3 pd4 pd5 pd6 R6 1 10K C6 1uF HCTL1100 VCC 34 EXT CLK 12 13 14 15 16 17 18 19 2 3 6 7 8 9 11 2 3 4 5 6 7 8 9 37 40 39 38 36 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 R/W OE CS ALE RESET SYNC PHA PHB PHC PHD MC0 MC1 MC2 MC3 MC4 MC5 MC6 MC7 SIGN PULSE CHA CHB INDEX PROF INIT LIMIT STOP 26 27 28 29 18 19 20 21 22 23 24 25 17 16 31 30 33 12 13 14 15

Y1 2MHz

4 5

xtal1 xtal2 reset

C3 30pF

C4 30pF

Figura 5.36: Cuplarea HCTL 1100 la un MC AT90S1200 n continuare sunt prezentate rutine AT90S1200 pentru lucrul cu circuitul HCTL1100. Procedurile prezentate ca exemple realizeaza RESET-ul, citirea i scrierea n circuitul HCTL1100.

117

.device AT90S1200 rjmp start short_delay: ;total 1+80*(1+1/2)-1+4=124 ;o ntrziere de 124 perioade de tact ldi r26,80 ;1 tact sd: dec r26 ;1 tact brne sd ;1/2 tact ret ;4 tact ;################################################################# ;PROCEDURA RESET HCTL-1100 ;################################################################# rst: cbi $12,4 ;bitul de reset din portul D rcall short_delay ;se menine pinul de reset in 0 logic sbi $12,4 ;reset ncheiat ret ;################################################################# ;PROCEDURA CITIRE ;################################################################# cit: clr r16 out $17,r16 sbi $12,0 ldi r17,0b00000001 out $18,r17 cbi $12,3 sbi $12,3 cbi $12,2 sbi $12,2 rcall short_delay cbi $12,1 ;OE=0 in r18,$18 ;citire propriu zis din HCTL1100 sbi $12,1 ;OE=1 ret ;################################################################# ;################################################################# ;PROCEDURA SCRIERE IN HCTL1100 ;################################################################# scr: ser r16 out $17,r16 ;portul B ieire ldi r17,0b000000001 ;selecie latch din HCTL1100 out $18,r17 cbi $12,3 sbi $12,3 ;puls ALE cbi $12,0 ;selecie R/W pe scriere ldi r18,0b1111111 ;date de trimis n HCTL1100 ;portul B intrare ;comand read ;s-a selectat un registru din HCTL ;puls pe ALE ;puls pe CS

118

out $18,r18 ;scrierea propriu zis cbi $12,2 sbi $12,2 ;puls CS sbi $12,0 ;revenire la modul citire din HCTL1100 ret ;################################################################# start : ser r16 out $11,r16 ;portul D ieire rcall short_delay rcall rst rcall cit rcall scr ;se invoc o mic ntrziere ;se trimite comand reset la HCTL1100

Exist dou moduri de cuplare a lui HCTL-1100 la MC 8051, i anume legarea la magistrala de adrese/date/control sau la portul I/O. Alegerea uneia dintre metode sau a celeilalte depinde de modul n care este folosit MC 8051. Dac MC 8051 folosete bus-ul n aplicaia dat se recomand cuplarea lui HCTL pe bus. Este necesar hard suplimentar (dou circuite TTL). La legarea pe bus se pot cupla pn la 4 circuite HCTL. Dac circuitul nu folosete bus-ul, adic nu are conectat nici un fel de memorie exterioar se recomand legarea lui HCTL la portul I/O, soluie care nu necesit hard suplimentar. n figura 5.37 se arat modul de legare la portul de I/O.
U4 1 Vcc U5 31 C7 22pF C8 22pF Vcc 19 Y2 2MHz 18 9 12 13 14 15 39 38 37 36 35 34 33 32 EA/VP X1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 RD WR PSEN ALE/P TXD RXD 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 17 16 29 30 11 10 2 3 4 5 6 7 8 9 37 40 39 38 36 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 R/W OE CS ALE RESET SYNC PHA PHB PHC PHD MC0 MC1 MC2 MC3 MC4 MC5 MC6 MC7 SIGN PULSE CHA CHB INDEX PROF INIT LIMIT STOP 26 27 28 29 18 19 20 21 22 23 24 25 17 16 31 30 33 12 13 14 15

X2 RESET INT0 INT1 T0 T1 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 8051

C9

10uF

R7 10K

34

EXT CLK

HCTL1100

Figura 5.37: Conectarea HCTL 1100 la MC 8051 Din aceast figur se remarc simplitatea conectrii i hardul suplimentar minimal utilizat. Un software minimal este prezentat n continuare (rutine de RESET, citire i scriere).

119

;############################################################## ;PROCEDURA RESET ;############################################################## RS1100: ORL P2,#0FH ;Seteaz liniile de R/W la citire, OE=1, CS=1, AE=1 MOV P0,#0FFH ;Seteaz P1=HIGH CLR P2.4 ;Seteaz RESET pe LOW NOP ;ntrziere corespunztoare unui impuls de 5s NOP NOP NOP SETB P2.4 :Readuce linia RESET n HIGH RET ;################################################################ ;################################################################ ;PROCEDURA CITIRE (Citete registrul lui HCTL) ;################################################################ RD1100 SETB P2.0 ;Seteaz liniile R/W pentru citire MOV P1,B ;Adresa de LATCH CLR P2.3 :Se genereaz un puls ALE SETB P2.3 MOV P1,#0FFH CLR P2.2 ;Se genereaz un puls CS SETB P2.2 NOP ;ntrziere corespunztoare unui impuls de 4s NOP NOP CLR P2.1 ;Seteaz OE=0 MOV A,P0 ;Se iau datele din HCTL 1100 SETB P2.1 ;Seteaz OE=1 RET ;################################################################ ;PROCEDURA SCRIERE (Scrie n registrul lui HCTL) ;################################################################ WR1100 MOV P1,B ;Adresa de LATCH CLR P2.3 :Se genereaz un puls ALE SETB P2.3 MOV P1,#0FFH CLR P2.0 ;Seteaz liniile R/W pentru scriere MOV P1,A ;Se emit datele CLR P2.2 ;Se genereaz un puls CS SETB P2.2 SETB P2.0 ;ntoarcere la modul de citire MOV P1,#0FFH RET ;###############################################################

120

5.6.Exemple de implementare

5.6.1. Comanda PWM a motoarelor folosind MC Motorola 6805 Schema bloc de control a unui motor de c.c. cu perii realizat de un MC68HC705 este dat n figura 5.38. Controlul vitezei poate fi realizat: cu un program intern pentru un sistem care nu are nevoie de feedback sau de schimbri dese ale programului; cu un program intern ghidat de cteva intrri, cu funcionalitile sugerate n figur. MC68705
OSC1 OSC2 PWMA1

+5V Motor de c.c. cu perii Oprit Cretere vitez Scdere viteza

+5V

Vdd PC0 PC1 PC2

Vss

Figura 5.38: Schema bloc de control a unui motor de c.c. cu perii realizat de MC68HC705

Un program simplificat la maxim, care sugereaz modul n care se comand motorul este: PORTA PORTC DRDA DRDC PWMAD CTLA Start EQU EQU EQU EQU EQU EQU EQU CLR LDA STA LDA STA $00 $02 $04 $06 $10 $14 * CTLA #$20 PWMAD #$00 DDRC registrul de control al PWM este Resetat se trimite 20h n portul de date PWM (factor de umplere 50%) registrul C este definit de intrare (se putea i cu CLR PORTC) bitul 0 este setat (buton apsat)? dac da, salt la subrutina motor oprit (off) dac nu, se verific urmtorul buton Se aloc denumiri sugestive porturilor A i C precum i registrelor pentru stabilirea sensului portul de date PWM (pe liniile port A portul de control al PWM

adr

BRSET 0,PORTC,adr1 BSR adr_off adr1 BRSET 1,PORTC,adr2 ........................................................... 121

BRA Adr_off

adr

bucla se repet continuu

LDA #$00 se trimite 00h n portul de date PWM STA PWMAD Dezavantajul acestei scheme de control este c permite micarea motorului doar ntr-un sens. Pentru a fi posibil schimbarea sensului este nevoie de un bit suplimentar pentru comanda schimbrii polaritii tensiunii de alimentare a motorului. Comanda PWM a unui motor pas cu pas folosind un MC Motorola 6805 poate fi realizat ca n figura 5.39. Bobinele trebuie alimentate ntr-o anumit succesiune pentru a obine sensul de rotaie dorit. Majoritatea motoarelor sunt echipate cu traductoare de poziie (Hall sau optice). Un astfel de motor poate fi comandat cu vitez variabil prin modificarea factorului de umplere (PWM), dar n acest caz trebuie modificat i viteza de comutaie.

MC68705
OSC1 OSC2 PWMA1 PWMA2 PWMA3 PA0 PB7 PB6

ULN 2003

nfurri stator
Traductori Hall

+5 V

Vdd

Motor
Vss

Figura 5.39: Comanda PWM a unui motor pas cu pas folosind un MC Motorola 6805 Acest sistem asigur performane de reglare superioare, avnd o complexitate mai mare. Secvena de acionare pentru comanda motoarelor este transmis prin intermediul unui amplificator de putere. Semnalele digitale de la traductoare sunt citite pe 3 intrri digitale. Aplicaia este detaliat n nota de aplicaii Motorola AN1702/D, (http://mcu.motsps.com ).

5.6.2. Comanda PWM a motoarelor folosind MC 8051 n aceast aplicaie se folosete un MC cu arie de numrtoare programabil (PCA 83C51FA) care are posibilitatea de a programa 2 canale PWM. O comand bidirecional a unui motor folosind 2 canale PWM i o bucl de reacie prevzut pentru a menine o vitez constant este artat n figura 5.40.

122

83C51FA P1.3 P1.4

L293 (Driver)

Traductor Hall cu ieire digital

Generator de tact

Figura 5.40: Comanda PWM a unui motor de c.c. folosind un MC 8051

MC comand motorul folosind 2 canale PWM. Curentul necesar motorului nu poate fi furnizat de MC, de aceea se folosete un circuit driver L293 care conine 4 canale de amplificare, din care n acest caz sunt folosite 2 i un semnal de modificare a sensului. n acest montaj modificarea sensului se face prin modificarea factorului de umplere la cele 2 canale PWM.

P1.3 P1.4
Tensiunea u la bornele motorului

Figura 5.41: Diagrame de semnal pentru comanda PWM a motorului n ambele sensuri Cnd P1.3 i P1.4 sunt egale diferen de potenial la bornele motorului este zero. n cazul (a), P1.3 este mai mult n 1 i motorul este alimentat cu +5V de la P1.3 la mas (P1.4) i se rotete ntr-un sens. n cazul B el este alimentat de la P1.4 i se rotete n cellalt sens. Viteza poate fi comandat prin variaia factorului de umplere a celor 2 canale PWM, fiind proporional cu diferena lor. Bucla de feedback se poate nchide montnd pe rotorul motorului 2 piese magnetice, diametral opuse i formnd 2 impulsuri, la fiecare rotire a motorului, cu un traductor Hall cu ieire digital. Semnalul este preluat de MC la un pin I/O de uz general, sau poate fi preluat la un canal al PCA n mod numrtor (cum s-a realizat n acest caz), sau poate genera o ntrerupere.

123

Pentru c motorul cu perii este foarte perturbator, se impun msuri de protecie. Se recomand conectarea unor condensatori de 6,8F ntre bornele motorului i mas i de 0,33F ntre bornele motorului. De asemenea se recomand decuplarea tensiunii de alimentare cu condensatori de 50F, 6,8F i 100nF n paralel, diode pentru eliminarea vrfurilor de tensiune de la fiecare born a motorului la mas i +5V. Cteva elemente din programul de comand sunt prezentate n continuare: MOV CMOD,#06 MOV CCAPM0,#42H MOV CCAPM1,#42H MOV CCAP0L,#0H MOV CCAP1L,#0H :se stabilete intrarea pentru PWM de la pin exterior :stabilete canalul 0 din arie n mod PWM :stabilete canalul 1 din arie n mod PWM :stabilete un factor de umplere 100% pentru canalul 0 :stabilete un factor de umplere 100% pentru canalul 1, ceea :ce nseamn c motorul st.

Dup iniializarea acestor registre de comenzi trebuie pornit timerul, ceea ce se realizeaz prin poziionarea bitului 6 (CR) din registrul de control CCON. SETB CR Rotirea cu vitez maxim ntr-un sens se comand cu secvena: MOV CCAP0L,#0FFH MOV CCAP1L,#0H SETB CR Rotirea cu vitez maxim n cellalt sens se comand cu secvena: MOV CCAP0L,#0H MOV CCAP1L,#0FFH ETB CR Traductorul de vitez d impulsuri canalului 4 programat n mod de captur. La primirea unui impuls pe P1.6 se ncarc coninutul timerului n registrele CCAP3H i CCAP3L, coninutul acestor registre fiind proporional cu timpul scurs ntre 2 impulsuri ale traductorului. MOV CMOD,#0 MOV CCAPM3 SETB IP.6 MOV IE,0C0H SETB CR ;se stabilete tactul timerului ca fosc/12 ;canalul 4 n mod captur ;se seteaz ntreruperea de la PCA la cea mai mare prioritate ;se valideaz ntreruperile de la PCA ;se pornete timerul

Cnd apare o ntrerupere, n CCAP3L i CCAP3H apare coninutul timerului. O aplicaie asemntoare este descris de Jafar Modares n nota de aplicaii AP-425, de la INTEL ( www.questlink.com ). O alt aplicaie a fost realizat la laboratorul de Interfaare. Cu un microcontroller 80C552 care dispune de un modul specializat PWM cu dou ieiri PWM, figura 5.42. Aceste dou ieiri pot fi folosite pentru comanda unui motor de curent continuu care poate fi comandat s se roteasc n ambele sensuri cu vitez variabil.. Frecvena de baz este asigurat de oscilatorul intern (fosc/2) i de un prescaler de 8 bii, PWMP. Acesta poate fi ncrcat prin 124

program cu o constant de divizare, cu valori ntre 0 i FFh, corespunztoare unui factor de divizare 1256. Ieirea prescalerului este conectat la intrarea unui numrtor cu incrementare, PWMC, modulo 255 (PWMC = 0FEh). Att prescalerul ct i numrtorul sunt utilizate n comun de ctre cele dou canale PWM. Coninutul numrtorului este comparat continuu cu coninutul a dou registre de 8 bii, PWMO i PWM1, cte unul pentru fiecare canal (PWMn, n=0,1). Ct timp PWMC este mai mic dect valorile nscrise PWMO i PWM1, ieirile PWMO, respectiv PWM1 sunt forate n "0" logic, n momentul n care PWMC devine egal cu una din valorile PWMn, n=0,1, ieirea corespunztoare este forat n "1" logic, nivel care se menine atta timp ct PWMC PWMn. Astfel, factorul de umplere pentru un ciclu complet de numrare (255 de perioade ale semnalului la ieirea prescalerului) este controlabil prin coninutul registrelor PWM0 i PWM1, ntre 0 i 1, n incremeni de 1/255. Frecvena semnalelor la ieirile PWM0 i
PWM1 este dat de relaia:

f PWM =

f OSC , 2 ( PWMO + 1) 255

Aceasta conduce la o frecven cuprins ntre 92Hz i 23,5kHz, pentru fosc=12MHz. Registru de comparare PWM0 Comparator PWM0 Prescaler PWMP Numrtor PWMC Comparator PWM1

Registru de comparare PWM0

Figura 5.42: Blocul PWM

La modificarea coninutului registrelor de comparare PWMn, ieirile corespunztoare sunt actualizate imediat, nu dup terminarea ciclului curent de numrare.

125

Cu acest tip de microcontroller a fost construit un dispozitiv de comand a unui motor de c.c. Rotirea n ambele sensuri este realizat prin conectarea lui la un montaj n punte, figura 5.43.

Figura 5.43: Schema amplificatorului de curent Atunci cnd s-a testat aceast conectare i s-a folosit aceeai surs de alimentare pentru partea de comand i cea de putere s-a constatat c perturbaiile generate de motor influeneaz funcionarea plcii. Observaie: ieirile PWM sunt negate, de aceea este nevoie ca valorile introduse n regitrii PWMx trebuiesc complementate, pentru ca palierul activ sa fie proporional cu ceea ce se dorete la ieirile PWM. Ex: MOV A,#55 CPL A MOV PWM0,A ; incarca in acumulator valoarea imediata 55H ; se complementeaza acumulatorul ; doarece iesirea PWM0 este negata ; ncrcare registru de comparare

A fost realizat un program de test care comand motorul astfel nct s se roteasc pn la viteza maxim posibil i apoi s descreasc turaia pn cnd se oprete. ; semnalul pornete ca fiind 100% din timp 1 logic, scade, apoi crete, operaia ; se repet. PWMP equ 0FEh PWM0 equ 0FCh PWM1 equ 0FDh ORG 8000h LJMP MAIN ORG 8090h MAIN: MOV A,#20 ; se incarca acumulatorul cu #XX pentru ; frecventa semnalului de XkHz=11,059MHz/(2*(1+A)*255) MOV PWMP,A MOV A,#0FFh ; in A este valoarea imediata 00h de start CLR SENS ; pentru a stabili CRESTEREA/DESCRESTERA turaiei

126

ROTESTE: CPL A ; se complementeaza deoarece iesirea PWM este negata MOV PWM0,A ; ncrcare registru de comparare MOV R2,#4 DELAY: MOV R1,#0F0h DELAY1: MOV R0,#0FFh DJNZ R0,$ DJNZ R1,DELAY1 DJNZ R2,DELAY ; verificare si apoi stabilirea noului sens daca este nevoie CPL A JB SENS,DIRECT INVERS: SUBB A,#10h CJNE A,#0Fh,ROTESTE SETB SENS ; se schimba sensul SJMP ROTESTE DIRECT: CJNE A,#0FFh,CRESTE CLR SENS ; se schimba sensul SJMP ROTESTE CRESTE: ADD A,#10h ; factorul de umplere creste SJMP ROTESTE STOP: SJMP $ BSEG AT 20H SENS: DBIT 1 ; 1/0- factorul de umplere pozitiv creste/scade END
5.6.3.Detectorul de stare zero

O aplicaie de comand a motoarelor poate s ofere surprize n faza de proiectare sau chiar de implementare. Un exemplu de astfel de surpriz este cea care a aprut la nlocuirea indicatoarelor de bord clasice auto cu indicatoare comandate cu motoare de curent continuu. Dac cheia este decuplat n timpul micrii mainii sistemul electronic nu mai este alimentat i indicaia de vitez, respectiv turaie rmn la valorile din momentul scoaterii cheii. Pentru rezolvarea acestei probleme trebuie ca sistemul electronic s mai rmn alimentat un timp. Oricum, la mainile noi dup scoaterea cheii geamurile electrice se pot ridica, oglinzile se rabat etc. Pentru a uura comanda motorului n acest caz au aprut microcontrollere care au un bloc intern de feedback.

127

Modulul de comand al motoarelor din componena MC pe 32 de bii (MB91360) are integrat un bloc de detectare a strii rotorului1 . Schema bloc a blocului este dat n figura 5.44.
Comparator Selecie tact Logica de analiz Numrtor de 8 bii Rezultat Registru ZPD0 PWM2M0 1/9 AVCC

+ Validare/ invalidare alimentare

Figura 5.44: Schema bloc a detectorului de stare zero Logica de analiz eantioneaz ieirea comparatorului cu tactul selectat n ZPD0. Comparatorul compar intrarea de la PWM2M0 cu tensiunea de referin i seteaz bitul de rezultat al comparrii dac tensiunea de intrare este mai mare dect tensiunea de referin. Rezultatul comparrii devine 1 dac toate eantioanele (numrul lor este specificat n ZPD0) sunt 1. Ca urmare pinul PWM2M0 poate fi folosit pentru nchiderea unei bucle de reacie de control a motorului. Registrul ZPD0 (Zero Detect Register) conine: 3 bii selecteaz tactul (tact divizat cu 1,2,4,5,6 sau 8), un bit valideaz operarea detectorului de zero, 3 bii stabilesc numrul de eantioane (1,2,3,4 sau 5), un bit valideaz/ invalideaz alimentarea blocului analogic, un bit indic rezultatul comparrii.
Bibliografie

[1] http://www.celesco.com/?gclid=CLrzz_-A76ACFQO7ZwodlzrEHw, Traductori de poziie [2] http://www.unimeasure.com/lx.htm, Traductori de poziie [3] Ogrutan P., Microcontrollere si controllere grafice Fujitsu, Ed. Universitatii Transilvania Brasov, 2006, 182 pag, ISBN 973-635-621-3 [4] Gerigan C., Ogruan P., Tehnici de interfaare, Ed. Transilvania Braov, 2000, 315p., ISBN 973-9474-94-2 [5] Toacse Gh., Romanca M., Pan Gh., Step transductor for PM hybrid stepping motor, in Electric Power Components And Systems, Taylor & Francis INC, ISSN: 1532-5008 vol. 11/4, 1986, pp. 347-356

Aceast funcie a controllerului este patent al Siemens VDO Automotive AG i poate fi folosit doar cu acordul proprietarului.

128