2022-05-02 12:50 PM
Hello,
I built a small CAN network using CAN 2.0 transceivers. I wanted to add some FDCAN devices using classic mode. However, I seem to be having trouble just talking to the transceivers.
For instance, I have an STM32L432 (Attached to a Nucleo). It currently boots and sends a bunch of CAN messages. I can put a scope on the CAN_TX line and I can see activity.
Now, I also have a Nucleo based STM32H745, and a custom board utilizing an STM32G01. Both of these MCUs have FDCAN capabilities. I've connected a transceiver to both.
However, after much troubleshooting, I've discovered that CAN_TX never indicates a signal has been processed.
I'm somewhat stumped on this problem, and I've looked at tons of code, examples, and projects. As far as code and CubeMX config goes - I am not doing anything out of the ordinary, just using the stock settings in classic mode with several TX buffers.
2022-05-09 07:50 AM
Hi @Community member ,
Did you tried with the ready to use examples available in STM32Cube packages?
-Amel
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2022-05-09 08:13 AM
I did discover the answer for this problem. FDCAN behaves differently than CAN 2.0. For instance, with CAN 2.0 you can put a logic/scope analyzer on the TX pin, send messages and see what is happening. Even if it's the only transceiver. With FDCAN, the transceivers will not "join the can network" (I don't know how else to say this) unless there is another node. So, what happens is there is a brief blip on CANTX line, and if the node cannot join the network the packet gets buffered. This stay buffered until the TX FIFO is full.
Adding another FDCAN transceiver on the network is critical in this design.