Problem is how to use external osc for multiCAN+.

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

cross mob
Level 1
Level 1

I'm using TC212 and iLLD_1_0_0_11_0 with Tasking.

Last day I have fount that there is some problem which means when i adjust sampling point. I couldn't do that.

I wanted to set up sampling point as 80%. I realized that Problem is derived from Clock's frequency. But Setting value fixed as fclc by iLLD is to make me complicated. because There is no option to change to fosc0.

I saw that This iLLD version supports only fclc. So I am trying to find out correct version through ICP. But Any update is not there.

I want to know how to use external osc for multi CAN.

PS. I want to set up that CAN source clk is 20MHz. So I chose OSC being 20MHz.
I cannot make 20Mhz of CAN source using Fclc because Fclc initial value is 133Mhz. So Any dividers couldn't make it in my environment.
1 Reply
Level 6
Level 6
10 likes received 10 solutions authored 5 solutions authored
Hi rivaldo01. You can set the bit timing to be driven by the oscillator directly with this function:

IfxMultican_setInputClock( mcanSFR, IfxMultican_ClockSelect_fosc0 );

But this is one area where the iLLD falls short, because a comment in IfxMultican_Can_initModule() says /* currently supports only fclc */.

So, you'll need to set these to the right values yourself:

IfxMultican_setFractionalDividerStepValue(mcanSFR, stepValue);
IfxMultican_setFractionalDividerMode(mcanSFR, dividerMode);