高通8X16电池BMS算法(二)【转】

本文转载自:http://www.voidcn.com/blog/yanleizhouqing/article/p-6051912.html

上一篇主要讲电池相关的一些知识,上节忘记讲了,电池一般分为电量计电池和非电流计电池,电量计电池,就不需要用pmu8916的IC,当然这只是只,不需要BMS来计算soc,而jni层也需要读取电流计的电池相关属性。

这一节主要是根据代码进行相关的分析。

1. 先看probe的代码:

static int qpnp_vm_bms_probe(struct spmi_device *spmi)
{
	...........
	..........
	...........
	..........

	//这里把电池的配置文件dtsi的读出来,并存到当前的结构体。
	rc = set_battery_data(chip);
	rc = config_battery_data(chip->batt_data);
	..........
	..........
	//这个是核心的工作,一个线程,BMS的主要内容在此
	INIT_DELAYED_WORK(&chip->monitor_soc_work, monitor_soc_work);
	..........
	..........

	//电池一些常规的检测,主要从PMIC上读到的相关信息
	battery_insertion_check(chip);
	battery_status_check(chip);

	/* character device to pass data to the userspace */
	rc = register_bms_char_device(chip);
	if (rc) {
		pr_err("Unable to regiter '/dev/vm_bms' rc=%d\n", rc);
		goto fail_bms_device;
	}

	the_chip = chip;
	//这个也很重要,我们从上节知道,初值last_ocv_soc是非常重要的,决定着后面的soc估值算法
	calculate_initial_soc(chip);

	//设置和注册电池的power supply
	/* setup & register the ba
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式小庄老师

要是觉得不错,就给我点支持吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值