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:在将器件置于睡眠或低功耗模式时禁用电源

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1404432/mspm0g3507-disable-power-while-putting-device-in-sleep-or-low-power-mode

器件型号:MSPM0G3507

工具与软件:

您好!

我正在尝试通过以下行将器件(MSPM0G3507)置于低功耗模式:

在将器件置于睡眠模式之前、我还需要禁用相应的外设、以在睡眠模式下保持3uA 的功耗。

我编写了以下代码、以保持3uA 的消耗。  

所以、我的问题是:在进入低功耗模式的同时、是否有必要对外设执行所有这些设置? 还是做错了事。  

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

    你(们)好  

    是否使用 syscfg? (系统配置工具)
    如果您使用 syscfg、则可以直接复位所有外设、如下所示:

    Fullscreen
    1
    2
    3
    DL_GPIO_reset(GPIOA);
    DL_GPIO_reset(GPIOB);
    DL_MCAN_reset(MCAN0_INST);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    唤醒后、调用 syscfg generated 函数来 配置所有外设:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    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();
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    此致、

    Helic

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

    你好、 

    感谢您的答复。

    是的、我们使用 syscfg。

    根据您的建议、我对我的代码进行了如下修改。

    但在进入低功耗模式时、功耗仍是500-600uA。

    那么、是否还需要任何其他命令?

    此致、

    开会

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

    你(们)好  

    我提到过的方法未重置 IOMUX 函数。

    仅关闭 M0的内部外设。

    我想还有一些来自 IO 的消耗。

    尝试按照之前的设置来配置这些 IOMUX 配置。

    如以下代码所示、用于添加下拉电阻:

    Fullscreen
    1
    IOMUX->SECCFG.PINCM[pincmIndex] = ((IOMUX->SECCFG.PINCM[pincmIndex])&(0xFFFCFFFF))|(0x00030000);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    此致、

    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);

    这是必需的、否则我们将出错。 或者是否有任何捷径?

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

    你(们)好  

    在进入低功耗模式之前配置 IOMUX~μ A

    不需要做任何事情。

    此致、

    Helic

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

    尊敬的 Helic:

    感谢您提供的信息。

    还有一个问题。

    是否有办法可检查哪个外设在睡眠模式下消耗更多电流?

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

    你(们)好  

    现在、我们还没有外设消费的官方数据。

    您可以通过逐个关闭外设来自行测试。

    此外、您还需要注意的另一个技巧是、功耗还与外设的时钟源、通信速度等相关。

    此致、

    Helic

x 出现错误。请重试或与管理员联系。