Taula de continguts:

Control PWM de bricolatge per a ventiladors de PC: 12 passos
Control PWM de bricolatge per a ventiladors de PC: 12 passos

Vídeo: Control PWM de bricolatge per a ventiladors de PC: 12 passos

Vídeo: Control PWM de bricolatge per a ventiladors de PC: 12 passos
Vídeo: Home Assistant 4-Wire PWM Fan Controller Prt 2 - Flash & Breakdown 2024, De novembre
Anonim
Control DIY PWM per a fans de PC
Control DIY PWM per a fans de PC

Aquesta instrucció descriu la construcció d'un controlador PWM de 12 V amb ventilador de PC completament equipat. El disseny pot controlar fins a 16 ventiladors de 3 pins. El disseny utilitza un parell de circuits integrats de senyal mixt configurables de Dialog GreenPAK ™ per controlar el cicle de treball de cada ventilador. També inclou dues maneres de canviar la velocitat del ventilador:

a. amb un codificador de quadratura / rotatiu

b. amb una aplicació de Windows integrada en C # que es comunica amb GreenPAK a través d’I2C.

A continuació es descriuen els passos necessaris per entendre com s'ha programat el xip GreenPAK per crear el control PWM per als fans de PC. Tot i això, si només voleu obtenir el resultat de la programació, descarregueu-vos el programari GreenPAK per veure el fitxer de disseny GreenPAK ja completat. Connecteu el kit de desenvolupament GreenPAK a l'ordinador i premeu el programa per crear l'IC personalitzat per al control PWM per als fans de PC.

Pas 1: diagrama de blocs del sistema

Diagrama de blocs del sistema
Diagrama de blocs del sistema

Pas 2: disseny del descodificador rotatiu SLG46108

Disseny del descodificador rotatiu SLG46108
Disseny del descodificador rotatiu SLG46108
Disseny de descodificador rotatiu SLG46108
Disseny de descodificador rotatiu SLG46108
Disseny del descodificador rotatiu SLG46108
Disseny del descodificador rotatiu SLG46108

Un codificador rotatiu s’utilitza per augmentar o disminuir el cicle de treball dels ventiladors manualment. Aquest dispositiu emet impulsos a les seves sortides del canal A i del canal B separades de 90 °. Consulteu AN-1101: Descodificador de quadratura desbloquejat per obtenir més informació sobre com funciona un codificador rotatiu.

Es pot crear un descodificador rotatiu de rellotge mitjançant un Dialog GreenPAK SLG46108 per processar els senyals del canal A i del canal B i emetre'ls com a impulsos en sentit antihorari (CCW) i en sentit horari (CW).

Quan el canal A condueix el canal B, el disseny genera un impuls curt a CW. Quan el canal B dirigeix el canal A, emet un curt impuls a CCW

Tres DFF sincronitzen l'entrada del canal A amb el rellotge. De la mateixa manera, el retard de canonada amb OUT0 establert en dos DFF i OUT1 establert en tres DFF creen la mateixa funcionalitat per al canal B.

Per crear sortides CW i CCW utilitzeu uns quants LUT, per obtenir més informació sobre aquest disseny estàndard de descodificador rotatiu, visiteu aquest lloc web.

El descodificador rotatiu GreenPAK rebrà els impulsos d’entrada A i B i emetrà els impulsos CW i CCW tal com es mostra a la figura 4.

Els circuits posteriors a les portes XOR asseguren que mai no hi haurà pols CW i CCW al mateix temps, permetent qualsevol error amb el codificador rotatiu. Els 8 ms de retard de la caiguda dels senyals CW i CCW els obliguen a mantenir-se alts durant 8 ms més un cicle de rellotge, que és necessari per als GreenPAK SLG46826 aigües avall.

Pas 3: disseny del controlador de ventilador SLG46826

Disseny del controlador de ventilador SLG46826
Disseny del controlador de ventilador SLG46826

Pas 4: Generació de PWM amb comptadors de desplaçament

Generació PWM amb comptadors offset
Generació PWM amb comptadors offset
Generació PWM amb comptadors offset
Generació PWM amb comptadors offset

Un parell de comptadors de desplaçament amb el mateix període s’utilitzen per generar el senyal PWM. El primer comptador estableix un DFF i el segon el reinicia, creant un senyal PWM de cicle de treball consistent, tal com es mostra a la Figura 6 i la Figura 7.

CNT6 estableix DFF10 i la sortida invertida de CNT1 restableix DFF10. Els pins 18 i 19 s’utilitzen per emetre el senyal PWM a circuits externs

Pas 5: control del cicle de treball amb injecció de rellotge i salt de rellotge

