Pulso de doble polaridad con una sola fuente de alimentación e interruptor spdt virtual

Tengo un problema en el diseño o en mi circuito. Necesito enviar datos a una tasa de bits máxima de 12000 bits/segundo. El valor alto debe ser +12v y el valor bajo debe ser -12v proporcionando al menos 35mA de corriente. Inicialmente pensé que podría obtener fácilmente esos valores con el chip max232. Pero cuando hice algunas pruebas, solo pude obtener -7.25v, lejos de los -12v que necesito. El resto del tiempo, no se deben enviar datos a través del cable, por lo que la corriente debe detenerse lógicamente. Hice un diagrama del concepto de mi circuito para que sea más fácil de entender:ingrese la descripción de la imagen aquíUsaré una batería de 12v si es necesario, pero prefiero encontrar una manera de usar una batería de 9v. Usaría un regulador de 5v para obtener los 5v requeridos para mi microcontrolador y luego con mi microcontrolador enviaría datos. Esos datos luego se convertirían a (+12/-12v alto/bajo). El interruptor S6 se usa para detener la corriente cuando no deseo transmitir datos.

He pensado en una forma de lograr todo eso, pero tengo dificultades técnicas para lograr un interruptor spdt lógico y, en general, me pregunto si funcionaría y si no habría un diseño mejor que el mío. Aquí hay un diagrama de mi primer borrador: ingrese la descripción de la imagen aquíAsí que uso un esquema de inversor con el IC MC34063 que me proporcionará un -12v con 100mA. Luego, para los +12v, uso directamente la fuente de alimentación. Estoy seguro de que es una buena idea. Luego, usaría un equivalente electrónico de un interruptor spdt (S1) conectado a +12v y -12v impulsado por uno o dos pines del microcontrolador (preferiblemente uno). Eso debería darme buenas señales cuadradas de -12/-12v (no estoy seguro de eso también) y luego tendría un interruptor electrónico (S2) para abrir o detener la señal cuando sea necesario.

Así que para resumir, mis preguntas son:

1) ¿Funcionará mi diseño? ¿Qué sería problemático?

2) ¿Existe un mejor diseño, quizás más eficiente y con menos componentes que el mío?

3) ¿Cómo logro el equivalente electrónico del interruptor spdt (S1)? Ya abrí un hilo para S2 que se resolvió (ver Interruptor electrónico con voltaje negativo y positivo )

4) Con mi diseño, ¿obtendré una buena señal utilizable cuadrada de -12v/+12v que me suministre los 35mA que necesito?

5) ¿Puedo trabajar con una batería de 9v en lugar de una batería de 12v?

6) ¿Puedo usar menos pines del microcontrolador? Idealmente 1, pero 2 estaría bien también.

Gracias por su ayuda y aportes.

Los controladores RS232 ya hacen exactamente este trabajo por usted con las bombas de carga
eso es lo que yo también pensé, pero ¿qué chip? porque si echa un vistazo a la hoja de datos max232, en realidad da -8,5v y +8,5v con cuatro condensadores de 0,1uf.
Nadie dice que tiene que obtener +/- 12V, esos dispositivos se han utilizado en probablemente decenas de millones de aplicaciones. Con un voltaje de 3,3 V en Vcc, emiten algo cercano a +/- 5 V y aún funcionan fielmente. El estándar si mal no recuerdo habla de niveles mínimos de voltaje de +/- 2.5V
está bien, lo entiendo, sea como fuere, no es bueno para mi circuito, no estoy buscando un sólido -12v/+12v y desafortunadamente el max 232 no parece encajar bien.
Solo para entender, ¿qué es este receptor que consume tanta corriente? ¿Y por qué necesita +/- 12V sólido? Eso va mucho más allá de las especificaciones RS232. RS232 especifica que el receptor debe tener una impedancia mínima de 3k y debe aceptar +/-3V.
Además, ¿cuál será la velocidad en baudios? Porque me temo que ningún controlador RS232 integrado podrá proporcionar 35 mA, incluso aquellos que no incluyen una bomba de carga (como SN75188). Entonces, si somos discretos, el tiempo se vuelve importante.
esto no es un receptor en realidad, para simplificar el diagrama puse receptor, el receptor es parte de otro diseño, en realidad es un transmisor que ronda los 400 ohmios, así que calculé que con 12v necesitaría 30mA para funcionar, aunque puede ser que esto sea no es la forma correcta de calcular eso. y tal vez ni siquiera necesite el sólido +/- 12v, aún no he tenido la oportunidad de probarlo. Solo quería asegurarme de que la diferencia fuera lo suficientemente grande como para diferenciar los altos de los bajos, incluso con algo de ruido.
En cuanto a la tasa de baudios, todavía necesito hacer algunas pruebas, pero oscilaría entre 500 bits / segundo y 10000.
Ok, la última pregunta, porque eso simplificaría las cosas: ¿realmente necesita el -12v referenciado a tierra o podría poner el transmisor en una configuración de puente H?
Investigué la configuración del puente H y veo cómo esto podría ayudar en mi circuito. Pero no estoy seguro de si funcionaría. Me temo que necesitaré el -12v referenciado a tierra por ahora.
sabes que he estado investigando la configuración del puente H y no importa lo que dije, creo que esto debería funcionar. Esto simplificaría enormemente mi circuito, con menos componentes y un diseño más sencillo. Estaba investigando el IC l293d que parece hacer el trabajo, con un tiempo de conmutación de 1 µsegundo, pero tengo curiosidad por ver cómo lo harías. También estoy interesado en ver la otra variante, con el -12v referenciado a tierra.
Ok, haré ambas cosas esta noche, como dos respuestas diferentes, creo. Ambos son bastante interesantes, debo decir...

