Generación de 12 V PWM a partir de 5 V PWM

Estoy generando una señal PWM de 5 V desde mi MCU (un Atmel ATMEGA1284P). Necesito convertir esto a una señal PWM de 12V. Para ello diseñé el siguiente circuito, algo muy parecido a un par Sziklai, pero adaptado para que coincida con este caso. Utiliza un transistor NPN bipolar para impulsar un transistor PNP bipolar. Idealmente, necesitaría que V_LOAD fuera un PWM de 12,0 V.Par NPN PNP

Ejecuté algunas simulaciones y esto pareció cumplir muy bien el propósito, hasta que recordé C_LOAD. Dado que V_LOAD no se reduce activamente cuando CLK2 baja, el tiempo de caída es muy largo (demasiado largo, alrededor de 25 μs).

¿Alguna idea sobre cómo mejorar mi diseño? ¿O debería tirar esto a la basura y usar algo más?

Pido disculpas de antemano si esto se ha preguntado antes.

Algunas aclaraciones: La corriente máxima que voy a manejar será de alrededor de 10 mA. Tengo algunas especificaciones bastante estrictas que cumplir: V_LOAD debe ser de 12,0 V y los tiempos de subida y bajada (10 %-90 % = 1,2 V-10,8 V) deben ser como máximo de 2 μs,


EDITAR: Gracias por sus respuestas. Esto es lo que terminé usando: Simulación .PWM5to12-2 con controlador de puerta

Se basa en la respuesta de Majenko con dos transistores agregados como controladores de puerta para reducir el tiempo que tarda el PWM en pasar a LO. Además, se han elegido MOSFET's con baja capacitancia de puerta (BSS84P y BSS138). El tiempo de caída se convierte entonces en 3 μs.

¿Por qué no tirarlo activamente hacia abajo?
En lugar de Q1, use un par de seguidores de emisores en serie: emisores comunes a la carga. Bases comunes a Q2C. Eliminar R3. R4 tal vez 1k (10k puede estar bien). Lado alto EF = NPN, colector a V12. Lado bajo EF = PNP, colector a tierra. Esto conducirá aproximadamente a la velocidad de Q2C, tal vez por debajo de los EE. UU. Se puede hacer más rápido. Utilizo mis transistores std [super] - "jellybean" BC337-40, 327-40 o SMD 817-40, 807-40.

Respuestas (2)

De lo que habla @IgnacioVacquez-Abrams en su comentario es de crear una salida Push-Pull. Esto es básicamente lo que hay en la etapa de salida de su microcontrolador.

esquemático

simular este circuito : esquema creado con CircuitLab

Cuando el PWM es ALTO Q1 conduce. Las compuertas de M1 y M2 están entonces ambas en BAJA, por lo que M1 está activada y M2 está desactivada. RL y CL están efectivamente conectados a +12V. Cuando el PWM baja, Q1 deja de conducir, las puertas de M1 y M2 se elevan a +12 V por R1. M1 se apaga, M2 se enciende. Entonces, RL y CL se conectan efectivamente a tierra.

Es importante seleccionar los MOSFET M1 y M2 con voltajes de umbral de puerta lo suficientemente altos para que ambos FET no estén encendidos cuando el voltaje de puerta esté entre 12 V y 0 V. Este es un lugar donde NO desea utilizar MOSFET de nivel lógico.

