[RK3588-Android12] 关于BQ25703充电IC+CW2017电量计调试

问题描述

BQ25703充电IC+CW2017电量计调试


解决方案:

附上dts配置文件

&i2c6 {
	clock-frequency = <400000>;
	status = "okay";
	// CONFIG_BATTERY_CW2017
	cw2017: cw2017@63 {
		status = "okay";
		compatible = "cellwise,cw2017";
		reg = <0x63>;
		// 	CW2015是68个bytes CW2017是需要80个bytes 
		// RK原厂默认参数
		// cellwise,battery-profile = /bits/ 8
		//    <0x3C 0x00 0x00 0x00 0x00 0x00 0x00 0x00
		// 	0xB0 0xC4 0xBF 0xB9 0x9B 0x97 0xE0 0xCF
		// 	0xC1 0xCD 0xBB 0x9D 0x88 0x7C 0x65 0x56
		// 	0x52 0x50 0x4E 0x97 0x79 0xD2 0xDE 0xFF
		// 	0xE5 0xB4 0x71 0x7C 0xB0 0xC5 0xAE 0x93
		// 	0x9D 0xB5 0xCF 0xD5 0xC6 0xB0 0x99 0x89
		// 	0x82 0x85 0x91 0xA8 0xC1 0xC9 0xB0 0x43
		// 	0x00 0x00 0x90 0x02 0x00 0x00 0x00 0x00
		// 	0x00 0x00 0x64 0x00 0x00 0x00 0x00 0x00
		// 	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xA2>;
		// 电量计那边给的一组默认参数
		cellwise,battery-profile = /bits/ 8
		   <0x5A 0x00 0x00 0x00 0x00 0x00 0x00 0x00
			0x9E 0xC8 0xD2 0xC5 0xC2 0xCF 0x53 0x25
			0x10 0xF5 0xEB 0xE1 0xB7 0x93 0x83 0x6E
			0x5D 0x4D 0x42 0x54 0x94 0xDC 0x76 0xD7
			0xD7 0xD2 0xD2 0xD0 0xCE 0xCC 0xC4 0xCD
			0xC3 0xBD 0xCB 0xAE 0x96 0x8A 0x83 0x75
			0x67 0x61 0x76 0x8C 0xA4 0x96 0x50 0x66
			0x00 0x00 0x90 0x02 0x00 0x00 0x00 0x00
			0x00 0x00 0x64 0x00 0x00 0x00 0x00 0x00
			0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x22>;
		cellwise,dual-cell = <1>;
		cellwise,monitor-interval-ms = <5000>;
        //设置低电量提醒,当电池电量到10%的时候会发出中断
        cellwise,alert-level = <10>;
        //电池容量,5000mah
        cellwise,design-capacity-amh = <5000>;
        //充电IC节点
		power-supplies = <&bq25703>;
		monitored-battery = <&battery>;
	};
	
	// 我这里充电走的是DC,没有走Typc充电。所以PD部分舍弃了
	bq25703: bq25703@6b {
		status = "okay";
		compatible = "ti,bq25703";
		reg = <0x6b>;
		//ti,usb-charger-detection = <&usbc0>;
		// CHRG_OK_H GPIO0_B7_D
		interrupt-parent = <&gpio0>;
		interrupts = <RK_PB7 IRQ_TYPE_LEVEL_LOW>;
		// BQ_OTG_EN_H GPIO3_D2_D
		// otg-mode-en-gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&charger_ok>;
		extcon = <&u2phy0>;
		// 充电电流 样机没关系 标准1A 最大2.5A
		ti,charge-current = <2500000>;
		ti,max-input-voltage = <20000000>;
		ti,max-input-current = <6000000>;
		// 充电电压
		ti,max-charge-voltage = <8750000>;
		// 输入电流
		ti,input-current = <2000000>;
		ti,input-current-sdp = <500000>;
		ti,input-current-dcp = <2000000>;
		ti,input-current-cdp = <2000000>;
		ti,minimum-sys-voltage = <7400000>;
		ti,otg-voltage = <5000000>;
		ti,otg-current = <1500000>;
		pd-charge-only = <0>;
		regulators {
			vbus5v0_typecc: vbus5v0-typecc {
				regulator-compatible = "otg-vbus";
				regulator-name = "vbus5v0_typecc";
			};
		};
	};
};

