capitolul 5 - comanda motoarelor cu microcontrollere

Upload: gabrieldanut

Post on 02-Mar-2016

75 views

Category:

Documents


0 download

TRANSCRIPT

  • 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 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.

    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.

    Figura 5.2: Traiectoria de vitez

    v

    t

    Accelerare Viteza Frnare ta constant tc tf

    Poziia actual

    Valoarea numeric a poziiei finale

    Comparator numeric

    MCC

    SERVOMECANISM

    SARCINA

    Convertor D/A

    Traductor de poziie

    Traductor de vitez

  • 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 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:

    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 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

    PWM1P0=0 PWM2P0=1 MCC

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

  • 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 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.

  • 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 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

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

  • 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 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.

    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 inversarea curentului ca n diagramele din figura 5.10.

    n acest caz controllerul trebuie s poat inversapolaritatea pentru o deplasare a curentului nambele 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 de comand

    MPP

    SERVOMECANISM SARCINA

  • 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 nfurarea 1a-1b

    +V 0 -V

    Factorul de umplere al PWM1P0 este > dect al PWM2P0, tensiunea aplicat este pozitiv

    Factorul de umplere al PWM1P0 este < dect al PWM2P0, tensiunea aplicat este negativ

    V

    I

    V

    ISe obin astfel cmpuri magnetice de sens contrar fr inversarea polaritii

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

  • 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 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

    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

  • 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 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

    PWM1P0 conectat la 1a PWM1M0 conectat la 2a PWM2P0 conectat la 1b PWM2M0 conectat la 2b

  • 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 exterior i este un magnet permanent.

    Ruleta gradat

    1mm

    Roata dinat de antrenare

    Zona traductor

  • 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 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 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 Hall fixat pe cablaj

    Magnet fixat pe rotor

  • 107

    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.

    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

  • 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 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.

  • 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 comparare 0/2/4/6

    Registru de comparare 1/3/5/7

    Registru de captur 0/2/4/6

    Registru de captur 1/3/5/7

    Selecie tact FRK0 FRK1

    OUT0 OUT2 OUT4 OUT6 OUT1 OUT3 OUT5 OUT7 IN0 IN2 IN4 IN6 IN1 IN3 IN5 IN7

    Tact intern FRCK

    tact Numrtor pe 16 bii TCDT0/1

    TCCSL

    Ieire pentru comparare

    Divizare

    ECKE TCCSH

    Cerere de ntrerupere

    IVF IVFE STOP MODE CLR CLK2 CLK1 CLK0

  • 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 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).

    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 /RESET INT

    timp

    Valoare numrtor

    FFFFH BFFFH 7FFFH 3FFFH 0000H /RESETINT

    Registrul de comparare este BFFFH

    Figura a Figura b

  • 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

  • 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 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.

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

    timp

    Valoare numrtor

    FFFFH

    BFFFH

    7FFFH

    3FFFH

    0000H

    /RESET

    OUT0

    OUT1

    CMOD1/0=00B

  • 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 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.

    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.

    PWM1 Selecie tact Selecie ieire

    Registru de comparare PWM1

    Registru de selecie PWM1

    PWM1P0 PWM1M0

    PWM2 Selecie ieire

    Registru de comparare PWM2

    Registru de selecie PWM2

    PWM2P0 PWM2M0

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

  • 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 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.

    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.

    Interfaa cu microprocesorul

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

    LIMIT STOPFlaguri urgene

    INIT Flaguri de stare PROF

    Generator de profil

    Reacie CHA CHB

    Port de comand a motorului

    MC0 ............

    MC7

    Port PWM PULSE SIGN

    Comutator PHA PHB PHC INDEX PHD

    /SYNC Timer EXTCLK

  • 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 1100 MC0 MC1 MC7

    CD/A +5V

    IoConv. I-U

    vo +

    FOTO 1

    FOTO 2

    FOTO 1

    FOTO 2

    SENS

    SENS

  • 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=0 SIGN=1

    80H 9CH 00H 32H 64H registrul 09H

  • 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 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.

    VCC

    C4

    30pF

    C61uF

    C3

    30pF

    Y12MHz

    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

    PROF 12

    INIT13

    LIMIT 14

    STOP15

    EXT CLK34

    R/W37

    OE40

    CS39

    ALE38

    RESET36

    U4

    AT90S1200

    reset1

    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

  • 118

    .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 ;portul B intrare sbi $12,0 ;comand read ldi r17,0b00000001 ;s-a selectat un registru din HCTL out $18,r17 cbi $12,3 ;puls pe ALE sbi $12,3 cbi $12,2 ;puls pe CS 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

  • 119

    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 ;se invoc o mic ntrziere rcall rst ;se trimite comand reset la HCTL1100 rcall cit rcall scr

    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.

    Vcc

    Vcc

    U4

    HCTL1100

    AD02

    AD13

    AD24

    AD35

    AD46

    AD57

    AD68

    AD79

    MC018

    MC119

    MC220

    MC3 21

    MC4 22

    MC5 23

    MC624

    MC725

    SYNC1PHA 26

    PHB 27

    PHC 28

    PHD29

    SIGN17

    PULSE16

    CHA 31

    CHB 30

    INDEX33

    PROF12

    INIT13

    LIMIT14

    STOP15

    EXT CLK34

    R/W37

    OE40

    CS39

    ALE38

    RESET36R710K

    C9

    10uF

    C8

    22pF

    C7

    22pF Y22MHz

    U5

    8051

    EA/VP31

    X119

    X218

    RESET9

    INT012

    INT113

    T014

    T115

    P1.01

    P1.12

    P1.23

    P1.3 4

    P1.4 5

    P1.5 6

    P1.67

    P1.78

    P0.039

    P0.138

    P0.237

    P0.336

    P0.435

    P0.534

    P0.633

    P0.732

    P2.021

    P2.122

    P2.223

    P2.3 24

    P2.4 25

    P2.5 26

    P2.627

    P2.728

    RD17

    WR16

    PSEN29

    ALE/P 30

    TXD 11

    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).

  • 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=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 ;###############################################################

  • 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 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.

    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 C PORTC EQU $02 precum i registrelor pentru stabilirea sensului DRDA EQU $04 DRDC EQU $06 PWMAD 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 Resetat LDA #$20 se trimite 20h n portul de date PWM STA PWMAD (factor de umplere 50%) LDA #$00 registrul C este definit de intrare STA 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 PWMA1 OSC2 Vdd PC0 PC1 PC2 Vss

    +5V

    +5V

    Motor de c.c. cu perii

    Oprit Cretere vitez Scdere viteza

  • 122

    BRA adr bucla se repet continuu Adr_off 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.

    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 PWMA1 PWMA2 OSC2 PWMA3 Vdd PA0 PB7 PB6 Vss

    +5V

    Motor

    ULN 2003

    nfurristator

    Traductori Hall

  • 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 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.

    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.

    83C51FA

    P1.3

    P1.4

    L293 (Driver)

    M

    Traductor Hall cu ieire digital

    u

    Generator de tact

    P1.3 P1.4 Tensiunea u la bornele motorului a b

  • 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 mas i +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 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 ;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 PCA SETB 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 de oscilatorul intern (fosc/2) i de un prescaler de 8 bii, PWMP. Acesta poate fi ncrcat prin

  • 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 i

    PWM1este dat de relaia:

    255)1(2 += PWMOff 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.

    Prescaler PWMP

    Numrtor PWMC

    Registru de compararePWM0

    Comparator

    Registru de compararePWM0

    Comparator

    PWM0 PWM1

  • 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 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 ; 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 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

  • 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,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.

  • 128

    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 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

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

    Rezultat

    + -

    Logica de analiz Numrtor de 8 bii

    PWM2M0 1/9 AVCC

    Registru ZPD0 Validare/ invalidare alimentare

    Selecie tact

    Comparator