OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 172|回复: 0

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

[复制链接]

  离线 

46

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
325
金钱
325
注册时间
2018-4-2
在线时间
37 小时
发表于 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电量百分比的计算公式依赖于电压,所以要注意电量百分比的计算。
回复

使用道具 举报

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

本版积分规则




关闭

必看,必学:"原子哥”力荐上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-9-23 16:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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