Accelerați dezvoltarea aplicațiilor pentru motoare BLDC pentru automobile și IoT, cu driverul de motor A4964KJPTR-T
Contributed By DigiKey's North American Editors
2021-10-26
Motoarele de curent continuu fără perii (BLDC) sunt utilizate din ce în ce mai des în numeroase aplicații diferite, de la deschizători de garaj și geamuri auto controlate de la distanță prin Internetul lucrurilor (IoT), până la controlere de propulsie pentru sateliți. Problema pe care proiectanții o au cu motoarele BLDC este faptul că algoritmii de control necesari pentru a le comanda sunt complecși și adesea specializați. Pentru un inginer obișnuit, acest lucru înseamnă dificultăți la punerea în funcțiune a unui sistem într-un timp rezonabil.
În general, dezvoltatorii sunt nevoiți să aleagă între o soluție bazată pe software care rulează pe un microcontroler, fiind o soluție software flexibilă, dar care, de asemenea, impune o sarcină de calcul asupra microcontrolerului, sau să utilizeze un circuit integrat (CI) dedicat. Acesta din urmă înglobează întreaga funcție de control al motorului BLDC și descarcă controlul BLDC de la gazdă.
Acest articol analizează diferențele dintre o soluție software bazată pe microcontroler și o soluție hardware dedicată cu cipuri. Apoi, se analizează în profunzime modul de utilizare a A4964KJPTR-T de la Allegro MicroSystems, un driver de motor conceput pentru simplificarea controlului motoarelor BLDC, în special pentru aplicațiile auto. Articolul va arăta cum să interacționați cu A4964KJPTR-T și va prezenta câteva bune practici pentru a evita un comportament neașteptat.
O (foarte) scurtă introducere în motoarele BLDC
Motoarele BLDC asigură o livrare eficientă a cuplului pe o gamă largă de viteze, sunt silențioase și nu sunt afectate de frecarea mecanică a motoarelor cu perii. Motoarele BLDC sunt controlate de curent, nu de tensiune, ceea ce le permite să fie utilizate într-o mare varietate de aplicații, pentru care sunt disponibile într-o mare varietate de forme, dimensiuni și costuri.
De exemplu, QBL4208-41-04-006 de la TRINAMIC Motion Control este un motor de 24 de volți, cu 4000 de rotații pe minut (RPM), care asigură cupluri de până la 0,06 Newton-metri (Nm) (Figura 1). Motorul este ușor (0,662 livre (lb)) și oferă dezvoltatorului mai multe opțiuni de control al motorului, cum ar fi funcționarea fără senzori, utilizând forța contraelectromotoare (BEMF), sau utilizând senzori încorporați care raportează poziția.
Figura 1: QBL4208-41-04-006 este un motor BLDC de 24 de volți, cu 4000 de rotații pe minut, care poate furniza un cuplu de puțin peste 0,06 Nm la viteza maximă. (Sursa imaginii: TRINAMIC Motion Control GmbH)
Pentru un cuplu mai mare, proiectanții pot utiliza QBL4208-41-04-025, tot de la TRINAMIC Motion Control (Figura 2). Acesta este un motor BLDC de 24 de volți, cu 4000 de rotații pe minut, care poate furniza un cuplu de puțin peste 0,25 Nm.
Figura 2: QBL4208-41-04-025 de la TRINAMIC Motion Control este un motor BLDC de 24 de volți, 4000 RPM, care poate furniza un cuplu de puțin peste 0,25 Nm la viteza maximă. (Sursa imaginii: TRINAMIC Motion Control GmbH)
Motoarele BLDC sunt acționate prin linii trifazate care generează un câmp magnetic care împinge apoi magneții permanenți pentru a mișca statorul și a învârti motorul.
În teorie, acest lucru pare ușor, dar în practică, comanda unui motor BLDC este destul de complicată, ceea ce îi face pe dezvoltatori să aleagă între utilizarea unui cadru software pentru comanda motorului sau o soluție cu cip dedicat.
Soluțiile software față de cele cu cipuri dedicate
Există mai mulți factori pe care dezvoltatorii ar trebui să îi ia în considerare atunci când vine vorba de rezolvarea modului de rotire a motorului BLDC. În esență, acești factori se rezumă la:
- Costul BOM față de costul forței de muncă
- Complexitatea plăcii față de complexitatea software-ului
- Timpul și costurile de întreținere
Din perspectiva hardware-ului, alegerea unei soluții software poate fi foarte tentantă, deoarece o soluție cu cip dedicat adaugă un cost suplimentar la lista de materiale. În locul unui cip dedicat, eliminați acest cost, cheltuiți puțin mai mult pe un microcontroler și puneți toți algoritmii de control în acel microcontroler. Pare a fi o situație avantajoasă pentru ambele părți, însă echipele nu se gândesc la toate ramificațiile acestei decizii.
Da, scade costul BOM, dar vine cu o sarcină suplimentară asupra microcontrolerului pentru procesarea datelor de stare BLDC și pentru acționarea continuă a motorului. Dacă microcontrolerul încearcă și să eșantioneze alți senzori, să comunice cu un radio și să controleze alte dispozitive, costurile de dezvoltare și întreținere a software-ului ar putea crește foarte mult dacă nu se acționează cu atenție.
Acestea fiind spuse, o soluție bazată pe software într-un microcontroler poate oferi flexibilitate prin faptul că o echipă își poate regla cu precizie algoritmii de control al motorului. De asemenea, utilizarea unui software nu înseamnă că lucrurile trebuie să devină întotdeauna prea complicate.
De exemplu, în mod normal, mutarea algoritmului de control al motorului în microcontroler ar putea ocupa mai multă memorie RAM și ar necesita o cantitate mare de memorie flash. Cu toate acestea, în cazul în care o echipă utilizează un microcontroler conceput pentru controlul motoarelor, cum ar fi microcontrolerul de control al motoarelor F280049CRSHSR de la Texas Instruments, algoritmii sunt încorporați într-o bibliotecă care se află în memoria ROM a microcontrolerului. Acest lucru înseamnă că singurul cod suplimentar adăugat la aplicație sunt apelurile funcționale pentru accesarea bibliotecii care face toate operațiunile grele.
Totuși, rotirea unui motor BLDC nu se reduce doar la software, ci necesită și hardware. Figura 3 prezintă un exemplu de aplicație care utilizează un microcontroler C2000, din care F280049CRSHSR este un membru al familiei, ilustrând tot ceea ce este necesar și opțional pentru a comanda un motor BLDC. În afară de un microcontroler, trebuie să existe și un etaj de alimentare trifazat care să poată acționa cele trei faze ale motorului BLDC pentru a-l face să se învârtă.
Figura 3: microcontrolerele C2000 de la Texas Instruments sunt concepute pentru aplicații de control al motoarelor. Această imagine prezintă un exemplu de aplicație cu microcontrolerul în centru și circuitele esențiale și opționale necesare pentru a acționa un motor BLDC. (Sursă imagine: Texas Instruments)
Utilizarea unui microcontroler pentru acționarea motorului este cu siguranță interesantă, dar cum arată o soluție hardware dedicată? Să aruncăm o privire asupra cipului de driver de motor A4964KJPTR-T de la Allegro MicroSystems.
Driverul de motor Allegro MicroSystems A4964KJPTR-T
Cipul de driver al motorului Allegro MicroSystems A4964KJPTR-T este un driver de motor BLDC dedicat, care conține toate informațiile necesare pentru a acționa un motor (Figura 4). Proiectat special pentru aplicații auto și pentru a fi utilizat cu MOSFET-uri cu canal N, cipul are pornire și comutare fără senzori, astfel încât necesită hardware extern minim. În plus, A4964KJPTR-T funcționează cu o gamă largă de tensiuni, de la 5,5 la 50 de volți, ceea ce acoperă aproape toate aplicațiile standard, împreună cu sistemele auto.
Poate cea mai interesantă caracteristică a dispozitivului A4964KJPTR-T este faptul că poate fi interfațat cu un microcontroler sau cu o unitate centrală de control electronic (ECU) prin intermediul interfeței periferice seriale (SPI) pentru a configura diferitele registre pentru funcționarea motorului. Evident, microcontrolerul nu trebuie să fie la fel de puternic ca cel care acționează algoritmii de control al motorului.
Figura 4: driverul de motor BLDC A4964KJPTR-T poate funcționa de la 5,5 până la 50 de volți și oferă pornire și comutare fără senzori. Viteza motorului poate fi configurată prin SPI sau printr-un semnal PWM dedicat. (Sursa imaginii: Allegro MicroSystems)
Alternativ, și aceasta este partea interesantă, viteza motorului A4964KJPTR-T poate fi acționată și fără SPI prin simpla furnizare a unui semnal de modulație a impulsului în lățime (PWM). Există o memorie nevolatilă în care pot fi stocate setările pentru motor, care sunt încărcate la pornirea motorului, permițând doar un semnal PWM pentru controlul motorului.
În ceea ce privește configurația, A4964KJPTR-T are 32 de registre adresabile pe 16 biți, plus un registru de stare. Registrul de stare este unic prin faptul că primii 5 biți sunt transmiși în timpul fiecărei operațiuni de citire/scriere pe SPI, permițând software-ului să verifice o stare generală pentru a vedea dacă există defecțiuni sau probleme. Toate registrele de stare pot fi citite în timpul operațiunilor de scriere pe cip, deoarece nu se transmit date înapoi de la A4964KJPTR-T.
În cele 32 de registre adresabile există și două registre speciale. Registrul 30 este numai pentru scriere, iar registrul 31 este numai pentru citire. Registrul numai pentru scriere permite dezvoltatorului să seteze intrarea de cerere sau rata ciclului de funcționare la care va fi acționat motorul, cu o valoare cuprinsă între 0 și 1023. Datele registrului numai pentru citire se modifică în funcție de datele solicitate care sunt scrise în registrul 29, registrul de selectare a citirii. Acest registru permite recuperarea unei game largi de informații telemetrice, cum ar fi:
- Diagnosticare
- Viteza motorului
- Curentul mediu de alimentare
- Tensiunea de alimentare
- Temperatura cipului
- Intrarea cererii
- Ciclul de funcționare maxim aplicat al punții
- Avans de fază aplicat
Dincolo de aceste registre speciale, restul de 30 permit reglarea aplicației specifice a motorului și permit activarea sau dezactivarea defecțiunilor, cum ar fi limitarea curentului și defecțiunile de acționare a porții.
Driverele de motor dedicate sunt interesante, deoarece acestea însumează tot ceea ce trebuie configurat pentru a rula motorul în câteva zeci de registre de configurare. Acest lucru elimină în mod semnificativ orice alocare suplimentară de octeți pentru software care altfel ar exista pe un microcontroler și, poate mai important, poate reduce în mod considerabil costurile de dezvoltare și de întreținere a software-ului. Acționarea BLDC nu este nimic mai mult decât trimiterea unui semnal PWM, care poate să nu aibă niciun cost suplimentar într-un microcontroler, sau activarea bitului motorului și furnizarea unei intrări de cerere bazate pe SPI pentru a roti BLDC-ul.
Sfaturi și trucuri pentru utilizarea A4964KJPTR-T
A4964KJPTR-T este o interfață destul de simplă, dar există câteva „sfaturi și trucuri” pe care dezvoltatorii ar trebui să le aibă în vedere pentru a simplifica și accelera dezvoltarea, cum ar fi:
- Registrul de stare este returnat pe interfața SPI în timpul fiecărei scrieri pe cip și nu este disponibil ca un registru dedicat, adresabil. Acest lucru înseamnă că linia SDO a magistralei SPI trebuie monitorizată de codul driverului în timp ce acesta inscripționează pe cip, pentru a obține informații legate de stare.
- Informațiile privind defecțiunile sunt incluse în registrul de stare, dar o imagine de ansamblu a stării cipului este disponibilă în fiecare tranzacție SPI în primii cinci biți, atunci când microcontrolerul furnizează informațiile de acces la adresă. Aceste date pot fi utilizate pentru a determina dacă au apărut probleme.
- Există două registre unice în harta de memorie, care sunt numai pentru citire și numai pentru scriere. Acest lucru este clar, dar aveți grijă să nu încercați să citiți din registrul numai pentru scriere, deoarece astfel veți scrie în registru orice date fictive utilizate în secvența de citire.
- Cipul are o memorie nevolatilă care poate fi utilizată pentru a stoca parametrii impliciți. Acești parametri sunt încărcați în memoria RAM și sunt utilizați în timpul pornirii. Pentru a vă asigura că cipul pornește în modul cel mai eficient în starea de pregătire, programați valorile de pornire „sigură” în cip.
- Dacă dispozitivul final funcționează într-un mediu zgomotos sau bogat în radiații, nu este o idee rea să proiectați codul aplicației pentru a reafirma periodic datele de configurare. Configurația cipului este stocată în memoria RAM, ceea ce înseamnă că este vulnerabilă la razele cosmice, la răsturnările de biți și la toate acele evenimente rare și amuzante pe care le pot întâlni aparatele electronice.
Concluzie
Implementările motoarelor BLDC pentru automobile, IoT sau alte aplicații sunt destul de comune, dar acționarea acestora poate fi complexă. Pentru a gestiona complexitatea software-ului, dezvoltatorii pot utiliza un driver dedicat pentru motoare BLDC, cum ar fi A4964KJPTR-T, care înglobează toate funcționalitățile de control al motorului.
Deși software-ul încă este necesar pentru a interacționa cu cipul, microcontrolerul pe care rulează software-ul trebuie doar să stabilească setările de configurare, iar A4964KJPTR-T se ocupă de acționarea motorului. Dezvoltatorii care urmează „sfaturile și trucurile” furnizate vor descoperi că economisesc destul de mult timp și stres atunci când încep utilizarea A4964KJPTR-T.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.




