0
\$\begingroup\$

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.

\$\endgroup\$
7
  • \$\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 Apr 2 at 12:57
  • \$\begingroup\$ yes both devices are talking at 500 kbps. How do i get out of error passive state? \$\endgroup\$ – Fahad Ali Sarwar Apr 2 at 13:23
  • \$\begingroup\$ if the transmitter is in ERROR PASSIVE state, does it stop communicating on the bus ? \$\endgroup\$ – Fahad Ali Sarwar Apr 2 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 Apr 3 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 Apr 6 at 7:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.