¿Es un guardado / canal Mosfet de N canales confiable para UART de cambio de nivel de 3V3 a 5V?

4

Estoy ocupado con un diseño que necesita conectar una Raspberry Pi a un Arduino a través de UART. Anteriormente he diseñado un circuito que funcionaba bien.

Anterior Design http: // blog .protoneer.co.nz / wp-content / uploads / 2013/05 / Arduino-to-rPi-Bridge-Schematic.png

Pero ahora quiero comenzar a usar componentes SMD y planeo usar el siguiente componente: BSS138BKS + Banco de resistencias de 10k.

No soy un experto en estas cosas y generalmente uso diseños de otros circuitos en mis nuevos diseños.

Mi pregunta es si el BSS138BKS utilizado como en la configuración original con el 2N7000 podrá ejecutarse continuamente sin problemas.

¿Y es esta la manera correcta de hacer cambios de nivel entre los dos dispositivos? (No quiero dañar las tablas).

Editar: Circuito actualizado

    
pregunta Bertus Kruger

2 respuestas

3

El BSS138 debería funcionar bien en su circuito de cambio de nivel. Solo asegúrese de conectar sus pines G, D y S en el mismo método que utilizó para el otro FET. Para una palanca de cambios de nivel como esta, es esencial que el pin D (drenaje) esté conectado al lado que tiene los niveles de 5V para que el diodo del cuerpo en el FET no entre en el BIAS continuo hacia adelante.

Este tipo de cambio de nivel en realidad admite la señalización bidireccional pero funcionará igual de bien con la señalización unidireccional de sus puertos UART.

Cuando lo construyas con las partes BSS138 es posible que desees verificar el tiempo de subida de las señales que pasan a través del traductor de nivel. Si son demasiado lentos para la velocidad en baudios que pretende utilizar, es posible que deba disminuir el valor de las resistencias de extracción en uno o ambos lados de los FET del traductor.

    
respondido por el Michael Karas
3

¿Las dos conexiones UARΤ se refieren a las conexiones directas a los pines mcu? Si alguna de las dos tarjetas usa un controlador UART (MAX232 o similar), tendrá problemas causados por los voltajes bipolares (aproximadamente +8 / -8v).

No he visto un traductor de nivel como este utilizado para la conexión UART, no es que no sea posible, pero generalmente hay alternativas más rápidas como SPI o I2C (TWI) que se pueden usar para distancias cortas. Si está utilizando UART para poder transferir la señal a una larga distancia, entonces no creo que vaya a funcionar, tendrá que usar controladores UART dedicados.

Puede usar fácilmente dos MAX3232 (o uno MAX232 para 5v y un MAX3232 para 3v) con algunos capacitores SMD y conecte las dos placas.

Tengaencuentaqueparauntraductordenivelunidireccionalhayotraopción,usarundiodoyunaresistenciadepull-up(cuandonohayunpull-upinternoquepuedausarse).

simular este circuito : esquema creado usando CircuitLab

Básicamente, la entrada es levantada por la resistencia de pull-up (cuando la salida es alta), o es bajada a alrededor de 0.7v cuando la salida es baja. En la dirección de 3v a 5V, la entrada estará en 0.7v o 4v (3.3 + 0.7v).
En la dirección de 5v a 3V, la entrada estará en 0.7v o 3v.

En ambos casos, los voltajes están en el rango apropiado para ser traducido como lógico alto y lógico bajo desde las entradas mcu.

    
respondido por el alexan_e

Lea otras preguntas en las etiquetas