微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI电源管理交流 > BQ76940能对寻址信号响应,但接着对寄存器信号响应不了

BQ76940能对寻址信号响应,但接着对寄存器信号响应不了

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

这个问题困扰很久了,CAP1,CAP2,CAP3,REGOUT上都有电压

我现在想读寄存器0x50里的数据,用如下程序

IIC_Start();
IIC_Send_Byte((0X08<<1 | 0));
IIC_Wait_Ack();

IIC_Send_Byte(0x50);
IIC_Wait_Ack();

BQ76940对第一个IIC_Wait_Ack();有ACK,但第二个没ACK,这是什么问题?

建议把实测的波形附上。

检查下软件语句吧,这里的硬件上已经ready肯定是可以读取

  1. 确实是软件语句的问题,IIC_Wait_Ack()这个函数的问题,第6行开始,SDA输出模式延时了5us,应该是时间太长了
  2. u8 IIC_Wait_Ack(void)
  3. {
  4.      u8 ucErrTime=0;
  5.      SDA_OUT(); 
  6.      IIC_SDA=1;
  7.      delay_us(5);
  8.      IIC_SCL=1;
  9.      delay_us(5);
  10.      SDA_IN(); //SDAÉèÖÃΪÊäÈë
  11.      while(READ_SDA)
  12.      {
  13.             ucErrTime++;
  14.            if(ucErrTime>250)
  15.            {
  16.                  IIC_Stop();
  17.                  return 1;
  18.            }
  19.       }
  20.       IIC_SCL=0;
  21.       return 0;
  22. }

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

网站地图

Top