Ejecutar dos tablas con diferentes cristales (específicamente MCP2515)

1

Tengo una interfaz de bus CAN que usa un cristal de 16 MHz, y quiero configurar mi propia interfaz para hablar / simular paquetes CAN con el primero. Tengo cristales de 20 MHz para mi propia interfaz, pero cada vez que conecto esos dos juntos, configuro los míos a 500 kbaud, el otro descubre solo 50 kbaud ... por lo tanto, esta pregunta.

Vale la pena mencionar que la interfaz ya configurada funciona perfectamente con la CAN del vehículo y se verifica que funciona como se esperaba.

¿Importa (en CAN) si el otro dispositivo utiliza un cristal diferente?

Para aquellos que se preguntan, esta es una configuración de Arduino, aunque en general tengo curiosidad acerca de esto en una configuración electrónica.

    
pregunta Deko

1 respuesta

1
  

¿Importa (en CAN) si otro dispositivo usa un cristal diferente?

No, por supuesto que no. Simplemente configure la velocidad en baudios correctamente para cada nodo. Verificar con un osciloscopio.

La especificación de CAN recomienda el uso de osciladores de cuarzo para velocidades de transmisión por encima de 125 kHz. Como regla general, debe elegir un valor de cristal que le dé una desviación máxima de 1% de la velocidad en baudios óptima.

Tendrá que determinar qué valores de cristal son adecuados leyendo cómo funciona el escalador previo del reloj para el controlador CAN específico. Esto debería ser mucho más fácil cuando tiene un controlador externo como en su caso, en lugar de tener uno incorporado (que es mucho más común). Solo dale un reloj dedicado.

También tenga en cuenta que los preescaladores de reloj para CAN pueden ser bastante complejos, ya que tendrá que considerar la cantidad de tiempo que se debe usar por bit y dónde termina el punto de sincronización. Esta suele ser la parte más difícil de corregir al escribir un controlador CAN.

    
respondido por el Lundin

Lea otras preguntas en las etiquetas