微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI电源管理交流 > MSP430G2553 与BQ76940DEMO板IIC无法通信

MSP430G2553 与BQ76940DEMO板IIC无法通信

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

MSP430G2553 与BQ76940  DEMO板IIC无法通信

1、硬件采用MSP430G2553 demo板和BQ76940  DEMO板

2、编译环境采用IAR5.3 FORMSP430 ,程序下载的TI官网上BQ76940目录下的例程

3、开发设计处于方案样机阶段

4、调试过程中单步运行程序停在下面函数

int I2CSendBytes(unsigned char I2CSlaveAddress, unsigned char *DataBuffer, unsigned int ByteCount, unsigned int *SentByte)

中的下面的位置

 while(DelayCounter < DELAY_LIMIT && (!(IFG2 & UCB0TXIFG) || (UCB0CTL1 & UCTXSTT))) //check if the byte has been sent   

{     DelayCounter++;    }

5、TI官网的程序可以拿来直接用吗?还是需要修改某些参数

请先确认一下BQ76940的后缀是什么。不同的后缀代表不同的I2C地址(0x08或0x18),和I2C通讯带不带CRC校验。

非常感谢你的提醒,demo 板上的是bq7694000是不带CRC,地址是0X08,

但是我在官网下载的程序是带CRC的程序,你那有不带CRC的程序吗?

还是初始化操作,我把//后的代码修改了为上面的直接调用例程里的函数,单步运行时还是一样的效果,运行到那个位置就不走了

int GetADCGainOffset() {  int result;

 result = I2CReadRegisterByte(BQMAXIMO, ADCGAIN1, &(Registers.ADCGain1.ADCGain1Byte));  

result = I2CReadRegisterByte(BQMAXIMO, ADCGAIN2, &(Registers.ADCGain2.ADCGain2Byte));

 result = I2CReadRegisterByte(BQMAXIMO, ADCOFFSET, &(Registers.ADCOffset));        

//result = I2CReadRegisterByteWithCRC  (BQMAXIMO, ADCGAIN1, &(Registers.ADCGain1.ADCGain1Byte));

 //result = I2CReadRegisterByteWithCRC(BQMAXIMO, ADCGAIN2, &(Registers.ADCGain2.ADCGain2Byte));

 //result = I2CReadRegisterByteWithCRC(BQMAXIMO, ADCOFFSET, &(Registers.ADCOffset));

 return result; }

 

 

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

网站地图

Top