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.

[参考译文] BOOSTXL-CC3120MOD:未连接时具有高电流消耗

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/719644/boostxl-cc3120mod-high-current-consumption-while-unconnected

器件型号:BOOSTXL-CC3120MOD
主题中讨论的其他器件:CC3120BOOSTCODECOMPOSERCC3120IMETER-BOOSTCC3100BOOSTINA126CC3100UNIFLASHMSP432WARE

各位 TI 人好、

我有一个 MSP-EXP432P4111 Launchpad 和一个 CC3120BOOST BoosterPack、在最新的 CodeComposer Studio (8)上运行 SimpleLink MSP432P4 SDK (2.20.0.12)和 SimpleLink SDK WiFi 插件(1.60.0.07)。

我创建了一个源自 power_measuring_MSP_EXP432P4111_tirtos_CSS 工程的工程、该工程使用 UDP 套接字每60秒传输1个数据包(16字节)。 系统使用 DEULESLepPolicy 启用进入 LPM3和初始化 PerfLevel = 0、因此 MCLK 以12MHz 的频率运行。  在 CC3120上、我移除了与 NHIB、PWR 和 RST 相关的电阻器以确保 LED 不会激活、并且我使用间歇性连接配置文件来最大限度地降低功耗、即我调用 sl_Start 和 sl_Stop。  到目前为止、系统工作正常、我在另一侧接收数据包。

现在、在这种情况下、根据之前使用 MSP432P401R Launchpad (红色)和 CC3100BOOST BoosterPack 的结果、我预计平均电流为100uA。 但是、在使用 Launchpad 3V3连接器中的 IMETER-BOOST (INA126)进行测量时、我将获得大约1mA 的电流、但如果我使用 J6跳线在 CC3120BOOST 模块上进行测量、我将获得90uA 的预期平均值。  

现在、我认为有某种引脚或外设配置错误会导致泄漏、但我无法找到位置。  当然、在测量期间、TXD/RXD 和 JTAG 接头与目标断开连接。  

您有什么想法吗? MSP432P4111中是否存在任何特殊引脚配置(即由于 LCD)?

提前感谢!