遇到的第一个问题是:
bq25703驱动一直打印:
console:/ # dmesg | grep bq
[ 10.068822] bq25700-charger 6-006d: Error applying setting, reverse things back
[ 10.068830] bq25700-charger: probe of 6-006d failed with error -22
这里是dts配置中有冲突配置,经过查找是pinctrl-0 = <&charger_ok>;的gpio被vcc_3v3_sd_s0占用了,导致驱动打印, reverse things back。
而cw2017驱动一直打印:
console:/ # dmesg | grep cw2017
[ 10.068681] cw2017 6-0063: battery-profile must be 80 bytes
[ 10.068685] cw2017 6-0063: Failed to parse cw2017 properties
[ 10.068692] cw2017: probe of 6-0063 failed with error -22
在上网没找到2017的电池配置,直接写了一组CW2015的配置参数导致的。
CW2015是68个bytes CW2017是需要80个bytes 这里需要注意。
接下来遇到的问题是:
bq25703驱动一直打印:
console:/ # dmesg | grep bq
[ 18.446271] wgf:bq25700 —> Chip ID : -6
[ 18.446277] bq25700-charger 6-006d: Cannot read chip ID.
打印的Chip ID值是-6-- 这是I2C通信失败,可以测量下I2C波形。
请添加图片描述在这里插入图片描述
示波器测量下I2C波形,看Clock和波形都正常。降低clock-frequency从400降到10,还是报Chip ID : -6。
最后发现是 I2C地址是6b 不是规格书的6d。相当坑爹。所有有时候不能相信规格书。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/682662.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字影像产业园的三大赋能:科技、创新与无限可能

数字影像产业园作为文创产业的重要载体&#xff0c;以科技为核心驱动力&#xff0c;不断推动产业的技术革新和升级。 园区内汇聚了最前沿的数字技术资源&#xff0c;高清摄影设备、虚拟现实技术、人工智能应用等尖端科技在这里得到广泛应用&#xff0c;不仅提升了生产效率&…

如何一键批量下载淘宝高清主图、详情图、sku及视频信息

图片对电商至关重要&#xff0c;因为它们是商品展示的主要方式&#xff0c;直接影响消费者的购买决策。高质量的图片能够吸引顾客注意&#xff0c;提升产品吸引力&#xff0c;增加点击率和转化率。此外&#xff0c;好的图片还有助于建立品牌形象&#xff0c;提高客户信任度。 …

算法金 | 10 大必知的自动化机器学习库(Python)

大侠幸会&#xff0c;在下全网同名[算法金] 0 基础转 AI 上岸&#xff0c;多个算法赛 Top [日更万日&#xff0c;让更多人享受智能乐趣] 一、入门级自动化机器学习库 1.1 Auto-Sklearn 简介&#xff1a; Auto-Sklearn 是一个自动机器学习库&#xff0c;基于 Python 的 scikit…

IP黑名单与IP白名单是什么?

在IP代理使用中&#xff0c;我们经常听到黑名单与白名单两个名词&#xff0c;它们不仅提供了强大的防御机制&#xff0c;还可以灵活应对不同的安全威胁。本文将详细探讨IP黑名单和白名单在网络安全中的双重屏障作用。 一、IP黑名单和白名单定义 IP黑名单与IP白名单是网络安全中…

AI技能培训课程知识付费小程序的作用是什么

AI近些年逐渐走入工作生活中&#xff0c;如AI创作/绘图/视频/配音/渲染等&#xff0c;妙用AI可以节约大量时间和带来灵感&#xff0c;不少平台或个人也在围绕其开展生意&#xff0c;技术在不断进步&#xff0c;对此感兴趣及想要应用的用户/单位也不少&#xff0c;但苦于不掌握不…

linux信号集与信号掩码-保护信号处理程序,确保进程正确运行

在Linux环境下&#xff0c;当进程收到信号时&#xff0c;如何优雅地处理并确保程序的正常运行?这就需要借助信号集和信号掩码的功能。本文将为你揭开信号集和信号掩码的神秘面纱&#xff0c;并通过生动的代码示例&#xff0c;让你彻底掌握在C程序中使用它们的技巧。 一、信号集…

【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【06】【商品服务】接口文档地址_三级分类_SPU_SKU

持续学习&持续更新中… 学习态度&#xff1a;守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【06】【商品服务】接口文档地址_三级分类_SPU_SKU 接口文档地址三级分类效果图建表后台组建数据的树形结构在人人(后台管理系统)中实现管理商品的三级分类路径规则使用…

开关电源基本原理1

目录 内容概述 关于电感 认识电感 电感充电 电感储能 电感充电 电感参数 电感放电 利用电感升压 电感电流波形 伏秒法则 电流纹波率 电感电流三种导电模式 电流纹波率与频率的关系 电流纹波率与电感值的关系 电感值与电感体积 电路纹波率r的最优值 电感值与电…

出行预测:端午打车需求将上涨31%,滴滴发放超2亿司机补贴

作为上半年的“收官”小长假&#xff0c;端午假期接棒“五一”的出行热度&#xff0c;中短途周边游持续升温&#xff0c;海滨旅行、龙舟民俗体验成为新的出行看点。 滴滴出行预测&#xff0c;端午节当天&#xff08;6月10日&#xff09;打车需求将同比去年上涨约31%。今年端午…

[数据集][图像分类]十二生肖分类数据集8492张12类别

数据集类型&#xff1a;图像分类用&#xff0c;不可用于目标检测无标注文件 数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;8492 分类类别数&#xff1a;12 类别名称:["dog","dragon&q…

【RISC-V】站在巨人的肩膀上——看开源芯片、软件生态、与先进计算/人工智能/安全的结合

目录 会议议程专题二&#xff1a;RISC-V与先进计算基于RISC-V的后量子密码芯片设计&#xff0c;刘冬生&#xff0c;华中科技大学存算一体集成芯片&#xff0c;刘琦&#xff0c;复旦大学面向端侧大模型计算的RISC-V矩阵扩展架构&#xff0c;复旦大学&#xff0c;韩 军 专题五&am…

电子电气架构 —— 刷写模式:并行刷写

电子电气架构 —— 刷写模式:并行刷写 我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 人们会在生活中不断攻击你。他们的主要武器是向你灌输对自己的怀疑:你的价值、你的能力、你的潜力。他们往往会将此…

云原生架构案例分析_5.某体育用品公司云原生架构的业务中台构建

1.背景和挑战 某体育用品公司作为中国领先的体育用品企业之一&#xff0c;在2016年&#xff0c;某体育用品公司启动集团第三次战略升级&#xff0c;打造以消费者体验为核心的“3”&#xff08;“互联网”、“体育”和“产品”&#xff09;的战略目标&#xff0c;积极拥抱云计算…

基于GFlowNets的蚁群抽样组合优化

本文将基于GFACS论文&#xff0c;探讨其核心思想、技术细节以及在实际应用中的优势。 GFlowNet&#xff1a;摊销MCMC成本的有效工具 GFACS的核心是GFlowNet&#xff0c;它通过训练学习状态转移的概率分布&#xff0c;从而替代传统的MCMC采样方法。GFlowNet的优势在于&#xff1…

Java——循环语句

下面我们介绍循环控制结构。如果您想要同样的操作执行多次&#xff0c;就需要使用循环结构。Java中有三种主要的循环结构&#xff1a; for 循环while 循环do…while 循环 一、for 循环 for循环是一种控制结构&#xff0c;用于反复执行一段代码&#xff0c;直到满足指定的条件…

每天五分钟深度学习PyTorch:Tensor张量的索引和切片

本文重点 有时候当我们拥有一个Tensor张量的时候,我们可能需要获取它某一维度的信息,那么此时我们就需要索引和切片的技术,它们可以帮助我们解决这些问题。 切片操作 a是四维的,然后默认是从第一维开始取,逗号表示取不同的维度 a[:2]表示第一维取0,1,后面三维取所有 …

JAVA小案例-分别计算100以内奇数和偶数的和

JAVA小案例-分别计算100以内奇数和偶数的和 没啥可说的&#xff0c;就是for循环加if分支&#xff0c;也可以用while写。 代码如下&#xff1a; public class Jiouhe {/*** 分别计算100以内奇数和偶数的和* param args*/public static void main(String[] args){int sum10;in…

C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍

文章目录 前言一、快速排序非递归二、归并排序五、归并排序非递归总结 前言 C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍 一、快速排序非递归 快速排序非递归的定义 快速排序非递归&#xff0c;需要使用栈来实现。将左右下标分别push到栈中。在栈为…

【ubuntu软件版本管理】利用update-alternatives管理ubuntu软件

​ 我们有的时候希望在安装了新软件之后保留旧版本的软件&#xff0c;比如希望保留旧版本的gcc&#xff0c;以防以前写的C编译出问题&#xff0c;这时候就需要版本管理软件update-alternatives。 ​ 在此之前我们需要先弄清楚&#xff0c;什么是ubuntu的软件&#xff1f;拿C源…

微服务开发与实战Day02 - Docker

一、Docker快速入门 快速构建、运行、管理应用的工具 安装部署教程&#xff1a;Docs 1. 部署MySQL 测试连接&#xff1a; 镜像和容器 当我们利用Docker安装应用时&#xff0c;Docker会自动搜索并下载应用镜像&#xff08;image&#xff09;。镜像不仅包含应用本身&#xff…