Este es un seguimiento de SN65176 RS485 contention .
Resolví el problema de la contención esperando al menos 26us después del bit de parada de un controlador RS485 XS201A conectado a PC antes de transmitir desde el SN65176. Sin embargo, evitar la contención no es suficiente.
Inicialmente, mi red de terminación del lado PIC consistía en un único terminador diferencial de 100 ohmios:
Tan pronto como el XS201A termina de transmitir, la tensión diferencial vuelve a un valor promedio. Sin embargo, este valor promedio es no 0V diferencial, como es de esperar. En cambio, el conductor está tirando fuertemente de la línea hasta la mitad del estado de la marca. En el proceso, piensa que eso significa un bit de inicio y emite un byte "0" (o un byte parcial dañado desde el lado PIC, si comienza a transmitir poco después).
Luegohiceunareddepolarizaciónparaimitarelestadodel"espacio" (opuesto a la marca), de manera que:
- la impedancia diferencial sigue siendo de 100ohm
- el voltaje diferencial está polarizado a 500 mV
- la línea inferior está sesgada a 1.5V
La adición de esta red de polarización la hizo tal que, a lo largo de unos pocos miles de bytes, mi tasa de error ahora es aproximadamente del 0,4% (en comparación con el 100%). Sin embargo, incluso con esta mejora, no hay un cambio visible en los voltajes en estado inactivo: el XS201A esencialmente está anulando mi red de polarización e invirtiendo la polaridad de la resistencia media.
Mis preguntas son:
- ¿Por qué el XS201A no entra en un estado de alta impedancia cuando está inactivo?
- ¿Por qué el XS201A tiene un voltaje diferencial diferente a cero que se mantiene fuertemente cuando está inactivo?
- ¿Hay algún problema con mi nueva red de sesgo?
- ¿No debería esperar tener una resistencia de terminación simple en lugar de una red de polarización, especialmente desde el XS201A? ¿Afirma tener una red de polarización a prueba de fallos integrada?