switching to external oscillator for FlexCAN

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

switching to external oscillator for FlexCAN

827 次查看
Shyalusivan
Contributor I

I am trying to switch to external crystal oscillator for FlexCAN but after configuring the CLKSRC bit in CTRL1 and negating the MDIS bit for enabling FlexCAN, still LPMACK bit is 1. It seems like FlexCAN is getting stuck in low power mode. Any solution?

Code for configuring EREFS in SOSCCFG:

SCG->SOSCCSR &= ~SCG_SOSCCSR_SOSCEN_MASK;//disabling SOSC
SCG->SOSCDIV =
    (
       SCG_SOSCDIV_SOSCDIV1(1)
       | SCG_SOSCDIV_SOSCDIV2(1)
    );
SCG->SOSCCSR &= ~SCG_SOSCCSR_LK_MASK; //unlocking SOSCCSR
SCG->SOSCCFG = SCG_SOSCCFG_RANGE(2) | SCG_SOSCCFG_HGO(0) | SCG_SOSCCFG_EREFS(0); // selecting crystal oscillator
SCG->SOSCCSR |= SCG_SOSCCSR_SOSCEN_MASK; //enabling SOSC
SCG->SOSCCSR |= SCG_SOSCCSR_LK_MASK; //locking SOSCCSR
 
Code for CLKSRC selection:
CAN0->MCR |= CAN_MCR_MDIS_MASK;         /* MDIS=1: Disable module before selecting clock */
 CAN0->CTRL1 &= ~CAN_CTRL1_CLKSRC_MASK; 
 CAN0->MCR &= ~CAN_MCR_MDIS_MASK;        /* MDIS=0; Enable module config. (Sets FRZ, HALT)*/

After this code : MDIS=0, LPMACK=1, FRZACK=0

0 项奖励
回复
1 回复

788 次查看
PetrS
NXP TechSupport
NXP TechSupport

Hi,

to enter Module disable mode you should go through Freeze mode first.
And be sure clock source for PE clock is active.

BR, Petr

0 项奖励
回复