Me enfrento a un desafío interesante: estoy usando un microcontrolador con lógica de 3,3 V, pero necesito usar una interfaz SPI (4 hilos) con piezas que funcionan en tres niveles lógicos, a saber, 1,8, 3,3 y 5 V. Obviamente, 3,3 V no es un problema, pero tengo curiosidad sobre la mejor manera de manejar los componentes de 1,8 y 5 V. Por supuesto, podría usar dos circuitos integrados traductores de nivel discreto, pero espero que haya una solución más simple (es decir, más económica y de menor tamaño). Ya tengo formas de generar los suministros de voltaje, por lo que no es un problema.
Conozco la siguiente técnica de traducción de nivel MOSFET, que entiendo lo suficientemente bien:
Esto permite que una señal de 3,3 V desde el µC (desde la izquierda) se desplace hasta 5 V hacia un determinado dispositivo (hacia la derecha). (Tendría que ser al revés para MISO). De manera similar, podría cambiar el voltaje de la derecha a 1.8 V para cambiar hacia abajo para un dispositivo diferente. Aquí está mi problema: si tuviera que cambiar simplemente el voltaje entre 5 y 1,8 V, casi con certeza destruiría los pines de 1,8 V cuando esté a 5 V. ¿Existe una técnica elegante para permitir un cambio a dos niveles diferentes, o lo haré? ¿Tienes que absorberlo y usar dos circuitos separados para las dos traducciones?
Lo primero que debe hacer es observar las especificaciones de sus piezas con más cuidado. Es posible que descubras que algunos de tus enlaces en realidad no necesitan traducción. ¿Cuáles son los umbrales de entrada? ¿Las entradas toleran voltajes fuera de los rieles de alimentación? Es bastante común que los dispositivos de 3,3 V tengan entradas tolerantes a 5 V. No sé acerca de los dispositivos de 1.8V.
Con el truco del mosfet, solo necesita un pullup en cada riel, además, si la traducción es unidireccional y el controlador no está usando una salida de colector abierto, solo necesita el pullup en el lado de salida.
También hay que pensar en la velocidad. A bajas frecuencias, el truco del mosfet está bien, pero debido a su naturaleza de colector abierto, no se adapta bien a las altas frecuencias. Las resistencias deben tener un valor lo suficientemente bajo como para cargar la capacitancia parásita lo suficientemente rápido como para llevar las líneas a su nivel "alto" apropiado a tiempo. Hasta cierto punto, puede usar resistencias más pequeñas para acelerar las cosas, pero luego las corrientes más altas causan una mayor caída de voltaje en los dispositivos de conmutación (tanto el mosfet de cambio de nivel como los controladores de salida en sus dispositivos), lo que puede causar problemas.
crasico
wilson
crasico