目前,ST32 可以成功实现 SBS 命令 读取温度 电压等数据。
但是通过manualfactualacceblock 访问时,读取错误, 目前读取到的都是0x17
时序确认正常
数据格式是 : write : 0x16 + 0x44 + 0x02 + 0x03 + 0x00
read : 0x16 + 0x44 + 0x17
最后读出数据都是0x17?请问是什么原因呢?
user6084630:
使用的stm32 硬件smbus . 速率10k
Star Xu:
回复 user6084630:
SMBUS read block 参考TRM p69 13.1 0x00 ManufacturerAccess() and 0x44 ManufacturerBlockAccess()
user6084630:
回复 Star Xu:
你好,谢谢回复。
我就是参照13.0章节 。
发送数据 write 0x16(地址写)+0x44(manualfectureaccessblock)+0x02(length)+0x03(low)+0x00(high) 读取硬件版本
然后 write(地址写)+0x44(cmd)+0x17(地址读)+
13.0章节 实例回复 数据 是 0x03 0x00 0x00 0x01 ,
我得到的全部是0x17, 最后发送的字节
请问 数据的write 和read 是否是正确的?不正确的话,正确应该是什么样的。
user6084630:
回复 Star Xu:
麻烦给与参考意见呢
user6084630:
回复 Star Xu:
TI 有 SMBUs 的举例程序吗?谢谢!
user6084630:
回复 Star Xu:
或者更加详细的字节 时序图 。谢谢!
user6084630:
回复 Star Xu:
你好。新发现在写完下面数据后,在0x00后面。bq4050 回复了NACK,导致硬件上直接给了stop信号。请问为什么出现NACK呢? write : 0x16 + 0x44 + 0x02 + 0x02 + 0x40
user6084630:
回复 Star Xu:
user1897790:
回复 user6084630:
有解决么,我也遇到同样的问题了;blockread出来全部是0x17