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.
工具与软件:
您好!
我正在尝试通过以下行将器件(MSPM0G3507)置于低功耗模式:
在将器件置于睡眠模式之前、我还需要禁用相应的外设、以在睡眠模式下保持3uA 的功耗。
我编写了以下代码、以保持3uA 的消耗。
所以、我的问题是:在进入低功耗模式的同时、是否有必要对外设执行所有这些设置? 还是做错了事。
是否使用 syscfg? (系统配置工具)
如果您使用 syscfg、则可以直接复位所有外设、如下所示:
DL_GPIO_reset(GPIOA); DL_GPIO_reset(GPIOB); DL_MCAN_reset(MCAN0_INST);
唤醒后、调用 syscfg generated 函数来 配置所有外设:
SYSCONFIG_WEAK void SYSCFG_DL_init(void) { SYSCFG_DL_initPower(); SYSCFG_DL_GPIO_init(); /* Module-Specific Initializations*/ SYSCFG_DL_SYSCTL_init(); SYSCFG_DL_MCAN0_init(); SYSCFG_DL_SYSCTL_CLK_init(); }
此致、
Helic
你好、 Helic、
感谢您的答复。
是的、我们使用 syscfg。
根据您的建议、我对我的代码进行了如下修改。
但在进入低功耗模式时、功耗仍是500-600uA。
那么、是否还需要任何其他命令?
此致、
开会
我提到过的方法未重置 IOMUX 函数。
仅关闭 M0的内部外设。
我想还有一些来自 IO 的消耗。
尝试按照之前的设置来配置这些 IOMUX 配置。
如以下代码所示、用于添加下拉电阻:
IOMUX->SECCFG.PINCM[pincmIndex] = ((IOMUX->SECCFG.PINCM[pincmIndex])&(0xFFFCFFFF))|(0x00030000);
此致、
Helic
你好、 Helic、
但我们观察到、 对于不同的外设、我们需要执行自定义代码。 例如
/*睡眠 I2C_0*/
DL_I2C_disableController (I2C_0_INST);
DL_GPIO_initPeripheralInputFunctionFeatures (GPIO_I2C_0_IOMUX_SDA、
GPIO_I2C_0_IOMUX_SDA_FUNC、DL_GPIO_INVERSION、
DL_GPIO_RESISTOR_PULL_DOWN、DL_GPIO_HYSTERESIS_DISABLE、
DL_GPIO_WAKEUP_DISABLE);
DL_GPIO_initPeripheralInputFunctionFeatures (GPIO_I2C_0_IOMUX_SCL、
GPIO_I2C_0_IOMUX_SCL_FUNC、DL_GPIO_INVERSION DISABLE、
DL_GPIO_RESISTOR_PULL_DOWN、DL_GPIO_HYSTERESIS_DISABLE、
DL_GPIO_WAKEUP_DISABLE);
/*睡眠 SPI_1*/
DL_GPIO_initPeripheralOutputFunction (
GPIO_SPI_1_IOMUX_SCLK、DL_GPIO_RESISTOR_PULL_DOWN);
DL_GPIO_initPeripheralOutputFunction (
GPIO_SPI_1_IOMUX_PICO、DL_GPIO_RESISTOR_PULL_DOWN);
DL_GPIO_initPeripheralInputFunction (
GPIO_SPI_1_IOMUX_POCI、DL_GPIO_RESISTOR_PULL_DOWN);
/*睡眠 UART_0*/
DL_UART_Main_disable (UART_0_INST);
DL_GPIO_initPeripheralInputFunction (
GPIO_UART_0_IOMUX_RX、IOMUX_PINCM22_PF_UNCONNECTED);
DL_GPIO_initPeripheralInputFunction (
GPIO_UART_0_IOMUX_TX、IOMUX_PINCM21_PF_UNCONNECTED);
这是必需的、否则我们将出错。 或者是否有任何捷径?
尊敬的 Helic:
感谢您提供的信息。
还有一个问题。
是否有办法可检查哪个外设在睡眠模式下消耗更多电流?