2023-01-26 02:07 AM
Hello everyone, I'm an HW engineer and I'm quite new in the communication betweer mcu.
I'm now facing a communication error related to FDCAN.
My colleagues and I have made a system that needs to communicate with the outside world via FD CAN, working on a prototype with H7A3ZIQ Nucleo and STM32H7A3ZIQ micro with dual CAN (1 and 2) of which we use only the FDCAN1.
On demo board everything works properly. We interface the demo board CAN RX and TX with the SN65HVD230DR transceiver and we connect the CANH and CANL and GND to the tool Microchip CAN analyzer which reads the data correctly and manages to establish communication (as can be seen from attached presentation).
We replicated the necessary circuits on our own PCB, copying the demo board subsystems (SPI, CAN, a timer, direct programming via STLink and SN65HVD230DR) .
The only variation is the absence of power supply from SMPS, but we use the linear internal to the micro.
In addition, the external HSE oscillator is missing as on demo board, while we use the external 32kHz oscillator (as the demo board).
Having said that, the problem is that once everything is connected, the CAN analyzer goes into error passive and does not send low ACK.
I have rechecked the board and connections several times, but everything seems ok (logic levels, signals, delays, noise, 120Ohm terminations on both nodes)..
I attach a presentation with waveforms and message decoding in both cases.
Thank you very much for your help!
Solved! Go to Solution.
2023-01-27 03:11 AM
Hello everyone, thanks a lot for the suggestions.
I was able to figure out the problem. We didn't notice that the high frequency oscillator on the demo board is actually mounted and the signal comes from the ST Link IC to the OSC_IN. This basically was the isuue, with the 32kHz oscillator was not possible to use properly the high frequency communication. We added an external 8MHz signal and the system started to communicate as expected again.
2023-01-26 04:32 AM
Just some ideas:
Is there a common GND between both sides?
Have you tried a delay after booting to make sure the power supply voltage is stable and all the devices are booted before you start communicating over CAN?
Have you tried connecting the prototype and your demo board together on the same bus (with different message id's) and see what happens?
2023-01-26 04:44 AM
Is there a common GND between both sides? --> yes
Have you tried a delay after booting to make sure the power supply voltage is stable and all the devices are booted before you start communicating over CAN? --> yes, voltage is stable and the devices are functioning
Have you tried connecting connecting the prototype and your demo board together on the same bus (with different message id's) and see what happens? --> We can try this
2023-01-26 06:46 AM
Hello,
Can you please share your schematics as well as the connections between the two boards?
Also the transceiver SN65HVD230 is designed for 1 Mbps data rates max:
So if you are exceeding 1Mbps for CAN FD transmission you are out of specification of the transceiver.
PS: you don't need a common GND between the nodes since CAN signals are driven in differential mode.
2023-01-27 03:11 AM
Hello everyone, thanks a lot for the suggestions.
I was able to figure out the problem. We didn't notice that the high frequency oscillator on the demo board is actually mounted and the signal comes from the ST Link IC to the OSC_IN. This basically was the isuue, with the 32kHz oscillator was not possible to use properly the high frequency communication. We added an external 8MHz signal and the system started to communicate as expected again.
2023-01-27 03:25 AM
Well. You can use the 8MHz ST Link signal to supply the MCU by the clock using the bypass mode i.e. using OSC_IN pin only.