Estoy ocupado con un diseño que necesita conectar una Raspberry Pi a un Arduino a través de UART. Previamente he diseñado un circuito que funcionó bien.
(fuente: protoneer.co.nz )
Pero ahora quiero comenzar a usar componentes SMD y planeo usar el siguiente componente: BSS138BKS + 10k Resistor Bank.
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á funcionar continuamente sin problemas.
¿Y es esta la forma correcta de cambiar el nivel entre los dos dispositivos? (No quiero dañar las tablas).
Editar: circuito actualizado
El BSS138 debería funcionar bien en su circuito de cambio de nivel. Solo asegúrese de conectar sus pines G, D y S con el mismo método que usó para el otro FET. Para un cambiador de nivel como este, 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 polarización directa continua.
Este tipo de cambiador de nivel en realidad es compatible con la señalización bidireccional, pero funcionará igual de bien con la señalización unidireccional de sus puertos UART.
Cuando lo construya con las partes BSS138, es posible que desee 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 desea utilizar, es posible que deba reducir el valor de las resistencias pullup en uno o ambos lados de los FET traductores.
¿Ambas conexiones UARΤ se refieren a conexiones directas a los pines mcu? Si alguna de las dos placas está utilizando un controlador UART (MAX232 o similar), entonces tendrá problemas causados por los voltajes bipolares (alrededor de +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 larga distancia, entonces no creo que vaya a funcionar, deberá usar controladores UART dedicados.
Puede usar fácilmente dos MAX3232 (o un MAX232 para 5v y un MAX3232 para 3v) con algunos capacitores SMD e interconectar las dos placas.
Tenga en cuenta que para un traductor de nivel unidireccional hay otra opción, usar un diodo y una resistencia pull-up (cuando no hay un pull-up interno que se pueda usar).
simular este circuito : esquema creado con CircuitLab
Básicamente, la entrada es levantada por la resistencia pull-up (cuando la salida es alta), o baja a aproximadamente 0.7v cuando la salida es baja.
En la dirección de 3v a 5V, la entrada será de 0,7v o 4v (3,3+0,7v).
En la dirección de 5v a 3V, la entrada será de 0,7v o 3v.
En ambos casos, los voltajes están en el rango adecuado para traducirse como lógica alta y lógica baja desde las entradas de mcu.
Bertus Kruger