5 votos

Cronometraje de bits del bus CAN con cristal de 16 MHz

Estoy tratando de recibir mensajes CAN de un radar, cuya especificación define los siguientes datos para la sincronización de bits:

CAN baudrate = 250 kBaud
Tseg1 = 8
Tseg2 = 7
Tsjw  = 4
Synchronization on one edge only.

Estoy usando un cristal de 16 MHz en el clásico MCP2515 (Controlador CAN) + MCP2551 (Transceptor CAN) configuración que utilizo entre el bus CAN y un Arduino Uno Pero creo que estoy teniendo algunos problemas al establecer la configuración de la sincronización de bits en el MCP2515.

Esto se debe a que el uso de una frecuencia de reloj de 16 MHz limita el tiempo de quanta por bit a 16. Estoy usando el MBtime para verificar la sincronización de los bits.

     1 time quanta synchronization segment
   + 1 time quanta propagation delay
   + 8 time quanta phase segment 1
   + 7 time quanta phase segment 2
 ----------------------------
  = 17 time quanta

Que es uno más que el requerido (16). Siendo el segmento de sincronización siempre uno, y el de propagación al menos uno, ¿cómo es posible hacerlo funcionar con los parámetros requeridos?

Mis ideas son utilizar otro cristal, tal vez 18 o 20 MHz. (De hecho, lo intenté con 20 MHz y un retardo de propagación de cuatro cuanta, y no funcionó).

Sin embargo, utilizando un convertidor de CAN a USB en mi PC, recibí con éxito las tramas CAN que esperaba del radar. Configuré los mismos ajustes (Tseg1, Tseg2, SJW y velocidad en baudios). Y este convertidor utiliza un cristal de 16 MHz...

¿Hay algo que se me escapa? ¿Debo cambiar la frecuencia del oscilador a otro valor?

2voto

RelaXNow Puntos 1164

La otra parte no puede decir cuántos cuantos de tiempo hay que utilizar para las distintas partes del bit. Sólo puede decirte la tasa de bits que debes respetar.

Escoge un conjunto de cuantos de tiempo cercanos a los que ellos utilizan pero que aún así se ajusten a la tasa de bits especificada, y todo irá bien. Considera que su "especificación" de cuantos de tiempo es simplemente una indicación de cómo funciona su implementación, no de lo que tienes que hacer.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X