¿Cómo convertir el voltaje UART de 5v a 3.3v? [duplicar]

Tengo PIC18F4455 conectado al chip wifi Spark Core. Envío datos desde PIC18F4455 al núcleo de chispa usando UART. El problema es que los datos de salida de pic18f4455 equivalen a 5v, y el núcleo de chispa acepta solo 3.3V. Mi pregunta, ¿hay alguna forma de convertir estos datos a 3.3v (softwar en el PIC18F4455 o hardware)?

Ali

El término de búsqueda que está buscando es "traductor de nivel".
¿qué quieres decir?
Un "traductor de nivel" es un dispositivo o módulo que convierte señales de un voltaje a otro. Uno bidireccional hará ambas direcciones.
gracias matt ¿Tengo que comprar este dispositivo? ¿Hay algún wat para hacer que el pic18 transmita los datos en un nivel de 3.3v?

Respuestas (5)

UART es unidireccional, por lo que puede usar un convertidor de nivel unidireccional como este:Convertidor de nivel unidireccional

Alternativamente, puede usar un convertidor de nivel bidireccional de 5v a 3.3v. Para cada cable, debe construir el convertidor como este:

Convertidor de nivel bidireccional

Dado que UART tiene dos cables (TX y RX), necesitamos dos juegos del convertidor. Hay una placa Sparkfun que tiene 4 pines en el lado alto y 4 pines en el lado bajo. Como es bidireccional, funciona para UART, I2C, etc.

Aunque la pregunta es bastante obsoleta y se reporta como duplicada, quiero señalar un problema en el convertidor bidireccional BSS138 anterior. La puerta tiene que estar conectada al riel de 3.3V, no a la señal de 3.3V. Ref: cdn.sparkfun.com/tutorialimages/BD-LogicLevelConverter/…

Hubiera sido bueno si hubiera proporcionado alguna hoja de datos.

La mayoría de los microcontroladores modernos tienen algunos o todos los pines tolerantes a 5 V, incluso si se alimentan desde una fuente de 3,3 V. Lo que esto significa es que puede enviar 5V al GPIO y estará bien.

A veces solo tienes que gastar el trabajo extra para encontrar la respuesta (y tampoco es tan difícil).

Lo primero que necesita es la hoja de datos.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Genial, ahora sé lo que es el microcontrolador. ¿Pero tiene IO tolerante a 5V? No sé. Encontremos la hoja de datos.

ingrese la descripción de la imagen aquí

Primera página (esquina inferior izquierda).

ingrese la descripción de la imagen aquí

Así que casi todos son tolerantes a 5V. ¿Cuáles necesitas? No sé. Puedes buscarlo tú mismo ahora.

Con suerte, puedes ver que un poco de Google ayuda mucho. Incluso si busca mal, si tiene una buena idea de lo que le gustaría hacer, leer las páginas a veces puede guiarlo directamente.

Derp Si hubiera leído más lento, habría visto que la segunda captura de pantalla era el mismo resumen (aunque no la hoja de datos completa), por lo que podría haberme dado cuenta de que era tolerante a 5V en la segunda imagen. Todavía necesitaría la hoja de datos completa para averiguar qué pines son tolerantes a 5V y cuáles no.

Al ser tolerante a 5V, significa que toma 5V de manera segura, pero no fuentes. No podrá conducir un pin sobre Vcc, que es 3.3V. ¿PIC entenderá 3.3V como un nivel HI?

Necesita emplear cambiadores de nivel de voltaje. Prefiero circuitos integrados 74LVC125, 74HCT125.

http://www.ti.com/lsds/ti/logic/voltage-level-translation-overview.page

Espero que esto ayude,,,,

Intente usar un divisor de resistencia para MCU's Tx. En la mayoría de los casos, la línea Rx del transmisor de 5 V (su MCU) aceptará un nivel de señal de 3,3 V.

Solo cuando Vin High es 0.6 * Vcc o inferior.

Puede usar un convertidor de nivel lógico para traducir la señal de 3,3 voltios a 5 voltios y viceversa. Puede hacer esto con dos MOSFET (2n7000, por ejemplo) y 4 resistencias de 10k.

Puede encontrar un esquema de ejemplo aquí .