Sari la conținut
ELFORUM - Forumul electronistilor

sursa cu pic


aetius

Postări Recomandate

On 9/20/2019 at 5:02 AM, informer said:

Cu riscu` sa fiu putin obositor, ma repet: daca ai intentia sa realizezi practic (pt. atelierul tau) aceasta sursa cu uC, mai gandeste-te daca nu vrei sa obtii acea tensiune variabila cu un DAC.

Se poate micsora pasul reglajului daca se folosesc toti cei 10 biti (1024 pasi) ai PWM-ului hard. Variabila Duty cycle sparta in 2 ca sa scrii in CCPxL si H. Dar se pare ca 256 sunt de ajuns. 

Link spre comentariu

Poti folosi Lo si Hi: https://download.mikroe.com/documents/compilers/mikroc/pic/help/built-in_routines.htm.

 

Valorile extrase se pun aici in CCPR1L si CCP1CON bitii 5 si 4.

 

DS30292C-page 62: Set the PWM duty cycle by writing to the CCPR1L register and CCP1CON<5:4> bits.

 

Eu am folosit LoWord si HiWord pentru ca variabila freq era definita ca float sau longword.

 

Exemplu de cod:

temp_LSB = LoWord(freq)                      ' LSB 16 bits
temp_MSB = HiWord(freq << 2)                 ' MSB .. 2 bits from right

 

 

 

 

 

 

Link spre comentariu
Acum 14 ore, Thunderer a spus:

Se poate micsora pasul reglajului daca se folosesc toti cei 10 biti (1024 pasi) ai PWM-ului hard. Variabila Duty cycle sparta in 2 ca sa scrii in CCPxL si H. Dar se pare ca 256 sunt de ajuns. 

 

Acum 13 ore, aetius a spus:

Nu ma deranjeaza daca tensiunea se regleaza in pasi de  0.2 in 0.2...

Un mic exemplu ,sau un link...

Multumesc

 

Trebuie sa luati in considerare ca iesirea are un zgomot aleator permanent de +/- 1 trepta, sau mai mult, orice filtraj s-ar folosi,

 deci +/- 100mV(catastrofal) sau +/-25mV la fel de rau, acum depinde de ce parametri doriti sa obtineti.

Eu as opta pentru o sursa cel putin la fel de performanta ca o sursa analogica de laborator, cu afisor mare cu 5 cifre.

Sursa cu PIC-DAC si etalon are zgomote de uV, stabilitate si precizie de cativa mV.

 

@gsabac

Link spre comentariu

Am pus toate fisierele proiectului de sursa cu DAC in mikroC si Proteus, deoarece este posibil ca sa fie setari diferite pe unele PC-uri.

In fisierul  Sursa_PIC16F877_MCP4921.c se afla aplicat si procedeul LSB-MSB. Se converteste un float la binar si se aplica DAC-ului,

 dar procedeul se poate folosi si pentru PWM, vedeti void convert_DAC(unsigned int value)

 

@sabac

Surse cu PIC16F877 si DAC MCP4921.rar

Link spre comentariu

Am completat sursa cu DAC cu voltmetru si ampermetru, 0-50V tensiune de iesire si 500mA sau 5A protectie fixa de curent, dublata de o protectie rapida fixa la circa 7A. Pasul de tensiune este de 10mV, iar parametrii pentru testare sunt:

- tensiunea;

- curentul limita;

- valoarea rezistentei de sarcina.

Date tehnice:

- tensiunea de iesire   0-50V in pas de 10mV inainte si inapoi;

- tensiunea de pornire 0.00V si curentul limita 500mA;

- trepte de curent maxim 500mA si 5A;

- protectie rapida (circa 10uS) la aproximativ 7A;

- tensiuni presetate din butoane ) 0.00V, +5V si +12V;

- tensiuni de alimentare externe +12V si +60V.

 

Se pot adauga numeroase facilitati, astept propuneri sau chiar imbunatatirea codului microC sau Proteus..

 

Schema de principiu. Click pentru marire.

 429219450_Sursadigitala0-50V@ELFORUM.thumb.png.15a0517ec5d62c83ebf7b6812c306984.png

Testarea se pote face prin click sau apasarea continua pe butonul Up sau Down, cu observarea aparitiei limitarii de curent.

Se trece curentul pe 5A si se creste tensiunea, apoi se revine la 500mA si se observa cum curentul de iesire se modifica in pasi, automat la 500mA.

Asa functioneaza limitarea de curent si la scurtcircuit si se poate verifica prin micsorarea rezistentei de sarcina.

Aici este problema timpului de intrare in functionare a protectiei, deoarece fiecare pas, desi nu este temporizat, poate fi mai lung, zic eu, de 100uS, deci este o protectie lenta fata de ce ar trebui sa fie, cam 50-100uS per global. O solutie ar fi introducerea unei protectii de curent cu circuite analogice ca la sursele clasice.

 

In atasament se afla sursele FREE microC si Proteus pentru studiu, testare sau imbunatatire.

 

@gsabac

Sursa_PIC16F877_MCP4921 vers 1 cu limitare de curent.rar

Link spre comentariu
16 hours ago, gsabac said:

 In atasament se afla sursele FREE microC si Proteus pentru studiu, testare sau imbunatatire.

Dle @gsabac, ca sa nu mai afiseze 08,5V, ca sa scapati de acel 0 din fata lui 8, comparati mereu acel digit cu 0. Daca e 0 nu scrieti nimic pe afisaj in locatia respectiva. Daca este diferit, atunci afisati digitul corespunzator. Evident, e doar pentru frumusetea afisajului.

Link spre comentariu

Ok, zis si facut!

Click pentru marire.

  1161805209_spatiuinlocdezerolazeci.thumb.png.2fcb0b89171becd422a8be05ca47db23.png

 

Adaugarea de noi facilitati posibile soft si hard, desigur unele sunt SF pentru mine.

OK! 1-eliminarea valorii zero inainte de unitati sau zeci
2-comutarea tensiunii din transformator pentru putere disipata redusa pe tranzistorii de putere
3-protectia hard la pornire pentru evitarea supratensiunilor, pana microcontrollerul se activeaza si se stabilizeaza tensiunea de iesire
4-adaugarea de circuite hard pentru transformarea in generator de curent variabil cu scale 0-500mA si 0-5A

5-Encoder pentru tensiune incrementala
6-Mai multe moduri de intrare folosind tastatura, tensiuni fixe cu comutator sau slider
7-Diverse mecanisme de protectie cu semnalizare sonora si optica:
 -OVP (supra protectie de tensiune),
 -OCP (supra protectie curent),
 -OPP (peste puterea de protectie)
 -OTP (protectia la temperatura)
8-Oprirea iesirii la scurtcircuit si rearmarea cu buton
9-Stocare pe baza de EEPROM pentru configurarea la pornire si profiluri de utilizator

10- posibilitatea de testare a calibrarii cu parametrii de calibrare

 

@gsabac

Link spre comentariu

Dle @gsabac, felicitari pentru disponibilitate.

 

Trebuie sa recunosc ca nu consult programul facut. D-aia intrebarea urmatoare poate a nu avea sens. Scuze. 

 

La pornire sau la comutarea intre 2 valori de tensiune destul de diferite faceti o crestere graduala a factorului de putere sau o faceti direct? 

 

Alta intrebare: ce criteriu folositi pentru OVP? 

Link spre comentariu

Asa cum este codul, orice salt de tensiune in sus sau in jos se face sub forma de treapta si algoritmul ar fi cam asa:

1) La cresterea tensiunii intra in functiune limitarea superioara de curent de 7A,

 cel mult 50uS, adica o putere de varf disipata de circa 450W pe 4 tranzistoare de 125W/25A . Dupa cateva mS sau zeci de mS, intra in functiune protectia cu uC la 5A sau 500mA,  circa 300W si prin scaderea tensiunii de iesire se comuta si prizele de pe transformatorul de alimentare deci in final puterea disipata continuu este de maximum 100W.

2) La scaderea tensiunii de iesire tranzistorii finali sunt blocati pana cand tensiunea de iesire scade lent pe rezistenta de sarcina sau balast, apoi se stabilizeaza. Din pacate nu am vazut surse care sa aiba si tranzistori de putere care sa scada instant si dinamic tensiunea de iesire, dar poate exista si nu stiu eu.

 

Pentru OVP nu am decat presupuneri. Am observat ca se predefineste o tensiune limita, de exemplu pentru 5V o valoare de 5,5V si cred ca oricum s-ar umbla la butoane sau ar rezulta din cauze interne o tensiune mai mare se intrerupe iesirea. Nu stiu cum poate fi facut soft daca uC-ul o ia anapoda, de exemplu la salturile tensiunii de alimentare sau virfuri de camp electromagnetic, poate o baterie iterna ar elimina unele probleme. Ar trebui gandit si un procedeu viabil care sa includa si scurtcircuitarea tranzistorilor finali.

 

In varianta actuala procedeul de putere disipata mica pe tranzistorii serie ar putea fi ca in schema.

  1875816450_redresorcutreptedecomutare.thumb.png.d65d6fe5e0e2c3ed57ab385a74b72e36.png

Schema este interactiva si prin reglarea din potentiometrul RV1 se vede cum se comuta releele RL1, RL2, RL3 si RL4 conectate astfel incat orice comutare sa nu produca scurtcircuite in secundarul transformatorului. Simularea este in atasament iar tensiunea si brumul se vad si pe osciloscop.

 

@gsabac

Redresor cu comutare P8-7.pdsprj

Editat de gsabac
Link spre comentariu

8-Oprirea iesirii la scurtcircuit si rearmarea cu buton

 

@gsabac am adaugat cateva linii de cod cu afisarea pe ecran a unui "scurt" la iesirea sursei ,plus buton de reset pentru revenire...

in loc de led se poate  cupla/decupla un releu/SSR/mosfet prin contactele caruia trece '+'-ul sursei.

Sursa_PIC16F877_MCP4921_Proteus+ SCURT 5A.pdsprj 00.HEX Sursa_PIC16F877_MCP4921___scurt_5A.c

Editat de aetius
Link spre comentariu

@aetius, protectia la supracurent 5A, introdusa de dvs. in program, functioneaza foarte bine.

Treptat, voi incerca si eu sa introduc noi facilitati din lista.

 

Adaugarea de noi facilitati posibile soft si hard, desigur unele sunt SF pentru mine.

OK! 1-eliminarea valorii zero inainte de unitati sau zeci
2-comutarea tensiunii din transformator pentru putere disipata redusa pe tranzistorii de putere
3-protectia hard la pornire pentru evitarea supratensiunilor, pana microcontrollerul se activeaza si se stabilizeaza tensiunea de iesire
4-adaugarea de circuite hard pentru transformarea in generator de curent variabil cu scale 0-500mA si 0-5A

5-Encoder pentru tensiune incrementala
6-Mai multe moduri de intrare folosind tastatura, tensiuni fixe cu comutator sau slider
7-Diverse mecanisme de protectie cu semnalizare sonora si optica:
 -OVP (supra protectie de tensiune),
OK! -OCP (supra protectie curent),
 -OPP (peste puterea de protectie)
 -OTP (protectia la temperatura)
OK! 8-Oprirea iesirii la scurtcircuit si rearmarea cu buton
9-Stocare pe baza de EEPROM pentru configurarea la pornire si profiluri de utilizator

10- posibilitatea de testare a calibrarii cu parametrii de calibrare

 

 

 

@gsabac

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări