Tabla de contenido:

Control PWM de bricolaje para ventiladores de PC: 12 pasos
Control PWM de bricolaje para ventiladores de PC: 12 pasos

Video: Control PWM de bricolaje para ventiladores de PC: 12 pasos

Video: Control PWM de bricolaje para ventiladores de PC: 12 pasos
Video: cómo controlar la velocidad de un motor de corriente continua 12V 10A 2024, Mes de julio
Anonim
Control PWM de bricolaje para ventiladores de PC
Control PWM de bricolaje para ventiladores de PC

Este Instructable describe la construcción de un controlador PWM de ventilador de PC de 12 V con todas las funciones. El diseño puede controlar hasta 16 ventiladores de computadora de 3 pines. El diseño utiliza un par de circuitos integrados de señal mixta configurables Dialog GreenPAK ™ para controlar el ciclo de trabajo de cada ventilador. También incluye dos formas de cambiar la velocidad del ventilador:

una. con codificador de cuadratura / rotatorio

B. con una aplicación de Windows integrada en C # que se comunica con GreenPAK a través de I2C.

A continuación, describimos los pasos necesarios para comprender cómo se ha programado el chip GreenPAK para crear el control PWM para ventiladores de PC. Sin embargo, si solo desea obtener el resultado de la programación, descargue el software GreenPAK para ver el archivo de diseño GreenPAK ya completado. Conecte el kit de desarrollo GreenPAK a su computadora y presione el programa para crear el IC personalizado para el control PWM para los fanáticos de la PC.

Paso 1: diagrama de bloques del sistema

Diagrama de bloques del sistema
Diagrama de bloques del sistema

Paso 2: Diseño del decodificador rotatorio SLG46108

Diseño de decodificador rotatorio SLG46108
Diseño de decodificador rotatorio SLG46108
Diseño de decodificador rotatorio SLG46108
Diseño de decodificador rotatorio SLG46108
Diseño de decodificador rotatorio SLG46108
Diseño de decodificador rotatorio SLG46108

Se utiliza un codificador rotatorio para aumentar o disminuir el ciclo de trabajo de los ventiladores manualmente. Este dispositivo emite pulsos en sus salidas de Canal A y Canal B que están separados por 90 °. Consulte AN-1101: Decodificador de cuadratura desbloqueado para obtener más información sobre cómo funciona un codificador rotatorio.

Se puede crear un decodificador giratorio sincronizado usando un Dialog GreenPAK SLG46108 para procesar las señales del Canal A y del Canal B y emitirlas como pulsos en sentido antihorario (CCW) y en sentido horario (CW).

Cuando el canal A conduce al canal B, el diseño genera un pulso corto en CW. Cuando el canal B conduce al canal A, emite un pulso corto en sentido antihorario

Tres DFF sincronizan la entrada del Canal A con el reloj. De manera similar, el retardo de tubería con OUT0 configurado en dos DFF y OUT1 configurado en tres DFF crea la misma funcionalidad para el canal B.

Para crear salidas CW y CCW, utilice algunas LUT. Para obtener más información sobre este diseño de decodificador rotatorio estándar, visite este sitio web.

El decodificador rotatorio GreenPAK recibirá los pulsos de entrada A y B y emitirá los pulsos CW y CCW como se muestra en la Figura 4.

El circuito después de las puertas XOR asegura que nunca habrá un pulso CW y un pulso CCW al mismo tiempo, permitiendo cualquier error con el codificador rotatorio. El retardo de flanco descendente de 8 ms en las señales CW y CCW las obliga a permanecer altas durante 8 ms más un ciclo de reloj, que es necesario para los GreenPAK SLG46826 descendentes.

Paso 3: Diseño del controlador de ventilador SLG46826

Diseño de controlador de ventilador SLG46826
Diseño de controlador de ventilador SLG46826

Paso 4: Generación de PWM con contadores de compensación

Generación de PWM con contadores de compensación
Generación de PWM con contadores de compensación
Generación de PWM con contadores de compensación
Generación de PWM con contadores de compensación

Se utilizan un par de contadores de compensación con el mismo período para generar la señal PWM. El primer contador establece un DFF y el segundo lo restablece, creando una señal PWM de ciclo de trabajo consistente como se muestra en la Figura 6 y la Figura 7.

CNT6 establece DFF10 y la salida invertida de CNT1 restablece DFF10. Los pines 18 y 19 se utilizan para enviar la señal PWM a circuitos externos

Paso 5: Control del ciclo de trabajo con inyección de reloj y salto de reloj

Control de ciclo de trabajo con inyección de reloj y salto de reloj
Control de ciclo de trabajo con inyección de reloj y salto de reloj
Control de ciclo de trabajo con inyección de reloj y salto de reloj
Control de ciclo de trabajo con inyección de reloj y salto de reloj

El controlador del ventilador recibe las señales CW y CCW como entradas del decodificador rotatorio y las usa para aumentar o disminuir la señal PWM que controla la velocidad del ventilador. Esto se logra con varios componentes lógicos digitales.

El ciclo de trabajo debe aumentar cuando se recibe un pulso CW. Esto se hace inyectando un pulso de reloj adicional en el bloque CNT6, lo que hace que emita un ciclo de reloj antes de lo que lo haría de otra manera. Este proceso se muestra en la Figura 8.

CNT1 todavía se sincroniza a una velocidad constante, pero CNT6 tiene un par de relojes adicionales inyectados. Cada vez que hay un reloj adicional en el contador, cambia su salida un período de reloj a la izquierda.

Por el contrario, para disminuir el ciclo de trabajo, omita un pulso de reloj para CNT6 como se muestra en la Figura 9. CNT1 todavía se sincroniza a una velocidad constante, y hay pulsos de reloj omitidos para CNT6, donde el contador no se sincronizó cuando se suponía. para. De esta manera, la salida de CNT6 se empuja hacia la derecha un período de reloj a la vez, acortando el ciclo de trabajo de salida PWM.

La funcionalidad de inyección de reloj y salto de reloj se realiza con el uso de algunos elementos lógicos digitales dentro del GreenPAK. Se utilizan un par de bloques multifunción para crear un par de combinaciones de detector de pestillo / borde. LUT0 de 4 bits se utiliza para mux entre la señal de reloj general (CLK / 8) y las señales de inyección de reloj o de salto de reloj. Esta funcionalidad se describe con más detalle en el Paso 7.

Paso 6: Entrada de BOTÓN

Entrada de BOTÓN
Entrada de BOTÓN

La entrada del BOTÓN se antirrebote durante 20 ms, luego se usa para alternar un pestillo que determina si se selecciona este chip en particular. Si se selecciona, la LUT de 4 bits pasa las señales de inyección o salto de reloj. Si el chip no está seleccionado, entonces la LUT de 4 bits simplemente pasa la señal CLK / 8.

Paso 7: Prevención del traspaso del ciclo de trabajo

Prevención del vuelco del ciclo de trabajo
Prevención del vuelco del ciclo de trabajo
Prevención del vuelco del ciclo de trabajo
Prevención del vuelco del ciclo de trabajo
Prevención del vuelco del ciclo de trabajo
Prevención del vuelco del ciclo de trabajo

Los pestillos RS LUT5 de 3 bits y LUT3 de 3 bits se utilizan para asegurarse de que no pueda inyectar u omitir tantos relojes que los contadores de compensación se vuelvan a pasar. Esto es para evitar que el sistema alcance un ciclo de trabajo del 100% y luego cambie a un ciclo de trabajo del 1% si recibe otro reloj inyectado.

Los pestillos RS evitan que esto suceda enganchando las entradas a los bloques multifunción cuando el sistema está a un ciclo de tiempo de giro. Un par de DFF retrasan las señales PWM_SET y PWM_nRST en un período de reloj, como se muestra en la Figura 11.

Se utilizan un par de LUT para crear la lógica necesaria. Si el ciclo de trabajo es tan bajo que la señal PWM_SET retrasada ocurre al mismo tiempo que la señal PWM_nRST, una disminución adicional en el ciclo de trabajo provocará un vuelco.

De manera similar, si se acerca al ciclo de trabajo máximo, de manera que la señal PWM_nRST retardada se produce al mismo tiempo que la señal PWM_SET, es necesario evitar cualquier aumento adicional del ciclo de trabajo. En este caso, retrase la señal nRST dos ciclos de reloj para asegurarse de que el sistema no pase del 99% al 1%.

Paso 8: Control del ciclo de trabajo con I2C

Control del ciclo de trabajo con I2C
Control del ciclo de trabajo con I2C
Control del ciclo de trabajo con I2C
Control del ciclo de trabajo con I2C
Control del ciclo de trabajo con I2C
Control del ciclo de trabajo con I2C

Este diseño incorpora otra forma de controlar el ciclo de trabajo que no sea el salto de reloj / inyección de reloj. Se puede usar un microcontrolador externo para escribir comandos I2C en el GreenPAK para configurar el ciclo de trabajo.

