RS485 diferentes voltajes

Tenga en cuenta que soy un principiante en electrónica...

Hola, tengo algunos módulos RS485 para probar con Arduino y logré que funcionen en semidúplex.

En esta publicación, he visto que para raspberry PI, el módulo sería diferente porque solo puede suministrar 3.3V en los pines GPIO.

Entonces, la pregunta que tengo es, ¿puedo usar una fuente de alimentación externa de 5V para VCC y GND del módulo RS485 y enviar datos con 3.3V? Porque si fuera así podría evitar comprar un módulo específico solo para Pi y eso sería bueno...

RS485 no es algo que "obtienes"; es un estándar de comunicaciones, no un objeto.
Me refiero al módulo, lo siento editaré
¿Qué módulo RS485? algunos funcionan con 3.3V, otros no.
Tienes que mirar los umbrales lógicos en el manual del módulo.
Este es el módulo. solo se que usa el chip max485

Respuestas (2)

La compatibilidad entre la lógica de 3,3 voltios y 5 voltios tiene dos direcciones. Los umbrales lógicos para log.0 y log.1 son los mismos 0.8V y 2.4V) = solo eso es compatible. Como resultado, el uso de la salida de un controlador de línea de 3,3 V como entrada a un receptor de línea de 5 V debería "simplemente funcionar". La otra dirección es más problemática, ya que un controlador de línea de 5 V satisface esos umbrales decisivos, pero también puede sobrecargar y explotar una entrada de receptor de 3,3 V. De esto se trata "tolerante a 5 voltios", en las hojas de datos de muchos chips modernos.

Mirando el transceptor ultraclásico SN75176 RS485, puedo ver que nominalmente funciona con +5V. Entre sus 8 pines, el lado TTL tiene un pin dedicado para la dirección TX (una entrada permanente etiquetada como D para Drive) y un pin dedicado para la dirección RX (una salida permanente etiquetada como R para Recibir). Y es el controlador TTL de dirección RX el que es peligroso para su Arduino.

El hecho de que la señal esté permanentemente en la misma dirección (roles de conductor/receptor) te facilita la vida. Kartman ya ha sugerido dos resistencias como palanca de cambios de nivel. Si alguna vez necesitó algo más elegante, eche un vistazo a la familia lógica 74LVC: puede funcionar con 3,3 V y es tolerante a 5 V. Es decir, si necesita atender una sola señal, puede apreciar el 74LVC1G125 o el 74LVC1G126, un solo canal de los clásicos búferes de bus paralelo cuádruple 74125/74126. También hay una versión de doble canal que comienza con 74LVC2Gxxx.

Sí, tienes razón, los pines GPIO en el RPI aparentemente no son tolerantes a 5V . Y probablemente puedan funcionar en ambas direcciones, según la configuración del software. Un cambiador de nivel resistivo para su línea RX debería funcionar bien con eso; en realidad, supongo que también funcionaría para ambas direcciones :-) si sus señales no son demasiado rápidas, por lo que las capacitancias parásitas no importan. La página web oficial de RPI a la que me he vinculado en realidad menciona algunos módulos de cambio de nivel listos para usar. No estoy seguro de qué son... ¿veo transistores en el módulo? Lo que sea...

Hay una última cosa que debe tener en cuenta: si está utilizando un módulo de interfaz RS485 completo (placa) y lo va a suministrar con 5 V, asegúrese de no conectar por error el mismo riel de alimentación de 5 V (red de PCB rastrea) al pin de suministro de 3,3 voltios (salida) en el conector GPIO del RPI. Alimentar el riel de 3,3 voltios del RPI con +5 V no le haría ningún bien al RPI :-)

RS485 puede ser un tema bastante rico por derecho propio. Como su tolerancia de nivel RX diferencial y de modo común es bastante amplia, puedo imaginar una configuración de trabajo práctica con los controladores de línea alimentados por solo 3,3 voltios. Siempre que la lógica del chip del transceptor pueda funcionar con ese voltaje, el bus en sí mismo debería funcionar principalmente bien, incluso mezclando nodos alimentados por 3.3 y 5 voltios. Puede interconectar las señales y la tierra de referencia, ¡pero no interconecte sus rieles de alimentación! a lo largo del autobús :-) Simplemente renuncia a un "presupuesto de atenuación" a lo largo de la línea de transmisión del autobús.

Feliz retoque :-)

La solución obvia y más robusta es obtener el módulo correcto. Como han mencionado otros, algunos chips transceptores rs485 'funcionarán' en 3V3. Esto puede no estar garantizado. Alternativamente, si el Pi solo necesita transmitir datos, puede usar un transceptor de 5V. El problema viene con los datos recibidos ya que el transceptor emitirá una señal de 5V que el pi no apreciará. Podría usar un divisor de resistencia para bajar el voltaje. Digamos 2k2 en serie y 3k3 a 0V. Debería haber ejemplos trabajados en las interwebs.