¿El ecosistema STM32F0 siempre necesita al menos 2 controladores para que la transmisión CAN funcione? [cerrado]

-1

Esto se refiere a STM32 HAL_CAN_Transmit siempre devuelve TIMEOUT (HAL_CAN_STATE_TIMEOUT)

Estamos en el proceso de configurar un entorno similar, y en el primer borrador, enfrentamos el mismo problema de tiempo de espera al enviar un paquete CAN y, por lo tanto, llegamos a la página anterior.

Como primera pregunta, ¿son necesarios 2 controladores (CAN) en el ecosistema STM32F0 para que CAN-transmit funcione? En caso afirmativo, ¿es el estándar CAN o la forma en que funciona el ecosistema STM32F0?

Lo siento si estoy siendo demasiado noob.
Agradecería las ideas de los expertos :)

    
pregunta Ajay Garg

3 respuestas

2

Sí, el bus CAN es un bus, no hay bus con un solo nodo.

Cuando un nodo transmite un paquete, cualquier otro nodo en el bus puede / debe reconocer (el acuse de recibo se realiza con un solo bit que "interrumpe" el paquete maestro, como el bus i2c). De esta manera, el nodo transmisor sabe que, al menos, su paquete ha llegado al bus.

El hecho de que cualquier nodo deba reconocerlo es que los paquetes CAN no tienen una dirección de destino, sino que están destinados a llegar a todos los nodos del bus, como los mensajes de difusión. Los nodos que escuchan pueden incluso descartar un mensaje en el que no están interesados, pero deben reconocerlo de todos modos. Por lo tanto, si tiene un solo nodo, sus transmisiones siempre tendrán un tiempo de espera (el tiempo de espera no es exactamente correcto; el nodo emisor sabe de inmediato que nadie recibió el paquete); Si tiene al menos dos nodos, sus transmisiones siempre serán reconocidas, incluso si el paquete se descarta (se ignora).

    
respondido por el linuxfan
0

El CAN estándar requiere dos nodos para que se envíen los ACK. Los nodos no se ACK a sí mismos. Si solo tiene un nodo, puede obtener un adaptador CAN para que una PC actúe como un segundo nodo. Kvaser hace algunos (relativamente) baratos.

    
respondido por el Adam Haun
0
  

Como primera pregunta, ¿son necesarios 2 controladores (CAN) en el ecosistema STM32F0 para que CAN-transmit funcione?

Sí. Se necesita otro nodo para confirmar que se ha enviado un mensaje CAN válido.

  

En caso afirmativo, ¿es el estándar CAN

Sí.

Debido a esto, los controladores CAN a menudo tienen una función de "bucle invertido" que se puede usar en la etapa de desarrollo, para "hablar contigo mismo" antes de tener 2 tableros en funcionamiento con los transceptores CAN adecuados.

    
respondido por el Lundin

Lea otras preguntas en las etiquetas