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.

[参考译文] ADS131A04:响应中的状态位为0x2220

Guru**** 2392095 points
Other Parts Discussed in Thread: ADS131A04

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1169004/ads131a04-status-bits-in-response-are-0x2220

器件型号:ADS131A04

您好!

我们在设计中使用 ADS131A04、它起作用。 但是在每个转换结果中,状态位都是0x2220... 为什么?

在这里我的初始化:(M0 Vdd | M1和 M2 GND -> 24位)  

ADS131A04_Unlock()
ADS131A04_Reset()
ADS131A04_Unlock()
ADS131A04_ReadReg(0x00)
ADS131A04_WriteReg(0x0b, 0x78)
ADS131A04_WriteReg(0x0c, 0x32)
ADS131A04_WriteReg(0x0d, 0x02)
ADS131A04_WriteReg(0x0e, 0x25)
ADS131A04_WriteReg(0x11, 0x00)        // ADC1 Gain 1
ADS131A04_WriteReg(0x12, 0x00)        // ADC1 Gain 4
ADS131A04_WriteReg(0x13, 0x00)        // ADC1 Gain 1
ADS131A04_WriteReg(0x14, 0x00)        // ADC1 Gain 1
ADS131A04_WriteReg(0x0f, 0x0f)
ADS131A04_Wakeup()
ADS131A04_Lock()

所有命令都正确回答。

当 ADS 启动并且我移出15个字节(1x 状态+ 4x ADC 结果 )时,前两个字节为0x22 0x20。 为什么?

ADC 结果看起来正常。

感谢你的帮助

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

    您好、Roy、

    您是否正在向 ADC 发送"NULL"命令? 如果是、前2个字节应显示 STAT_1寄存器(02h 寄存器地址+ 0x20的当前寄存器值)。 您接收到的0x2220指示 一个故障(F_SPI 故障= 1b)、您可以读取 STAT_S 寄存器(地址05h)以查看导致此故障的原因。 如果您可以向我发送 SCLK、DIN、DOUT 和/CS 的时序图、那么解决该问题将非常有帮助、谢谢。

    此致、

    戴尔

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

    是,我发送 NULL。

    我通过 Excel 文件进行定时,以便您可以放大以下行: https://www.dropbox.com/t/QqXrb4tdC32WDCuD

    上行->下行:

    就绪

    /CS

    SCLK

    MOSI (DIN ADS)

    MISO (DOUT ADS)

    STAT_S 为我提供0x01

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

    您好、Roy、

    感谢您为我提供。 您似乎在第一个字中获得了0x0222数据、而不是0x2220、请确认。 您可以读取 STAT_S 寄存器(地址05h)并让我知道该值吗? 此外、您能否告诉我、您在一帧内向 ADC 发送了多少个 SCLK、下面以红色突出显示了这些 SCLK? 我很难检入 Excel 文件。  

    我很怀疑您面临的问题与数据表9.5.2.1.5节中描述的问题相同。 当新数据重新就绪时、数据不会完全移出、因此 STAT_1寄存器中的 F_DRDY 位设置为高电平、这表示 DOUT 输出移位寄存器未更新为新的转换结果、这正是您在 F_DRDY 位上得到的结果 (如果在新 ADC 数据准备就绪时从先前结果中移出的数据不完整、则该位被置位。)

    此致、

    戴尔

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

    您好 Dale、

    STAT_S 为我提供0x01,我得到0x2220:

    0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 = 0x2220

    在这里、我的设置:

    ADC 时钟:20MHz

    SPI 时钟:30MHz

    ADC 转换间隔:100µs μ s

    SPI 通信需要~ 6µs

    此致

    罗伊

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

    您好、Roy、

    感谢您提供更多信息。

    如前所述 、设置了 STAT_S 寄存器(F_FRAME 位)的位0、这表示"每帧发送的 SCLK 不足"到 ADC。 我 再次检查了寄存器初始化。 当您初始化寄存器时、您向 D_SYS_CFG 寄存器(地址= 0x0C)写入0x32、此命令启用"固定字大小"并为 ADS131A04选择"固定每个数据帧六个字"。 由于您已选择通过将 M1短接至 GND 来使用24位字大小、因此  在单个帧中总共应该有6*24 = 144位。

    我能够放大并检查您的 Excel 文件中的计时。 您将向 ADC 发送5个字、其中5个字的 SCLK 为5*24 = 120、如下图所示、这是   在 STAT_S 寄存 器中设置 F_FRAME 位和在 STAT_1寄存器中设置 F_SPI 的根本原因。

    请向  ADC 发送足够的 SCLK 并再次检查。 请告诉我结果、谢谢。

    请注意、当您读取 STAT_S 状态寄存器时、可以清除 F_FRAME 位。 但是、您需要3帧才能实现这一点。

    此致、

    戴尔

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

    您好 Dale、

    感谢您的日常帮助。

    您是对的,有6*24个 SCLK。

    我将其更改为6x24位,但得到的结果相同。

    我还将其更改为30x24位、->相同。

    我将 D_SYS_CFG 寄存器更改为复位默认值 、读取5*24位->相同。

    每次我得到0x2220...

    但是、由于 ADC 通道的结果仍然适用、我现在将其保持不变。

    谢谢你

    罗伊

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

    您好、Roy、

    感谢您的告知。   我找到了几个能够提供帮助的线程:

    我将尝试找到 EVM 板并根据您的配置进行检查。 谢谢你。

    此致、

    戴尔