Respuestas (2)

La otra solución es muy buena, pero, como mencionaste, podrías poner tu dispositivo transmisor en una configuración de puente H, podemos hacer todo esto mucho más simple. Primero, no es necesario tener un suministro de -12V, entonces. En segundo lugar, hay circuitos integrados que podemos usar. Sí, señor. Y afirmo que tengo la solución con un solo chip.

El truco consiste en usar un controlador MOSFET simple para controlar directamente el dispositivo transmisor. Necesitamos conducirlo en ambos extremos, para que la corriente eventualmente pueda fluir en ambos sentidos. Entonces necesitamos un controlador MOSFET dual. Usaremos uno que tiene una configuración interesante para lo que necesitamos: el MCP14E8 . Es interesante porque tiene una salida no invertida y otra invertida, y tiene pines de habilitación. Eso es todo lo que necesitamos:

ingrese la descripción de la imagen aquí

Dios mío, es hermoso.

Este chip acepta niveles lógicos de 3,3/5 V incluso cuando se alimenta con 12 V. Puede proporcionar toda la corriente que pueda necesitar (especificado para un pico de 2A ; sin embargo, no se especifica continuo porque no es realmente el propósito de estos chips, pero ciertamente es más de lo que necesita).

Otra posibilidad, con FAN3223

ingrese la descripción de la imagen aquí

Por la parte de alimentación, si usas una batería de 12V, no hay nada más que hacer. Si desea utilizar una batería de 9 V, se puede aplicar el truco de la bomba de carga con un pin MCU de repuesto. Aquí hay una bomba de carga que emite 12 V desde 9 V y que puede entregar 1 W de potencia con una eficiencia de aproximadamente el 85 %:

ingrese la descripción de la imagen aquí

Pastebin del circuito: http://pastebin.com/a3Mr7bq6 (nota: las etiquetas de texto azul en las entradas/salidas son incorrectas, deberían ser "entrada de 9 V" y "salida de 12 V")

Es exactamente el mismo principio que en la otra respuesta, excepto que elegí usar mosfets aquí (esto genera corrientes transitorias más altas cuando cambia el estado, pero en general, el consumo es menor), y la bomba de carga emite 3/2 * VBAT en lugar de -VBAT. El truco aquí es cargar dos condensadores en serie a través de 9V, luego los "dividimos" para obtener dos veces 4.5V, que ponemos en paralelo y sumamos al voltaje de la batería. En general, obtenemos alrededor de 12 V (debido a las caídas de diodo).

Todo este asunto de la bomba de carga puede parecer una solución extraña en comparación con el uso de un convertidor de impulso barato. Pero en realidad, si usa un par pequeño de canal P/canal N en un solo paquete (como DMG6602) y diodos schottky triples en paquetes individuales (como BAT54TW), es una solución compacta con 3 pequeños chips, 4 tapas y 4 resistencias solamente. Y súper barato en volúmenes.

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .
Bien, entonces entiendo cómo funciona y por qué pones OUTA a INB para que usemos solo un pin en el microcontrolador. Solo tengo una última pregunta, ¿estás seguro de que obtendré el -12v/12v necesario? Quiero decir, no entiendo algo, cuando pongo 1 en INA, obtengo NO 1 en OUTA, que es 0? y luego se aplica 0 en INB que da NO 0 entonces 12v? Luego, cuando pongo 0 en INA, obtengo NO 0, entonces 12V en OUTA y 0V en OUTB. Entonces, ¿siempre es +12v, pero nunca tengo -12v?
Lo entendiste. Entonces tenemos +12V en ambos casos, pero en un caso se aplica de una manera y en el otro caso se aplica de otra manera . Entonces, si considera solo el componente TX y el voltaje a través de él, obtiene +12V o -12V de diferencia de potencial (12V-0V o 0V-12V), que es lo que cuenta.
Bien, ahora entiendo, muchas gracias por toda su ayuda.

