2025-06-27 7:38 AM
Hello ST Community,
I am working on the STM32H747I-DISCO board and trying to configure FDCAN1 for CAN FD operation.
I understand this board does not include a CAN transceiver, but I want to validate FDCAN1 TX signaling before attaching one.
I configured FDCAN1 using STM32CubeIDE with:
FDCAN1_TX = PD1 (Arduino D3)
FDCAN1_RX = PD0 (Arduino D2)
I successfully tested internal loopback mode and it works as expected.
Then, I changed FDCAN1 to normal mode (FDCAN_MODE_NORMAL) to test TX output using a logic analyzer before connecting a transceiver.
In normal mode, even when I queue a valid CAN frame using HAL_FDCAN_AddMessageToTxFifoQ() and start FDCAN, no signal appears on PD1 (TX) — not even dominant bits or start of frame on logic analyzer.
I expected to see at least some output on TX line, even without a transceiver connected.
Before adding the external transceiver (TJA1051T/3), I want to:
Confirm that FDCAN1 TX (PD1 / D3) is outputting frames
Ensure my board setup and pin configuration are valid
Is it expected that FDCAN1 TX does not output anything in normal mode without a transceiver?
Are PD1/PD0 (D3/D2) valid alternate pins for FDCAN1 TX/RX on the STM32H747I-DISCO?
Are there any internal settings (e.g., silent mode, pull-ups) or electrical conditions that could suppress TX output?
Any insights or suggestions would be highly appreciated!
Thanks in advance.
Prashanth Kumar M G
2025-06-27 7:43 AM - edited 2025-06-27 7:48 AM
Hello,
@prashanth1 wrote:
I understand this board does not include a CAN transceiver, but I want to validate FDCAN1 TX
You cannot probe the Tx pin in Normal mode without establishing a complete CAN bus with at least two nodes connected on the bus. So the behavior you are facing is expected as you've broken the acknowledge mechanism. CAN is not UART or SPI to test it like this. Please read this article it applies also to FDCAN: Using CAN (bxCAN) in Normal mode with STM32 microcontrollers (Part 1)
You need to validate with Loopback mode as you already mentioned here:
I successfully tested internal loopback mode and it works as expected.
Hope that I've answered your question.