微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI电源管理交流 > BQ7693000使用问题

BQ7693000使用问题

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

你好,我使用的芯片是BQ76930003ATG4C5ZC,使用了一块BQ76930EVM板和EV300,在上位机上显示的地址是0X08,电压数据正常,现在我自己写了一个IIC程序(是使用MCU的IIC接口,不是模拟IIC程序),硬件环境是使用一块8位的飞思卡尔DZ60芯片和BQ76930EVM,将EVM的IIC接口与MCU的IIC接口接上,两块板共地,拔掉了EVM板上J14上的所有跳帽,这个程序测试读写支持IIC协议的AT24C02的EEPROM芯片正常,但是现在不能读取到BQ76930的电压数据,我写的地址是0x10,读的地址是11,急待解决。初始化BQ769芯片的寄存器写入的地址BQ769_INITAdd[11] ={0x00,0x01,0x02,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b}; 在初始化寄存器中写入的配置数据BQ769_INITdata[11]={0x08,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0xAC,0x97,0x19};现在没有数据出来,SDA和SCL都是5V(读取AT24C02时SDA和SCL也是5V),REGOUT是4.5V,使用上位机时EVM这几个电压为2.5V
写入和读取的程序模块:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

byte BQ769_INITAdd[11] ={0x00,0x01,0x02,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b}; //要初始化的寄存器
byte BQ769_INITdata[11]={0x08,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0xAC,0x97,0x19};//向初始化寄存器中写入的数据
byte BQ769_RegAdd[12]={0x0c,0x0d,0x0e,0x0f,0x51};//读取电压的地址

Init_IIC( );

for(i=0;i<11;i++)
{

WRITE_IIC(BQ769_INITAdd[i],BQ769_INITdata[i]);//初始化,写入配置数据,该数据为上位机上的配置信息数据,写命令地址为0X10,先发写命令地址0X10再发读命令地址为0X11(AT24C02读写是这样操作的,这个我也是这样操作)
delayms(5);
}

delayms(1000);

for(i=0;i<4;i++){

readbuf[i]=IIC_read_one_byte(BQ769_RegAdd[i]);//读取电压
cansendbuf[i]=readbuf[i];
delayms(5);
}


(void)CAN1_SendFrameExt(0x002a,0x00,8,cansendbuf);//CAN返回电压数据
////////////////////////////////////////////IIC写函数////////////////////////////////////////////////////////////////////////
IICD=0x10; //发送芯片地址,写命令
while(!IICS_IICIF );
temp = IICS;
IICS_IICIF=1;

IICD=addres; //发送寄存器地址
while(!IICS_IICIF);
temp = IICS;
IICS_IICIF=1;

IICD=date;//写第1个字节
while(!IICS_IICIF);
temp = IICS;
IICS_IICIF=1;

//////////////////////////////////////IIC读函数//////////////////////////////////////////////////////////////////////////////

IICD=0x10; //发送芯片地址,写命令
while(!IICS_IICIF);
temp = IICS;
IICS_IICIF=1;

IICD=address; //发送寄存器地址
while(!IICS_IICIF);
temp = IICS;
IICS_IICIF=1;

IICC1_TXAK=1;
IICC1_RSTA=1; //重新启动

IICD=0x11; //读命令
while(!IICS_IICIF);
temp = IICS;
IICS_IICIF=1;

IICC_TX=0; //读使能
temp=IICD;

while(!IICS_IICIF);
temp = IICS;
IICS_IICIF=1;
temp=IICD; //读一个字节

读写AT24C02一切正常,不知道这个为什么没有数据,全是0XFF

上电之后有对bq76940 的TS pin 给高电平激活么?

按下了EVM板子的BOOT按钮

/

地址修改为0x08也无法通讯么?

如果这样,需要对I2C的波形直接测量,检查是否波形正常。

 波形文档,应该没有读写地址为0X08的吧,7位加上读写位,0X08或0X18,出来就是0X10,0X11或者0X30,0X31啊,这几个地址都试过了。黄色为SCL,绿色为SDA,SCL为83.3K,SCL,SDA,REGOUT分别为5伏,5伏,4.5伏,读出来的是0XFF,是个错误的数据,不接BQ769芯片也是串口显示的也是0XFF

读的是0X00寄存器的数据,没有去读电压数据 了,只读了这个数据

读的是0X00寄存器的数据,没有去读电压数据了,只读了这个数据,没有再读其它的地址了

芯片地址为0X08或0X18,7位地址加上读写位那么写读的地址就是0X10,0X11,或者0X30,0X31,这两种地址都试验过了,还是一样是0XFF。这个是波形,黄色为SCL,绿色为SDA,通信速度SCL是83.3K,读取的是寄存器0X00的数据 ,串口显示是0XFF,只读了0X00的数据,没有再去读其它像电压0X0C寄存器的数据了,先前读出的电压也全是0XFF,EVM板是18V供电,上位机显示是1.8V

地址应该是08 和 09, 可以尝试一下。

SDA线上的平台是由于有两个上拉电平么? 需要去掉一个。

示波器显示上拉电平是500mV? 是表笔*10了么?

改了地址还是不行,IIC程序应该没问题,不然读不了AT24C02,就是读BQ的数据全是0XFF,这是改了芯片初始配置后的波形,SDA, SCL,REGOUT还是分别为5V,5V,4.5V,这个电压是用万能表量的

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

网站地图

Top