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:加电时发出 RESET 命令、不会返回0x04、如文档所述

Guru**** 2393725 points
Other Parts Discussed in Thread: ADS131A04, ADS131A02

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/835910/ads131a04-on-power-up-issue-reset-command-does-not-return-0xff04-as-documented

器件型号:ADS131A04
主题中讨论的其他器件: ADS131A02

我正在实现一个到 ADS131A04的接口。 我按照 ads131a02 adc.pdf、page79中的启动顺序进行操作。 我的复位引脚连接高电平、因此它在上电时变为高电平。 我将发送软复位命令作为第一条命令、然后读取状态、直到我获得0x04的状态。 这起作用了。

当我初次成功时、我通过配置芯片进行了后续操作、发送:

      ADC_TxBuff[0]= 0x6b03;      // WREGS:011A AAAA nnnn nnnn = Starting reg = 0x0B、4+1寄存器写入
      ADC_TxBuff[1]= 0xe83e;         //寄存器0x0B & 0x0c
      ADC_TxBuff[2]= 0x02a0;         //寄存器0x0d & 0x0E
      ADC_TxBuff[3]= 0x0f00;         //寄存器0x0F & 0x10
      ADC_TxBuff[4]= 0x0000;
      ADC_TxBuff[5]= calc_CRC (ADC_TxBuff、10);   //大小=以字节为单位的大小

在下电上电后配置是否持久?

然后、我使用命令0x4f0f 启用 ADC、使用命令0x0033唤醒器件、使用命令0x0555锁定寄存器、然后使用 STATUS 命令每23ms 读取一次 ADC。

一切看起来都很棒

但是、现在当我启动设备时、我从未收到0x04状态回复。 相反、对 RESET 命令(0x0011)的状态响应 I 得到0x2210。 对于后续命令、然后发送空命令(0x0000)、我获取状态响应0x2250。 我发送另一个空命令(0x0000)我获得状态响应0x2210。 随后的状态命令返回0x2210。

该规范指出、null 命令0x0000应在以下命令中返回 STAT_1寄存器。 STAT_1是一个8位寄存器。 STAT_1是高8位吗? 低8位中有什么?

我使用的是16位字、没有汉明。

在我看来、器件刚刚启动并开始读取。 当我请求状态(0x0000)时、不仅我获得状态响应、而且我获得四个非常高的值。 我还没有将实际的传感器连接到 ADC 芯片、因此我可以相信、非常高的数字可能是 ADC 读数。

提前感谢您的帮助。

   Ken

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

    Ken、


    我将回答第一个简单的问题、然后回圈到 RESET 命令问题。

    -这些寄存器位于易失性内存中。 如果您重启电源、器件将不会保留寄存器内容。

    -我认为 STAT1位应该是前8位、后8位应该是00h。

    重置命令可能会发生几种情况、无法获得正确的响应。 首先、我将检查复位是否实际发生。 如果您已经写入了寄存器、我会检查寄存器是否返回到默认值。 第二、器件是否锁定? 如果器件被锁定、我认为它只响应 UNLOCK、NULL、RREG 和 RREGS、忽略一个复位。

    重要的一点是、复位在数据帧完成时发生。 这意味着您无法写入命令、然后对帧的其余部分进行短时钟。 您必须完成该帧、然后重置才会发生。

    希望这会有所帮助。 如果您仍然遇到设备问题、请告诉我。


    吴约瑟

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

    好的、听起来设备在下电上电时锁定。 我希望在重新启动时获得设备状态,以便知道是否应该将其解锁。 我在任何寄存器中都看不到锁定/解锁状态。 如何确定锁定/解锁状态?

     

    我在软复位命令之前添加了一个解锁命令、这似乎实现了这一目的。

     

    我在下电上电前锁定了器件。 上电后锁定/解锁状态是否持续? 还是在上电时默认为锁定状态?

     

    如前所述、上电时的状态响应为0x2210、0x2250或0x2230。 如果第一个字节、0x22、是状态寄存器、那么第二个字节是什么? 它不是您所说的0x00。

     

           Ken

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

    我看到发生了什么情况:null 命令返回0x2210:第一个字节0x22是读取状态1的命令 ACK、第二个字节是 STAT_1寄存器数据。

    我将执行更多检查...

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

    Ken、


    我不知道如何确定器件是否处于锁定或解锁状态。 您可以向其发送一条不是锁定、解锁或读取寄存器的命令、然后检查寄存器是否有 F_OPC 标志、以查看该命令是否无效或被忽略。

    我刚刚注意到数据表中有关解锁命令的部分。 如果您转至9.5.3.6.1、则器件看起来需要在 POR 或复位后解锁。 如果已进行下电上电、则器件上电锁定。

    我需要检查空响应的最后一个字节。 我以为是00h、因为我在之前对器件的观察中记录了一些器件响应。 我稍后将回到这个问题上。



    吴约瑟

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

    Ken、

    我仍需要检查这一点、但我认为空响应是22h、然后是 STAT1寄存器。 22h 是指寄存器02h 的 RREG、即 STAT1寄存器。


    吴约瑟

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

    Ken、

    很抱歉、我没有看到您之前的帖子。 不过、我认为您对大约22h 是正确的。

    吴约瑟

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

    Ken、

    为了让您知道、我确认了这一点。 null 命令的响应为22h、然后是 STAT1字节。 22h 来自读取寄存器02h 的等效命令。

    吴约瑟

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

    问题已解决。 如果芯片被锁定、那么它将不响应复位命令、第9.5.3.2节。 后续的空命令将返回0x22zz、其中 zz 是 STAT_1寄存器的内容。 如果使用软复位、请确保在发出复位命令之前使用 UNLOCK 命令第9.5.3.6节来解锁芯片。

    在第9.5.3.1节中、NULL:空命令: reg (STAT_1)将为0x22zz、其中 zz 是 STAT_1寄存器的内容。 我在规格中的任何地方都没有清楚地说明这一点。

       Ken