如何降低 BlueNRG-LPS 的开机峰值电流

1. 前言

BlueNRG 系列存在开机瞬间会出现很大的峰值电流的现象,预计有 20ma 左右。针对此现象,经常有客户询问该峰值电流会不会导致设备工作异常?会不会导致电池使用寿命缩短(考虑到一般纽扣电池能承受的峰值电流大概在 15ma 左右)?有没有软件或者硬件的方法限制其峰值电流?目前 BlueNRG-LPS 系列芯片引入了可以通过修改软件寄存器达到限制开机峰值电流的方法,在这里我整理了该文档以备解惑供客户参考。注意:目前只有BlueNRG-LPS 系列芯片有该功能,BlueNRG-1/2, BlueNRG-LP 系列还不支持该功能。

2. 开机峰值电流的测量及限值方法

2.1. 开机峰值电流的测量

2.1.1. 开机峰值电流的测试方法

  1. PC 上安装工具 “STM32CubeMonitor-Power”;
  2. 按图所示连接待测板到 LPM01A 板;
  3. 确保 J9/J10 正确配置;
  4. 用 USB 线连接 LPM01A 板到 PC ;
  5. PC 运行 STM32CubeMonitor-Power;
  6. 选择相关串口,点击连接;
  7. 设置相关参数,然后点击“START ACQUISITION”按钮。
    测试连接如下图所示:

图1. 硬件测试连接图
在这里插入图片描述

2.1.2. 开机峰值电流的测试截图

图2. 开机峰值电流-20ma(默认)
在这里插入图片描述

2.2. 开机峰值电流的限制方法

2.2.1. 开机峰值电流的限制方法

  • • 与 division 确认,针对 BlueNRG-LP 来说,受限硬件,无法限制开机峰值电流。
  • • 针对 BlueNRG-LPS 来说,硬件上加了特殊字段,即通过修改寄存器 PWR->CR5 的SMPS_PRECH_CUR_SEL 字段来选择 SMPS PRECHARGE 的限制电流,该限制电流的范围为 2.5mA 到 20mA 之间。下面是两个 API 函数供用户获取和设置该 SMPS PRECHARGE 的限制电流(see file rf_driver_ll_pwr.h):
    -LL_PWR_SetSMPSPrechargeLimitCurrent()
    -LL_PWR_GetSMPSPrechargeLimitCurrent()

• 软件修改截图如下:

图3. 软件修改截图
在这里插入图片描述

2.2.2. 开机峰值电流-10ma

修改代码:

LL_PWR_SetSMPSPrechargeLimitCurrent(LL_PWR_SMPS_PRECH_LIMIT_CUR_10)

图4.开机峰值电流-10ma
在这里插入图片描述

2.2.3. 开机峰值电流-5ma

修改代码:

LL_PWR_SetSMPSPrechargeLimitCurrent(LL_PWR_SMPS_PRECH_LIMIT_CUR_5)

图5.开机峰值电流-5ma
在这里插入图片描述

2.2.4. 开机峰值电流-2.5ma

修改代码:

LL_PWR_SetSMPSPrechargeLimitCurrent(LL_PWR_SMPS_PRECH_LIMIT_CUR_2_5)

图6. 开机峰值电流-2.5ma
在这里插入图片描述

3. 小结

本篇从如何测试开机峰值电流,以及如何从软件角度通过修改寄存器限制峰值电流着手提供有用的指导方法,以使客户在实际设计中少走弯路。

参考文献

在这里插入图片描述


本文档参考ST官方的《【应用笔记】LAT1356+如何降低BlueNRG-LPS的开机峰值电流》文档。
参考下载地址:https://download.csdn.net/download/u014319604/89045101

相关推荐

  1. 降低芯片片风险几种方法

    2024-03-29 10:50:06       25 阅读
  2. 题目 2011: 矩形

    2024-03-29 10:50:06       32 阅读
  3. Unity3D中如何降低游戏Drawcall详解

    2024-03-29 10:50:06       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 10:50:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 10:50:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 10:50:06       82 阅读
  4. Python语言-面向对象

    2024-03-29 10:50:06       91 阅读

热门阅读

  1. 课时78:流程控制_until循环_嵌套案例

    2024-03-29 10:50:06       45 阅读
  2. C# 多线程编程:线程锁与无锁并发

    2024-03-29 10:50:06       33 阅读
  3. 每天学习一个Linux命令之uptime

    2024-03-29 10:50:06       37 阅读
  4. mongodb中的字符串排序

    2024-03-29 10:50:06       39 阅读
  5. vivado 调试术语

    2024-03-29 10:50:06       40 阅读
  6. 车流量智能监测识别系统---豌豆云

    2024-03-29 10:50:06       34 阅读
  7. C语言条件编译详解

    2024-03-29 10:50:06       46 阅读
  8. 基于easyx库的C/C++游戏编程实例-贪吃蛇|

    2024-03-29 10:50:06       36 阅读
  9. Kafka客户端快速使用

    2024-03-29 10:50:06       45 阅读
  10. Rustdesk客户端编译后固定密码不稳定时好时坏

    2024-03-29 10:50:06       76 阅读
  11. Linux查看某个指定进程命令

    2024-03-29 10:50:06       41 阅读
  12. docker快速安装单节点和多点MongoDB副本集

    2024-03-29 10:50:06       37 阅读