Tengo dos PCB que diseñé y están hechas por un fabricante de PCB (por lo que son idénticas). Usan un MAX485CSA para comunicarse, pero de repente uno de ellos está consumiendo demasiada corriente, en una operación normal, el circuito consume alrededor de 5 mA y ahora extrae 73 mA de la fuente de alimentación de mi banco (obtengo la lectura de la pantalla de la fuente de alimentación). Sé que el culpable es el transceptor 485 porque si deshabilito el pin del remitente y habilito el receptor (ambos pines están unidos como se puede ver en el esquema, así es como funciona) la corriente vuelve a caer a los niveles normales (5mA) , También me he dado cuenta:
- Al transmitir: el canal A es 2.84V cuando el estado alto, mientras que en el canal B es 4.54V cuando el estado alto. En el PCB saludable, ambos están alrededor de 4.5-5V cuando están en estado alto.
- Cuando no se transmite: el canal A es 2.84V (cuando debería ser 4.5-5V) y el canal B es 0V como debería ser.
- Si el circuito está conectado a la fuente de alimentación encendida con su salida APAGADA, A y B están conectadas al receptor (en este caso, el receptor es un Arduino que usa un MAX485CPA, la misma configuración que el circuito emisor), el receptor obtiene un tren interminable de basura (0s y 255s al azar), esto no sucede con el remitente saludable.
- Si el circuito está conectado a la fuente de alimentación apagada o no está conectada a la fuente de alimentación, no obtengo ninguna basura.
-
Cosas que solucionaron el problema de la basura en cualquier circunstancia: unir la conexión a tierra común del circuito con la conexión a tierra de la fuente de alimentación (Tierra), unir las GND del remitente y del receptor, agregar resistencias de pull-up y pull-down a los canales A, B en el extremo del receptor.
Tenga en cuenta que incluso con los niveles de voltaje erróneos, puedo obtener los datos correctos si enciendo el circuito antes que el receptor (para que el búfer del receptor no se llene de basura) Estoy bastante seguro de que si reemplazo el MAX485 en el remitente, el problema desaparecerá, pero me gustaría saber qué sucede y cómo puedo proteger el transceptor para evitar que esto vuelva a suceder antes de enviar el circuito a reparar.
Adjunto a continuación la parte del esquema que muestra cómo se conecta el transceptor si se pregunta acerca de las resistencias de terminación y de pull-up:
-
Estoy enviando datos a una distancia muy corta, como 5-10 metros y una tasa de bits baja (9600 bps), por lo que no he agregado resistencias de terminación, más una resistencia de terminación consumirá una corriente adicional.
- He jugado mucho con 485 transceptores en configuraciones muy desordenadas como placas de pruebas y tal, y nunca he necesitado resistencias pull-up / pull-down, por eso no las he agregado al diseño.
EDIT1: Voy a mantener un terreno común, como sugirió Jeroen, pero todavía hay algo que me molesta. He estado revisando el lado del receptor controlado por el Arduino y noté un transitorio en el canal no inversor cuando el Arduino's USB está enchufado (siendo el USB el único PS), permanece a 4 V durante aproximadamente 3 segundos, luego Desciende a 288mV. La señal también sube y baja algunos milivoltios cuando desconecto y desconecto otros dispositivos USB y el monitor. Este transitorio de 4V a 288mV está causando picos de corriente en el extremo del remitente de la misma magnitud que estoy experimentando ahora continuamente en el circuito defectuoso ¿alguien sabe qué significa esto?
EDIT2: El transceptor 485 se dañó después de todo, se reemplazó y el problema con la corriente excesiva desapareció y los niveles de voltaje en la salida están correctos esta vez. Tampoco estoy obteniendo basura del circuito apagado, con o sin conexión a tierra común.
Las razones para que esto suceda siguen siendo desconocidas, aunque hay algunos posibles culpables:
- No mantener el modo común dentro de las especificaciones debido a la falta de puntos en común como señaló Jeroen.
- Fallo del transceptor Max485 después de transitorios frecuentes desde el extremo del receptor al conectar / desconectar el cable USB que causó picos de corriente en el circuito.
Por ahora estaré realizando pruebas en el circuito usando un terreno común y veré cómo se realiza. También estoy alimentando el Arduino desde el conector de alimentación para no tener esos transitorios siniestros cada vez que conecto el cable USB.