If set fastbaudrate 2M (CAN FD), transmission error occured in transmitter

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User20578
Level 1
Level 1
First solution authored
I use CANoe(Vector) and TC387 for developping.

If I set fastBaudRate as 2000000(2M), I faced to "The filter for the NACK error frames has been enabled!" msg on CANoe after several packets were received in TC387.

Here is description of msg in CANoe.
-----------------------------------------------------
The filter for the NACK error frames has been enabled!
For the CAN channel the NACK error frame filter was activated.
The filter is activated when the transmission error counter ≥ 128 and the transmitter is in error passive state.
-----------------------------------------------------

In case of 1000000(1M), it works ok. (fpbs -> 1000000)

Here is my setting. IfxCan_getModuleFrequency() return 80.0*e.6. (80MHz)

------------------------------------------------------
fbps = 2000000; // 2M
bps = 500000; // 500K
canNodeConfig.fastBaudRate.baudrate = fbps; /* up to 5 MBaud for CAN FD */
canNodeConfig.fastBaudRate.tranceiverDelayOffset = (uint8)(fbps/bps); /* we set an estimated value */
canNodeConfig.baudRate.baudrate = bps; /* up to 1 MBaud for standard CAN */
canNodeConfig.frame.mode = IfxCan_FrameMode_fdLongAndFast;
g_Can.canNode[nodeNumber].frameMode = IfxCan_FrameMode_fdLongAndFast;
canNodeConfig.clockSource = IfxCan_ClockSource_both;
------------------------------------------------------

What can I do check to operate CAN FD as 2M??
0 Likes
1 Solution
User20578
Level 1
Level 1
First solution authored
I found out the reason why my issue. Thanks for all advices above!

The point was 'Sample Point' setting.
After matching that setting, CAN communication works ok in 2Mbits/s.

View solution in original post

0 Likes
6 Replies
nsyed
Level 5
Level 5
5 likes given 100 sign-ins 50 sign-ins
Check what is the source clock for CAN peripheral ? Is it peripheral PLL ?

TC3xx Peripheral PLL clock source is close enough for 1 Mbps and slower,but not for CAN FD.

Also review below thread, this has similar issue what I faced earlier
https://www.infineonforums.com/threads/12018-Tolerance-Deviation-of-Peripheral-PLL-%28fpll1%29-TC377...
0 Likes
User20578
Level 1
Level 1
First solution authored
I used KIT_A2G_TC387_3V3_TRB and it is a fixed crystal with 20MHz assembled.
If I change clockSource from IfxCan_ClockSource_both to IfxCan_ClockSource_synchronous, then system is stucked.
IfxCan_Node_enableConfigurationChange is not return in IfxCan_Can_initNode.
Do I have to change crystal ?

Here is clock setting of B'd.
IfxScuCcu_defaultClockConfig = (
pllInitialStepConfig = (
pllsParameters = (
xtalFrequency = 20000000,
pllInputClockSelection = IfxScuCcu_PllInputClockSelection_fOsc0,
sysPllConfig = (pDivider = 0, nDivider = 29, k2Divider = 5),
perPllConfig = (pDivider = 0, nDivider = 31, k2Divider = 1, k3Divider = 1, k3DividerBypass = 0)),
waitTime = 199.99999e-6),
sysPllThrottleConfig = (
numOfSteps = 3,
pllSteps = 0x8000A86C -> (
k2Step = 3,
waitTime = 99.999997e-6)),
clockDistribution = (
ccucon0 = (value = 119734547, mask = 268374015),
ccucon1 = (value = 554762770, mask = 1061097407),
ccucon2 = (value = 4609, mask = 16143),
ccucon5 = (value = 50, mask = 255),
ccucon6 = (value = 0, mask = 63),
ccucon7 = (value = 0, mask = 63),
ccucon8 = (value = 0, mask = 63),
ccucon9 = (value = 0, mask = 63)),
flashFconWaitStateConfig = 0x80000260,
modulationConfig = 0x80000268 -> (
Mod_Enable = IfxScuCcu_ModEn_disabled,
Mod_Amp = IfxScuCcu_ModulationAmplitude_0p5))
0 Likes
User20578
Level 1
Level 1
First solution authored
Even though I changed CLKSELMCAN of SCU_CCUCON1 to "fOSC0", this issue still occured. fOSC0 is 20MHz (XTTAL) as I said before.
Let me explain the issue detail below.
If I send CAN FD via 2Mbps with BRS on, then I can see that some eeor has occurred through a specific register below.
-> ECR : REC value is increased
-> PSR : LEC is changed to "Form_Error"
-> IR : PEA is changed to 1

And I found out the supported baudrate table in Infineon-AURIX_TC3xx_Part1-UserManual-v01_00-EN.pdf (ver 1.5.0, 2020-04).
Max BaudRate is 1000kBits/s. Table 56. Possible Baudrate and FOSC frequency combinations.

I'm so confused TC387 support 2MBits/s or not.
0 Likes
MoD
Employee
Employee
50 likes received 500 replies posted 100 solutions authored
You can check your environment with the TriBoard Demo Software. The demo software can be downloaded from myicp.
When this software runs on your device, you can open a shell:
Connect the board to your PC via USB (make sure that the DAS server and drivers are installed, see DAS http://www.infineon.com/das
Now you should have a serial port for the board, maybe look in the device manager for COM number
Open any terminal program, use the COM port from your board with 115200 baud, 8 data bits, 1 stop bit, no flow.
In the terminal you should have access to the shell of the demo software. command help will show the available commands.
For CAN (execute the following commands):
caninit 2000000 -> this command initialize all can nodes to 2MB, only the two connected can nodes on the board are connected to pins all other can nodes are initialized in loopback mode
cannodeinit x y [lb] -> Initialize the Can node x with y baud [loopback], if you will configure each can node different/individual
cansend x id a b -> Send values a and b on Can node x with id
If there is any incoming message then the content will be displayed in the shell.

If your environment is ok, then you can compared what is the difference between the demo software and the your own software (e.g. port settings).
0 Likes
User20578
Level 1
Level 1
First solution authored
I found out the reason why my issue. Thanks for all advices above!

The point was 'Sample Point' setting.
After matching that setting, CAN communication works ok in 2Mbits/s.
0 Likes
Black
Level 1
Level 1
Welcome!
ccirengi wrote:
I found out the reason why my issue. Thanks for all advices above!

The point was 'Sample Point' setting.
After matching that setting, CAN communication works ok in 2Mbits/s.


Hi ccirengi,
I also encountered the problem, could you share the "sample point" setting? Thanks
0 Likes