Sommario:
- Passaggio 1: diagramma a blocchi del sistema
- Passaggio 2: progettazione del decodificatore rotativo SLG46108
- Passaggio 3: progettazione del controller della ventola SLG46826
- Passaggio 4: generazione PWM con contatori offset
- Passaggio 5: controllo del ciclo di lavoro con iniezione e salto dell'orologio
- Passaggio 6: ingresso PULSANTE
- Passaggio 7: prevenzione del rollover del ciclo di lavoro
- Passaggio 8: controllo del ciclo di lavoro con I2C
- Passaggio 9: lettura del tachimetro
- Passaggio 10: progettazione del circuito esterno
- Passaggio 11: progettazione PCB
- Passaggio 12: applicazione C#
Video: Controllo PWM fai da te per i fan del PC: 12 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Questo Instructable descrive la costruzione di un controller PWM della ventola del PC da 12 V completo di tutte le funzionalità. Il design può controllare fino a 16 ventole per computer a 3 pin. Il design utilizza una coppia di circuiti integrati a segnale misto configurabili Dialog GreenPAK™ per controllare il ciclo di lavoro di ciascuna ventola. Include anche due modi per modificare la velocità della ventola:
un. con encoder in quadratura/rotativo
B. con un'applicazione Windows costruita in C# che comunica con GreenPAK tramite I2C.
Di seguito abbiamo descritto i passaggi necessari per capire come è stato programmato il chip GreenPAK per creare il controllo PWM per le ventole del PC. Tuttavia, se desideri solo ottenere il risultato della programmazione, scarica il software GreenPAK per visualizzare il file di progettazione GreenPAK già completato. Collega il kit di sviluppo GreenPAK al tuo computer e premi il programma per creare l'IC personalizzato per il controllo PWM per i fan del PC.
Passaggio 1: diagramma a blocchi del sistema
Passaggio 2: progettazione del decodificatore rotativo SLG46108
Un encoder rotativo viene utilizzato per aumentare o diminuire manualmente il ciclo di lavoro delle ventole. Questo dispositivo emette impulsi sulle sue uscite Canale A e Canale B che sono distanti 90 °. Vedere AN-1101: Decodificatore di quadratura senza clock per ulteriori informazioni su come funziona un encoder rotativo.
È possibile creare un decodificatore rotante con clock utilizzando un Dialog GreenPAK SLG46108 per elaborare i segnali del canale A e del canale B ed emetterli come impulsi in senso antiorario (CCW) e orario (CW).
Quando il canale A precede il canale B, il progetto emette un breve impulso in CW. Quando il canale B precede il canale A, emette un breve impulso su CCW
Tre DFF sincronizzano l'ingresso del canale A con il clock. Allo stesso modo, il pipe delay con OUT0 impostato su due DFF e OUT1 impostato su tre DFF crea la stessa funzionalità per il canale B.
Per creare uscite CW e CCW, utilizzare alcune LUT, per ulteriori informazioni sul design di questo decodificatore rotativo standard, visitare questo sito Web.
Il decodificatore rotativo GreenPAK riceverà gli impulsi di ingresso A e B ed emetterà gli impulsi CW e CCW come mostrato nella Figura 4.
Il circuito dopo le porte XOR assicura che non ci sarà mai un impulso CW e un impulso CCW allo stesso tempo, consentendo qualsiasi errore con l'encoder rotante. Il ritardo del fronte di discesa di 8 ms sui segnali CW e CCW li costringe a rimanere alti per 8 ms più un ciclo di clock, che è necessario per i GreenPAK SLG46826 a valle.
Passaggio 3: progettazione del controller della ventola SLG46826
Passaggio 4: generazione PWM con contatori offset
Una coppia di contatori di offset con lo stesso periodo viene utilizzata per generare il segnale PWM. Il primo contatore imposta un DFF e il secondo lo reimposta, creando un segnale PWM con ciclo di lavoro coerente come mostrato nella Figura 6 e nella Figura 7.
CNT6 imposta DFF10 e l'uscita invertita di CNT1 ripristina DFF10. I pin 18 e 19 vengono utilizzati per inviare il segnale PWM a circuiti esterni
Passaggio 5: controllo del ciclo di lavoro con iniezione e salto dell'orologio
Il controller della ventola riceve i segnali CW e CCW come input dal decodificatore rotante e li utilizza per aumentare o diminuire il segnale PWM che controlla la velocità della ventola. Ciò si ottiene con diversi componenti logici digitali.
Il ciclo di lavoro deve aumentare quando viene ricevuto un impulso CW. Questo viene fatto iniettando un impulso di clock extra nel blocco CNT6, facendo in modo che emetta un ciclo di clock prima di quanto avrebbe altrimenti. Questo processo è mostrato nella Figura 8.
CNT1 sta ancora ricevendo un clock a una velocità costante, ma CNT6 ha un paio di clock in più iniettati. Ogni volta che c'è un clock in più al contatore, sposta la sua uscita di un periodo di clock a sinistra.
Al contrario, per ridurre il duty cycle, saltare un impulso di clock per CNT6 come mostrato nella Figura 9. CNT1 viene ancora sincronizzato a una velocità costante e ci sono impulsi di clock saltati per CNT6, dove il contatore non è stato sincronizzato quando avrebbe dovuto a. In questo modo l'uscita di CNT6 viene spinta a destra di un periodo di clock alla volta, accorciando il ciclo di lavoro PWM dell'uscita.
La funzionalità di clock injecting e clock skipping viene eseguita con l'uso di alcuni elementi logici digitali all'interno del GreenPAK. Una coppia di blocchi multifunzione viene utilizzata per creare una coppia di combinazioni di latch/rivelatore di bordi. LUT0 a 4 bit viene utilizzato per eseguire il mux tra il segnale di clock generale (CLK/8) e i segnali di clock injecting o clock skipping. Questa funzionalità è descritta più dettagliatamente nel passaggio 7.
Passaggio 6: ingresso PULSANTE
L'ingresso BUTTON viene antirimbalzo per 20 ms, quindi utilizzato per attivare un latch che determina se questo particolare chip è selezionato. Se è selezionato, la LUT a 4 bit passa i segnali di salto del clock o di iniezione. Se il chip non è selezionato, la LUT a 4 bit passa semplicemente il segnale CLK/8.
Passaggio 7: prevenzione del rollover del ciclo di lavoro
I latch RS LUT5 a 3 bit e LUT3 a 3 bit vengono utilizzati per assicurarsi che non sia possibile iniettare o saltare così tanti clock da far saltare i contatori di offset. Questo per evitare che il sistema raggiunga il ciclo di lavoro del 100% e poi passi a un ciclo di lavoro dell'1% se riceve un altro clock iniettato.
I latch RS impediscono che ciò accada agganciando gli ingressi ai blocchi multifunzione quando il sistema è a un ciclo di clock dal rollover. Una coppia di DFF ritarda i segnali PWM_SET e PWM_nRST di un periodo di clock, come mostrato nella Figura 11.
Una coppia di LUT viene utilizzata per creare la logica necessaria. Se il duty cycle è così basso che il segnale PWM_SET ritardato si verifica contemporaneamente al segnale PWM_nRST, un'ulteriore diminuzione del duty cycle causerà un rollover.
Analogamente, se ci si avvicina al duty cycle massimo, tale che il segnale PWM_nRST ritardato si presenti contemporaneamente al segnale PWM_SET, è necessario evitare qualsiasi ulteriore aumento del duty cycle. In questo caso, ritardare il segnale nRST di due cicli di clock per garantire che il sistema non passi dal 99% all'1%.
Passaggio 8: controllo del ciclo di lavoro con I2C
Questo design incorpora un altro modo per controllare il ciclo di lavoro diverso dal salto di clock/clock injecting. È possibile utilizzare un microcontrollore esterno per scrivere comandi I2C sul GreenPAK per impostare il ciclo di lavoro.
Il controllo del ciclo di lavoro su I2C richiede che il controller esegua una sequenza di comandi specifica. Questi comandi sono mostrati in ordine nella Tabella 1. Una "x" indica un bit che non deve cambiare, "[" indica un bit di START e "]" indica un bit di STOP
Il blocco PDLY genera un breve impulso alto attivo sul fronte di discesa del segnale CLK/8, chiamato !CLK/8. Quel segnale viene utilizzato per sincronizzare DFF14 a una frequenza costante. Quando I2C_SET diventa alto in modo asincrono, il successivo fronte di salita di !CLK/8 fa sì che DFF14 emetta HIGH, il che attiva CNT5 OneShot. OneShot viene eseguito per il numero di cicli di clock che l'utente ha scritto come specificato nel comando I2C "Write to CNT5" nella Tabella 1. In questo caso, sono 10 cicli di clock. OneShot consente all'oscillatore a 25 MHz di funzionare esattamente per la sua durata e non di più, in modo che LUT0 a 3 bit riceva il numero di cicli di clock che sono stati scritti su CNT5.
La Figura 15 mostra questi segnali, dove i clock rossi sono quelli che vengono inviati a LUT0 a 3 bit, che li passa a CNT6 (il contatore PWM_SET), creando così l'offset per la generazione del duty cycle.
Passaggio 9: lettura del tachimetro
Se lo si desidera, l'utente può leggere il valore del tachimetro su I2C per tenere traccia della velocità di rotazione della ventola leggendo il valore CNT2. CNT2 viene incrementato ogni volta che ACMP0H ha un fronte di salita e può essere resettato in modo asincrono con un comando I2C. Si noti che questa è una funzione opzionale e la soglia di ACMP0H dovrà essere modificata in base alle specifiche della particolare ventola utilizzata.
Passaggio 10: progettazione del circuito esterno
Il circuito esterno è abbastanza semplice. C'è un pulsante collegato al Pin6 del GreenPAK per alternare se questo particolare dispositivo è selezionato per il controllo rotante e un LED collegato al Pin12 e Pin13 per indicare quando il dispositivo è selezionato.
Poiché la ventola funziona a 12 V, è necessaria una coppia di FET per controllarne la commutazione. Il Pin18 e il Pin19 di GreenPAK pilotano un nFET. Quando l'nFET è acceso, tira il gate del pFET LOW, che collega la ventola a +12 V. Quando l'nFET è spento, il gate del PFET viene sollevato dal resistore da 1 kΩ, che disconnette la ventola da +12V.
Passaggio 11: progettazione PCB
Per prototipare il design sono stati assemblati un paio di PCB. Il PCB a sinistra è il "Fan Controller", che ospita l'encoder rotativo, il jack da 12 V, SLG46108 GreenPAK e i connettori per la scheda breakout FT232H da USB a I2C. I due PCB sulla destra sono "Fan Boards", che contengono i GreenPAK SLG46826, i pulsanti, gli interruttori, i LED e le intestazioni delle ventole.
Ogni Fan Board ha un'intestazione maschile nascosta sul lato sinistro e un'intestazione femminile sul lato destro in modo che possano essere collegate a margherita insieme. Ogni Fan Board può essere popolata con risorse per controllare in modo indipendente due ventole.
Passaggio 12: applicazione C#
È stata scritta un'applicazione C# per interfacciarsi con le Fan Board tramite il bridge USB-I2C FT232H. Questa applicazione può essere utilizzata per regolare la frequenza di ciascun ventilatore con i comandi I2C generati dall'applicazione.
L'applicazione esegue il ping di tutti i 16 indirizzi I2C una volta al secondo e popola la GUI con gli indirizzi slave presenti. In questo esempio Fan 1 (indirizzo slave 0001) e Fan 3 (indirizzo slave 0011) collegati alla scheda. È possibile apportare modifiche al ciclo di lavoro di ciascuna ventola singolarmente spostando la barra di scorrimento o digitando un valore compreso tra 0 e 256 nella casella di testo sotto la barra di scorrimento.
Conclusioni
Utilizzando questo design è possibile controllare in modo indipendente fino a 16 ventole (poiché ci sono 16 possibili indirizzi slave I2C) sia con un encoder rotativo che con un'applicazione C#. È stato dimostrato come generare un segnale PWM con una coppia di contatori di offset e come aumentare e diminuire il ciclo di lavoro di quel segnale senza rollover.
Consigliato:
Sicurezza cyber-fisica del parcheggio intelligente e del controllo del traffico: 6 passaggi
Sicurezza informatica e fisica del parcheggio intelligente e del controllo del traffico: Internet sta crescendo con miliardi di dispositivi tra cui automobili, sensori, computer, server, frigoriferi, dispositivi mobili e molto altro a un ritmo senza precedenti. Ciò introduce molteplici rischi e vulnerabilità nell'infrastruttura, nel funzionamento e
Piatto per acqua riscaldato fai-da-te fai-da-te/sicuro per animali domestici: 7 passaggi
Piatto per acqua riscaldato fai-da-te fai-da-te/sicuro per animali domestici: così tieni un cane/coniglio/gatto/… fuori e la loro acqua continua a gelare in inverno. Ora normalmente li porteresti dentro o compreresti un piatto d'acqua riscaldato, ma questo animale probabilmente puzza, non hai la stanza e non puoi permetterti di pagare $ 4
Controllo della luminosità Controllo LED basato su PWM tramite pulsanti, Raspberry Pi e Scratch: 8 passaggi (con immagini)
Controllo della luminosità Controllo LED basato su PWM tramite pulsanti, Raspberry Pi e Scratch: stavo cercando di trovare un modo per spiegare come funzionava il PWM ai miei studenti, quindi mi sono posto il compito di provare a controllare la luminosità di un LED utilizzando 2 pulsanti - un pulsante aumenta la luminosità di un LED e l'altro lo attenua. Per programmare
ESP8266 RGB LED STRIP Controllo WIFI - NODEMCU Come telecomando IR per strisce LED controllate tramite Wi-Fi - STRIP LED RGB Controllo smartphone: 4 passaggi
ESP8266 RGB LED STRIP Controllo WIFI | NODEMCU Come telecomando IR per strisce LED controllate tramite Wi-Fi | Controllo Smartphone STRIP LED RGB: Ciao ragazzi in questo tutorial impareremo come utilizzare nodemcu o esp8266 come telecomando IR per controllare una striscia LED RGB e Nodemcu sarà controllato dallo smartphone tramite wifi. Quindi in pratica puoi controllare la STRISCIA LED RGB con il tuo smartphone
Interessante guida alla programmazione per il progettista - Controllo del processo del programma - Dichiarazione del ciclo: 8 passaggi
Interessante guida alla programmazione per il progettista - Controllo del processo del programma - Dichiarazione del ciclo: Controllo del processo del programma - Dichiarazione del ciclo Da questo capitolo, entrerai in contatto con un importante e potente punto di conoscenza - Dichiarazione del ciclo. Prima di leggere questo capitolo, se vuoi disegnare 10.000 cerchi nel programma, puoi farlo solo con un ter