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.

[参考译文] CC2340R2:复位与关断电流

Guru**** 2538930 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1565125/cc2340r2-reset-vs-shutdown-current

器件型号:CC2340R2
主题:SysConfig 中讨论的其他器件

工具/软件:

您好:

SDK LPF3 8.10.1.2

根据数据表、关断时的预期功耗与复位时的预期功耗相同 (165nA)。

作为参考、当我将 CC2340 保持在复位状态时、电路板输入电流在 125uA 下保持稳定(没有任何活动)。

如果 I 释放 RESET、CC2340 会将引脚切换几秒钟、然后调用 Power_Shutdown (0、0)、所有这些都在无限循环中。  引脚停止切换、因此不会返回对 Power_shutdown 的调用(这可以)。

该引脚切换 未连接、并在进入关断模式时保留为输出。  所有其他引脚从一开始就保持其默认复位状态。  我假设它们都是输入、并且都从外部下拉。

但是、输入电流显示了周期性 的电流峰值、本底电流要高得多(不介意额外的噪声):

峰值周期约为 17ms。

复位时不存在这些周期性峰值。 此外、由于复位线路上有一个上拉电阻、因此复位时的电流消耗实际上应更高。

有什么线索?   

power_init() 在 main() 开头调用。   在调用 Power_Shutdown () 之前,我应该配置一些寄存器(或库调用)吗?

此致

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

    您好、Fred、

    它似乎是其他的。 您是在 LaunchPad 还是定制电路板上执行此操作吗? 尝试 ShutdownGPIO 示例、该示例禁用 GPIO、因此没有其他任何器件消耗电流。

    此致、

    按钮

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

    尊敬的 Bn:

    我有自己的定制板。  因此、我的基准处于复位状态下的电流为 125uA。

    我需要移植 gpioshutdown 项目。  下面是我非常简单的代码 (Nortos ),广泛的灵感来自 gpioshutdown  项目。  

    GPIO24 未连接(测试点)。

    所有其他 I/O 都从外部驱动或下拉、但 SWDIO 和 SWDCK 除外、它们未连接(未连接 XDS110)。

    如果出现问题、请告诉我。

    感谢您的帮助

    内部 main (void)

     易失性 uint32_t i、j;

     power_init ();
     PowerLPF3_selectLFXT();
     PMCTLSetVoltageRegulator (PMCTL_VOLTAGE_regulator_DCDC);
     GPIO_init ();//GPIO21 和 GPIO 24 配置为输出低电平 (SysConfig)

     GPIO_setConfig (21、GPIO_CFG_INPUT_INTERNAL);//已由 GPIO_init (sysconfig) 设置为输出。 引脚有下拉电阻。

     GPIO_setConfig (6、GPIO_CFG_OUTPUT_INTERNAL);//无连接引脚、不要使引脚悬空

     while (1){

     //切换引脚约 9 秒
     对于 (j=0;j<20;j++)
     {
      GPIO_WRITE (24、1);

      适用于 (I=0;I<1000000;I++);// 100k ITER -> 22.91ms
      GPIO_WRITE (24、0);
      适用于 (I=0;I<1000000;I++);
      }

     POWER_SHUTDOWN (0、0);// C2340R2 未使用的参数

     }

     返回 0;
    }

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

    在我的代码中发现任何可疑内容?

    谢谢

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

    您好、Fred、

    很抱歉回复。 我联系了我们的软件工程师以帮助查看代码。 要缩小硬件问题的范围、请首先上拉或下拉所有不需要的 DIO、以运行是否驱动的代码。

    此致、

    按钮

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

    您的意思是、在进入关断模式之前、任何引脚都不应配置为输出?   

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

    没错。 其目的是通过移除任何外部外设来隔离芯片的电流消耗。  

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

    您好!

    如果优化级别足够高、编译器可能会优化“for (I=0;i<1000000;i++)“指令。 能否通过增加  1000000 的限值来检查循环是否运行更长时间 ?

    此致、
    Lea

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

    我看不到循环会是如何/为什么会成为问题。

    编译器优化位于-g(用于调试)、i 为 volatile。  环路不应进行过多优化。  实际上、示波器和电流消耗都与代码匹配。  确切的循环时间不是问题。  这只是测试代码。

    “你说什么?  除非在关断状态期间、否则没有任何东西会停止、如果您所说的是“stall"。“。  由于未配置唤醒事件、因此它会一直保持关断状态。

    因此,行为似乎是正常的,直到调用 Power_Shutdown ();然后电流变得奇怪(过高和周期性峰值)。  将 RESET 拉低会使电流几乎达到预期的水平。  不再出现周期性峰值。

    感谢您的评分

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

    在进行建议的测试时、我注意到移除 XDS110 后的功耗发生了变化。  

    从那一点出发、很容易找到根本原因:SWCLK 引脚上缺少内部下拉电阻 (DIO17)。  

    我并没有想到、因为让引脚保持未连接状态是这种引脚的可接受(非首选)做法(表 6-20)。  实际上、我想知道这如何可以接受、除非会有一些永久的内部拉电阻器、 但显然情况并非如此。  

    案例已关闭。

    感谢大家。