This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM625: MCU MCAN0 and MCAN1 always Form Error

Part Number: AM625
Other Parts Discussed in Thread: TCAN1051, SYSCONFIG

Hi all,

i am trying to get the MCU-MCAN to work but am facing some problems here.

CCS V12.2.0.000009

mcu_plus_sdk_am62x_08_05_00_14

I have a module with EVAL-Main Board and connect both MCU_MCAN via TCAN1051 to the bus.

the TCAN1051 hardware is tested with another solution and is working perfectly, so no issues here.

I simply use the MCU_MCAN_ loopback example without loopback mode :

mcan_loopback_interrupt_am62x-sk-lp_m4fss0-0_nortos_ti-arm-clang

If i connect my PC-test-SW i always get a Form Error and by probing i only see SOF on the Oszi-display.

MCAN has to operate @1MHz / 2MHz so Bittimings are set the following:

bitTimes.dataRatePrescalar=1u; -> leads to 40MHz clk and to get 2 MHz DR a bit time has 20 tq
bitTimes.dataSynchJumpWidth=3u;
bitTimes.dataTimeSeg1=14u;
bitTimes.dataTimeSeg2=3u;
bitTimes.nomRatePrescalar=3u;
bitTimes.nomSynchJumpWidth=3u;
bitTimes.nomTimeSeg1=14u;
bitTimes.nomTimeSeg2=3u;

(with sysconfig i set the decimal values but in ti_drivers_config.c i found the hex values instead )

MCAN_BitTimingParams gMcanBitTimingDefaultParams =
{
.nomRatePrescalar = 0x3U,
.nomTimeSeg1 = 0x14U,<---- this is 20 dezimal, not 14
.nomTimeSeg2 = 0x3U,
.nomSynchJumpWidth = 0x3U,
.dataRatePrescalar = 0x1U,
.dataTimeSeg1 = 0x14U,<---- this is 20 dezimal, not 14
.dataTimeSeg2 = 0x3U,
.dataSynchJumpWidth = 0x3U,
};

in struct initParams i enabled TDC (time delay compensation) without setting tdco or tdcu.

but i also tried values for them with [3u+((bitTimes.dataTimeSeg1+bitTimes.dataTimeSeg2)/2u)]

same result -> Form Error.

Can anyone give me some advice what i am doing wrong here?

Br's

Martin