工具与软件:
我正在使用 I2C 读取寄存器0x42上的 Vbat 值。 我可以获得读取 MSB 后跟 LSB 的2个字节 。 当读取应包含 LSB 的寄存器0x43时、它与第一次读取的 LSB 不匹配。
PG 向下至模数转换器模块、以更改 VBAT 值。
多个读数集(暂停时间为30秒)显示具有相同读数的重复日志。
由于 LSB 值稍有差异、我无法确定要使用的 LSB 值。 正确的测量值位于2组之间。
从 Saleae 逻辑分析仪日志:
名称类型 start_time 持续时间 ack address 读取数据
I2C 地址20.8408064 0.00008864 TRUE 0x6B FALSE
I2C 数据20.84090016 0.00008848真实0x42 请求寄存器0x42
I2C stop 20.84104928 0.00000016
I2C start 20.84113408 0.00000016
I2C 地址20.84114416 0.00008864 TRUE 0x6B TRUE
I2C 数据20.84123792 0.00008848真实0xA5 读取 VBAT MSB/LSB
I2C 数据20.84133152 0.00008864虚假0x81 这是 VBAT LSB 吗?
I2C stop 20.84143072 0.00000016
I2C start 20.8448 0.00000016
I2C 地址20.84481008 0.00008864 TRUE 0x6B FALSE
I2C 数据20.84490384 0.00008848真实0x43 请求寄存器0x43
I2C STOP 20.84505296 0.00000016
I2C 启动20.84513776 0.00000016
I2C 地址20.84514784 0.00008864 TRUE 0x6B TRUE
I2C 数据20.8452416 0.00008864真实0x7D 读取0x43 -> VBAT-LSB
I2C 数据20.8453352 0.00008864虚假0x53