¿Y por qué haces esa afirmación? ¿Cuidado para elaborar?
@DwayneReid, ¿o eres solo una de esas personas que tienen prejuicios naturales contra todas las respuestas que no son tuyas?
¡Gracias! Simulé su sugerencia ( enlace ) y parece ser exactamente lo que necesito. Lo probaré un poco más mañana y volveré.
@Majenko: Lo siento, no. De hecho, suelo entrar y editar las respuestas para que funcionen. Pero había demasiado mal con tu esquema y no tuve tiempo. Por eso mi advertencia.
Dos problemas. 1) La combinación de R1 y R2 garantiza que tanto M1 como M2 estén siempre conduciendo cada vez que se enciende Q1. 2) Si R2 no estaba allí, todavía hay una corriente de disparo significativa durante las transiciones de conmutación. Puede salirse con la suya si la resistencia de encendido de M1 y M2 es lo suficientemente alta como para limitar la corriente máxima, pero es una mala práctica hacer las cosas de esa manera.
Ya sea protoboard o simule y monitoree las corrientes de fuente para M1 y M2 durante las transiciones de conmutación. Después de eliminar R2, por supuesto.
Por supuesto, todo lo que dice es cierto, si no selecciona los MOSFET correctos. Siempre que haya suficiente zona muerta entre los umbrales de los dos MOSFET, no pueden estar ambos encendidos al mismo tiempo. Está haciendo suposiciones sobre los MOSFET que no se pueden hacer ya que no se han mencionado partes específicas.
Estuve simulando la solución de Majenko durante algunas horas, tratando de encontrar la falla a la que se refiere @DwayneReid, pero no pude reproducirla. ¿Podría ser que, dado que estoy ejecutando un PWM cuadrado y no una onda sinusoidal, este problema no se aplique aquí? Sin embargo, detecté un problema cuando el PWM pasa a LO. Hay un breve retraso antes de que se abran las puertas MOSFET (alrededor de 8 us), pero supongo que eso es un compromiso de este diseño. Ver esto: simulación
Probablemente se deba a la capacitancia de la puerta y al tiempo que tardan en cargarse. Puede disminuir las resistencias (tanto R1 como R2) para aumentar la corriente de la puerta para aumentar la velocidad de conmutación, a costa de una mayor corriente de reposo cuando Q1 está encendido.
DE ACUERDO. He estado intentando durante unas horas mejorar el diseño. Lo único que ayudó un poco fue agregar un controlador de puerta ( circuito ). Eso redujo el tiempo de caída a 3 us (de 8 us anteriormente). Dado que estoy ejecutando el sistema con batería, disminuir R1 y R2 costaría demasiada energía. Mis prioridades aquí son 1) Precisión, 2) Potencia, 3) Costo. He aceptado su respuesta, pero agradecería su aporte si tiene sugerencias para mejorar.

¿Cuánta corriente necesitas?

Hay dos maneras fáciles de hacer esto con componentes simples. Un método es bueno para solo unos pocos mA de corriente, suficiente para alimentar la entrada de algo activo como un VFD. El otro método es bueno para tanta corriente como quieras.

Primero mostraré la opción de mayor corriente.

esquemático

simular este circuito : esquema creado con CircuitLab

El circuito anterior funciona muy bien y es bueno para PWM de velocidad media (CC a decenas de KHz). Se puede reforzar sustancialmente si es necesario, pero se requerirán más componentes.

Tenga en cuenta que este primer circuito invierte la señal lógica: un HI en la entrada le da un LO en la salida.

Este próximo circuito es solo un cambio de nivel. Tiene la ventaja de un costo muy bajo pero solo es bueno para unos pocos mA.

esquemático

simular este circuito

Este circuito funciona como un amplificador de base común. La base se mantiene en +5V cuando la entrada es HI (también +5V) y el transistor está APAGADO. Esto permite que el colector flote hasta el riel de +12V.

Cuando la entrada pasa a LO, el transistor se enciende con fuerza y ​​tira del colector justo por encima del nivel lógico LO de la entrada. Tenga en cuenta que toda la corriente de salida de hundimiento pasa por el pin de entrada.

Este circuito no es inversor: un HI lógico en la entrada le da un HI lógico en la salida. Esto también funciona bien: es lo que uso para conectar algunas de mis cosas a los VFD que requieren una señal de entrada superior a 5V.

Primero que nada, gracias. Intenté su primera sugerencia y la simulé aquí: enlace Sin embargo, no pude ver qué estaba bajando el voltaje de salida a 11.2V en HI. Necesitaría un PWM a 12.0V.
Gracias por los circuitos simples! ¿Sabe si la palanca de cambios de segundo nivel es segura para Arduino, dado que expondrá un pin de salida a 12 V?
El segundo circuito es absolutamente seguro para Arduino. Lo uso con circuitos PIC en rieles de 5V y 3.3V. Solo asegúrese de que el nivel de voltaje en la resistencia base sea el mismo que el del riel de suministro desde el que opera el microcontrolador.