Control del cicle de treball amb injecció de rellotge i salt de rellotge
Control del cicle de treball amb injecció de rellotge i salt de rellotge
Control del cicle de treball amb injecció de rellotge i salt de rellotge
Control del cicle de treball amb injecció de rellotge i salt de rellotge

El controlador del ventilador rep els senyals CW i CCW com a entrades del descodificador rotatiu i els utilitza per augmentar o disminuir el senyal PWM que controla la velocitat del ventilador. Això s’aconsegueix amb diversos components lògics digitals.

El cicle de treball ha d’augmentar quan es rep un impuls CW. Això es fa injectant un pols de rellotge addicional al bloc CNT6, cosa que provoca que es produeixi un cicle de rellotge abans del que d'una altra manera. Aquest procés es mostra a la figura 8.

CNT1 segueix registrant un ritme constant, però a CNT6 se li injecten un parell de rellotges addicionals. Cada vegada que hi ha un rellotge addicional al comptador, canvia la seva sortida un període de rellotge cap a l’esquerra.

Per contra, per disminuir el cicle de treball, ometeu un pols de rellotge per CNT6, tal com es mostra a la figura 9. CNT1 continua registrant-se a un ritme constant i hi ha polsos de rellotge saltats per CNT6, on el comptador no es va activar quan se suposava a. D'aquesta manera, la sortida de CNT6 s'empeny a la dreta un període de rellotge a la vegada, escurçant el cicle de treball PWM de sortida.

La funcionalitat d'injecció de rellotge i salt de rellotge es realitza amb l'ús d'alguns elements lògics digitals dins del GreenPAK. Un parell de blocs multifunció s’utilitzen per crear un parell de combinacions de detectors de tancament / vora. El LUT0 de 4 bits s’utilitza per muxjar entre el senyal de rellotge general (CLK / 8) i el senyal d’injecció o de salt de rellotge. Aquesta funcionalitat es descriu amb més detall al pas 7.

Pas 6: entrada de BOTÓ

BUTTON Entrada
BUTTON Entrada

L'entrada BUTTON es descarta durant 20 ms i, a continuació, s'utilitza per alternar un tancament que determina si aquest xip en particular està seleccionat. Si està seleccionat, el LUT de 4 bits passa el senyal de salt o d'injecció de rellotge. Si no es selecciona el xip, el LUT de 4 bits simplement passa el senyal CLK / 8.

Pas 7: evitar el canvi de cicle de treball

Prevenció del canvi de cicle de treball
Prevenció del canvi de cicle de treball
Prevenció del canvi de cicle de treball
Prevenció del canvi de cicle de treball
Prevenció del canvi de cicle de treball
Prevenció del canvi de cicle de treball

Els pestells RS de 3 bits LUT5 i 3 bits de LUT3 s’utilitzen per assegurar-se que no es pot injectar ni saltar tants rellotges que els comptadors de desplaçament es desplacin. Això és per evitar que el sistema assoleixi un cicle de treball del 100% i, després, passi a un cicle de treball de l’1% si rep un altre rellotge injectat.

Els pestells RS impedeixen que això succeeixi bloquejant les entrades als blocs multifunció quan el sistema es troba a un cicle de rellotge de la rotació. Un parell de DFF retarden els senyals PWM_SET i PWM_nRST un període de rellotge, tal com es mostra a la figura 11.

S’utilitzen un parell de LUT per crear la lògica necessària. Si el cicle de treball és tan baix que el senyal PWM_SET retardat es produeix al mateix temps que el senyal PWM_nRST, una nova disminució del cicle de treball provocarà un tombament.

De la mateixa manera, si s'aproxima al cicle de treball màxim, de manera que el senyal PWM_nRST retardat es produeixi al mateix temps que el senyal PWM_SET, és necessari evitar qualsevol altre augment del cicle de treball. En aquest cas, retardeu el senyal nRST en dos cicles de rellotge per assegurar-vos que el sistema no passa del 99% a l’1%.

Pas 8: control del cicle de treball amb I2C

Control del cicle de treball amb I2C
Control del cicle de treball amb I2C
Control del cicle de treball amb I2C
Control del cicle de treball amb I2C
Control del cicle de treball amb I2C
Control del cicle de treball amb I2C

Aquest disseny incorpora una altra manera de controlar el cicle de treball diferent del salt de rellotge / injecció de rellotge. Es pot utilitzar un microcontrolador extern per escriure ordres I2C al GreenPAK per configurar el cicle de treball.

