我研究了UM-B-075以及如何使用SmartSnippet工具配置电池。但是,在没有那些设备的情况下,我无法运行提供的软件来生成LUT。
我有一个DL3021A负载表,带有电池分析功能,我以前用于收集数据。
在我的情况下,我正在使用110mah lithiom离子电池。我在假设使用这些原则生成LUT时,我是否正确?
100% = 0mAh discharged from battery
90% = 11mAh discharged from battery
80% = 22mAh discharged from battery
70% = 33mAh discharged from battery
60%= 44mAh从电池排出
50%= 55mAh从电池排出
从电池排出40%= 66mAh
30%= 77mAh从电池排出
20% = 88mAh discharged from battery
10% = 99mAh discharged from battery
0%= 110mAh从电池排出
If so, I've generated the LUTs using 110mA load and 2mA load (1mA load was not achieved due to equipment accuracy).
static const int16_t vol_dis_low_0 [vol2soc_lut_size] = {
3450,3510,3561,3591,3634,3681,3743,3833,3934,4053,4170
};
static const int16_t vol_dis_high_0 [vol2soc_lut_size] = {
2900,3193,3291,3346,3392,3443,3509,3595,3694,3802,4021
Testing these tables, the reporting % seems to be off. I'm using a Joulescope current meter to verify against the reported values via BLE battery service as well as looking at the DEBUG_SOC UART output statesments.
例如,例如,单位(定制板)将USB插入到USB上,充分充电(90mAh充电率),在充电后右侧,UART调试语句报告875的SOC和4190的电压。不应该结束充电SOC设置为1000或接近1000?
The voltage reporting seems to be accurately tracking the battery, but the Soc is fairly off.
Can you please confirm this is the correct way to create LUTs and if it is, why is the Soc reporting wrong values?
Thank you,
我添加了对SoCF_Get_avg_current(Active_count,Active_Period)的调用,似乎报告了正确的值。如果我从socf_get_avg_current()中占据返回值并将其划分为0.277,我应该在UA中获得结果,这是正确的吗?
我正在使用pxp_reporter演示并使用以下修改:
_ 32MHz水晶而不是16MHz
_ updated the custom_socf_battery_profile.h with the code attached above.
I figured out that this
#define socf_batt_capacitance_adj(1)
在检测到充电结束后将将容量设置为1000。
报告的SOCF_SOC似乎仍然消失了很多。在使用44mAh(60%)后的特定情况下,SOCF_SOC仍然报告了90%的电池电量。
Hi dlo,
请让我检查一下,我会回复你。
Thanks, PM_Dialog
1)将Custom_socf_battery_profile.h恢复为默认SDK
2)#define debug_soc
3) pm_set_sleep_mode(pm_mode_active)
in pxp_reporter and build debug option. Flashed the custom board and watched the terminal output.
The first read of the battery seems to report approximately correct SOC and the voltage reporting is accurate. However, as time go by, with a ~1.5mA constant drain on the battery (from running pxp_reporter, no additional load placed onto device), the SOC level goes up as voltage goes down. Log below:
Hi dlo,
为延迟道歉。什么是使用的电池?请您分享电池规格吗?正确地表征电池并使用具有正确值的LUT非常重要。您是否使用SDK的PXP_Reporter示例来测试此问题?
Since it is a DA14683, the SS Studio v1.6.3 includes a Battery Profiler tools – you should need to use a source meter, voltage meter and shunt resistor with the tool. In section 6 Battery Profiler Tool, you will find all the available information you need for the battery profiling.
该工具安装在C:\ Program Files(X86)\ Dialogion Semicondyabo国际娱乐uctor for DA1468X Windows路径中的C:\ Program Files(X86)\ Dialogile Semiconductor。按照文档中描述的程序进行电池分析。
Thanks, PM_Dialog
使用的电池是110mAh(https://www.digikey.com/en/亚博电竞菠菜products/detail/sparkfun-electronics/prt-1385 ...)
Yes, using PXP_Reporter to test.
这是一些发现enabling #debug_soc:
调试计数平均值是SOCF_GET_SOC_ACTION(VOID)期间使用的报告active_count的平均值。
调试当前平均值是从socf_get_soc_active(void)中的Active_count中的1000个SOCF_GET_AVG_CURREND。
Joulescope是measuring instrument's average current during that time period.
三角洲是SoC和JoulesCope报告的价值的差异。
Notice the Delta is not linear, it increases as the current increases.
I believe it is obvious the Coulomb count is inaccurate.
Please setup a call with me to discuss this. It is urgent and it's affecting our development time. In particular I need to know where your formula are coming from and how we can fix these to get the correct results.
How is this number determined?
#define socf_max_coulomb_count_per_ma_sec 73584ll.
Why are these two scenario needed?
Hi dlo,
为延迟道歉 - 可能是我错过了你的最后一次评论。让我在内部升级这个,我很快就会回复你。
Thanks, PM_Dialog
Hi dlo,
We have taken this offline from the forum and will reach out to you directly.
Thanks, PM_Dialog