This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS127L11:启用 REG_CRC 时出现 reg_ERR 标志

Guru**** 2489685 points
Other Parts Discussed in Thread: ADS127L11

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1548618/ads127l11-reg_err-flag-when-reg_crc-enabled

器件型号:ADS127L11


工具/软件:

我目前在启用 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 有一个可以提供相关指导的单元测试。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    编辑:我注意到我的评论中有一个复制/粘贴错误,说明哪些注册了什么。 进行了更新以阐明我为执行 CRC 的寄存器字段。

    uint8_t reg_val[13]={

    0x00、// DEV_ID 的地址 0x00

    0x00、// REV_ID 的地址 0x01、基于读取 REV_ID

    0x00、//地址 0x04(用于 MUX)

    0x00、//地址 0x05(用于 CONFIG1)

    0x00、// CONFIG2 的地址 0x06

    0x00、// CONFIG3 的地址 0x07

    0x02、//配置 4 的地址 0x08、设置 REG_CRC 位

    0x00、//偏移值的起始值

    0x00、

    0x00、

    0x40、//增益值起始值、根据参考手册确定默认值

    0x00、

    0x00

    };

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Dustin、

    欢迎来到 TI E2E 社区。

    您似乎正在为所输入的值获得正确的 CRC 结果。  我们还提供了可用于 ADS127L11 的 CRC 工具。

    您可以使用以下链接启动在线版本:

    https://dev.ti.com/gallery/view/PADC/PADC_Design_Calculator_Tool

    或者、如果您愿意、可以下载一个也会计算 CRC 的电子表格计算器工具:

    https://www.ti.com/tool/download/SBAR019

    我在设置中看到的唯一错误是 REV_ID。  我想它已更新为 0x01(我使用 0x01 的 ADS127L11 版本)。  假设这是您所使用器件的正确 REV_ID、则正确的 CRC 值将为 0xB0。

    另请注意、ADC_ERR 状态位被锁存。  将正确的 CRC 值加载到 ADC 后、您需要通过向其写入“1"来“来清除该位(看起来有点反向,但这就是器件的工作方式)。  写入“1"后“后、您应该能够读回该值、如果一切设置正确、则应读取 ADC_ERR 状态位的“0"。“。

    此致、
    Keith Nicholas
    精密 ADC 应用

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我最后遇到的问题是我最初读取 REV_ID 的方式。 您对我的默认值关闭的评论是我需要的痕迹。 正确读取芯片的 REV_ID 为 0x02 后、我不再收到 REG_CRC 错误。

    此外、提供的电子表格工具非常适合调试。

    感谢您发送详细信息。