亲爱的Dialog团队:
我们正在使用DA14683板和pxp_reporter应用程序测试SOC功能,DEBUG_SOC和dg_configUSE_SOC已启用。电池(3.7V, 500mAH, PKCELL LP503035)连接单板上的VBAT和Gnd。使用的SDK为DA1468x_DA15xxx_SDK_1.0.14.1081。
案例1:
USB1(CHG)未连接电源。
在这种情况下,电池放电,我们每2-3分钟查询SOC值,我们得到最新的电池百分比。
请在附件“开始放电SOC值”部分(第1页)的附件文件中找到打印在控制台上的SOC日志。
这个箱子没问题。
案例2:
USB1(CHG)已连接电源。
在这种情况下,当我们每2-3分钟查询一次SOC值时,我们不会得到最新的电池百分比,但是,电池会在后台充电。
请在附件文件“开始充电SOC值”部分(第42页)中找到所附的SOC日志。从这些日志中,我们观察到SOC值没有发生变化。
然而,当我们重置电路板时,我们观察到电池百分比显著增加。请参考SOC日志文件,在附件“开始充电重置SOC值”部分(第83页)。这意味着电池在后台充电。
这种情况并不好,因为当应用程序运行时,我们应该知道最新的电池百分比值。
请帮助我们解决这个问题。
请让我们知道任何澄清。
致以最亲切的问候
Malli
设备:

嗨Malli,
你是否改变了SDK中的任何源代码?您是在EVK板上运行SDK还是在目标板上运行SDK ?
如果你可以附加JLINK,你会定期检查socf_get_soc_active被调用当USB1连接?
请让我知道。
问候,
詹姆斯
亲爱的Dialog团队:
我们使用的是14683 EVK板,SDK中没有修改任何代码。
在custom_socf_battery_profile.h文件中,我们将socf_battery_电容从190修改为500,因为我们使用的是500mAH电池。即使是190的值,我们也有这个问题。
我们尝试将printf语句放在socf_get_soc_active()函数的开头,以检查printf语句的tera term,但我们观察到board挂起。
致以最亲切的问候
Malli
嗨Malli,
在我500mAh电容的测试中,完全没有问题。(da14683 evk + sdk_1.0.14.1081)
SDK中的默认充电电流设置为60mA。
#定义dg_configBATTERY_CHARGE_CURRENT 4 // 60mA
我想知道系统是否几乎消耗了USB的电量。
你在EVK上安装外围设备了吗?放电状态下的功耗是多少?
是否可以像下面设置一样,用更高的充电电流再测试一次?
#定义dg_configBATTERY_CHARGE_CURRENT 10 // 270mA
在源代码中,您可以添加一些变量来了解函数被调用的次数。
__RETAINED静态int32_t socf_get_soc_active_count;
静态int16_t socf_get_soc_active(void)
{
............
Socf_accum_charge_count = Socf_accum_charge_count + active_count;
socf_get_soc_active_count + +;
如果(socf_accum_charge_count < 0) {
Socf_accum_charge_count = 0;
}
...........
}
...........
socf_task(void *pvParameters)
{
...........
printf("[%8ld sec] DLG_SWFG SOC=%4d VOL=%4d COUNT=%ld\r\n", socf_log_time, socf_soc, "
卷,socf_get_soc_active_count);
..........
}
我可以看到下面的日志,
[30秒]DLG_SWFG SOC= 166 VOL=3933 COUNT=25
[31秒]DLG_SWFG SOC= 166 VOL=3934 COUNT=26
[32秒]DLG_SWFG SOC= 166 VOL=3934 COUNT=27
[33秒]DLG_SWFG SOC= 166 VOL=3935 COUNT=28
[34秒]DLG_SWFG SOC= 166 VOL=3935 COUNT=29
[35秒]DLG_SWFG SOC= 166 VOL=3935 COUNT=30
[36秒]DLG_SWFG SOC= 166 VOL=3936 COUNT=31
[37秒]DLG_SWFG SOC= 167 VOL=3937 COUNT=32
[38秒]DLG_SWFG SOC= 167 VOL=3937 COUNT=33
[39秒]DLG_SWFG SOC= 167 VOL=3937 COUNT=34
[40秒]DLG_SWFG SOC= 167 VOL=3937 COUNT=35
[41秒]DLG_SWFG SOC= 167 VOL=3938 COUNT=36
请告诉我你的测试结果。
问候,
詹姆斯
嗨,团队,
我们测试了更高的充电设置,#define dg_configBATTERY_CHARGE_CURRENT 10 // 270mA,但问题仍然保持不变。
EVK没有外设,只有电池连接到EVK。
Socf_get_soc_active()函数每1秒调用一次。
还有其他线索可以解决这个问题吗?
致以最亲切的问候
Malli
嗨Malli,
我已经意识到你已经将电池连接到电路板上的VBAT和GND。电池必须连接到COIN和GND。并且子板的开关必须设置为COIN,才能与电池正常工作。
VBAT是指母板外部LDO供电。不适合用电池充电和操作。
问候,
詹姆斯
亲爱的Dialog团队:
谢谢你的支持。
如附件所示,我们将电池正引脚连接到子板硬币持有人引脚。这样可以吗?
我们对GND连接进行了澄清;电池负引脚是否连接到子板的GND ?
我们收到来自Dialog分销商的通信,将电池负极引脚连接到DK母板上的“VBAT-”J18。所以我们不知道我们应该连接哪个GND的负引脚。
请澄清。
致以最亲切的问候
Malli
嗨Malli,
你必须把电池的负极引脚连接到GND上。如果您将其连接到VBAT-,电流穿过R1(SOCP和SOCN之间)将不会发生。这意味着在充电过程中库仑计数器不会测量电流,SOC也不会发生任何变化。
问候,
詹姆斯
你好,詹姆斯,
我们附上了DA1468X SoC测量电路原理图。你能检查一下,让我们知道这是否正确吗?
如果正确的话,你的陈述“电池负极需要连接到系统GND”似乎与应用原理图相矛盾。请证实。
致以最亲切的问候
维贾伊
嗨Malli,
很抱歉,我的陈述不正确。应用原理图正确。
蓄电池的负引脚必须接在VBAT-上。你对VBAT还有问题吗?
问候,
詹姆斯
亲爱的Dialog团队:
谢谢你的支持。
这很好。
致以最亲切的问候
Malli