I have a transmitter device which periodically sends CAN messages over the bus. I am using an esp32 microcontroller to receive these messages, using a transceiver in between.

When I start the transmitter device, I can read messages properly for about 10-15 seconds. The voltage between CAN_h and CAN_l is around 0 V at that time. However, after a certain period, the messages stop and the voltage goes to about 1.8 V between these two cables.

I can't figure out the issue. Can somebody please help me on this.

The bus resistance is 60 Ohms and transmission length is around 1 meter. It seems to me that the transmitter gets stuck in dominant state but I don't know how to clear this issue without restarting the device.

  • \$\begingroup\$ One possibility is that the bus ends in a ERROR PASSIVE state, after receiving enough message failures. Are you sure that both of the devices operate at exactly the same baudrate? \$\endgroup\$
    – olltsu
    Commented Apr 2, 2021 at 12:57
  • \$\begingroup\$ yes both devices are talking at 500 kbps. How do i get out of error passive state? \$\endgroup\$ Commented Apr 2, 2021 at 13:23
  • \$\begingroup\$ if the transmitter is in ERROR PASSIVE state, does it stop communicating on the bus ? \$\endgroup\$ Commented Apr 2, 2021 at 13:28
  • \$\begingroup\$ The devices recover from ERROR PASSIVE state automatically once their tx and rx error counts get reduced by successful transmissions anf receives. I thought that if you configured the CAN tranceiver by yourself and defined the baudrate with some prescaler, it is possible that the baudrate ends being 500.1 kbaud, or such. You should be able to read the tx and rx counts from the transceiver, as well as the error state. \$\endgroup\$
    – olltsu
    Commented Apr 3, 2021 at 17:43
  • \$\begingroup\$ Measure with a scope, not a volt meter. You will only have 0V differential voltage when the bus is idle (2.5V per signal). During transmission, CANH will go up to 3.5V for binary one, and CANL wil go down to 1.5V. So your voltage measurements doesn't make much sense. \$\endgroup\$
    – Lundin
    Commented Apr 6, 2021 at 7:54


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.