Issue Description:
I configured CAN module as wakeup source from STOP mode as following:
1- Init Flexcan 1 Module in Core A5 & config clock gate for CAN1 is on during all modes, even STOP mode. (by setCCM_CCGR9[CG148/Flexcan1] to 10b)
2- Config CAN1 interrupt to wake up from STOP mode (by clear bit No.27 (Flexcan 1) in GPC_IMR2 register to enable Flexcan 1 interrupt as source of wake-up from STOP mode - Please refer Vybrid Reference Manual F-Series. Index 15.3.5 Interrupt Mask Register 2 (GPC_IMR2) - pages 757)
3- set Core A5 to STOP mode
4- send CAN frame from CANoe to generate CAN 1's interrupt (to wake Core A5 up)
Result: Core A5 is still on STOP mode --> The above configuration is not effective.
Note:
+ In case Core A5 is set to WAIT mode in step 3; the Core A5 is wake up when CAN frame is sent.
In summary:
- CAN Interrupt can wake up A5 core from WAIT mode but cannot wake-up the processor from STOP mode. Is it a hardware issue or flexcan module is not designed as wakeup source from STOP mode !?
Original Attachment has been moved to: canwakeup-issue.txt.zip
Original Attachment has been moved to: CAN_LPM_Project.zip
Hello Toan,
In your program, CCM_CCGR9[CG148] is set to 11b (Clock is on during all modes, except stop mode.), not 10b. This is reflected in the program output in your attached .docx file:
CCM_CCGR9 = 0x3f052344
Please ensure that this register contains the value 0x3f052244, then try waking up from STOP mode with FlexCAN1.
Thanks,
Timesys Support
Dear Timesys Support,
Thanks for your reply.
I configured as you recommend, but the processor cannot be able to wake up.
As far as I know, when you disable clock on stop mode; the peripheral module is disable --> No interrupt (for this module) is generated in STOP mode --> it's not able to wake up processor.
Please see attached file for details.You can see that when the clock for Flexcan is disable, the CAN signal is lost in CANoe (It's different than flexcan clock is enable in STOP mode.)
Regards,
ToanLN
(updated)
Dear Toan,
It looks like we had a STOP mode question some time ago.
Please, try using the attached code by rendy, which worked well in the past. - It is not related to CAN, just proper control of the STOP mode itself.
Sincerely, Naoum Gitnik.
(timesyssupport - FYI)
Hello Toan,
If you have set CCM_CCGR9[CG148/Flexcan1] to 10b, then I am unsure why you are unable to wakeup from STOP mode. I did notice that there appears to be a typo in your source where you attempt to print CCM_CCGR9 (line 26 at CAN_LPM_Project/mqx/examples/can/flexcan_lpm_demo/fsl_lowpower.c), so I do not think we are seeing the true value of the register in your application output.
Does the Freescale Vybrid Design team have any input on this issue?
Thanks,
Timesys Support
naoumgitnik can you comment please?
timesyssupport can you help here?