10 KiB
CAN Physical Layer
Purpose
This module defines the NeoECU V1 physical interface to the vehicle CAN FD network. It covers the MCU interface, transceiver, harness topology, termination, protection, grounding, layout, and required fault behaviour. It does not define CAN identifiers, payloads, or firmware scheduling.
CAN is a telemetry and auxiliary-communications interface. It is not part of the hardware engine-permit path: loss, overload, or bus-off of CAN shall never remove or assert engine permission.
This is a schematic-design basis, not a released schematic. Final connector part numbers, MCU pins, protection component values, and validated harness details remain to be confirmed.
V1 network definition
| Item | V1 decision |
|---|---|
| Protocol | ISO 11898-2 high-speed CAN FD, with Classical CAN frames also supported |
| Nominal/arbitration bit rate | 500 kbit/s |
| CAN FD data-phase bit rate | 2 Mbit/s |
| External buses implemented | One vehicle CAN bus |
| Expected nodes | ECU plus one or two vehicle nodes; a debug tool may join through a service connector |
| Harness extent | Approximately 2--2.5 m end-to-end |
| ECU position | Mid-bus node, not a physical endpoint |
| Harness | 120 ohm nominal twisted pair for CAN_H and CAN_L |
| Shield | Not required initially; assess only if the final route must run near ignition or other demonstrated high-noise wiring |
All V1 nodes connected to this bus shall support CAN FD at the configured rates. A Classical-CAN-only node cannot join a CAN FD network that transmits FD frames.
STM32H747 interface and ownership
The STM32H747 provides two independent CAN FD controllers, FDCAN1 and
FDCAN2, with shared message RAM. V1 implements only the one external vehicle
bus on FDCAN1. FDCAN2 remains available for a future separate network; it
does not imply a second physical bus or a second transceiver in V1.
The Cortex-M4 is the intended owner of CAN telemetry and auxiliary communications. The Cortex-M7 retains deterministic engine control. Firmware shall define the inter-core message and fault-reporting boundary before either core accesses FDCAN resources; neither core may independently initialise or reconfigure a live controller.
PA11 and PA12 are reserved for the USB-C USB-FS D-/D+ path used by the
STM32 system-memory DFU recovery route. They shall not be assigned to
FDCAN1_RX or FDCAN1_TX. The final FDCAN1 pin pair shall be selected as
part of the complete STM32 package and pin allocation, preserving timer, ADC,
debug, and required serial interfaces. Candidate pairs include PB8/PB9 and
PD0/PD1 where available in the selected package.
The board shall retain accessible BOOT0, NRST, and SWD/J-Link provisions.
USB DFU is a recovery path, not a replacement for normal SWD debugging.
Transceiver and local interface
Use the automotive-qualified TI TCAN1044AV-Q1 CAN FD transceiver family. Select the exact package and orderable suffix at PCB-layout and procurement time; the electrical requirements in this module apply to the selected member.
| Transceiver connection | Required implementation |
|---|---|
VCC |
Supply from the protected 5 V logic rail, with the local decoupling specified by the selected-device datasheet. |
VIO |
Supply from +3V3_MAIN so TXD, RXD, and mode logic interface directly to STM32 GPIO. |
TXD / RXD |
Connect to the selected FDCAN1_TX / FDCAN1_RX GPIO alternate functions. The ECU shall drive recessive when it is not intentionally transmitting. |
STB |
Connect to an MCU GPIO and pull externally high to +3V3_MAIN. The transceiver therefore defaults to standby while the MCU is reset, booting, or unpowered; firmware drives it low only after it is healthy and has configured FDCAN. |
| CAN wake capability | Retain the STB/RXD hardware capability, but V1 has no requirement for an incoming CAN frame to wake a sleeping ECU. |
CANH / CANL |
Route only through the defined protection/EMC network to the vehicle-I/O/CAN connector. |
The TCAN1044AV-Q1 uses the 5 V rail for its bus driver and VIO for its 3.3 V
logic interface. Its high-impedance unpowered behaviour is required so an
unpowered ECU does not load a live vehicle bus. Galvanic isolation is not part
of V1: all vehicle nodes require a defined common circuit reference.
Topology, termination, and service access
The vehicle wiring shall be one continuous linear trunk, with a physical bus endpoint at the rear and another at the front:
Editable diagram · PNG preview
The two segments shown above are trunk segments, not long stubs. The ECU transceiver joins the trunk locally on the PCB. Do not make the ECU a 0.5--1 m branch from a separate harness junction.
Fit one 120 ohm, 1 %, normally-open termination option across the ECU CAN_H
and CAN_L pins, controlled by a clearly labelled solder jumper. It is
populated only when the ECU is a physical endpoint. The two actual endpoints
of the installed bus each require one 120 ohm terminator; the intended
effective resistance measured across a de-energised, correctly terminated bus
is approximately 60 ohm.
The debug/service connector joins the same bus and shall expose CAN_H,
CAN_L, and CAN_0V. It shall not fit termination. Keep the on-board service
branch very short and avoid a permanently attached, long unterminated service
cable. A connected debug tool counts as a CAN node and must support the V1
CAN FD rates.
Harness reference and shielding
CAN_H and CAN_L shall be one dedicated twisted pair. A shared vehicle
circuit return must provide a controlled common-mode reference between every
node. Expose this return as CAN_0V at the ECU and service connectors. It may
be the defined low-current vehicle power-return conductor where that conductor
is continuous and sized for the connected nodes; it shall not be an
ignition/injector/starter current-return path.
CAN_0V is an electrical reference, not a termination conductor and not a
cable screen. No shield is required by the V1 2--2.5 m harness definition.
Route the twisted pair away from ignition-primary/high-voltage wiring,
injector switching loops, and high-current power pairs. If a long parallel
route next to one of those sources becomes unavoidable, reassess the shield
and common-mode filtering from measured EMC results rather than treating a
screen as a substitute for a twisted pair or a reference conductor.
Connector protection and EMC provisions
Place a dual-channel, automotive-qualified, low-capacitance CAN/CAN-FD TVS
device directly behind the vehicle-I/O/CAN connector. It protects CAN_H and
CAN_L against connector ESD and assigned cable transients before they reach
the transceiver. The final part shall be selected after the connector,
enclosure, and transient environment are known. A suitable class of candidate
is Nexperia PESD2CANFD24L-U; its final standoff, dynamic-clamp, capacitance,
temperature, and qualification figures shall be checked against the completed
system rather than inferred from the part label.
The primary TVS return shall have a short, low-inductance path to the defined
connector-side CAN_0V/vehicle-reference return. It shall not dump cable
transient current through the +3V3_MAIN or analogue-ground paths. The final
PCB stack-up, connector shell, enclosure, and any frame bond must establish
the actual high-frequency return path before this routing is frozen.
Provide an assembly-selectable common-mode-choke option between the connector-side protection network and the transceiver. The default V1 population is a direct/bypassed path, because the selected transceiver has strong EMC performance and an unnecessary choke can reduce signal margin. The PCB shall support a choke or its defined bypass arrangement without changing the differential-pair geometry. Fit and select a choke only if hardware EMC testing demonstrates a need.
Do not add arbitrary series resistance, split termination, or bus capacitance without a timing and EMC reason. Any such option must be evaluated against the 500 kbit/s / 2 Mbit/s bit timing and the final cable capacitance.
Layout requirements
- Place the connector-side TVS at the connector entry and keep its return loop short and wide.
- Route
CAN_HandCAN_Las a symmetric differential pair through the protection/EMC network to the transceiver. Avoid stubs, unmatched component placements, and large asymmetry between the two paths. - Place the transceiver's 5 V and 3.3 V decoupling capacitors immediately at their respective supply pins, using the datasheet-recommended values and return paths.
- Keep the transceiver and MCU-side logic traces clear of ignition, injector, switching-regulator, and high-current return loops.
- Keep the termination jumper and resistor close to the local bus interface; label the assembly state and endpoint condition on the schematic and PCB.
Fault behaviour and validation
Firmware shall report CAN controller error state, error-passive state, bus-off, and transceiver standby state to diagnostics. Bus-off recovery and retry timing shall be deliberate and rate-limited; it must not cause a reset storm or repeatedly disturb the other MCU core. A lost CAN network is a telemetry/auxiliary-service failure, not an engine-permit event.
Before schematic freeze, validate the completed interface with the intended CAN FD configuration and installed harness:
- Confirm
CAN_H,CAN_L, andCAN_0Vconnector pins, endpoint locations, cable type, and real end-to-end length. - Confirm the selected STM32H747 package and
FDCAN1pin pair without conflicting with USB FS DFU, timers, ADC, debug, or required serial I/O. - Select and validate the final TVS against the connector ESD and transient environment, including its clamp at the transceiver pins and its return path.
- Verify normal communication, ECU reset/boot standby behaviour, an unpowered ECU on a live bus, debug-tool connection, and correct 60 ohm termination measurement.
- Test error handling and controlled bus-off recovery with a missing endpoint, open/shorted bus wires, and a deliberately disturbed node.
- Test CAN operation and emissions/immunity with ignition and injector switching active. Populate and evaluate the common-mode choke only if the baseline routing/protection does not meet the assigned EMC target.