佩雷

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

    请查看下面随附的 MSP432P4111 Launchpad 3V3引脚电流消耗测量结果:

    可以看出、平均电流消耗为1mA。

    最棒的

    佩雷

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

    为了澄清这一点、您好像在尝试测量 CC3120器件从 MSP432P4111 LaunchPad 3V3引脚到接地引脚的电流消耗、并将其与通过 CC3120BP J6跳线进行测量进行比较。 如果我的理解有误、请告诉我。

    LaunchPad 和 BoosterPack 上的3V3接头引脚不仅连接到 CC3120 BP 上的 LED、还连接到 LED、调试器以及 MSP432P4111 LP 上的温度传感器等其他设备。 这可能是您损失大部分电流的地方。 您可以查看 LP 和 BP 工具页面上提供的原理图。

    您是否有理由要在该3V3引脚上进行测量? 如果您尝试测量 CC3120器件(以及此 BoosterPack 上的串行闪存)的电流消耗、似乎不准确。 如果您希望确保泄漏电流达到最小、请查看 CC3120/CC3220电源测量应用手册 :http://www.ti.com/lit/swra502中的使用直流电源分析仪测量电流消耗部分

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

    您好 Sarah、

    感谢您的快速回答和提供的文档! 我要看一下。

    关于您的问题、我打算在开始为特定应用开发我们自己的电路板之前测量整个系统的电流消耗、即 MSP432P4111 LaunchPad + CC3100 BoosterPack + RTOS。 基本上、考虑到开/关连接模型、我们需要确保能够满足电池持续时间要求。

    现在、我很清楚、LaunchPad/BoosterPack 的侧面组件(例如 LED 等)或 RTOS 上的 GPIO 配置错误可能会导致额外的电流。 但是、如前所述、对于 MSP432P401R LaunchPad 和 CC3100 BoosterPack、我们可以在移除侧面组件后实现预期的电流消耗(~100uA)(即、我断开了 MSP432P401R 上的 LED 跳线并移除了 CC3100 BoosterPack 上的 LED)。

    我要做的是测量电流消耗:
    1) 1)取下 XDS110-ET 与 MSP432P4111之间的3V 跳线(请参见下图、黄色)、并串联 INA126、以便能够测量流经0.1欧姆电阻器的电流引起的压降。
    2) 2)使用 Code Composer Studio 对测试固件进行编程、并切断 LaunchPad 的电源。
    3) 3)拔下 JTAG 和 UART 的其余 XDS110-ET 跳线(请参阅下一张图、绿色)、以确保 MSP432P4111是隔离式的。
    4) 4)为系统重新供电并让其启动、以避免测量电流消耗瞬态。
    5) 5)测量 INA126的电流消耗。

    正如您在上一篇文章中看到的、当整个系统的平均功耗应该减少大约10倍时、整个系统的平均功耗为1mA、即关闭期间为20uA、传输峰值为175mA)。 但是、如果我在没有 CC3100 BoosterPack 且具有适当固件(即配置引脚并直接进入 LPM3的固件)的情况下重复上述过程、则我测量的电流大约为20uA、考虑到 INA126的灵敏度、这正是我所期望的。

    在我看来、问题似乎是睡眠模式期间与引脚配置相关的电流泄漏。

    我使用的 GPIO 引脚配置如下:

    GPIO_OUT
    
    
    
    
    
    
    
    
    
    
    |引脚配置[]={//*输入引脚*/* MSP_EXP432P4111_GPIO_S1 */ GPIOMSP432_P1_1 | GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_FALLING、// MSP_EXP432_ING_GPIO_ING_ING_ING_ING_ING_GPIO_ING_ING_ING_GPIO_ING_ING_ING_ING_ING_GPIO_ING_ING_ING_ING_ING_GPIO_ING_ING_ING_GPIO_ING_ING_ING_ING_ING_GPIO_ING_GPIO_ING_ING_ING_ING_GPIO_ING_ING_ING_ING_GPIO_ING_ING_ING_GPIO_ING_ING_ING_ING_GPIO_ING_ING_ING_ING_GPIO_ING_ING_ING_ING_GPIO_ING_ING_ING_ING_ING_GPIO_ING_ING_ING_ING_ING_GPIO_ING_ING_ING_ING_ING_ING_GPIO_ING_ING_IN
    /* MSP_EXP432P4111_GPIO_LED_RED1 */
    GPIOMSP432_P2_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    /* MSP_EXP432_GPIO_STR_LED_OUT *
    / GPIO_STR_OUT
    
    
    
    
    | GPIO_STR_OUT
    /* MSP_EXP432P4111_CS_Pin */
    GPIOMSP432_P3_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_STR_HIGH
    | GPIO_CFG_OUT_HIGH}; 

    电源配置如下:

    const PowerMSP432_ConfigV1 PowerMSP432_config ={
    .policyInitFxn =&PowerMSP432_initPolicy、
    .policyFxn =&PowerMSP432_deepSlepPolicy、
    .initalPerfLevel = 0、
    .enablePolicy = true、
    .enablePerf = true、
    .enableParking = true
    }; 

    我已经尝试使用 enableParking = true 和 enableParking = false、没有任何显著差异。 我是否应该查看任何特定的引脚? 在 CC3120 BoosterPack 原理图中、我看到许多其他和测试引脚可能会干扰 MSP432P4111 Launchpad。

    很抱歉发帖很长、提前感谢!

    最棒的
    佩雷

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

    为了继续、我将 MSP432P4111 LaunchPad 和 CC3120 BoosterPack 分开、仅连接了必要的引脚:3V3、GND、NHIB、CLK、IRQ、 NCS、MOSI、MISO。 这种最小的设置可以正常工作、即我可以成功发送数据包、但大约1mA 的高电流消耗仍然存在。

    此外、我还尝试对与 Wi-Fi 配置和通信相关的代码进行注释、并测量电流消耗。 如果我根本不调用 sl_Start、则电流处于预期范围内(即大约22uA)、但如果我调用 sl_Start 一次、则电流消耗会像以前一样(即大约1mA)、如果我调用 sl_Stop 则无关紧要。

    基于这两个额外的测试、我认为平台的 sl_Stop 函数实现可能不会释放某些硬件约束、GPIO 或 SPI、因此不允许 CPU 进入休眠状态。

    你怎么看?

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

    在移除 J6跳线的情况下、通过3V3引脚测量设置时、您会看到什么? 这会切断 CC3120器件的所有电源、因此我们可以确定您看到的额外电流消耗是 NWP 还是 MSP432 LP 上的其他功耗。

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

    您好 Sarah、

    当我这么做时、您说有两个选项:

    1)使用与对讲机交互的代码(即调用 sl_Start):功耗较高(>2mA)、因为驱动程序尝试与对讲机进行通信而未成功、并且它会一直忙等待。

    2)没有与无线电交互的代码(即没有调用 sl_Start):功耗较低(~20uA)、因为代码仅使 LED 闪烁。

    我在运行完全相同的代码时添加了更多的电流消耗捕获:

    1) 1)在发送和空闲期间在 CC3120 VBAT_CC (J6)上发出消息。 测量结果符合预期。

    2) 2)在 MSP432P4111 Launchpad 上的3V3之间进行测量。 CC3120 BoosterPack 由3V3从 LaunchPad 直接供电至 VBAT_CC (J6)、J8保持未连接状态。 当 MSP432处于睡眠状态且 CC3120处于关闭状态时、CC3120上的 PWD LED 熄灭。 当 MSP432和 CC3120处于活动状态(即将要发送)时、PWR LED 会稍微亮一点。  

    可以看出、与第一种情况相比、噪声大约为1mA、并且要高得多。 检查 MSP432和 CC3120上的电阻器(>10kOhm)、3V3处的泄漏电流似乎太大。

    我的电流认为、SPI/GPIO/CC3120驱动器有一些工作正在进行、即未关闭、因此 MSP432不会进入睡眠状态。 为了测试、我尝试将 初始值 PerfLevel 从0 (12MHz)更改为2 (48MHz)、并且我看到电流从大约1mA (如前面所示)变为大约2mA (如下面所示)、这意味着它取决于 CPU 时钟。  

    你怎么看?

    谢谢!

    佩雷

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

    MSP432似乎更有可能无法休眠。

    1) 1)确保您已将最新的服务攻击刷写到 CC3120 BP。 您可以在 SDK 中的\tools\cc31xx_tools\servicepack-cc3x20找到服务攻击
    2) 2)您是否获得了 sl_Stop 的返回值? 您是否使用超时值来调用它? 在 power_measurement 示例中、我们有一个200毫秒的建议值。 sl_Stop 会关闭 SPI 驱动器、因此如果成功、不应使您保持唤醒状态。
    3) 3)您是否在运行除 SPI 和 GPIO 之外的任何其他外设? 其他外设可使 MCU 保持唤醒状态。

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

    您好、再说一次、

    1) 1)我已使用 UniFlash 工具更新了具有最后一个 SP 的 CC3120 BP、结果相同。

    2)关于 sl_Stop、如果我调用带有超时(即从200到750)的 sl_Stop、我通常会得到 SL_API_ABLETED (-2005)响应;在之后调用 sl_Start 会使代码挂起。 相反、如果我在没有超时(即0)的情况下调用 sl_Stop、则一切都按预期工作、但我仍然会获得较高的电流消耗。

    3) 3)否、第一次调用 sl_Start 之前、我仅调用 Power_init、GPIO_init 和 SPI_init。  

    实际上、MSP432看起来只会进入 LPM0、其中电流消耗大约为1mA。 但是、鉴于我不使用其他外设、我不确定为什么会发生这种情况。  

    您是否有一个可以共享以进行测试的工作项目?

    佩雷

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

    您好、再说一次、

    我正在尝试 power_measuring_MSP_EXP432P4111_tirtos 项目、以确保不会忽略明显的内容。

    如果我按原样让项目正常运行、间歇性连接情况(4)工作正常、但电流消耗约为2mA、因为 CPU 以48MHz 的频率运行、并且仅进入 LPM0 (如 PowerMSP432_config policyFxn 至 PowerMSP432_slepPolicy 和初始化 PerfLevel 至2)。

    如果我将 PowerMSP432_config policyFxn 设置为 PowerMSP432_deepSlepPolicy 并将初始值 PerfLevel 设置为0 (我还将 wiMSP432HWAttrs .spiBitRate 设置为1MHz、因为 SMCLK 仅为3MHz)、当器件尝试进入睡眠模式时、我开始获取-2005返回值。 我还尝试将.spiBitRate 更改为1.5MHz 和750kHz、但结果相同(即-2005返回值)。

    但是、如果我将 SL_STOP_TIMEOUT 设置为0、则代码工作正常(无-2005返回值)、但与我的项目一样、电流消耗约为1mA。

    我还尝试过 power_measuring_MSP_EXP432P4111_nortos 项目、结果类似、即1mA 电流消耗。 基于此、我假设 MSP432Ware 和 CC3120驱动程序正在运行一些操作。 CC3120驱动程序很可能没有释放一些硬件约束、因此不允许 CPU 按预期进入 LPM3。

    您可以在结尾处再次检查一下吗?

    谢谢、
    佩雷

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

    深入了解 MSP432P4 SDK (版本2.20.00.12)源代码我可以确认这是 SPIMSP432DMA 实现中的问题。

    在调用 Power_setConstraint 和 Power_releaseConstraint 函数时、代码周围有大量#if 宏、可处理 DeviceFamily_ID 等于 DeviceFamily_ID_MSP432P401x 时的情况、但不考虑 DeviceFamily_ID_MSP432P4x1xT 时的情况。

    这将解释为什么 MSP432P4111 CPU 不会进入 LPM3、并且始终消耗大约1mA 的电流、而对于 MSP432P401x、它会进入 LPM3、在我的示波器中消耗大约20uA 的电流。

    那么、现在的问题是:何时发布新版本的 MSP432P4 SDK 并提供将 MSP432P4111系列纳入考虑范围的修复程序?

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

    我已经与 MSP432团队的另一位工程师进行了沟通、他应该能够帮助您进一步了解 MCU。 很抱歉耽误你的时间!

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

    我在找到您提到的项目时遇到了一些问题。  问题的几个可能原因可能只是 IO 的配置、或者可能是连接到温度传感器的 launchpad 上 P5.3的特定实例。

    /*
    *将所有 GPIO 置于最低功耗配置中。 这由完成
    *特定于 MSP432的 driverlib 调用
    *
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PA、PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PB、PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PC、PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PD、PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PE、PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PJ、PIN_ALL16);
    MAP_GPIO_setAsOutputPin (GPIO_PORT_PA、PIN_ALL16);
    MAP_GPIO_setAsOutputPin (GPIO_PORT_PB、PIN_ALL16);
    MAP_GPIO_setAsOutputPin (GPIO_PORT_PC、PIN_ALL16);
    MAP_GPIO_setAsOutputPin (GPIO_PORT_PD、PIN_ALL16);
    MAP_GPIO_setAsOutputPin (GPIO_PORT_PE、PIN_ALL16);
    MAP_GPIO_setAsOutputPin (GPIO_PORT_PJ、PIN_ALL16);
    
    #ifdef __MSP_EXP432P4111_H
    /*
    *将 P5.3设置为模拟输入(连接到温度传感器 ON
    * MSP_EXP432P4111 LaunchPad)
    *
    MAP_GPIO_setPeripheralModuleFunctionOutputPin (GPIO_PORT_P5、
    GPIO_PIN3、GPIO_TICE_MODULE_FUNCTION);
    #endif
    
    /*
    *关闭 PSS 高侧监控器以在深度睡眠中降低功耗
    *
    MAP_PSS_disableHighSide(); 

    我还附加了项目的一部分、以 MSP432P401的 LPM3转换为例。

    e2e.ti.com/.../ulpMeasure.c

    此致、

    Chris

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

    尊敬的 Chris:

    我不认为这是 GPIO 配置或传感器、因为我的结果显示它依赖于 CPU 工作频率。

    如果我在功率级别2 (48MHz)下运行、与功率级别1 (12MHz)相比、流耗更高。

    要继续、您能否在 MSP432P4111 Launchpad 和 CC3120无线电收发器上执行 power_measurement 项目并测量电流消耗?+

    谢谢、

    佩雷

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

    我仍然对您所指的项目感到困惑。  我会询问同事、但您能否提供有助于我的链接或参考资料。  

    在前面的说明中、我认为您希望解释电流为何约为1mA、而不是10uA。  我不理解48Mhz 和12MHz 的背景。  这将导致大于1mA。

    此致、

    Chris

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

    我所参考的项目如下:
    dev.ti.com/.../
    我正在使用 TI-RTOS 版本、但我也尝试了 No RTOS 版本、结果相同。

    当系统初始运行在 PerfLevel=0 (MCLK 运行在12MHz)时、测得的电流消耗大约为1mA、因此我的点是 CPU 不会按照我的代码的要求进入 LPM3、 但是、由于某些外设阻止了向此类状态的转换、因此将进入 LPM0。 如果您查看 MSP432P4111数据表(第42页)、您会发现在 LPM0中、LDO 在12MHz 下的功耗介于850和950uA 之间、这与我测量的值一致。

    正如我在前面的一条消息中提到的、这似乎与 MSP432P4 SDK (版本2.20.00.12)驱动程序相关、尤其是 SPIMSP432DMA。 如果您检查源代码、您将看到代码周围有大量#if 宏、可处理调用 Power_setConstraint 和 Power_releaseConstraint 函数时 DeviceFamily_ID 等于 DeviceFamily_ID_MSP432P401x 时的情况、但不考虑 DeviceFamily_ID_MSP432P4x1xT 时的情况。

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

    您好 Chris、

    有没有关于这个问题的新闻?

    最棒的

    佩雷

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

    我仍在努力了解如何关闭应用程序的通信(SPI)。  我已举个例子并移至性能级别0、并将电源策略更改为深度睡眠策略。  进入间歇模式时、我在 MSP432板上测量的电流约为10uA、当我添加 CC3120 BoosterPack 时、电流会跳至约10mA (BoosterPack 上有两个 LED 亮起)。  

    此外、随附的是我正在使用的电路板说明文件。

    此致、

    Chrise2e.ti.com/.../MSP_5F00_EXP432P4111.c

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

    感谢 Chris、我将尝试重现您的结果并提供反馈。

    最棒的

    佩雷

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

    您好、Pere、

    这是否得到了解决?

    Todd

    [9/24更新:将此标记为 TI 认为已解决、因为原始海报中没有活动。]