第一章:准备篇-初始nPM1300 EK,软硬件准备
感谢面包板社区与Nordic主办的本次nPM1300 EK评估套件的测评活动,让我们一起领略一下nPM1300 EK的风采。
本次的开发板nPM1300 EK评估套件的真容(主角):
实物包装及板卡:
对开发板进行了初步的了解,nPM1300评估套件是对nPM1300电源管理IC(PMIC)进行全面评估的开发板,通过连接到nRF Connect for Desktop中的nPM PowerUP应用程序可以实现运用直观的图像用户界面(GUI)轻松配置nPM1300。nPM1300评估套件自带JST电池连接器,用于带有或不带内部NTC的电池(锂离子电池、锂聚合物电池、铁锂电池)进行电池管理,同时拥有用于电源和数据通信的 USB-C(注意是两条)。
根据以上信息我们整理了本次测试需要的基本材料:
开发板*1(主角);
USB-C数据线两条(电源与数据通信分开);
被测电池若干(至少包含锂离子电池、铁锂电池);
评估集成环境(nRF Connect for Desktop);
1、评估集成环境的配置
nRF Connect for Desktop是一个跨平台工具框架,用于协助在 nRF 设备上进行开发。它包含许多应用程序,用于测试、监控、测量、优化和编程您的应用程序,其中的nPM PowerUP应用程序是本次nPM1300评估套件适配的应用程序。
请根据自己的电脑环境进行下载,本人使用的是Win10 64位系统,目前最新版本为5.0.0;
安装过程中会选择安装一些环境,Jlink等等(不建议安装最新版Jlink,用不到),默认安装到C盘:
接下来nRF Connect for Desktop中下载nPM PowerUP应用程序:
遇到了一个问题,nPM PowerUP应用程序是通过在github上拉取下载的,总是失败或者连接不上,需要解决科学上网;
2、连接开发板
集成开发环境配置好后,接下来首先连接开发板试一下,使用USB-C数据线连接到J4,LED4闪烁,这种情况可能原因是驱动问题或者PMIC芯片没有电。
我们打开PC软件,更新一下nPM PowerUP软件(目前最新版本1.3.0)并打开:
可以发现我们的开发板,点击连接:
首次连接发现版本不符,需要升级固件;
一直提示没有找到PMIC,这是因为PMIC的供电是通过J3提供的,我们在找一根USB-C的线给J3供上电就可以发现,LED4长亮:
此时提示没有发现电池,我们连接上样品电池:
目前基本上就连接正常了,LED4处于呼吸灯状态,可以查看电池的一些基本信息。
3、电池样本
本次开发板上的电池充电接口使用的是日本JST公司的SH系列连接器,SH1.0的接口说实话挺小的,不过也不用担心,可以使用杜邦接口连接实现。为此准备了一些电池:
包括600mAh的SH1.0接口的带NTC的可充电锂电池、800mAh的裸线带NTC的可充电锂电池(铁锂)、1800mAh的裸线带NTC的18650电池,当然还有一些不带NTC的比较普通的电池(不过最后只用到了600mAh的SH1.0接口的带NTC的可充电锂电池)。
不知道这些样本电池是不是能起到测试作用,本软件可以自动进行电池分析,不过需要连接nPM-FG板,这个本次不在提供之列,只能选择相近模型进行了。
修改可用模型后的基本参数也发生了变化,标称600mAh的电池通过选择内置的LP603035电池模型后,显示约为680mAh左右,这里有两点需要说明该电池模型不是通过建模方式创建的专属电池模型,所以显示容量并不能完全代表当前实际容量,我只是在内置电池模型找了一个相近模型进行功能测试,如果想要得的准确的专属电池模型,需要结合nPM-PG板实现。
第二章:全面了解开发板与nPM1300 IC
在上一部分,我们对软硬件以及测试环境有了初步的了解,接下来我们就要圈粉的刨析一下这个开发板,为后续的测试做充足的准备。
nPM1300 针对最高效率和紧凑尺寸进行了优化,可通过 I2C 兼容的双线接口 (TWI) 进行配置。该接口可轻松访问和配置一系列高级系统管理功能,包括双按钮硬复位、电池电量计、系统级看门狗、断电警告和启动故障恢复。这些功能通常在低功耗蓝牙 (LE) 嵌入式设计中作为分立元件实现,但 nPM1300 将它们集成到单个紧凑封装中,从而简化了系统设计并减少了所需元件的数量。
- 800 mA电池充电器
- 两个200 mA降压DCDC稳压器
- 两个100 mA 负载开关/50 mA LDO
- 双按钮硬复位
- 电量计
- 智能断电警告
- 五个GPIO
- 三个LED驱动器
- 通过I2C兼容TWI进行控制
nPM1300功能框图如下:
由此可知我们的主要测试输出对象包括电池充电管理/LED控制输出/GPIO控制/BUCK输出/LDO输出等内容,接下来我们通过开发板原理图以及数据手册对上述内容进行全面的了解。
1、LED控制
LED实际上也是属于GPIO输出,开漏状态。LEDDRV由引脚LED0、LED1和LED2上的三个相同的低侧LED驱动器组成,配置之间是相互独立的。引脚可以在寄存器中配置如下状态:充电指示/充电错误指示/RGB LED(需要所有三个引脚)/通用,开漏输出.所以说可以连接单独的LED或者用这三个引脚控制RGB LED,输出电流典型值为5mA,电压可以从0.5V到系统供电电压。
LEDDRV的基础地址为0x00000A00,偏移地址如下:
以LED0为例,模式选择如下:
开启与关闭控制如下:
以上是LED控制的基本情况,那么实际在开发板中表现是如何的呢?
默认情况下通过跳线连接的方式联通P17直接控制LED,不过又另外引出P9可以进行IO状态采集:
2、GPIO控制
与LED不同,GPIO引脚的模式选择更多,GPIO具有以下可配置特性:通用输入/控制输入/输出/BUCK控制/LOADSW控制,注意GPIO的供电有VDDIO引脚提供,缺省情况下通用输入输出引脚GPIO[n]设置为弱下拉输入,如果上拉下拉同时配置,则下拉优先。
GPIO引脚一共有5个,电气参数如下:
GPIO的基础地址为0x00000600,偏移地址如下:
有很多重复的配置内容,我们还是以GPIO0为例:
模式配置如下:
输出能力配置如下:
上拉/下拉/开漏等控制如下:
GPIO输入状态:
开发板上是通过3个按键功能进行展示,并外引出所有GPIO引脚:
实物展示:
3、BUCK降压调节器
BUCK由两个降压调节器BUCK1和BUCK2组成,具有超高效率且低噪音运行,具有PFM和PWM双模式,可根据负载自动切换,TWI可配置强制PWM模式,以尽量减少输出电压纹波,可配置输出电压在1.0 V和3.3 V之间。
BUCK可以通过多种方式其中,可以通过GPIO引脚启动也可以通过外部引脚VSET硬件配置启动:
注意BUCK1和BUCK2初始输出电压对应的电阻不同。
BUCK的基础地址为0x00000400,偏移地址如下:
4、Load switches/LDO
两个负载开关可以作为开关或者LDO使用,注意这个功能需要专用的输入,而且电压不能超过VSYS,这个时候可以使用VOUT作为输入电压。当作为负载开关时,可以通过GPIO控制负载开关的开闭,可以通过一个GPIO控制一个负载开关或者同事控制两个负载开关。作为LDO时,供电一定要符合要求。
Load switches/LDO的基础地址为0x00000800,偏移地址如下:
负载开关切花状态(文件中又小笔误):
负载开关控制:
负载开关配置:
模式选择:
LDO输出电压配置:
原理图设计:
开发板中的位置:
5、充电控制
充电控制功能可以说是本芯片的最核心功能之一了,适用于锂离子(Li-ion)、锂聚合物(Li-poly)和磷酸铁锂(LiFePO4)电池,具有用于动态功率路径管理的双向功率场效应管,可以自动进行充电周期管理,可以通过配置进行充电电压和电流的修改,注意VTERM必须低于电池的过压保护电路。
CHARGER支持三种类型的NTC热敏电阻,用于电池温度(TBAT)监测,软件必须先选择与电池热敏电阻匹配的相应设置,也就是说如果是不带NTC的电池也需要连接NTC接口,直接接地或者接电阻。整个充电周期也是温度的管理周期。线性充电器的散热是通过为电池设置最高温度限制来管理的,电池温度的检测也是主动的。
当遇到以下任一情形时,充电器错误情况会发生:涓流充电超时或者涓流安全定时器超时,充电将停止。如果充电器启用并配置LED时,LED将用于指示充电状态。LED[n]引脚在活动时将吸收5ma的电流,而在禁用时则具有高阻抗。这种设计使得LED非常适合驱动或直接连接到主机的GPIO,特别是在弱上拉配置下。通过TWI配置LED驱动器,可以方便地指示当前处于涓流模式、恒定电流模式、恒压模式还是充电完成状态。当充电完成时,充电指示灯将熄灭;而充电开始时,它则会亮起。
如果没有USB连接可以通过电池进行供电,USB连接后会优先给电池充电。
充电管理的基础地址为0x00000300,偏移地址如下:
充电管理师控制部分最多也是最复杂的,这一部分详情建议参见数据手册。
开发板位置:
开发板提供了两个电池接口,分别为带电池的和不带电池,同时对应的引脚也是全部引出的,注意到接口比较小,可以通过杜邦链接进行充电。PMIC的供电使用的是单独的USB接口供电,这一点要注意一下。
6、外部扩展接口
本开发板支持扩展连接一个nPM Fuel Gauge board(简称nPM-FG),这是一个为实现精准计量,Nordic专门开发了一款提供电池容量建模的辅助工具,具有成本效益的即插即用扩展工具, 专为电池建模所需的电池放电和数据收集而设计, 无需昂贵的测量设备或专业知识。 将nPM FG插入nP M1300 EK,配合nPM PowerUP软件即可轻松方便地进行电池电量建模,实现精准电量计量。
接口原理图:
开发板中的位置:
第三章: 板载单元测试(nPM PowerUp)
通过前期的准备工作,我们基本联通了相关的配置,可以开启具体的测试。本章节主要是测试PMIC的电池管理功能。
一、软硬件设备
被测开发板:Nordic nPM1300 EK
USB-C数据线一条;
USB-C充电线一条;
适配器一个(建议供电使用5V适配器);
600mAh可充电锂电池一个;
nPM PowerUp软件
二、测试目标
体验nPM PowerUp软件中对电池管理的全面控制,熟悉nPM PowerUp软件中各部分的信息与操作。
三、硬件连接
四、测试开始
1、首先发现板卡并连接后需要先关注左侧板块,这一部分可以说是使用前的配置模块。
如上图,如果没有链接供电或者电池,在“CONNECTION STATUS”下的“PMIC”处会有相应提示,例如:没有连接电池、PMIC芯片未供电等等。
接下来就要选择合适的电池模型了,软件默认只有一种(400mAh),我们可以添加新的电池模型,本软件新建电池模型最大支持1350mAh。大家可以根据各自的电池容量以及类型进行选择,本次测试使用的600mAh的可充电锂电池,所以选择相应的模型后就可以显示当前电池的容量,如上图显示的是电池实际容量为680.75mAh,说明这次购买的电池容量是足额的。
还有一个参数就是刷新速度,默认是2s,电池充电一般时间都是比较长的,建议不用更改。
2、指示板界面
指示板界面实际上是一个功能汇总界面在这个界面可以快速对几个功能进行关键数据的配置和控制。
包括电池容量信息(0-100%,步进0.1)、电池状态(电池电压、电流、温度、充电模式)、充电控制(初步设置截至电压、充电电流)、BUCK电路输出(2路)、LDO输出两路(2路)。
接下来我们看一下这些初步控制的效果:
1)电池容量信息及状态信息
实际上这两部分可以算作是一个部分,电池容量的图形化展示实际上就是通过电池电池信息的各种状态在电池模型中的具体体现,目前我们还没有开启充电,采集到的电压、电流、温度等信息是通过PMIC的ADC进行的采集,其中电压范围为2.3-4.45V,电流正数放电(最大1340mA),负数充电(最大800mA),温度范围为-40~85℃(基于NTC),充电模型展示的是充电过程中的各个阶段。
使用万用表测量电压测量结果如下:
2)充电控制
以本次使用的可充电锂电池为例,600mAh的容量,充电限压4.2V,一般的电池充电电流为1C,初步设置一个充电电流和截至电压(200mA和4.2V):
可以看到电池信息随即发生了变化:
充电时电池端电压为4.13V,充电200mA,充电状态为恒流阶段,可以看到温度比一开始有提高啊。同时也有一个预估充电完成时间,充电指示灯亮起。
我们在这个时候更改充电电流,充电会停止,所以软件的使用流程也可以给我们一个启示,在充电过程中想要修改充电电流,不管是加大还是减少都需要先关闭充电模式再配置PMIC。
3)BUCK电路
本芯片具有两路的BUCK输出都可以分别图示化进行配置,最大输出电流支持200没A,咱们以BUCK1为例修改输出为1.5V:
实测输出如下:
4)LDO输出
如BUCK电路电路一样,具有两路输出,且可直观图形化配置,以LDO2为例,输出1.5V。
注意在使用LDO1输出时要确保开发板上P16连接到旁路电容,断开P15的Vout2-LSin2和LOW-LSout2,同时P8的IN2必须有2.6V到5.5V的供电(这块直接用Vout2-LSin2连接,算作的外部供电):
实测输出如下:
总体来看还是线性的LED输出更加的准。
3、充电界面
充电界面中包含了所有充电方面的设置参数,甚至可以给过放的电池进行充电,可以挽救一些电池了,对于低容量电池可以进行电流限制,NTC测量也可以通过修改实际使用电阻进行修正,整个电池充电过程的管理控制都可以在这个界面进行配置。
4、输出电路控制界面
BUCK和LDO的全面控制都可以在这个界面中进行。
其中BUCK控制单元如下图:
控制模式支持PFM模式和PWM两种,在自动模式下低负载电流下会选择PFM模式,高负载电流下会变成PWM模式,这种情况下可以保证最高的效率。也可以配置成通过特定的GPIO关闭PWM模式。开关控制也可以配置成通过特定的GPIO进行开启和关闭,例如我们把GPIO0配置成input模式:
这样就可以通过按键进行开启,注意控制引脚低电平为关闭,高电平未开启,通过测试可以看到,但我们将按键GPIO0按下时,BUCK1关闭。
5、GPIO界面
GPIO包括普通的IO和一些状态口的配置,其中普通IO的配置我们在BUCK电路控制中已经接触到了。
GPIO可以被配置成如上图的众多模式,也可以配置上拉下拉情况,开漏模式等等,最大支持6mA电流。
LED实际上属于板卡的扩展部分,对一些基础状态进行直观的展示,如下图,每一个LED输出都是可配置的:
6、直观图
对于电池状态的监控可以进行长时间的监控,并通过图像的方式进行展示,我们可以选择周期进行展示,以下就是我在进行各种功能测试时电池监控图像:
在此期间也充满了电池,虽然依然在开启充电模式,不过实际充电动作已经停止了。