OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3243|回复: 0

视壮科技商显主板RK3288在uboot电量计驱动分析

[复制链接]

60

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
417
金钱
417
注册时间
2018-4-2
在线时间
42 小时
发表于 2018-6-22 10:07:33 | 显示全部楼层 |阅读模式
视壮科技商显主板RK3288在uboot电量计驱动分析
1、uboot添加电量计fg驱动:
修改u-boot\drivers\power\fuel_gauge\fg_cw201x.c
#define COMPAT_ROCKCHIP_CW201X "cw2013"        
宏定义COMPAT_ROCKCHIP_CW201X 必须与内核的dts里面的节点一致,如下:
CW2015@62 {
                compatible = "cw2013";
                status = "okay";

2、uboot修改系统正常启动的电压门限宏定义,低于这个电压,禁止uboot启动内核,并关机。
u-boot\include\configs\rk32plat.h
#define CONFIG_SYSTEM_ON_VOL_THRESD        7500        //7500表示7.5V,如果不接外部电源,电池电压低于7.5V时,系统不能启动。

3、添加低电压图片:
1)拷贝u-boot\tools\resource_tool\resources\images\battery_fail.bmp到kernel根目录下。
2)修改kernel\arch\arm\Makefile,将battery_fail.bmp编译进固件
        LOGO := $(notdir $(wildcard $(srctree)/logo.bmp)) $(notdir $(wildcard $(srctree)/battery_fail.bmp))
3)修改uboot/board/rockchip/common/rkboot/fastboot.c
static void board_fbt_low_power_off(void)
{
        if (is_power_low()) {
                if (!is_charging()) {
                        FBTERR("low power, shutting down...\n");
#ifdef CONFIG_LCD
#ifdef CONFIG_RK_FB
                        //TODO: show warning logo.
        -              show_resource_image("image/battery_fail.bmp");
        +              show_resource_image("battery_fail.bmp");

4、uboot电压计算
uboot/drivers/power/fuel_gauge/fg_cw201x.c
cw_get_vol()
{
-        voltage = value16_1 * 305;
-        return voltage/1000;

//与内核fg驱动计算公式一致。
+        voltage_jason = (value16_1 * 312 / 1024)*2;
+        return voltage_jason;

}

uboot计算出来的电压要比kernel计算出来的电压高0.3V左右。板子一上电uboot就计算电压,所以电压值会偏高一点。
uboot电量百分比的计算公式依赖于电压,所以要注意电量百分比的计算。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 12:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表