En un proyecto, estoy usando un bus CAN con varios dispositivos en él. El bus CAN se termina con 120 ohmios en ambos extremos. Cuando se inician todos los dispositivos, la forma de onda CAN parece que yo esperaría:
- Cuando está inactivo, ambos cables CAN están a aproximadamente 2.5V (recesivo)
- Cuando se envía un dispositivo, veo las ondas cuadradas típicas en direcciones opuestas: CANL baja y CANH sube (dominante) y luego ambos vuelven a 2.5V nuevamente.
Sin embargo, cuando uno de los microcontroladores se encuentra en el modo JTAG (es decir, el dispositivo está esperando para ser programado), luego una extracción en el pin STANDBY del transceptor CAN (MCP2542) se asegura de que el transceptor pase al modo de espera. En ese modo, ambos cables CAN se tiran a tierra. Las buenas viejas olas cuadradas ya no existen. Parece que los otros dispositivos están tratando de conducir CANH alto, pero CANL realmente no se mueve.
¿Qué significa para los otros dispositivos, si uno (o varios) dispositivos están (y permanecen) en modo de espera? ¿Los otros dispositivos en el bus todavía pueden comunicarse?
Una de mis preocupaciones es que el microcontrolador está en modo JTAG. Por lo tanto, el controlador CAN no está inicializado, no se está ejecutando ningún programa y, por lo tanto, el dispositivo no puede reactivarse desde el modo de espera, si fuera necesario.
Otra preocupación es que el amperaje utilizado para mantener bajos los dos cables de CAN durante el modo de espera es aproximadamente el doble que para el nivel recesivo normal.
¿Hay algún requisito para que los dispositivos se activen desde el modo de espera? ¿O puede un dispositivo permanecer en modo de espera por un período de tiempo indefinido mientras todos los demás dispositivos utilizan el bus CAN?
Tan pronto como se programa el microcontrolador, colocamos el pin de espera del transceptor en posición baja y, por lo tanto, el transceptor sale del modo de espera. Entonces el bus comienza a mostrar niveles normales de voltaje.