4个月前
电池剖析
张贴了dlo0 points 11回复I've looked into the UM-B-075 and how to profile a battery using the smartsnippet tools. However without having those equipment I'm not able to run the provided software to generate the LUTs.
I have a DL3021A load meter with battery profiling capabilities I've used to gather data.
In my case I'm using a 110mAh lithiuom ion battery. Am I correct in assuming that the LUT is generated using these principles?
100%= 0mah从电池排出
90%= 11mah从电池排出
80%= 22mAh从电池排出
70%= 33mAh从电池排出
60% = 44mAh discharged from battery
50%= 55mAh从电池排出
40% = 66 mah退出battery
30% = 77mAh discharged from battery
20%= 88mAh从电池排出
10%= 99mAh从电池排出
0%= 110mAh从电池排出
如果是这样,我已经使用110mA负载和2mA负载产生了LUT(由于设备精度而未实现1mA负载)。
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
测试这些表格,报告%似乎已关闭。我正在使用JoulesCope当前仪表通过BLE电池服务验证报告的值以及查看Debug_Soc UART输出质量。
For example, the unit (custom board) is plugged into a USB to charge, at full charge (90mAh charging rate), right after charging is disabled, the UART debug statement reports Soc of 875 and voltage of 4190. Shouldn't at end of charge the Soc be set to 1000 or close to 1000?
电压报告似乎准确地跟踪电池,但SoC相当脱离。
请确认这是创建LUT的正确方法,如果是,为什么SOC报告错误的值?
谢谢,
4个月前
I added calls to socf_get_avg_current(active_count, active_period), and it seems to report correct values. If I take the returned value from socf_get_avg_current() and divide it by 0.277, I should get the result in uA, is this correct?
4个月前
I am using the PXP_Reporter demo with the following modifications:
_ 32MHz crystal instead of 16MHz
_使用上面附加的代码更新了custom_socf_battery_profile.h。
4个月前
我弄明白了这一点
#define SOCF_BATT_CAPACITANCE_ADJ (1)
will set the capacity to 1000 after end of charge is detected.
报告的SOCF_SOC似乎仍然消失了很多。在使用44mAh(60%)后的特定情况下,SOCF_SOC仍然报告了90%的电池电量。
4个月前
1)将Custom_socf_battery_profile.h恢复为默认SDK
2) #定义DEBUG_SOC
3)pm_set_sleep_mode(pm_mode_active)
在pxp_reporter和build debug选项中。闪过定制板并观看终端输出。
电池的第一次读取似乎报告了大致正确的SOC,电压报告准确。但是,随着时间的推移,电池上的A〜1.5mA恒定漏极(从运行PXP_Reporter,没有额外的负载放在设备上),SOC级别随着电压下降而上升。登录以下:
[1秒] DLG_SWFG SOC = 904 Vol = 4104 ... [1000秒] DLG_SWFG SOC = 908 Vol = 4075
4个月前
嗨DLO,
Apologies for the delay. What is the battery that are using? Can you please share the battery specs? It’s very important to characterize the battery correctly and use the a LUT with correct values. Are you using the pxp_reporter example of the SDK to test this?
由于它是DA14683,SS Studio v1.6.3包括电池分布器工具 - 您需要使用源仪,电压计和分流电阻器。在第6节电池配置文件工具中,您将找到电池分析所需的所有可用信息。
The tool is installed in C:\Program Files (x86)\Dialog Semiconductor\Battery Profiler for DA1468x windows path. Follow the procedure described in the document for the battery profiling.
谢谢,PM_DIALOG.
4个月前
The battery used is a 110mAh (https://www.digikey.com/en/products/detail/sparkfun-electronics/PRT-138…)
是的,使用pxp_reporter进行测试。
4个月前
以下是启用#debug_soc的一些查找:
Debug Count Average is the average count of the reported active_count used during socf_get_soc_active(void).
Debug Current Average is the average count divided by 1000 of the socf_get_avg_current from the active_count inside socf_get_soc_active(void).
joulescope是测量仪器在该时间段内的平均电流。
Delta is the differnce in reported value by the SOC and the Joulescope.
请注意,当电流增加时,增量不是线性的。
我相信这很明显,库仑计数是不准确的。
请与我一起调用来讨论这一点。它是紧急的,它会影响我们的发展时间。特别是我需要知道你的公式来自哪里以及我们如何解决这些方法来获得正确的结果。
这个数字如何确定?
#define socf_max_coulomb_count_per_ma_sec 73584ll.
为什么需要这两种情况?
if(count> 0){offset_current = 500 - (250 * avg_current)/ 5000;} else {offset_current = socf_default_offset_current - (avg_current * 50)/ 1500;}
附件 | 尺寸 |
---|---|
21-0111_coulomb_counter_mapping.pdf. | 406.57 KB |
4个月前