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.

[参考译文] MSPM0L1306:比较器电流过高

Guru**** 2868720 points

Other Parts Discussed in Thread: MSPM0L1306, LP-MSPM0L1306

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1635240/mspm0l1306-comparator-current-is-too-high

器件型号: MSPM0L1306

您好:

我使用比较器将 MSPM0L1306 从待机模式 1 唤醒。 它可以工作、但睡眠期间的功耗高于预期。

我在进入待机模式之前尝试禁用比较器 1:在睡眠模式期间启用比较器时、比较器消耗约 22uA 电流。

组件数据表表明比较器电流典型值为 0.8uA(使用 DAC 的 ULP 模式)。

static DL_COMP_Config COMP_0Config_STR = {
    .channelEnable = DL_COMP_ENABLE_CHANNEL_POS,
    .mode          = DL_COMP_MODE_ULP,
    .negChannel    = DL_COMP_IMSEL_CHANNEL_0,
    .posChannel    = DL_COMP_IPSEL_CHANNEL_0,
    .hysteresis    = DL_COMP_HYSTERESIS_NONE,
    .polarity      = DL_COMP_POLARITY_NON_INV
};
static const DL_COMP_RefVoltageConfig cCOMP_0VRefConfig_STR = {
    .mode           = DL_COMP_REF_MODE_STATIC,
    .source         = DL_COMP_REF_SOURCE_VDDA_DAC,
    .terminalSelect = DL_COMP_REF_TERMINAL_SELECT_NEG,
    .controlSelect  = DL_COMP_DAC_CONTROL_SW,
    .inputSelect    = DL_COMP_DAC_INPUT_DACCODE0
};

您是否知道此电流泄漏的原因?

在电流测量期间、比较器输出不会发生变化。 较低、没有噪声信号。  
I 使用 IO26 上的正输入、负输入是来自 DAC 的电压、未启用输出引脚。

此致

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

    您好、

    我已经使用 LP 中的代码进行了测试。 这应该不是问题。

    您能否尝试以下代码、并更改与您的电路板兼容的 IN+的相关引脚。

    让我们看看高电流是由您的电路板还是您自己的代码引起的。

    e2e.ti.com/.../comp_5F00_lowPower.zip

    此致、

    Zoey

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

    @Zoey Wei
    您好、
    感谢您的快速回答。
    我导入了您的工程、但需要配置更多 IO、才能使其在定制电路板上正常运行。

    无论如何、我尝试比较配置、然后对实际固件进行了一些快速测试。
    我看到 DAC 电压设置存在差异、请查看下面的测量结果:  

    DACCODE 0 值   电路板上的平均电流 (µA μ A)   比较器驱动器消耗的电流 (µA μ A)
     0x00(在睡眠前禁用补偿) 55   +0
    0x00 61.6 + 6.6
    0x02 64 + 9.
    0x05 66 +11.
    0x10 66 +11.
    0x30 73.4. +18.4.
    0x60 76.9. +21.9.
    0x80 77.8. +22.8.
    0xA0 76.8. +21.8
    0xD0 73

    +18

    0xFF 56

    + 1.

    DAC 输出值似乎直接影响功耗。
    COMP + DAC 激活(具有 0v OUT) =+6.6uA
    1.65Vdc =+22uA 时的 COMP + DAC(使用此设置时,COMP + DAC 可能是功耗最大的值)。

    我观察到电流随着 DACCODE 值增加到中间范围 (3.3V 电源为 1.65VDC)、然后相对于消耗量降低至 1uA。

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

    您好、

    感谢您的信息。

    我从侧面使用不同的 DAC 设置进行了测试、结果 保持不变并在规格范围内。

    不确定是否可以与我共享您的 COMP 器件工程、从而重现问题? 或者、您可以使用我之前在 LP-MSPM0L1306 中共享的项目、并检查电流是否已增加。

    我的设置:

    LaunchPad:移除几乎所有跳线

    进入的环境中 STOP MODE(禁用 COMP、基本 MCU 电流消耗= 382uA)

    DAC 设置:DACCODE = 0x80、如 IN-= 1.66V

      

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

    您好:

    我现在回到这个主题。
    我将基准工作模式更改为“采样“、然后电流减小。

    我遇到了一个问题、我想在这里行贿、因为我认为这不是正常行为。 我找到了一种解决方法、如下所述。

    我现在在 ULP 模式下使用比较器、且 DAC 处于采样工作模式(只有 DAC,不是比较器本身)。  
    我将 PA26 引脚的外部信号路由到比较器正输入端。  
    我尝试在比较器输出发生变化的情况下从 standby1 唤醒 MCU。

    有时它是有效的,但大多数时候它 根本不起作用。 有时它会起作用、但延迟很大、我漏掉了一些关于信号的信息。

    我尝试了很多配置(即使使用异步快速唤醒请求)、但问题仍然存在。 使用 STOP2 模式时、我完全没有问题。

    我认为比较器在 STANDBY 1 模式下错过了一些中断。

    这是我使用的权变措施。

    • 将 PA26 设置为输入无拉电阻、在上升沿产生中断。
    • 请勿在引脚 PA26 上配置比较器的正输入(生成禁用正输入的比较器)。 这是为了避免 CC 配置工具中出现错误。
    • 将低功耗模式设置为 standby1。
    • GPIO 26 中断的处理程序是空的、但中断处于活动状态。
    • 比较器中断的处理程序调用我的过程代码。

    这样、就不会错过中断。 可能是因为 GPIO 中断唤醒 MCU、并且已设置比较器输出更改标志(我仅使用比较器中断处理程序进行数据处理)。

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

    尊敬的 Alexandre:

    感谢您指出!

    请问输入信号的频率是多少? 和占空比? 我想知道输入信号的周期是否足够长、使得 MCU 可以从 standby1 模式唤醒。

    此致、

    Zoey

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

    您好、Zoey、
    输入信号是通过光学接口得到的 UART、功率为 4800 波特。  
    位持续时间为 208µs、由于硬件限制(信号上升时间/下降时间)、我认为最短“高电平“时间段(超过比较器阈值)约为 160us。
    我需要在从低电平到高电平边沿的第一个起始位上唤醒。
    唤醒 MCU 时、 我使用计时器上的周期性中断来获得具有 8 个数据位的“DL_COMP_getComparatorOutput"的“的信号电平。  
    在帧结束之前、MCU 才会睡眠(当不再接收到数据时进行超时检测)。