STM32C0 not driving CAN bus
STM32C092CCT6 : TCAN1463-Q1: TXD Dominant but No CAN Output — Bit0 Errors, nFAULT OK, Normal Mode Confirmed
Hello everyone,
I am facing an issue where the CAN transceiver (TCAN1463-Q1) does not drive the CAN bus even though the STM32 FDCAN peripheral is transmitting correctly and the transceiver is confirmed to be in Normal mode.
Hardware Setup
Node 1 — STM32 Daughter Board (Transmitter)
MCU: STM32C092CCT6 (Cortex-M0+, 12 MHz SYSCLK)
Transceiver: TCAN1463-Q1
Connections:
TXD → PB1 (FDCAN1_TX, AF3, Very High Speed)
RXD → PB0 (FDCAN1_RX, AF3)
EN → PC6 (HIGH = enabled)
nSTB → PB12 via hardware inverter
PB12 HIGH → nSTB HIGH → Normal mode
nFAULT → PC7 (active-low, pull-up to 3.3V)
Power:
VSUP = 5V
VIO = 3.3V
Node 2 — Receiver
Raspberry Pi CM4 + MCP2518FD (SPI, 40 MHz crystal)
TCAN1463-Q1
SocketCAN interface
Both nodes are connected with proper 120Ω termination.
FDCAN Configuration
Classic CAN (1 Mbps)
FrameFormat = Classic CAN
Clock = 12 MHz (PCLK1)
Prescaler = 1
TSEG1 = 8
TSEG2 = 3
Sample Point = 75%
ProtocolException = ENABLE
AutoRetransmission = DISABLE
CM4:
sudo ip link set can0 type can bitrate 1000000 restart-ms 1000
CAN-FD (1 Mbps / 4 Mbps)
Clock = 48 MHz (HSIKER)
Nominal: 1 Mbps
Data: 4 Mbps
TDC enabled (offset = 8)
ProtocolException = ENABLE
CM4:
sudo ip link set can0 type can bitrate 1000000 dbitrate 4000000 fd on restart-ms 1000
Transceiver Initialization
EN = LOW;
nSTB = LOW; // Sleep
HAL_Delay(5);
EN = HIGH;
nSTB = HIGH; // Normal mode
HAL_Delay(100);
nFAULT = HIGH (OK)
Mode confirmed as Normal
Observed Problem
No frames received on CM4 (candump can0 shows nothing)
STM32 always reports Bit0 Error
PHY-Level Observation
TXD = LOW (dominant)
RXD = HIGH (recessive) <-- unexpected
Expected: RXD should go LOW (dominant)
Indicates that TXD is not being converted into a CAN dominant state
Error Counters
TEC increases: 8 → 16 → ... → 256 (Bus-Off)
REC remains 0
LEC = Bit0 Error
- No acknowledgment from bus
- Pure transmit failure
Oscilloscope Results
CANH and CANL both stay below ~1.8V
No differential signal observed
Termination = OK (120Ω)
VSUP = 5V stable
VIO = 3.3V stable
What Has Been Verified
Transceiver is in Normal mode
nFAULT is not active
Bit timing matches between nodes
FDCAN clock configuration is correct
Classic CAN tested (same issue)
ProtocolException issue resolved (REC now stays 0)
Question
Why would TCAN1463:
Accept TXD = LOW
Be in Normal mode (nFAULT OK)
But not drive CANH/CANL dominant?
Possible Suspicions
TXD input threshold / signal integrity issue
EN/nSTB internal state issue
Hardware/PCB issue
Damaged transceiver
Request for Help
Has anyone seen this behavior with TCAN1463?
Are there any additional conditions required to enable the TX driver?
Could this indicate a faulty transceiver?
Any suggestions or debug directions would be greatly appreciated.
Thanks
Vaishak C
