Tool/software:
Hello!
I am working on the AM62A SoC, and trying to have the DM R5 core access and operate the MCU CAN0/CAN1 busses. Typically, these 2 CAN busses are operated by the MCU core, but in my use case, I am looking for them to be used by the DM core.
I've used syscfg to setup the CAN/CAN-FD busses before on a different part (AM263), and part of the syscfg tool file outputs is a struct of type MCAN_BitTimingParams. This struct is meant to be used with the mcan driver function:
For example:
/* Syscfg generated struct */
static MCAN_BitTimingParams gMcanBitTimingDefaultParams =
{
.nomRatePrescalar = 0x7U,
.nomTimeSeg1 = 0x5U,
.nomTimeSeg2 = 0x2U,
.nomSynchJumpWidth = 0x0U,
.dataRatePrescalar = 0x1U,
.dataTimeSeg1 = 0x3U,
.dataTimeSeg2 = 0x2U,
.dataSynchJumpWidth = 0x0U,
};
/* Call below MCAN driver API function */
int32_t MCAN_setBitTime(uint32_t baseAddr, const MCAN_BitTimingParams *configParams);
So the flow I am used to is:
1. use syscfg to setup the CAN busses
2. have syscfg generate an instance of MCAN_BitTimingParams as part of the autogenerated code
3. load this autogenerated struct by calling MCAN_setBitTime() with the generated struct as the input
However, for the DM core, the syscfg does not support CAN busses, so I am not able to set up the CAN busses this way. I am looking for some help on how syscfg tool generates this timing struct, and how I would go about hard coding and instancing this struct for myself for the AM62A DM core.
Thank you!