关于BQ28400的SMBus通讯及地址问题
小弟我最近在使用BQ28400,但是在使用SMBus跟它通信的时候,总是通讯不上,能成功发送起始位并且传送地址,但是发完地址后,应答信号是NACK而不是ACK,且在NACK应答信号过后,波形如下图。
还有就是对于BQ20Z45-R1这个片子,其地址明明是0x16(见bq20z40-R1/bq20z45-R1 Technical Referece 的2.10.3节,原文是The bq20z40-R1/bq20z45-R1 uses address 0x16 on the SMB for communication.)但是在TI官网上下载的软件例程(压缩文件slaa476a.zip)文件里面,文件夹Wide_Vin_Battery_Charger下的例程在通讯的时候,却用的是0x0B(smbus.h头文件中有#define SMBUS_SLAVE_ADDRESS 0x0B),这是为什么?
在通讯的时候,究竟该用哪一个地址呀?
我没有购买EV2x00的开发套件,就是自己画的硬件电路然后做出板子,CPU是MSP430f5438。
BQ28400读写地址为0x17和0x16(包含了读写位),从你的波形看结果是0x2C。
谢谢。我已经将地址改过来了,但是任然无应答,波形如下,且地址发完之后,发送缓冲器中的数据发不出去,我用的MSP430F5438中的I2C模块和BQ28400通信。
想请教一下我读BQ28400的过程哪里有问题? 按照这个流程,读不到数据。 过程如下:
初始化(7位地址模式,主模式写,装入BQ28400地址)-------发送起始信号---------将要发送的命令装入发送缓冲器-----------等待UCTXSTT位清零----------清零UCTR
位,转为主模式接收-----------重新发送起始信号-------------读接收数据缓冲器。
一般针对通信的问题,可以采用示波器抓取EVM和EV2400/EV2300通信的波形和自己实际系统中的波形对比一下,看是否正常。
谢谢,问题已经解决了。
能分享下怎么解决的么?我也遇到这个问题,波形跟你的很像,地址是0x16,但就是没反应,是NACK