Estoy ejecutando un corto (2 m) bus CAN con aproximadamente 20 nodos. Velocidad de 1 Mbit / s, PIC 18F2580s y 18F4580s con MCP2551 transceptores, osciladores de cristal de 10 MHz (con PLL a 40 MHz). Ambos extremos terminan a 120 ohmios. El punto de muestra está al 70%.
Los nodos están en tres grupos, cada uno alimentado por una fuente de alimentación aislada, pero los terrenos se encuentran en común a lo largo del bus.
Recibo muchos errores de mensajes, marcos, rellenos de bits. Mirando CANH y CANL en un osciloscopio, todo se ve hermoso. Sin timbre, sin reflejos, y el momento correcto. La medición de los osciladores con un medidor de frecuencia preciso muestra solo una pequeña variación.
Hasta ahora, la única forma en que he podido reducir la cantidad de errores en los mensajes es reforzando el cable de tierra a lo largo del bus hasta que obtengo la diferencia de GND por debajo de unos 150 mV. Cuanto más arriba vaya, más errores recibo.
¿Por qué? De acuerdo con la hoja de datos de MCP2551, ¡deberían poder hacer frente a las diferencias de GND de hasta 7 V!
¿Estoy malinterpretando algo?