ArticolCategorie: [Alegeți o categorie, nu traduceți acest lucru]

AuthorImage: [Aici avem nevoie de o mică imagine de la dvs.]

sursă

TranslationInfo: [Autor + istoricul traducerilor. mailto: sau http: // homepage]

AboutTheAuthor: [O mică biografie despre autor]

Guido iubește Linux nu numai pentru că este distractiv să descoperi marile posibilități ale acestor sisteme, ci și datorită oamenilor implicați în proiectarea acestuia.

Rezumat: [Aici scrieți un mic rezumat]

Acest articol este al patrulea articol din seria de microcontrolere Linux Focus AT90S4433. Vă sugerez să citiți articolele anterioare despre programarea microcontrolerelor Atmel cu privire la:

  1. Cum se instalează și se utilizează mediul de dezvoltare Linux AVR și cum se construiește hardware-ul programatorului:
    Martie 2002, Programarea microcontrolerului AVR cu GCC
  2. Cum să vă creați propria placă de circuite imprimate:
    Mai 2002, un panou de control LCD pentru serverul dvs. Linux
  3. Cum să construiți carcasa/cutia pentru sursa de alimentare:
    Septembrie 2002, Contor de frecvență 1Hz-100Mhz cu afișaj LCD și interfață RS232
Unul dintre cele mai importante dispozitive pentru atelierul dvs. acasă este o sursă de curent continuu bună și fiabilă. În acest articol vom construi o astfel de sursă de alimentare. Acesta va fi controlat de microcontroler. Are un ecran LCD și îi puteți trimite comenzi de pe computerul dvs. Linux prin interfața RS232. Are un design foarte robust.

Acest articol arată, de asemenea, cât de versatile sunt microcontrolerele. Cu toate acestea, nu este cel mai simplu circuit.
Dacă sunteți doar în căutarea unei surse de alimentare DC simple, aruncați o privire la „puterea DC simplă”. DC-ul simplu este bun dacă aveți nevoie doar de o unitate de alimentare mică pentru celelalte experimente electronice din Linux Focus. Cu toate acestea, nu are nimic de-a face cu Linux și software-ul în general.
Chiar dacă în cele din urmă construiți doar unitatea „simplă putere DC”, puteți citi și învăța multe aspecte interesante despre microcontrolere.

ArticleIllustration: [Aceasta este poza de titlu pentru articolul dvs.]

ArticleBody: [Corpul articolului]

Introducere

Acest microcontroler bazează sursa de alimentare DC nu este cel mai simplu circuit, dar vă pot asigura că nu veți regreta timpul necesar pentru a-l construi. Este foarte robust și fiabil. Este, de asemenea, foarte interesant din punct de vedere tehnic, deoarece veți învăța cum să generați o tensiune DC analogică cu un microcontroler fără a utiliza un cip DA-converter.

Aveți nevoie de multe piese pentru acest articol, dar acestea sunt doar piese standard ieftine. Această sursă de alimentare nu este scumpă.

De ce ai nevoie

Schema și placa

Am folosit Eagle pentru Linux pentru a proiecta schema și placa. Fișierele Eagle sunt, de asemenea, incluse în pachetul tar.gz împreună cu software-ul. O puteți descărca la sfârșitul articolului.

Circuitul este împărțit în 2 părți. O parte principală și o parte care ar trebui să fie aproape de tranzistoarele de putere. Mai jos vedeți 2 diagrame independente pentru cele două părți, dar acestea vor fi în cele din urmă conectate prin fire.

Schema principală (faceți clic pe ea pentru o imagine mai mare):

Schema pentru partea de mare putere (faceți clic pe ea pentru o imagine mai mare):

Cum să conectați butoanele într-o matrice (faceți clic pe ea pentru o imagine mai mare):

Placa principală, vedere de sus (faceți clic pe ea pentru o imagine mai mare):


Placa este special concepută pentru hobby electronic. Doar stratul albastru este menit să fie gravat ca o placă de circuite imprimate. Liniile roșii sunt fire. Este mult mai ușor și este mai puțin precisă pentru a construi o placă de circuite imprimate pe o singură față. Puteți așeza firele (roșii) astfel încât să aibă cea mai mică lungime. Nu am putut face asta în vultur.

Cele câteva părți din partea de putere mare a sursei de alimentare pot fi montate pe plăci standard de prototipare (acele plăci cu multe găuri). Placa principală și partea de alimentare sunt conectate prin fire (JP2 și JP3). Veți observa că firul de masă de la partea principală se conectează plus ieșirea DC. Acest lucru este corect și este motivul pentru care avem nevoie de două transformatoare separate pentru (unul pentru partea de putere și unul pentru partea logică cu microcontroler și amplificatoare operaționale).

Cum functioneaza

Privind schema principală puteți vedea că este alcătuită din 2 părți logice. Unul este marcat în schemă ca „control al curentului”, iar celălalt „control al tensiunii”. Acestea sunt 2 bucle de control independente. O buclă controlează tensiunea de ieșire și cealaltă căderea de tensiune peste rezistorul de 0,275 Ohm din partea de putere. Căderea de tensiune este echivalentă cu curentul. Cele două părți de control sunt „combinate” prin intermediul diodelor D2 și D3. Aceste diode formează o poartă OR electrică analogică. Asta dacă curentul este prea mare, atunci partea de control a curentului scade tensiunea până când este sub limita altfel (curentul nu este prea mare) partea de control a tensiunii este responsabilă de reglarea tensiunii de ieșire.

Acest OR logic funcționează deoarece tranzistorul T3 este conectat prin R19 la + 5V. Dacă nu există amplificatoare operaționale conectate în spatele D2 și D3, atunci veți obține puterea maximă de ieșire. Amplificatoarele operaționale din buclele de control controlează ieșirea scoțând + 5V de la T3 (trageți-l cât este necesar la masă).

Bucla de control al tensiunii controlează tensiunea de ieșire în funcție de nivelul de tensiune pe care îl obține la pinul 5 al IC6B. Cu alte cuvinte, tensiunea pe pinul 5 este echivalentă cu ieșirea înmulțită cu factorul de amplificare care este determinat de rezistențele R15, R10 și R16. Același lucru este valabil și pentru curent, cu excepția faptului că tensiunea de pe rezistorul R30 este echivalentă cu max. curent de ieșire.

Pentru a seta curentul maxim sau pentru a regla ieșirea sursei de alimentare, trebuie doar să furnizăm tensiuni corespunzătoare pe cele două puncte (pinul 5 al IC6B și rezistorul R30). Aceasta este ceea ce face microcontrolerul. dar cum poate un microcontroler să genereze și să regleze o tensiune de referință DC? Aruncați o privire la următoarea imagine:

Ceea ce vedeți în această imagine este modul în care un semnal pulsat poate fi transformat într-un semnal DC. Tot ce trebuie să faceți este să îl rulați printr-un filtru trece jos cu o frecvență de întrerupere de o sută (sau mai mult) de ori mai mică decât frecvența semnalului. Deoarece microcontrolerul nostru funcționează la 4Mhz, nu este atât de dificil de proiectat, cum ar fi un filtru trece jos. Chiar dacă implementăm generarea semnalului cu software, vom obține totuși câțiva kHz, iar filtrul va fi totuși foarte mic.

Diferența din imagine între diagrama superioară și inferioară se numește modulația lățimii impulsurilor. Prin schimbarea lungimii impulsurilor putem schimba tensiunea continuă în spatele filtrului.

Mișto, nu-i așa? Putem genera o tensiune CC exactă dintr-un semnal digital!

Microcontrolerul AT90S4433 are două contoare interne. Unul are o lățime de 16 biți și unul are o lățime de 8 biți. Contorul de 16 biți are posibilitatea de a utiliza modulația lățimii pulsului (PWM) care este deja implementată în hardware în cipul AT90S4433 cu o rezoluție de 10 biți. Contorul de 8 biți nu are acest lucru, dar îl putem implementa în software. Este încă suficient de rapid. Folosim contorul de 16 biți pentru reglarea tensiunii, acest lucru ne oferă 10 biți = 1023 pași de rezoluție pentru controlul tensiunii. Ieșirea curentă este controlată cu contorul de 8 biți și ne oferă 255 de pași pentru a controla 1-3000mA. Asta înseamnă că avem o precizie de aproximativ 12mA (sau mai puțin). Acest lucru este încă suficient pentru controlul curent.

Toate celelalte părți din circuit sunt pentru alimentare și tensiune de referință (7805 este punctul nostru de referință) și pentru a ne asigura că sursa de alimentare nu se comportă instabil la pornire sau oprire.

Software-ul

Software-ul pentru microcontroler folosește multe aspecte pe care le cunoașteți deja din articolele anterioare (uart pentru rs232, afișaj LCD, contoare în modul întrerupere). Puteți arunca o privire aici:
linuxdcp.c.

Interesant este probabil software-ul PWM (Pulse Width Modulation). Variabila ipwm_phase implementează împreună cu ipwm_h PWM pentru curent. Pur și simplu rulăm contorul de 8 biți în modul de întrerupere și de fiecare dată când generează un overflow, funcția "SIGNAL (SIG_OVERFLOW0)" este apelată. Aici verificăm ipwm_phase pentru a verifica dacă ar trebui să generăm 1 sau 0 la ieșire și apoi repornim cronometrul. Uşor.

Software-ul nu este deloc complicat, dar pentru a-l înțelege exact trebuie să citiți fișa tehnică a modelului 4433 (consultați referințele).

4433 este un microcontroler de 8 biți și capacitățile sale matematice sunt limitate. Funcțiile divXbyY și multiXbyY implementează matematică pe 24 biți de care avem nevoie pentru a calcula cu exactitate lățimea impulsului dintr-un set de tensiune dat, fie utilizatorul.

Sursa noastră de alimentare are 7 butoane. Sunt disponibile 6 butoane pentru a trece nivelurile de curent și tensiune și un buton este „în așteptare”. Folosind butonul de așteptare, puteți opri temporar alimentarea și schimba în continuare limitele de tensiune și curent. Starea butoanelor este „trasă” în bucla principală a programului. Variabila ignorebutton este utilizată pentru a elimina butoanele. Când apăsați un buton cu degetul, acesta ricoșează puțin în sus și în jos. Ca om, nu veți observa acest lucru, dar microcontrolerul este atât de rapid încât ar vedea pornit, oprit, pornit, oprit. Contorul cu butoane de ignorare așteaptă puțin după apăsarea unui buton pentru a evita acest salt.

Realizarea plăcii cu circuite imprimate

Placa principală:
Cazul pentru sursa de alimentare. Lemn pe laturi, tablă pentru partea de jos, de sus și de față:
Panoul frontal:
Pachetul software conține un fișier postscript (linuxDCpower.ps) pentru placa de circuit imprimat. Personal, consider că tampoanele sunt întotdeauna puțin prea mici. Prin urmare, recomand cu tărie să le măriți puțin cu un marker de vopsea înainte de a gravat placa. Procesul de realizare a unei plăci acasă este descris în: mai 2002, un panou de control LCD pentru serverul dvs. Linux.
Cum să construiți o carcasă ieftină, dar plăcută pentru sursa dvs. de alimentare, este descris în articolul „Septembrie 2002, Contor de frecvență 1Hz-100Mhz cu afișaj LCD și interfață RS232”. Puteți vedea carcasa și panoul frontal pe care le-am realizat în dreapta. Faceți clic pe imagini pentru imagini mai mari.

Testarea

Iată-l: propria noastră sursă de alimentare

Ați văzut mai sus că există 3 opțiuni disponibile în funcție de transformatorul pe care îl utilizați. Software-ul implicit este pentru ieșire de 16V, 2.2A. Pentru a modifica acest lucru, editați fișierul linuxdcp.c și căutați:
MAX_U, IMINSTEP, MAX_I și în funcția set_i trebuie să modificați calibrarea dacă aveți o ieșire maximă de 3A. Codul este bine comentat și veți vedea ce trebuie să schimbați.

În cele din urmă, iată câteva imagini cu sursa de alimentare pe măsură ce am construit-o. A funcționat destul de mult, dar este într-adevăr o sursă de alimentare foarte bună și robustă. Timpul a fost bine investit, deoarece o sursă de energie de laborator este într-adevăr unul dintre cele mai utilizate lucruri.

Utilizarea sursei de alimentare

u = X setați tensiunea (de exemplu, u = 105 setați tensiunea la 10,5V)
i = Xmax setează curentul maxim (de exemplu, i = 500 setează limita de curent la 500mA)
s = 1 sau s = 0 setat în standby
u =? sau i =? sau s =? tipăriți setările curente. Aceasta va produce o imprimare care arată, de exemplu, astfel:
în: 50 s: 0 și: 100 l: 0
u: înseamnă tensiune = 50 = 5V, s: 0 înseamnă standby oprit, i: 100 este 100mA, iar l: 0 înseamnă că limita de curent nu este atinsă.

Folosind acest limbaj de comandă acsii puteți scrie, de asemenea, o interfață grafică pentru utilizator pentru sursa de alimentare. Pentru a utiliza linia rs232 trebuie să o inițializați mai întâi cu comanda ttydevinit. ttydevinit este inclus în pachetul software. Acest lucru este descris și în articolul din septembrie 2002, Contor de frecvență.