El control del cicle de treball a través d’I2C requereix que el controlador realitzi una seqüència d’ordres específica. Aquestes ordres es mostren en ordre a la taula 1. Una "x" indica un bit que no hauria de canviar, "[" indica un bit START i "]" indica un bit STOP

El bloc PDLY genera un curt impuls actiu actiu a la vora descendent del senyal CLK / 8, que s’anomena! CLK / 8. Aquest senyal s’utilitza per visualitzar DFF14 a una freqüència constant. Quan I2C_SET augmenta asíncronament, la següent vora ascendent de! CLK / 8 fa que DFF14 emeti ALTA, la qual cosa provoca el CNT5 OneShot. OneShot s'executa pel nombre de cicles de rellotge que l'usuari va escriure tal com s'especifica a l'ordre I2C "Escriu a CNT5" de la taula 1. En aquest cas, es tracta de 10 cicles de rellotge. El OneShot permet que l’oscil·lador de 25 MHz funcioni exactament durant la seva durada i ja no, de manera que LUT0 de 3 bits rep el nombre de cicles de rellotge que s’han escrit a CNT5.

La figura 15 mostra aquests senyals, on els rellotges vermells són els que s’envien a LUT0 de 3 bits, que els passa a CNT6 (el comptador PWM_SET), creant així l’offset per a la generació del cicle de treball.

Pas 9: lectura del tacòmetre

Lectura del tacòmetre
Lectura del tacòmetre
Lectura del tacòmetre
Lectura del tacòmetre

Si ho desitja, l'usuari pot llegir el valor del tacòmetre a través d'I2C per fer un seguiment de la rapidesa amb què gira el ventilador llegint el valor CNT2. CNT2 s'incrementa cada vegada que ACMP0H té un avantatge ascendent i es pot restablir asíncronament amb una ordre I2C. Tingueu en compte que es tracta d’una característica opcional i que s’haurà de modificar el llindar d’ACMP0H d’acord amb les especificacions del ventilador concret que s’utilitza.

Pas 10: Disseny de circuits externs

Disseny de circuits externs
Disseny de circuits externs

El circuit extern és bastant senzill. Hi ha un polsador connectat al Pin6 del GreenPAK per canviar si aquest dispositiu concret està seleccionat per al control rotatiu i un LED connectat al Pin12 i al Pin13 per indicar quan el dispositiu està seleccionat.

Atès que el ventilador s’esgota 12 V, cal un parell de FET per controlar la seva commutació. El Pin18 i el Pin19 de GreenPAK condueixen un nFET. Quan el nFET està engegat, estira la porta del pFET BAIX, que connecta el ventilador a +12 V. Quan el nFET està apagat, la porta del PFET es tira cap amunt mitjançant la resistència de 1 kΩ, que desconnecta el ventilador des de +12 V.

Pas 11: disseny de PCB

Disseny de PCB
Disseny de PCB

Per prototipar el disseny es van muntar un parell de PCB. El PCB de l'esquerra és el "controlador del ventilador", que conté el codificador rotatiu, la presa de 12 V, el SLG46108 GreenPAK i els connectors per a la placa de ruptura USB a I2C FT232H. Els dos PCB de la dreta són "Fan Boards", que contenen els SLG46826 GreenPAK, botons, interruptors, LEDs i capçaleres de ventilador.

Cada tauler de ventiladors té una capçalera masculina envoltada al costat esquerre i una capçalera femenina al costat dret perquè es puguin encadenar. Cada tauler de fans es pot omplir de recursos per controlar independentment dos fans.

Pas 12: Aplicació C #

Aplicació C #
Aplicació C #

Es va escriure una aplicació C # per a la interfície amb les plaques de ventilació a través del pont USB-I2C FT232H. Aquesta aplicació es pot utilitzar per ajustar la freqüència de cada ventilador amb les ordres I2C que genera l'aplicació.

L'aplicació fa ping a totes les 16 adreces I2C una vegada per segon i omple la GUI amb les adreces esclaus que hi ha. En aquest exemple Ventilador 1 (adreça esclava 0001) i Ventilador 3 (adreça esclau 0011) connectats a la placa. Els ajustos al cicle de treball de cada ventilador es poden fer individualment movent la barra lliscant o escrivint un valor de 0-256 al quadre de text situat a sota de la barra lliscant.

Conclusions

Utilitzant aquest disseny és possible controlar independentment fins a 16 ventiladors (ja que hi ha 16 adreces esclaus I2C possibles) ja sigui amb un codificador rotatiu o amb una aplicació C #. S'ha demostrat com generar un senyal PWM amb un parell de comptadors de desplaçament i com augmentar i disminuir el cicle de treball d'aquest senyal sense cap bolcada.

Recomanat: