STM32 FDCAN node sees nothing on bus when CAN-to-USB adapter removed
Board & Setup:
-
STM32H563RGT6 running FDCAN2 in Normal mode (HAL_FDCAN_Init, Mode=FDCAN_MODE_NORMAL)
-
SN65HVD230 transceiver in silent mode (Rs pin connected to 3.3V) (120 Ω intergrated) wired with a single 120 Ω terminator at the far end
-
No other pull-up/down or termination changes when the USB–CAN dongle is unplugged
-
Filters configured (Reading the data from the BMS of a custom battery):
-
FIFO0 → IDs 0x1E0 (BMS_STATE), 0x1E2 (PACK_MINMAX), 0x1E3 (PACK_AVG)
-
FIFO1 → ID 0x1E1 (PACK_VALUES)
-
Symptom:
-
With the USB–CAN adapter or another node on the bus, everything works: the real BMS sends all four messages, our STM32 ACKs them, and they appear in Cangaroo.
-
As soon as the USB–CAN dongle is unplugged (or if our transceiver is switched to any other mode -> Slope control or High speed (no slope control)), no messages are observed on the bus—even though the BMS should still be broadcasting at 1 Hz (it constantly spits out data at a 1 Hz rate) and our STM32 is in Normal mode.
What I need:
-
Keep the SN65HVD230 in Normal (ACK-capable) mode—tie its RS pin LOW (or drive it low in GPIO init).
-
Still “ignore” any frames I transmit (because I’m not sending any), so that I only see the BMS frames.
How do I ensure my SN65HVD230 is always in normal, ACK-capable mode (so the BMS sees at least one ACK and keeps talking), while my STM32 itself continues to filter out any of its own (non-existent) messages so I only capture IDs 0x1E0–0x1E3?
***My STM32CubeIDE "main.c" is given in attachments.
