This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSPM0L1105:MSPM0G350x:CAN 模块无法自动唤醒

Guru**** 656470 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1183636/mspm0l1105-mspm0g350x-the-can-module-cannot-wake-up-automatically

器件型号:MSPM0L1105

您好!  

    CAN_SLEEP 功能成功地将 CAN 模块置于睡眠状态(时钟停止模式)。 CAN_WAKEUP 功能将成功唤醒 CAN 模块。 稍后查看这两个函数的内容。 MCANSS_CTRL.AUTOWAKEUP 位和 MCANSS_CTRL.WAKEUPREQEN 位已配置为启用。 但当 CAN_RX 引脚被下拉时、模块不能自动唤醒。  CCCR.INIT 位和 CCCR.CSA 位始终为1、即使 CAN_RX 引脚被下拉超过1微秒也是如此。

void CAN_SLEEP (void)

 DL_MCAN_addClockStopRequest (CANFD0、TRUE);
 while (DL_MCAN_OPERAT_MODE_SW_INIT!= DL_MCAN_getOpMode (CANFD0));

void CAN_WAKEUP (void)

 if (DL_MCAN_getClkStopAck (CANFD0))
 {
  DL_MCAN_enableModuleClock (CANFD0);
   DL_MCAN_addClockStopRequest (CANFD0、false);
   DL_MCAN_setOpMode (CANFD0、DL_MCAN_OPERAING_MODE_NORMAL);
   while (DL_MCAN_OPERAT_MODE_NORMAL!= DL_MCAN_getOpMode (CANFD0));
 }

此致、

Jason

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    问题已经解决。 需要 在函数 DL_MCAN_enableClockStopGateRequest 进入睡眠状态之前调用它。  并且不必等待初始化模式。