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.
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 ;
Puedes levantar una tabla usando estos mismos mosfets en Spark Fun .
Es posible que puedas usar esto . Es un traductor de nivel bidireccional de 8 canales: -
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: -
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.
olin lathrop
mate b
billy bob
tallarines