工具/软件:
我目前在启用 REG_CRC 位时遇到问题。 启用该位后、始终会收到 REG_ERR 标志。
我能够启用 SPI_CRC 并成功使用 SPI 事务而没有获得 SPI_ERR 标志、但使用寄存器 CRC 功能时似乎更有问题。
假设:
数据表显示寄存器 0x00 至 0x01 的计算值以及寄存器 0x04 至 0x0E。 我假设我将按从 0x00 到 0x0E 的顺序计算所有字节的 CRC(省略 0x02 和 0x03)。 我还假设 CRC init 应为 0xFF、因为这正是 SPI CRC 计算的要求。 我还假设应在设置所有寄存器后执行此检查。
设置所有寄存器后、我会在写入 STATUS 寄存器以尝试清除 REG_ERR 标志之前设置 10ms 的延迟。 但是、错误标志仍然存在。
为了尝试简化问题、有人能否提供要放置在此 CRC 字段中的预期值? 如果我将除 CONFIG4 寄存器之外的所有值设置为 DEFAULT、预期的 CRC 应该是什么?
uint8_t reg_val[13]={
0x00、// DEV_ID 的地址 0x00
0x00、// CONFIG4 的地址 0x01、基于读取 REV_ID
0x00、//配置 4 的地址 0x04
0x00、//地址 0x05 用于 CONFIG4
0x00、// CONFIG4 的地址 0x06
0x00、// CONFIG4 的地址 0x07
0x02、//配置 4 的地址 0x08、设置 REG_CRC 位
0x00、//偏移值的起始值
0x00、
0x00、
0x40、//增益值起始值、根据参考手册确定默认值
0x00、
0x00
};
使用 sunshine2k CRC 工具: Sunshy's Homepage — 在线 CRC 计算器 Javascript
我期望有效的 CRC 字段为 0xED

我还在网上找不到有关如何实施此寄存器检查的示例、以确认我执行了正确的操作。 我假设 TI 有一个可以提供相关指导的单元测试。