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.

[参考译文] CC2540:电池监控、电流泄漏

Guru**** 2553450 points
Other Parts Discussed in Thread: CC2540

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/582024/cc2540-battery-monitoring-current-leakage

器件型号:CC2540

我正在使用电阻分压器来监控电池电压。

使用5.11K/10K 电阻分压器到 P0.1 ADC 端口时、最大电池电压为4.2V。

我注意到电流消耗为500uA。 如果我断开顶部电阻5.11K、电流消耗将会断开。

您是否知道是否存在泄漏、以及如何克服此问题?

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

    您在哪里测量电流? 显然会有电流流过您的电阻分压器。 此外、默认情况下、GPIO 配置有一个内部20k 上拉电阻器。 除非您在 SW 中重新配置引脚、否则还会有 SoM 电流流经5.1k 电阻器并流入引脚、具体取决于您关闭 CC2540的电压。

    谢谢、
    Fredrik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    MCU 的电源由 P-FET 进行切换。 因此、不应为 MCU 供电。
    我发现 VDD 线路上存在小电压(0.6V)。
    如果我获取分压器的顶部电阻器、则电压消失。 因此、我得出结论、电压进入'ADC'端口、从而产生未完全导通或关断的电源状态。
    当器件关断时、这种"低电压"会产生500uA 的电池消耗。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Philip、

    器件未通电时、您无法向任何 GPIO 施加电压、这违反了数据表中的绝对最大额定值。

    电流泄漏和 VDD 电压都是由流经内部 ESD 保护电路的电流引起的。

    谢谢、
    Fredrik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将使用输出电容器尝试更大的电阻值、如链接中所示。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    已尝试25.5K/49.9K、因此比率保持不变。 添加了0.1uF 电容。
    现在、与之前相比、报告的电压过低。
    器件报告的电压为2.3V、但实际电压为4V
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否阅读过上述文章?

    您从 ADC 中实际读出的是2.3V 还是计算出的值? 您能否分享有关如何配置 ADC 的更多详细信息? CC2540的电源电压是多少?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    电源

    我有来自电池电路的5V 电压、该电压使用 P-FET 进行开关。

    该5V 电压馈入3.3V 稳压器。 如果 MCU 打开、则 P-FET 由 IO 引脚保持。

    MCU 代码释放 P-FET、进入稳压器的电压断开。

    因此、MCU 将获得3.3V 电压。 电池电压范围为3.4V 至4.2V、由分压器降低。

    电池监控器

    原始设计使用5.11K/10K、代码如下

    float getBatteryVoltage (void)
    {
    return ((10.0+5.11)/10.0)*(3.3 *(float) HalAdcRead (V_BATT_level、HAL_ADC_Resolution _14)/ 8192.0);
    } 

    此功能为我提供正确的电池电压。

    修改了设计以减少电流消耗

    使用25.5K/49.9K、0.1uF 电容。 该比率与原始设计相同、但功能中报告的电压为2.3V、即过低。

    流入引脚的电流过低、从而降低 ADC 值。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    即使没有电容器、电阻器值也不应过大。 您在电阻器上测量的电压是多少?

    器件断电时、您仍应避免 GPIO 上存在电压。