El control del ciclo de trabajo sobre I2C requiere que el controlador realice una secuencia de comando específica. Estos comandos se muestran en orden en la Tabla 1. Una "x" indica un bit que no debe cambiar, "[" indica un bit de INICIO y "]" indica un bit de PARADA

El bloque PDLY genera un pulso alto activo corto en el flanco descendente de la señal CLK / 8, que se denomina! CLK / 8. Esa señal se utiliza para sincronizar DFF14 a una frecuencia constante. Cuando I2C_SET sube asincrónicamente, el siguiente flanco ascendente de! CLK / 8 hace que DFF14 emita HIGH, lo que activa el CNT5 OneShot. El OneShot se ejecuta durante el número de ciclos de reloj que el usuario escribió como se especifica en el comando I2C "Escribir en CNT5" en la Tabla 1. En este caso, son 10 ciclos de reloj. El OneShot permite que el oscilador de 25 MHz funcione exactamente durante su duración y no más, de modo que el LUT0 de 3 bits recibe el número de ciclos de reloj que se escribieron en CNT5.

La Figura 15 muestra estas señales, donde los relojes rojos son los que se envían a LUT0 de 3 bits, que los pasa a CNT6 (el contador PWM_SET), creando así el offset para la generación del ciclo de trabajo.

Paso 9: Lectura del tacómetro

Lectura del tacómetro
Lectura del tacómetro
Lectura del tacómetro
Lectura del tacómetro

Si lo desea, el usuario puede leer el valor del tacómetro sobre I2C para rastrear qué tan rápido gira el ventilador leyendo el valor CNT2. CNT2 se incrementa cada vez que ACMP0H tiene un flanco ascendente y se puede restablecer de forma asíncrona con un comando I2C. Tenga en cuenta que esta es una característica opcional, y el umbral de ACMP0H deberá ajustarse de acuerdo con las especificaciones del ventilador en particular que se esté utilizando.

Paso 10: Diseño de circuito externo

Diseño de circuito externo
Diseño de circuito externo

El circuito externo es bastante simple. Hay un botón conectado al Pin6 del GreenPAK para alternar si este dispositivo en particular está seleccionado para el control rotatorio, y un LED conectado al Pin12 y Pin13 para indicar cuándo se selecciona el dispositivo.

Dado que el ventilador funciona con 12 V, se requiere un par de FET para controlar su conmutación. Pin18 y Pin19 de GreenPAK controlan un nFET. Cuando el nFET está encendido, tira de la compuerta del pFET LOW, que conecta el ventilador a +12 V. Cuando se apaga el nFET, la compuerta del PFET es levantada por la resistencia de 1 kΩ, que desconecta el ventilador desde +12 V.

Paso 11: Diseño de PCB

Diseño de PCB
Diseño de PCB

Para hacer un prototipo del diseño, se ensamblaron un par de PCB. El PCB de la izquierda es el "controlador del ventilador", que alberga el codificador rotatorio, el conector de 12 V, el GreenPAK SLG46108 y los conectores para la placa de conexión FT232H USB a I2C. Las dos placas de circuito impreso de la derecha son "placas de ventilador", que contienen los GreenPAK, botones pulsadores, interruptores, LED y cabezales de ventilador SLG46826.

Cada Fan Board tiene un encabezado macho envuelto en el lado izquierdo y un encabezado hembra en el lado derecho para que se puedan conectar en cadena. Cada Fan Board se puede llenar con recursos para controlar de forma independiente dos ventiladores.

Paso 12: Aplicación C #

Aplicación C #
Aplicación C #

Se escribió una aplicación C # para interactuar con las placas de ventilador a través del puente FT232H USB-I2C. Esta aplicación se puede utilizar para ajustar la frecuencia de cada ventilador con los comandos I2C que genera la aplicación.

La aplicación hace ping a las 16 direcciones I2C una vez por segundo y llena la GUI con las direcciones esclavas que están presentes. En este ejemplo, el ventilador 1 (dirección de esclavo 0001) y el ventilador 3 (dirección de esclavo 0011) están conectados a la placa. Se pueden realizar ajustes al ciclo de trabajo de cada ventilador individualmente moviendo la barra deslizante o escribiendo un valor de 0-256 en el cuadro de texto debajo de la barra deslizante.

Conclusiones

Con este diseño es posible controlar de forma independiente hasta 16 ventiladores (ya que hay 16 posibles direcciones esclavas I2C) ya sea con un codificador rotatorio o con una aplicación C #. Se ha demostrado cómo generar una señal PWM con un par de contadores de compensación y cómo aumentar y disminuir el ciclo de trabajo de esa señal sin rollover.

Recomendado: