微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI电源管理交流 > IO口模拟 IIC 读取 BQ20Z95读取电量信息 这样的方法对吗?

IO口模拟 IIC 读取 BQ20Z95读取电量信息 这样的方法对吗?

时间:10-02 整理:3721RD 点击:

       这个程序  能读到 数据 但是 不知道为什么 每次都出来的都不太一样 有时是实际的一半 有时 又莫名的出现了一个 0X17 难道是时    BQ20Z95 再向M3 写数据也会先给个0X17 写数据吗  打个比方 我现在电量是100  有时收到的数据是0X64 有时收到的是 0X32  有的时候 会是0X17  求大神指导下 我的问题 到底在哪儿。我邮箱:wujc@gwsoft.com.cn  MR_WU

         IIC_Start();  
        IIC_Send_Byte(0X16|0x00);//»       
        IIC_Ack();
        IIC_Send_Byte(0X0e);
        IIC_Ack();    
        IIC_Start();
        IIC_Send_Byte(0X16|0x01);
        IIC_Ack();
        buf[0]=IIC_Read_Byte();
        IIC_Stop();

自己给自己回复下哈  问题找到了 用逻辑分析仪 做了波形分析  程序 流程是 start +send(16 )+ack +send(0x0d )+ ACK  +start +send(0x17 ) +ack +dlay_ms(2) +Read(1byte)+Nack     clk=16us   希望对你们有帮助

首先得确保模拟IIC的时序正确。

你可参考这个顺序来读取BQ20Z95的数据:

Start + Device address + Write + ACK + Command + ACK + Sr +Device address + Read + ACK + Byte #0 + ACK + Byte #1 +ACK + PEC + NACK + Stop

举个例子,要读Full Charge Capacity 0x10,则:

Read Word: cmd=10, result=AB 0A

16 10 17 AB 0A 13(H)

谢谢 

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top