Esta respuesta intenta resolver el problema como se indicó originalmente. Lo cual entendí como, básicamente, un cambiador de nivel que toma 0/5V como entrada y +12/-12V como salida, con una opción de habilitar/deshabilitar que pondría la salida en estado de alta impedancia. Cuando está habilitado, este cambiador debe poder generar/disminuir al menos 35 mA. Los tiempos, sin embargo, no son tan críticos (velocidad máxima de conmutación de unos 10 kHz).

controlador de salida

Aquí está el circuito con el que terminé. Está usando solo discretos (buenos BJT), pero no muchos de ellos. Toma +12V y -12V como suministros, y las señales ENABLE y DATA como lógica digital de 5V. La señal se retrasa unos pocos µS (hay una pequeña diferencia entre el retraso en las transiciones de bajo a alto y el retraso en las transiciones de alto a bajo). Para simplificar el circuito, cuando HABILITAR está inactivo, la entrada de DATOS debe estar en un nivel bajo. De lo contrario, la salida seguirá siendo impulsada. El último dato importante es que la entrada y la salida tienen polaridad opuesta (como todos los controladores RS-232, según recuerdo).

ingrese la descripción de la imagen aquí

Archivo LTSpice asc: http://pastebin.com/6hESR81u

Hay algunos trucos en este circuito:

  • La forma en que se cablea la primera etapa de los transistores: en lugar de aplicar la señal a la base, la aplicamos a los emisores. Pero el resultado es realmente simple: cuando la señal es baja (y ENABLE alto), Q1 está encendido y Q2 está apagado, y cuando la señal es alta, Q2 está encendido y Q1 está apagado. Luego, si Q1 está encendido, Q4 está encendido y proporciona +12 V. Si Q2 está encendido, Q3 está encendido y proporciona -12 V. Tan sencillo como eso.
  • El condensador C1: este truco elimina los disparos en las transiciones. Cuando la señal cambia, hay un breve tiempo (debido a las imprecisiones, retrasos que conlleva,...) durante el cual se conducen tanto Q4 como Q3. Esto crea un cortocircuito de +12 V a -12 V y se puede desperdiciar una corriente bastante alta. C1 fuerza a Q4 y Q3 a cambiar de estado al mismo tiempo, reduciendo este efecto al mínimo.
  • Es la señal ENABLE la que se utiliza como fuente de tensión para alimentar la base Q1. Si tanto DATA como ENABLE son bajos, no se enciende ningún transistor.

Tenga en cuenta que este circuito debe estar correctamente desacoplado. Coloque una tapa de cerámica de 1 µ cerca de los suministros Q3 y Q4.

Este circuito puede proporcionar al menos 50 mA de corriente, dada la Hfe mínima de los transistores sugeridos. La base de Q3/Q4 está polarizada con aproximadamente 1 mA. Podría ir por encima de eso disminuyendo R2-R9-R8-R4, pero el circuito consumiría más y la corriente generada/hundida desde la entrada de DATOS sería mayor (actualmente alrededor de +/- 2 mA).

Puede hacerlo mucho más rápido colocando pequeñas mayúsculas (en el rango de 100 pF) en las resistencias base. Pero esto no es necesario aquí dados los tiempos requeridos.

Suministrar

Ahora, esto era solo el circuito de conducción de la señal de salida. ¿Qué tal los suministros? Bueno, usar el MC34063 es una buena idea. Tengo otro, pero vale la pena solo si tiene un pin de repuesto en el microcontrolador en el que puede generar un PWM con un ciclo de trabajo del 50% a aproximadamente 100 kHz (no es necesario que sea preciso). Si es el caso, hay un circuito más pequeño, más barato, más fácil de sintonizar, que puedes usar para generar los -12V a partir de los 12V de la batería. Es una simple bomba de carga inverter (en realidad lo que se hace dentro del MAX232).

Divirtámonos con los BJT de nuevo:

ingrese la descripción de la imagen aquí

Archivo LTSpice asc: http://pastebin.com/QrumUYN3

La parte entre la entrada y C3 es otro circuito de cambio de nivel: toma 0-5V y solo emite 12-0V (invirtiendo la polaridad). Pero este está hecho con menos transistores, porque... Bueno, porque. Luego, C3, D2, D3 y C4 en realidad hacen que el voltaje se invierta.

No olvide el desacoplamiento aquí también (al menos 1µ en la entrada de 12V).

Este circuito proporciona fácilmente 70/80mA de corriente. Sin embargo, tenga en cuenta que solo hay una etapa de transistor, por lo que la entrada requiere aproximadamente 5/10 mA (sumidero/fuente) de corriente.

Ahora, si realmente desea obtener +12V y -12V desde 9V, esto se vuelve poco práctico. Utilice tanto un impulsor como un regulador de conmutación inversor.

De hecho, finalmente hice una bomba de carga que convierte 9V a +12V y -12V: pastebin.com/1y4qKwjU . Parece tener más del 90% de eficiencia. Dios mío, me encantan las bombas de carga.