Electronic – CAN-BUS line goes bus off state at high temperature(70C°)

cancommunicationlogic analyzermicrocontrollerstm32

I have a CAN-BUS line communicating at 50kb/s speed. There are only 2 products communicating with each other on the CAN-BUS line. One of these products has the STM32L496RGT MCU (the clock speed of the CAN module (APB1) is 80Mhz.)enter image description here and the other one has the STM32F072 MCU (the clock speed of the CAN module (APB1) is 16Mhz).enter image description here STM32L496RGT's CAN prescaler value is 100, time segment 1 value is 13, time segment 2 value is 2 and sample point is 87.5%. STM32F072RB's CAN prescaler value is 20, time segment 1 value is 13, time segment 2 value is 2 and sample point is 87.5%. SN65HVD232 is used as CAN-Bus transceiver in both products. In addition, 120 ohm limiting resistors are added at both ends of the line. I have added the schematic of the CAN-BUS module, which is the same in both my products.enter image description here The inductance of ACT45B coil at 50kHz is 100uH. The cutoff frequency of my low pass filter is 750kHz.I use split termination as termination type. In addition to these, I add the print circuit layouts of the CAN modules of the products.enter image description hereenter image description here 5. and 8. legs of the Transciever integrated are not connected legs. The schematic is taken from another version of the product.First one is generally transmitter one. The second one is generally receiver. I also use 1 meter of insulated twisted pair cable.

My problem occurs when the products are operating at 70-75 ° C ambient temperature. I monitor and log the line with kvaser can bus analyzer.As far as I follow from the temperature sensors on the products, even error frames start to occur when they reach 55-60 degrees. However, the TEC register starts to increase by 8 by 8. Even though TEC decreases one by one every time the correct message arrives, the error frames that come continuously make TEC 255.When TEC register is 255, naturally the line bus is off. STM32s have automatic bus off recovery feature. I enabled this feature. Every time TEC register is 255, ABOM (Auto bus off management) puts the line back into transmission. However, because the error frames are constantly coming, the line becomes bus off state again.LEC is bit recessive error in case of this times.

Except for the terminating resistor in the line, I removed all filter elements and tried again, but the same situation occurred.I adjusted the line to many speeds and tried it, and again I encountered the same situation.

Wavelengths are as follows.
enter image description here

What could cause this situation?

Best Answer

Internal oscillators have larger tolerance and temperature drift than what is required for stable CAN communications.

For example, the F072 HSI8 has 2% tolerance over temperature range from 0 C to 70 C.

Depending on which CAN specs are being used, they either allow up to 0.5% or 1.5%.

In practice, at least a ceramic resonator should be used for CAN communications, preferably a crystal.