您好!
我想知道我在处理 ADS7138的 CRC 功能时出了什么问题。
以下寄存器配置工作正常、并将 ADC 配置为自主模式:
ADC 寄存器 | 链接 |
0x05 | 0x00 |
0x01 | 0x02 |
0x12 | 为0xff |
0x17 | 0x01 |
0x14 | 为0xff |
0x04 | 0x35 |
0x01 | 0x30 |
0x10 | 0x11 |
0x03 | 0x07 |
通过先前的寄存器配置、我执行读取操作并获得数字十六进制。 模拟输入上的固定输入电压来调整代码。
不过、当我在 ADC 上启用 CRC 模块时。 它意味着将 GENERAL__CFG 寄存器(0x01)的位6设置为"1"。 请参阅新表下方、其中显示了启用 CRC 的 ADC 配置。
ADC 寄存器中 | 链接 |
0x05 | 0x00 |
0x01 | 0x 4. 2. |
0x12 | 为0xff |
0x17 | 0x01 |
0x14 | 为0xff |
0x04 | 0x35 |
0x01 | 0x 7. 0 |
0x10 | 0x11 |
0x03 | 0x07 |
在采用以前的配置时、当我执行与之前相同的读取操作时、对于所有读取值、结果都是0x00……此外、ADC 正进入阻塞模式、要使其再次工作、我需要使 PCB 重新上电。
1) 1)我是否以正确的方式配置 ADC? 我还测试了为每个配置命令附加 CRC 字节、但这同样无法正常工作。 请参阅以下两个示例:
a.配置 ADC 的一个寄存器而不在末尾附加 CRC 的脚本行:"WIB 2E 0812 FF"
其中:
- 0x2E 是设备地址
- 0x08是操作码
- 0x12是内部寄存器
- 0xFF 是要写入寄存器的值。
b.配置一个 ADC 寄存器并在末尾附加 CRC 计算的脚本行:"WIB 2E 0812 FF D5. "
- 0x2E 是设备地址
- 0x08是操作码
- 0x12是内部寄存器
- 0xFF 是要写入寄存器的值。
- 0x D5. :是命令的 CRC 值
这两种情况都无法正常工作、当我执行读操作时、结果始终为0x00。 在 ADC 上执行读取操作的脚本行为: "RIB 2E 10A6 1"
其中:
-0x2E:是器件地址。
-0x10:是操作码
-0xA6:表示读取的值。
-0x1:是要读取的字节数。 在本例中仅一个字节。
2) 2)您认为如何在启用 CRC 模块的情况下执行 ADC 读取操作? 它是否也在读取值的末尾附加了 CRC 字节? 我已尝试读取两个连续的字节(RIB 2E 10A6 1)、结果也是0x00...
提前感谢并问候