The operation status was checked with FlexCan set as follows using linux socket can.
1) ip link set can0 up type can bitrate 500000 sample-point 0.75 dbitrate 5000000 dsample-point 0.8 fd on
2) ip link set can0 up type can bitrate 1000000 sample-point 0.75 dbitrate 8000000 dsample-point 0.8 fd on
However, if the FlexCAN CBT bitrate is set to 4500 kbps or higher using S32DS on the M7, it will not work normally.
The source code used for the test is as follows.
/* FlexCan for Test */
#define FLEXCAN_INST 0U
#define MSG_ID 0x123
#define RX_MB_IDX 1U
#define TX_MB_IDX 0U
uint8 dummyData[6] = {0x00,0xFF,0x0F,0xF0,0x55,0xAA};
const uint8 CAN_TxData[64] = {0x00,0xFF,0x0F,0xF0,0x55,0xAA};
Flexcan_Ip_DataInfoType CAN_FD_TxInfo = {
.msg_id_type = FLEXCAN_MSG_ID_STD,
.data_length = 6u,
.fd_enable = TRUE,
.fd_padding = 0,
.enable_brs = TRUE,
.is_polling = TRUE,
.is_remote = FALSE
};
FlexCAN_Ip_Init(FLEXCAN_INST, &FlexCAN_State0, &FlexCAN_Config0);
FlexCAN_Ip_SetStartMode(FLEXCAN_INST);
FlexCAN_Ip_Send(FLEXCAN_INST, TX_MB_IDX, &CAN_FD_TxInfo, MSG_ID, (uint8 *)&CAN_TxData);