主题中讨论的其他器件:BQSTUDIO、 EV2400
跟进上一个线程、 检查手册 SLUA801并 实现了扩展命令的建议工作流程。
上一主题中提到的情况会持续存在、并会进行额外的观察。
1.从完整块读取的偏移量
除了从特定的块偏移读取两个字节、一个新的实现已经被尝试读取整个块。
写入命令为0x40、读取了32个字节。
接收到异常格式的返回数据。 读取的数据与手册一致、但 读取的字节偏移量不正确。 例如、读取 ID 为0x52的子类状态时、 在偏移5而不是6中读取了 Q Invalid Max V。 所有数据被前移一个字节。 因此、我不确定哪个字节会被省略。
此外、事务的最后一个字节(字节31)是校验和值。 我不确定手册中是否有提及。
2. 无响应 BlockData()访问命令
与上面的设置相似、写入命令被更改为0x46以使用偏移量 6访问块值 来直接访问 Q INVALID Max V 值。 但是、返回的读取数据与上一条命令相同。 0x40和0x46的 BlockData ()返回相同的数据、这是意外的。
3.在 BlockData()之前要求校验和写入
我不确定我的理解是否正确、但在设置新的 blockData 值之前、必须传输待处理写入块数据的校验和值、以避免 NACK 情况。
手动 SLUA801似乎在写入块数据之后执行校验和写入、这可能与手动 SLUUAS7B 中的建议不一致。
我在这个观察中可能是错的。 尽管 NACK 的情况得到了解决,但我认为写入程序不会被接受为 BlockData ()写入后的寄存器值没有改变。 我还在研究这个问题。
再次感谢您的关注。