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.

[参考译文] LP-MSPM0L1306:关于 LP-MSPM0L1306中 I2C 控制器的省电

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1290990/lp-mspm0l1306-about-power-saving-for-i2c-controller-in-lp-mspm0l1306

器件型号:LP-MSPM0L1306

大家好、

以下是客户可能需要您的帮助的问题:

我想知道这是否可能适用于以下情况。

1.将 I2C 设置为控制器模式400k 并与目标器件进行通信。

2.完成后,做

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
DL_I2C_disablePower(I2C_INST)
DL_I2C_disableController(I2C_INST);
DL_SYSCTL_setPowerPolicySTANDBY0();
__WFI(); //wak up from GPIO
DL_SYSCTL_setPowerPolicyRUN0SLEEP0();
DL_I2C_ensablePower(I2C_INST)
DL_I2C_enableController(I2C_INST);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

它似乎无法正常工作。 我怎么能在醒来后再复活?

--

谢谢、此致

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

    你好,耶鲁,

    客户只需设置一次所需的电源策略,然后再执行__WFI ();

    例如,要使用 STANDBY0模式,客户将调用 DL_SYSCTL_setPowerPolicySTANDBY0 (); 然后,要实际进入此模式,将调用__WFI ()宏。  只要系统中存在使能中断、例如 I2C_STARTBIT 中断、CPU 就会保持在 STANDBY0状态、直到计时器中断发生。  当中断发生时、CPU 进入运行模式、跳转到中断服务例程、然后在完成时返回。 此时您有2个选项;一个是返回 STANDBY0模式或继续执行__ WFI ()之后的代码。  在这种情况下、您希望执行后面的代码、因此默认情况下不需要执行任何操作。

    在您的示例中的_WFI ()后,您不会更改电源策略,因此只需删除行9。