5-motoare
TRANSCRIPT
-
7/31/2019 5-motoare
1/32
97
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 bordetc. 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 microcontrolleratt 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.
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 constanti ofrnare, conform unei traiectorii de vitez ca n figura 5.2.
Figura 5.2: Traiectoria de vitez
v
t
Accelerare Viteza Frnareta constant tc tf
Poziiaactual
Valoareanumeric a
poziiei finale
Comparatornumeric
MCC
SERVOMECANISM
SARCINA
Convertor
D/A
Traductor depoziie
Traductorde vitez
-
7/31/2019 5-motoare
2/32
98
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 pozi ie 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:
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.
PWM1P0=1
PWM2P0=0 MCC
PWM1P0
PWM2P0
Tensiuneape motor
Factorul de umplere este egal la cele 2 canale PWM imotorul nu se rotete pentru c tensiunea la bornele luieste 0
PWM1P0=0
PWM2P0=1 MCC
Motorul se rotete pentru c tensiunea la bornelelui (PWM1P0-PWM2P0) este diferit de 0.
-
7/31/2019 5-motoare
3/32
99
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 motori 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.
-
7/31/2019 5-motoare
4/32
100
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 observatubul 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 parcurgebobina i cmpul magnetic staionar produs n stator de magneii permaneni. Se utilizeaz
dou tipuri constructive: cu bobin lungi ntrefier scurt i cu bobin lungi 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
1 n acest capitol majoritatea fotografiilor sunt ale unor subansamble din colecia autorilor
-
7/31/2019 5-motoare
5/32
101
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 seoprete 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.
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.
Figura 5.9: Structura motorului pas cu pas bipolar
Conectarea unei nfurri (de exemplu 1a-1b) la cele 2 canale PWM permite inversareacurentului ca n diagramele din figura 5.10.
n acest caz controllerul trebuie s poat inversapolaritatea pentru o deplasare a curentului n
ambele sensuri. Controllerul trebuie s alimentezenfurrile succesiv cu o anumit secven pentruun sens i secvena invers pentru cellalt sens. ndesenul alturat o parcurgere a 4 faze nseamn orotire de 360. Motoarele reale au mai multenfurri i un pas nseamn o deplasareunghiular mic.
Impulsuri decomand
MPP
SERVOMECANISM SARCINA
-
7/31/2019 5-motoare
6/32
102
Figura 5.10: Inversarea curentului n nfurri la motoarele bipolare
MPP unipolare folosesc o priz median legat la alimentare, inversarea curentului obinndu-
se prin legarea la mas succesiv a terminalelor extreme ale nfurrii, ca n figura 5.11.
Figura 5.11: Inversarea curentului n motoarele unipolare
nfurrile motorului sunt conectate ca n figura 5.12.
Figura 5.12: Structura i nfurrile motorului unipolar
PWM1P0
PWM2P0
Tensiunea pe
nfurarea1a-1b
+V
0-V
Factorul de umplere al PWM1P0 este > dectal PWM2P0, tensiunea aplicat este pozitiv
Factorul de umplere al PWM1P0 este < dectal PWM2P0, tensiunea aplicat este negativ
V
I
V
ISe obin astfel cmpurimagnetice de senscontrar fr inversarea
polaritii
Prizele mediane suntlegate la alimentare isecvena de impulsurise aplic terminalelor1a, 1b, 2a, 2b.
-
7/31/2019 5-motoare
7/32
103
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].
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.
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.
Figura 5.15: Motor pas cu pas
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
Port paralel,
adresa adrD0
D1
D2
D3
........
F1 F2 F3
MOV DX, adrMOV AL,01OUT DX, ALCALL delayMOV AL,02OUT DX,AL
CALL delayMOV AL, 04OUT DX,ALCALL delay
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
-
7/31/2019 5-motoare
8/32
104
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.
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 atraductorului 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 5ki tensiunea aplicat poate fi de maximum 20V. Extinderea firuluipoate s nu fie liniar, cu condiia respectrii unor unghiuri limit. Senzorul SP1 este de
PWM1P0 conectat la 1a
PWM1M0 conectat la 2a
PWM2P0 conectat la 1b
PWM2M0 conectat la 2b
-
7/31/2019 5-motoare
9/32
105
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.
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
exteriori este un magnet permanent.
Ruletagradat
1mm
Roatadinat deantrenare
Zonatraductor
-
7/31/2019 5-motoare
10/32
106
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 2senzori 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 0-
30V. 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.
Senzor Hallfixat pe cablaj
Magnet fixat perotor
-
7/31/2019 5-motoare
11/32
107
Figura 5.21: Circuit driver pentru motoare ULN2003
Un circuit driver mai sofisticat prin care se pot comanda motoare de curent continuubidirecional 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.
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.
ENABLE
PHASE
IMOTOR
-
7/31/2019 5-motoare
12/32
108
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 capturi
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 capturi 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.
-
7/31/2019 5-motoare
13/32
109
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.
Figura 5.24: Schema bloc a numrtorului din componena timerului de I/O
intern
Numrtor de 16 bii 0/1
Registru de comparare0/2/4/6
Registru de comparare1/3/5/7
Registru de captur0/2/4/6
Registru de captur1/3/5/7
Selecie tactFRK0
FRK1
OUT0OUT2OUT4OUT6
OUT1OUT3OUT5OUT7
IN0IN2IN4IN6
IN1IN3IN5IN7
Tactintern
FRCK
tact
Numrtor pe 16 biiTCDT0/1
TCCSL
Ieire pentru comparare
Divizare
ECKETCCSH
Cerere de ntrerupere
IVF IVFE STOP MODE CLR CLK2 CLK1 CLK0
-
7/31/2019 5-motoare
14/32
110
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 iniializeaznumrtorul 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 bi i 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 decomparare de ieire i un registru de control. n MB90350 sunt integrate 4 module de
comparare separate (dar acelai numrtor la 2 module).
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.
timp
Valoare numrtor
FFFFH
BFFFH
7FFFH
3FFFH
0000H
/RESETINT
timp
Valoare numrtor
FFFFH
BFFFH
7FFFH
3FFFH
0000H
/RESETINT
Registrul decomparareeste BFFFH
Figura a Figura b
-
7/31/2019 5-motoare
15/32
111
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.
Cerere de ntrerupere comparator 1 /comparator 0
OCS Controlul comparrii
OCCP0 Registru de comparare 0
Valoare numrtor
OCCP1 Registru de comparare 1
OUT0
OUT1
ICP1 ICP0 ICE1 ICE0 CST0 CST1
-
7/31/2019 5-motoare
16/32
112
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 rencarci numrarea
rencepe. La coincidena valorii din numrtor cu cea stocat n registrul de compararesemnalul 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.
OCCP0=BFFFHOCCP1=7FFFH
Ieirile schimb valoarealogic la iniializareanumrtorului.
timp
Valoare numrtor
FFFFH
BFFFH
7FFFH
3FFFH
0000H
/RESET
OUT0
OUT1
CMOD1/0=00B
-
7/31/2019 5-motoare
17/32
113
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 bi i). 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.
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.
PWM1Selecie tact Selecie ieire
Registru de
comparare PWM1
Registru de
selecie PWM1
PWM1P0PWM1M0
PWM2 Selecie ieire
Registru decomparare PWM2
Registru deselecie PWM2
PWM2P0PWM2M0
Ciclu PWMRegistru de comparare
8 bii 10 bii
00H 000H80H 200HFFH 3FFH
-
7/31/2019 5-motoare
18/32
114
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 cumicrocontroller 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.
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 stabiletemomentul 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 circuiteHCTL 1100. Semnalul RESET aduce circuitul n starea iniial.
Interfaa cumicroprocesorul
AD0/DB0........
AD5/DB5DB6DB7/ALE/CS/OER//WRESET
REGISTREINTERNE
LIMIT STOPFlaguri urgene
INIT Flaguri de stare
PROF
Generator de profil
ReacieCHA CHB
Port decomand amotorului
MC0............
MC7
Port PWM PULSESIGN
Comutator PHAPHB
PHCINDEX PHD
/SYNC Timer
EXTCLK
-
7/31/2019 5-motoare
19/32
115
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).
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.
Figura 5.32: Conectarea unui motor de c.c. la HCTL 1100
HCTL 1100MC0MC1
MC7
CD/A+5V
IoConv. I-U
vo+
FOTO 1
FOTO 2
FOTO 1
FOTO 2
SENS
SENS
-
7/31/2019 5-motoare
20/32
116
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.
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%.
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.
00H 40H 80H C0H FFH registrul 08H
U+5V
2,5V
-2,5V
-5V
100%
50%
Factor de umplere
SIGN=0SIGN=1
80H 9CH 00H 32H 64Hregistrul 09H
-
7/31/2019 5-motoare
21/32
117
Frecvena impulsurilor poate fi variabil (programabil). Ca urmare se pot comanda i
motoare pas cu pas cu un anumit profil de vitez.
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 comandi 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.
VCC
C4
30pF
C61uF
C3
30pF
Y1
2MHz
R6
10K
U4
HCTL1100
AD02
AD13
AD24
AD35
AD46
AD57
AD68
AD79
MC018
MC119
MC220
MC321
MC422
MC523
MC624
MC725
SYNC1 PHA
26
PHB27
PHC28
PHD29
SIGN17
PULSE16
CHA31
CHB30
INDEX33
PROF12
INIT13
LIMIT14
STOP15
EXT CLK34
R/W37
OE40
CS39
ALE38
RESET36
U4
AT90S1200
reset
1
xtal14
xtal25
pb012
pb113
pb214
pb315
pb416
pb517
pb618
pb719
pd02
pd13
pd26
pd37
pd48
pd59
pd611
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 HCTL-
1100.
/INDEX
PHA
PHB
PHC
PHD
-
7/31/2019 5-motoare
22/32
118
.device AT90S1200rjmp start
short_delay: ;total 1+80*(1+1/2)-1+4=124;o ntrziere de 124 perioade de tact
ldi r26,80 ;1 tactsd: dec r26 ;1 tactbrne sd ;1/2 tactret ;4 tact
;#################################################################;PROCEDURA RESET HCTL-1100;#################################################################
rst: cbi $12,4 ;bitul de reset din portul Drcall short_delay ;se menine pinul de reset in 0 logicsbi $12,4 ;reset ncheiat
ret;#################################################################;PROCEDURA CITIRE;#################################################################
cit: clr r16out $17,r16 ;portul B intraresbi $12,0 ;comand readldi r17,0b00000001 ;s-a selectat un registru din HCTLout $18,r17cbi $12,3 ;puls pe ALEsbi $12,3
cbi $12,2 ;puls pe CSsbi $12,2
rcall short_delay
cbi $12,1 ;OE=0in r18,$18 ;citire propriu zis din HCTL1100sbi $12,1 ;OE=1
ret;#################################################################;#################################################################;PROCEDURA SCRIERE IN HCTL1100;#################################################################scr: ser r16
out $17,r16 ;portul B ieireldi r17,0b000000001 ;selecie latch din HCTL1100out $18,r17cbi $12,3sbi $12,3 ;puls ALE
cbi $12,0 ;selecie R/W pe scriereldi r18,0b1111111 ;date de trimis n HCTL1100
-
7/31/2019 5-motoare
23/32
119
out $18,r18 ;scrierea propriu ziscbi $12,2sbi $12,2 ;puls CSsbi $12,0 ;revenire la modul citire din HCTL1100ret
;#################################################################start :ser r16out $11,r16 ;portul D ieire
rcall short_delay ;se invoc o mic ntrzierercall rst ;se trimite comand reset la HCTL1100rcall citrcall scr
Exist dou moduri de cuplare a lui HCTL-1100 la MC 8051, i anume legarea la magistralade 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.
Vcc
Vcc
U4
HCTL1100
AD02
AD13
AD24
AD35
AD46
AD57
AD68
AD79
MC018
MC119
MC220
MC321
MC422
MC523
MC624
MC725
SYNC1 PHA
26
PHB 27
PHC28
PHD29
SIGN17
PULSE16
CHA31
CHB30
INDEX33
PROF 12INIT
13
LIMIT14
STOP15
EXT CLK34
R/W37
OE40
CS39
ALE38
RESET36R7
10K
C9
10uF
C8
22pF
C7
22pFY2
2MHz
U5
8051
EA/VP31
X119
X218
RESET9
INT012
INT113
T014
T115
P1.01
P1.12
P1.23
P1.34
P1.45
P1.56
P1.67
P1.78
P0.039
P0.138P0.2
37
P0.336
P0.435
P0.534
P0.633
P0.732
P2.021
P2.122
P2.223
P2.324
P2.425
P2.526
P2.627
P2.728
RD17
WR16
PSEN29
ALE/P30
TXD11
RXD10
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).
-
7/31/2019 5-motoare
24/32
120
;##############################################################;PROCEDURA RESET;##############################################################RS1100: ORL P2,#0FH ;Seteaz liniile de R/W la citire, OE=1, CS=1, AE=1
MOV P0,#0FFH ;Seteaz P1=HIGHCLR P2.4 ;Seteaz RESET pe LOWNOP ;ntrziere corespunztoare unui impuls de 5sNOPNOPNOPSETB P2.4 :Readuce linia RESET n HIGHRET
;################################################################
;################################################################
;PROCEDURA CITIRE (Citete registrul lui HCTL);################################################################RD1100 SETB P2.0 ;Seteaz liniile R/W pentru citire
MOV P1,B ;Adresa de LATCHCLR P2.3 :Se genereaz un puls ALESETB P2.3MOV P1,#0FFHCLR P2.2 ;Se genereaz un puls CSSETB P2.2
NOP ;ntrziere corespunztoare unui impuls de 4sNOPNOPCLR P2.1 ;Seteaz OE=0MOV A,P0 ;Se iau datele din HCTL 1100SETB P2.1 ;Seteaz OE=1RET
;################################################################;PROCEDURA SCRIERE (Scrie n registrul lui HCTL);################################################################WR1100 MOV P1,B ;Adresa de LATCH
CLR P2.3 :Se genereaz un puls ALE
SETB P2.3MOV P1,#0FFHCLR P2.0 ;Seteaz liniile R/W pentru scriereMOV P1,A ;Se emit dateleCLR P2.2 ;Se genereaz un puls CSSETB P2.2SETB P2.0 ;ntoarcere la modul de citireMOV P1,#0FFHRET
;###############################################################
-
7/31/2019 5-motoare
25/32
121
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 nfigura 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.
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 EQU $00 Se aloc denumiri sugestive porturilor A i CPORTC EQU $02 precum i registrelor pentru stabilirea sensuluiDRDA EQU $04DRDC EQU $06PWMAD EQU $10 portul de date PWM (pe liniile port A
CTLA EQU $14 portul de control al PWM
Start EQU *CLR CTLA registrul de control al PWM este ResetatLDA #$20 se trimite 20h n portul de date PWMSTA PWMAD (factor de umplere 50%)LDA #$00 registrul C este definit de intrareSTA DDRC (se putea i cu CLR PORTC)
adr BRSET 0,PORTC,adr1 bitul 0 este setat (buton apsat)?BSR adr_off dac da, salt la subrutina motor oprit (off)
adr1 BRSET 1,PORTC,adr2 dac nu, se verific urmtorul buton...........................................................
MC68705
OSC1 PWMA1OSC2
VddPC0PC1PC2
Vss
+5V
+5V
Motor de c.c.cu erii
OpritCretere vitezScdere viteza
-
7/31/2019 5-motoare
26/32
122
BRA adr bucla se repet continuu
Adr_off LDA #$00 se trimite 00h n portul de date PWMSTA 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 comandaschimbrii polaritii tensiunii de alimentare a motorului.
Comanda PWM a unui motor pas cu pas folosind un MC Motorola 6805poate 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 modificati viteza de comutaie.
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.
MC68705
OSC1 PWMA1PWMA2
OSC2 PWMA3
VddPA0PB7PB6
Vss
+5V
Motor
ULN2003
nfurristator
TraductoriHall
-
7/31/2019 5-motoare
27/32
123
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 fifurnizat 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.
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 rotetentr-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.
83C51FA
P1.3
P1.4
L293(Driver)
M
Traductor Hallcu ieire digital
u
Generator de tact
P1.3
P1.4
Tensiunea ula bornelemotorului a b
-
7/31/2019 5-motoare
28/32
124
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 masi +5V.Cteva elemente din programul de comand sunt prezentate n continuare:
MOV CMOD,#06 :se stabilete intrarea pentru PWM de la pin exterior
MOV CCAPM0,#42H :stabilete canalul 0 din arie n mod PWM
MOV CCAPM1,#42H :stabilete canalul 1 din arie n mod PWM
MOV CCAP0L,#0H :stabilete un factor de umplere 100% pentru canalul 0
MOV CCAP1L,#0H :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 prinpoziionarea 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,#0FFHETB 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 ;se stabilete tactul timerului ca fosc/12
MOV CCAPM3 ;canalul 4 n mod captur
SETB IP.6 ;se seteaz ntreruperea de la PCA la cea mai mare prioritate
MOV IE,0C0H ;se valideaz ntreruperile de la PCASETB CR ;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 deoscilatorul intern (fosc/2) i de un prescaler de 8 bii, PWMP. Acesta poate fi ncrcat prin
-
7/31/2019 5-motoare
29/32
125
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 iPWM1este dat de relaia:
255)1(2 +=
PWMO
ff OSCPWM ,
Aceasta conduce la o frecven cuprins ntre 92Hz i 23,5kHz, pentru fosc=12MHz.
Figura 5.42: Blocul PWM
La modificarea coninutului registrelor de comparare PWMn, ieirile corespunztoare sunt
actualizate imediat, nu dup terminarea ciclului curent de numrare.
PrescalerPWMP
umrtorPWMC
Registru de compararePWM0
Comparator
Registru de compararePWM0
Comparator
PWM0
PWM1
-
7/31/2019 5-motoare
30/32
126
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 curentAtunci 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 ; incarca in acumulator valoarea imediata 55H
CPL A ; se complementeaza acumulatorul; doarece iesirea PWM0 este negata
MOV PWM0,A ; ncrcare registru de comparare
A fost realizat un program de test care comand motorul astfel nct s se roteasc pn la
viteza maxim posibili 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 0FChPWM1 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 startCLR SENS ; pentru a stabili CRESTEREA/DESCRESTERA turaiei
-
7/31/2019 5-motoare
31/32
127
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,DIRECTINVERS:
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 ROTESTECRESTE:
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.
-
7/31/2019 5-motoare
32/32
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.
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 referini 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
1
Aceast funcie a controllerului este patent al Siemens VDO Automotive AG i poate fi folosit doar cuacordul proprietarului.
Rezultat
+-
Logica de analizNumrtor de 8 bii
PWM2M0
1/9 AVCC
Registru ZPD0
Validare/invalidarealimentare
Selecie tact
Comparator