Table des matières:
- Étape 1: Schéma fonctionnel du système
- Étape 2: Conception du décodeur rotatif SLG46108
- Étape 3: Conception du contrôleur de ventilateur SLG46826
- Étape 4: génération PWM avec compteurs décalés
- Étape 5: Contrôle du cycle de service avec injection d'horloge et saut d'horloge
- Étape 6: Saisie BOUTON
- Étape 7: Prévention du renversement du cycle de service
- Étape 8: Contrôle du cycle de service avec I2C
- Étape 9: Lecture du tachymètre
- Étape 10: Conception de circuits externes
- Étape 11: Conception de circuits imprimés
- Étape 12: Application C#
Vidéo: Contrôle PWM DIY pour les fans de PC : 12 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Ce Instructable décrit la construction d'un contrôleur PWM de ventilateur PC 12 V complet. La conception peut contrôler jusqu'à 16 ventilateurs d'ordinateur à 3 broches. La conception utilise une paire de circuits intégrés à signaux mixtes configurables Dialog GreenPAK™ pour contrôler le cycle de service de chaque ventilateur. Il comprend également deux façons de modifier la vitesse du ventilateur:
une. avec un encodeur quadrature/rotatif
b. avec une application Windows intégrée en C# qui communique avec le GreenPAK via I2C.
Ci-dessous, nous avons décrit les étapes nécessaires pour comprendre comment la puce GreenPAK a été programmée pour créer le contrôle PWM pour les fans de PC. Cependant, si vous souhaitez simplement obtenir le résultat de la programmation, téléchargez le logiciel GreenPAK pour afficher le fichier de conception GreenPAK déjà terminé. Branchez le kit de développement GreenPAK sur votre ordinateur et appuyez sur programme pour créer le circuit intégré personnalisé pour le contrôle PWM pour les fans de PC.
Étape 1: Schéma fonctionnel du système
Étape 2: Conception du décodeur rotatif SLG46108
Un encodeur rotatif est utilisé pour augmenter ou diminuer le cycle de service des ventilateurs manuellement. Cet appareil émet des impulsions sur ses sorties Canal A et Canal B distantes de 90°. Voir AN-1101: Unclocked Quadrature Decoder pour plus d'informations sur le fonctionnement d'un encodeur rotatif.
Un décodeur rotatif cadencé peut être créé à l'aide d'un Dialog GreenPAK SLG46108 pour traiter les signaux des canaux A et B et les émettre sous forme d'impulsions dans le sens antihoraire (CCW) et horaire (CW).
Lorsque le canal A est en avance sur le canal B, la conception émet une courte impulsion en CW. Lorsque le canal B précède le canal A, il émet une courte impulsion sur CCW
Trois DFF synchronisent l'entrée du canal A avec l'horloge. De même, le retard du canal avec OUT0 réglé sur deux DFF et OUT1 réglé sur trois DFF créent la même fonctionnalité pour le canal B.
Pour créer des sorties CW et CCW, utilisez quelques LUT. Pour plus d'informations sur cette conception de décodeur rotatif standard, visitez ce site Web.
Le décodeur rotatif GreenPAK recevra les impulsions d'entrée A et B et produira les impulsions CW et CCW comme illustré à la figure 4.
Le circuit après les portes XOR garantit qu'il n'y aura jamais d'impulsion CW et d'impulsion CCW en même temps, permettant toute erreur avec l'encodeur rotatif. Le retard de front descendant de 8 ms sur les signaux CW et CCW les oblige à rester au niveau haut pendant 8 ms plus un cycle d'horloge, ce qui est nécessaire pour les SLG46826 GreenPAK en aval.
Étape 3: Conception du contrôleur de ventilateur SLG46826
Étape 4: génération PWM avec compteurs décalés
Une paire de compteurs de décalage avec la même période est utilisée pour générer le signal PWM. Le premier compteur définit un DFF, et le second le réinitialise, créant un signal PWM de rapport cyclique cohérent, comme le montrent les figures 6 et 7.
CNT6 définit DFF10 et la sortie inversée de CNT1 réinitialise DFF10. Les broches 18 et 19 sont utilisées pour émettre le signal PWM vers des circuits externes
Étape 5: Contrôle du cycle de service avec injection d'horloge et saut d'horloge
Le contrôleur de ventilateur reçoit les signaux CW et CCW en tant qu'entrées du décodeur rotatif et les utilise pour augmenter ou diminuer le signal PWM qui contrôle la vitesse du ventilateur. Ceci est réalisé avec plusieurs composants logiques numériques.
Le cycle de service doit augmenter lorsqu'une impulsion CW est reçue. Cela se fait en injectant une impulsion d'horloge supplémentaire dans le bloc CNT6, l'amenant à sortir un cycle d'horloge plus tôt qu'il ne l'aurait fait autrement. Ce processus est illustré à la figure 8.
CNT1 est toujours cadencé à un taux constant, mais CNT6 a quelques horloges supplémentaires injectées. Chaque fois qu'il y a une horloge supplémentaire au compteur, il décale sa sortie d'une période d'horloge vers la gauche.
À l'inverse, pour diminuer le rapport cyclique, sautez une impulsion d'horloge pour CNT6, comme illustré à la figure 9. CNT1 est toujours cadencé à un taux constant, et il y a des impulsions d'horloge sautées pour CNT6, où le compteur n'a pas été cadencé quand il était supposé à. De cette façon, la sortie de CNT6 est poussée vers la droite d'une période d'horloge à la fois, raccourcissant le cycle de service PWM de sortie.
La fonctionnalité d'injection d'horloge et de saut d'horloge est effectuée à l'aide de certains éléments logiques numériques dans le GreenPAK. Une paire de blocs multifonctions est utilisée pour créer une paire de combinaisons de verrouillage/détecteur de bord. LUT0 4 bits est utilisé pour multiplexer entre le signal d'horloge général (CLK/8) et les signaux d'injection d'horloge ou de saut d'horloge. Cette fonctionnalité est décrite plus en détail à l'étape 7.
Étape 6: Saisie BOUTON
L'entrée BUTTON est anti-rebond pendant 20 ms, puis utilisée pour basculer un verrou qui détermine si cette puce particulière est sélectionnée. Si elle est sélectionnée, la LUT à 4 bits transmet les signaux de saut d'horloge ou d'injection. Si la puce n'est pas sélectionnée, la LUT 4 bits transmet simplement le signal CLK/8.
Étape 7: Prévention du renversement du cycle de service
Les verrous RS 3 bits LUT5 et 3 bits LUT3 sont utilisés pour s'assurer que vous ne pouvez pas injecter ou sauter autant d'horloges que les compteurs de décalage se retournent. Ceci afin d'éviter que le système n'atteigne 100 % de cycle de service, puis bascule sur un cycle de service de 1 % s'il reçoit une autre horloge injectée.
Les verrous RS empêchent que cela se produise en verrouillant les entrées des blocs multifonctions lorsque le système est à un cycle d'horloge du basculement. Une paire de DFF retarde les signaux PWM_SET et PWM_nRST d'une période d'horloge, comme le montre la figure 11.
Une paire de LUT est utilisée pour créer la logique nécessaire. Si le cycle de service est si faible que le signal PWM_SET retardé se produit en même temps que le signal PWM_nRST, une nouvelle diminution du cycle de service provoquera un retournement.
De même, si l'on approche du rapport cyclique maximal, de sorte que le signal PWM_nRST retardé se produit en même temps que le signal PWM_SET, il est nécessaire d'éviter toute augmentation supplémentaire du rapport cyclique. Dans ce cas, retardez le signal nRST de deux cycles d'horloge pour vous assurer que le système ne bascule pas de 99 % à 1 %.
Étape 8: Contrôle du cycle de service avec I2C
Cette conception intègre un autre moyen de contrôler le cycle de service autre que le saut d'horloge/l'injection d'horloge. Un microcontrôleur externe peut être utilisé pour écrire des commandes I2C sur le GreenPAK afin de définir le cycle de service.
Le contrôle du cycle de service via I2C nécessite que le contrôleur exécute une séquence de commandes spécifique. Ces commandes sont présentées dans l'ordre dans le tableau 1. Un "x" indique un bit qui ne doit pas changer, "[" indique un bit START et "]" indique un bit STOP
Le bloc PDLY génère une courte impulsion active haute sur le front descendant du signal CLK/8, appelée !CLK/8. Ce signal est utilisé pour cadencer DFF14 à une fréquence constante. Lorsque I2C_SET passe à l'état haut de manière asynchrone, le prochain front montant de !CLK/8 fait sortir DFF14 de l'état HAUT, ce qui déclenche le CNT5 OneShot. Le OneShot s'exécute pendant le nombre de cycles d'horloge que l'utilisateur a écrit, comme spécifié dans la commande I2C « Write to CNT5 » du tableau 1. Dans ce cas, il s'agit de 10 cycles d'horloge. Le OneShot permet à l'oscillateur de 25 MHz de fonctionner exactement pendant sa durée et non plus, de sorte que LUT0 à 3 bits reçoive le nombre de cycles d'horloge qui ont été écrits sur CNT5.
La figure 15 montre ces signaux, où les horloges rouges sont celles qui sont envoyées à LUT0 à 3 bits, qui les transmet à CNT6 (le compteur PWM_SET), créant ainsi le décalage pour la génération du rapport cyclique.
Étape 9: Lecture du tachymètre
Si vous le souhaitez, l'utilisateur peut lire la valeur du tachymètre sur I2C pour suivre la vitesse à laquelle le ventilateur tourne en lisant la valeur CNT2. CNT2 est incrémenté à chaque fois que ACMP0H a un front montant et peut être réinitialisé de manière asynchrone avec une commande I2C. Notez qu'il s'agit d'une fonctionnalité facultative et que le seuil d'ACMP0H devra être ajusté en fonction des spécifications du ventilateur particulier utilisé.
Étape 10: Conception de circuits externes
Le circuit externe est assez simple. Il y a un bouton-poussoir connecté à la broche 6 du GreenPAK pour basculer si cet appareil particulier est sélectionné pour la commande rotative, et une LED connectée à la broche 12 et à la broche 13 pour indiquer quand l'appareil est sélectionné.
Étant donné que le ventilateur fonctionne en 12 V, une paire de FET pour contrôler sa commutation est nécessaire. Les Pin18 et Pin19 du GreenPAK pilotent un nFET. Lorsque le nFET est allumé, il tire la grille du pFET LOW, qui connecte le ventilateur au +12 V. Lorsque le nFET est éteint, la grille du PFET est tirée vers le haut par la résistance de 1 kΩ, ce qui déconnecte le ventilateur à partir de +12V.
Étape 11: Conception de circuits imprimés
Pour prototyper la conception, quelques PCB ont été assemblés. Le PCB sur la gauche est le "contrôleur de ventilateur", qui abrite l'encodeur rotatif, la prise 12 V, le SLG46108 GreenPAK et les connecteurs pour la carte de dérivation FT232H USB vers I2C. Les deux PCB sur la droite sont des " Fan Boards ", qui contiennent les SLG46826 GreenPAK, des boutons-poussoirs, des commutateurs, des LED et des en-têtes de ventilateur.
Chaque panneau de ventilateur a un en-tête mâle enveloppé sur le côté gauche et un en-tête femelle sur le côté droit afin qu'ils puissent être connectés en guirlande ensemble. Chaque Fan Board peut être rempli de ressources pour contrôler indépendamment deux ventilateurs.
Étape 12: Application C#
Une application C# a été écrite pour s'interfacer avec les Fan Boards via le pont FT232H USB-I2C. Cette application peut être utilisée pour régler la fréquence de chaque ventilateur avec les commandes I2C générées par l'application.
L'application envoie une requête ping aux 16 adresses I2C une fois par seconde et remplit l'interface graphique avec les adresses esclaves présentes. Dans cet exemple Ventilateur 1 (adresse esclave 0001) et Ventilateur 3 (adresse esclave 0011) connectés à la carte. Des ajustements au cycle de service de chaque ventilateur individuellement peuvent être effectués en déplaçant la barre coulissante ou en tapant une valeur de 0 à 256 dans la zone de texte sous la barre coulissante.
Conclusion
En utilisant cette conception, il est possible de contrôler indépendamment jusqu'à 16 ventilateurs (puisqu'il existe 16 adresses esclaves I2C possibles) soit avec un encodeur rotatif, soit avec une application C#. Il a été démontré comment générer un signal PWM avec une paire de compteurs décalés, et comment augmenter et diminuer le cycle de service de ce signal sans renversement.
Conseillé:
Gardez votre bébé au frais cet été - Contrôlez les fans stupides avec des choses intelligentes ! : 6 étapes (avec photos)
Gardez votre bébé au frais cet été - Contrôlez les fans stupides avec des choses intelligentes ! : Il y a deux semaines au moment d'écrire ces lignes, je suis devenu le père d'un incroyable petit garçon ! Avec le changement des saisons, les jours qui rallongent et les températures qui se réchauffent, j'ai pensé qu'il serait bien d'avoir une sorte de moniteur dans le n
Utilisez un moteur d'entraînement à courant continu pour tapis de course et un contrôleur de vitesse PWM pour alimenter les outils : 13 étapes (avec photos)
Utilisez un moteur d'entraînement à courant continu pour tapis roulant et un contrôleur de vitesse PWM pour alimenter les outils : des outils électriques tels que des fraises et des tours à métaux, des perceuses à colonne, des scies à ruban, des ponceuses et plus encore peuvent nécessiter des moteurs de 5 HP à 2 HP avec la possibilité d'ajuster la vitesse tout en maintenant le couple .Par coïncidence, la plupart des tapis roulants utilisent un moteur 80-260 VDC avec
Gérez 100 appareils dans les applications, les organisations, les rôles et les utilisateurs Ubidots : 11 étapes
Gérer 100 appareils dans les applications, les organisations, les rôles et les utilisateurs d'Ubidots : à cette occasion, j'ai décidé de tester la fonctionnalité de la plate-forme IoT Ubidots pour la gestion des utilisateurs dans le cas où elle aurait de nombreux appareils pour plusieurs organisations ou entreprises sous la même Plateforme Ubidots. Information du maire : vous
Bandeaux lumineux de couronne de fleurs pour les festivals de musique d'été, les mariages, les occasions spéciales : 8 étapes (avec photos)
Bandeaux lumineux à couronne de fleurs pour les festivals de musique d'été, les mariages et les occasions spéciales : illuminez la nuit avec un magnifique bandeau à fleurs LED ! Parfait pour tous les mariages, festivals de musique, bals de finissants, costumes et occasions spéciales ! Kits avec tout ce dont vous avez besoin pour créer le vôtre bandeau lumineux sont maintenant disponibles dans le magasin Wearables Workshop
Convainquez-vous d'utiliser simplement un onduleur 12 V vers ligne CA pour les guirlandes lumineuses à LED au lieu de les recâbler pour 12 V. : 3 étapes
Convainquez-vous de simplement utiliser un onduleur 12V vers ligne CA pour les guirlandes lumineuses à LED au lieu de les recâbler pour 12V. : Mon plan était simple. Je voulais couper une guirlande lumineuse à LED murale en morceaux, puis la recâbler pour qu'elle fonctionne en 12 volts. L'alternative était d'utiliser un onduleur, mais nous savons tous qu'ils sont terriblement inefficaces, n'est-ce pas ? Droit? Ou sont-ils?