STM32单片机读取bq40z50数据时,偶尔会出现写入器件地址有响应,写入寄存器地址时,无响应,频率不高,一天会出现一次。
另外一个现象,偶尔读取数据出错,比如一个寄存器值正常回读为0x17 0x01加上CRC校验字节,偶尔会出现回读值为0x17 0x17 0x17,即芯片会把第一个字节重复发送三遍。尝试过模拟收到第一个字节不给ACK,后续读回为0xff 0xff,确定不是此原因。
SMBUS驱动仔细检查过,不会有问题,猜测会不会是bq40z50芯片没有及时准备好数据,导致数据传输的时候重复传输第一个字节。
望大神指点下!!!
Star Xu:
您的采样频率是多少,推荐用100khz再试一下
user5941851:
回复 Star Xu:
用IO口模拟SMBUS,时钟大概80k;也用单片机集成硬件SMBUS 50kHZ测试过,都存在相同的问题;
采样频率会对这个有影响吗?
Hugo Zhang:
回复 user5941851:
用IO口模拟SMBUS,是否有对时钟延展有做处理?
Reagan Lu:
您好,您的问题解决了么,我这边调试BQ20Z40的SMBUS也出现了此问题,望知道,谢谢!