¿Cómo aumentar el voltaje de una señal digital?

Me gustaría que mi puerto GPIO de Raspberry Pi se comunique con un circuito digital que funcione al doble del voltaje GPIO. La comunicación será a una frecuencia relativamente alta (hasta 500kHz).

La pregunta principal es cómo amplifico el voltaje en un pin de salida GPIO. ¿Será suficiente un simple transistor 2n2222? Mi principal preocupación es la frecuencia. (También obtener el diagrama de circuito correcto y los valores de condensador/resistencia).

(La pregunta adicional es para la otra dirección: cómo reducir el voltaje de entrada. Mi primer pensamiento es un divisor de voltaje de dos resistencias, pero, de nuevo, ¿funcionará bien a 500 kHz?)

editar:

Obviamente, no he oído hablar de cambios de nivel y traductores de nivel. :)

Sin embargo, los traductores que puedo ver son todos 3V3 <-> 5V. Me gustaría algo bidireccional, que pudiera operar alrededor de 7V y soportar cómodamente 9V. ¿Cuál es el siguiente paso estándar (si lo hay) por encima de 3,3/5? (Supongo que no hay traductores 3V3 <-> 7V;), pero tal vez hay un estándar de 9V o 12V que tiene 5V en el extremo inferior y podría serializar 3V3 <-> 5V <-> 9V?)

¿O tal vez hay una manera simple de hacer rodar mi propio traductor para mis necesidades de voltaje inusuales? (con 500kHz en mente, por supuesto)

editar:

Gracias a todos por sugerir un traductor de voltaje.

De hecho, parece existir un estándar más alto: para CMOS de 15V.

Si entiendo correctamente, los voltajes de entrada y salida de la señal pueden controlarse mediante los voltajes de "fuente de alimentación" proporcionados para un chip. Así que puedo usar los voltajes extraños que quiera, siempre que pueda encontrar una fuente de alimentación adecuada.

Algunos candidatos incluyen TI CD40109B, CD4504 y Pololu 2595.

¿Qué tiene de malo la respuesta obvia de usar traductores de nivel? Esto es exactamente para lo que están destinados.
Pregunta similar sobre los cambiadores de nivel bidireccionales. electronics.stackexchange.com/questions/97889/…
Similar, pero diferente, ya que habla de la conversión más popular, es decir, 3v3-5v, que no es buena para mí.
El BSS138 utilizado en la respuesta de sherrillbc tiene un límite de fuente de puerta de 20 V que es útil para su voltaje lateral alto de 9 V. Muchos de estos pequeños FET tienen un límite de 8 V que no funcionaría para usted. Solo digo ;-)

Respuestas (3)

Para este mismo propósito he usado el mosfet BSS138 con pull-ups de 10k. Pude lograr una comunicación confiable de 250k con un micro funcionando a 16MHz. Un paso hasta 500 kHz seguramente funcionará, simplemente no pude probar esto de manera confiable con un micro lento.

Además, el término para lo que está describiendo se conoce como cambio de nivel ;

ingrese la descripción de la imagen aquí

Puedes levantar una tabla usando estos mismos mosfets en Spark Fun .

Usando resistencias de 1k en lugar de 10k, ejecuté el circuito de manera confiable para una tarjeta SD a 2MHz.
Aunque para voltajes más altos con oscilaciones más grandes, el rendimiento se verá reducido. También hay un límite en cuanto a qué tan bajo puede ir en función de la cantidad de corriente que puede absorber el pin de E / S que impulsa la palanca de cambios.
La nota técnica de Philips que menciona este circuito también menciona el uso de dos mosfets cara a cara para hacer el aislamiento. Así: electronics.stackexchange.com/questions/106254/… . Me gusta esto porque tengo PIC alimentados por batería que se comunican con interfaces seriales FTDI alimentadas por USB, cualquiera de las cuales puede apagarse sin preocuparse por lo que está impulsando la línea de quién.

Es posible que puedas usar esto . Es un traductor de nivel bidireccional de 8 canales: -

ingrese la descripción de la imagen aquí

Un lado funciona con un nivel lógico de 1,2 a 3,6 voltios y el otro lado funciona con niveles lógicos de 1,6 a 5,5 voltios.

Hubiera pensado que si su lógica de voltaje lateral alto es de 6.6 voltios, entonces suministrar un pin de entrada con un nivel lógico de 5 voltios (76%) aún estaría bien. Al suministrar un nivel lógico de 6,6 voltios, debe proteger el dispositivo con una resistencia en serie de 1 kohm.

O bien, podría usar este dispositivo, el TXS0108E: -

ingrese la descripción de la imagen aquí

Velocidades superiores a 2Mbps según ficha técnica.

No creo que la solución de transistor funcione a 500 kHz. Maxim Integrated tiene estos buenos circuitos integrados que puede usar. MAX3002, por ejemplo, convierte cualquier voltaje a cualquier voltaje, es bidireccional y no tiene pin de dirección.

500 Kelvin-Hertz no es una medida significativa en este contexto.
Traté de arreglarlo, pero la edición mínima es de seis caracteres...