El problema viene al intentar transmitir datos ya que parece que si no son diferenciales no se entera de nada.
Si usas el mismo protocolo para transmitir y recibir entonces no deberias tener problemas, a no ser que en el camino se destruya la señal.
Para eso estan los transductores. Los cuales usan otras tensiones. Y algunos diferenciales. Lo que no entiendo es ... Porque la recepcion SI funciona pero la transmision NO. Si van por el mismo lugar fisico, no deberia haber ningun problema. A no ser que algun dispositivo no use la misma tension o no tenga la capacidad suficiente de corriente para enviar el dato.
Alguien conoce o se le ocurre cómo hacer que una transmisión serie mande la señal por dos pines, invertida la señal de uno respecto al otro? (Como si pusiéramos un inversor en la línea).
No tiene sentido, ya que el receptor deberia estar preparado para recibir una señal diferencial, si lo lees con el PIC vas a estar leyendo simplemente una señal comun y corriente como si fuera un solo pin. A lo que me refiero, si tu problema viene por no poder diferenciar un 0 o un 1 del lado del receptor, entonces ¿que te hace pensar que enviando 2 señales, de las cuales TAMPOCO vas a poder diferenciar entre 0 o 1 en ninguna de ellas, vas a poder descifrar el mensaje?
En fin.. necesitas un transductor. Sea el mas simple como usar un transistor para que tenga 12V la señal y no 5V, o sea un integrado de RS232 o RS485. Necesitas algo de hardware, lo cual estas intentando omitir.
PD: La diferencia en una comunicacion Asincrona como la que ofrece la UART respecto al RS232 y RS422/RS485. Son los niveles de tension y si son diferencia o no. Asi que no podes implementar un "RS422" cuando no usas las tensiones y forma de transmision requeridas.. Simplemente es una UART directa a los demas micros o lo que sea.