¿Mi dispositivo está enviando ACK incorrectamente en el canBus?

0

Tengo un dispositivo prototipo que escucha ciertos mensajes de canBus (solo hay dos nodos en el bus, mi dispositivo y el dispositivo de envío). Tengo un problema en el que el remitente envía constantemente el mismo mensaje, creo que debido a que los ACK que estoy enviando no se están 'reconociendo', por lo que el remitente sigue reintentando. Creo que es por esto que mi microcontrolador no está recogiendo los mensajes (activando la interrupción puede recibir).

También tengo otro dispositivo que parece funcionar correctamente y ACKs el mensaje y no se ha vuelto a intentar.

He incluido una captura de pantalla de la traza del alcance. La traza amarilla es lo que el microcontrolador está transmitiendo, y la traza roja es lo que se recibe del CAN IC en la PCB. v8 es la versión rota (tenga en cuenta que, directamente después del ACK, se reenvía el mensaje). v7 es la versión correcta de trabajo. Hay una ligera diferencia en la forma de onda entre los dos, pero no sé lo que significa.

Gracias por tu ayuda.

    
pregunta bananamana

1 respuesta

0

Parece que el transceptor CAN en la placa v8 no está conduciendo el bus y está funcionando efectivamente en modo silencioso / solo recepción.

En la traza de la izquierda, puede ver que el bit de ACK dominante que la placa v8 envía en el pin de TX no llegó al bus y regresó a la traza de RX. La traza de la placa v7 a la derecha muestra que el bit ACK ha conducido con éxito el bus al estado dominante.

Algunas posibles causas para investigar:

¿Está el transceptor CAN en modo silencioso?

Algunos transceptores CAN tienen pines dedicados para deshabilitarlos y colocarlos en modo silencioso, otros hacen que sus pines de control de función cumplan su doble función para controlar el modo silencioso al especificar un valor de extracción / extracción que deshabilite el transmisor. Verifique que los despliegues en su diseño sean correctos y que los despliegues instalados coincidan con el diseño.

¿El riel de suministro del transceptor CAN es lo suficientemente bueno?

No lo he visto personalmente, pero tal vez el transceptor esté tratando de conducir el bus, pero no puede conducir las líneas al nivel diferencial correcto para un bit dominante porque el riel de suministro es demasiado bajo (o la mayoría de los transceptores CAN esperan un riel de 5V, o porque el riel no puede suministrar suficiente corriente (pico de 100 mA) para el bit dominante. Intente explorar las líneas CANH y CANL para verificar si el transceptor está intentando controlar el bit ACK y está fallando o no hacer nada en absoluto.

¿Está roto el transceptor CAN?

Tal vez tuviste mala suerte e instalaste una parte rota. Intente cambiar el transceptor CAN por uno nuevo y ver si ayuda.

    
respondido por el Devan

Lea otras preguntas en las etiquetas