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.

[参考译文] ADS1018:SS 模式下的多通道转换时间

Guru**** 2514405 points
Other Parts Discussed in Thread: ADS1018, ADS1118

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/909424/ads1018-multi-channel-conversion-time-in-ss-mode

器件型号:ADS1018
主题中讨论的其他器件: ADS1118

我的系统使用 AIN0、AIN1来检测两个单端电压源。 我们使用/CS 引脚来控制 SPI 通信。

https://e2e.ti.com/support/data-converters/f/73/t/803103?tisearch=e2e-sitesearch&keymatch=ADS1018

根据上述文章的建议、我们已将 ADS1018设置为 SS 模式、SPS 为1600。 SPI CLK 为2.5MHz。
在此设置中,等待时间为1/(1600*0.9)+20us 唤醒时间= 714us。 伪代码为:

1.在 SS /SPS = 1600 / 32位时发送 AIN_X、其他配置保持默认值。
2.锁存上次转换的 AIN_Y 数据。 (位0~15)
3.检查反馈配置是否与 AIN_X (位16~31)相同、以确认 ADS1018已收到命令。 如果相同、AIN 目标将在下一步中改变。
4.等待2ms,更改 AIN 目标(X=0、Y=1或 X=1、Y=0),然后转至步骤1

但是、即使确认命令并等待2ms、数据也尚未准备就绪。我们也会获取另一个通道的数据。
我们可以看到、在拉低/CS 后 DRDY 为1。  
然后、我们尝试等待更长的时间并查看 DRDY 引脚、之前的数据转换需要大约8ms 的时间。

(紫色:/CS、黄色:CLK、蓝色:MOSI、绿色:SOMI)

此外、数据位0~3并非全部为0、这与规格不同。


以下是问题:

问题1. 在 SS 模式下、我们是否可以仅等待转换时间而不检查/DRDY?

问题2. 转换时间是否仅受 SPS 影响? 如果读取多个通道、我们应该等待比转换时间更长的时间吗?

Q3:较低的数据位是否可用? 或者这些位只是 SDFM 结果、不保证使用。

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

    Willie、


    这里有几个我想你可以检查的东西。 根据您提到的两件事、您似乎有一个 ADS1118 (16位器件)、而不是一个 ADS1018 (12位器件)。 让我首先介绍几个方面、然后我们讨论要测试的内容。 然后、我将返回到您在帖子中提出的问题。

    首先、我们来看看伪代码、第3步是有问题的。 对器件进行编程时、可能会设置配置寄存器回读、但可能尚未执行。 当您写入寄存器时、新的配置寄存器可能会被正确回读、但在进行中的转换完成之前不会被执行。 不应使用回读中的 AIN 值来确认 ADC 转换完成。

    要验证转换完成、应使用/DRDY 指示。 当您使用32位数据传输时、最后一位应读回1、将 DOUT 设置为高电平。 转换完成后、DOUT 返回低电平、表示数据就绪。 在/CS 保持低电平时可以完全看到这一点、但也可以看到当被置为高电平然后又被置为低电平时。 我建议您在/CS 保持低电平时尝试此操作、以便您可以看到确切的转换时间。

    在进行设置时、我提到您的器件看起来是 ADS1118。 我认为这是有几个原因的。 首先、在数据回读中、转换数据的最后四位看起来是0以外的其他位(ADS1118是16位转换、而 ADS1018是12位转换、右侧填充为零)。 第二、您提到完成转换需要8ms 以上的时间。 ADS1118的配置寄存器与 ADS1018类似、数据速率的默认设置(100b)为128SPS。 这大约是7.8ms、接近您在帖子中提到的8ms。 要测试此情况、您可以使用您的设置设置转换并保持/CS 为低电平。 然后使用示波器查看 DOUT 恢复低电平所需的时间。 这将告诉您数据速率的持续时间。

    如果时间大约为8ms、那么我认为器件可能是 ADS1118。 我还会检查器件上的标记、以查看它是否与任一器件匹配。

    以下是您的问题答案:

    正常情况下、您可以使用转换时间而不检查数据是否就绪。 正如您所看到的、我通常说(1/数据速率)+ 10%+ 20us。 10%用于内部振荡器变化、20us 用于启动。 但是、您应该首先检查以查看器件是否正确。

    2.转换时间只受数据速率设置的影响。 如果您使用具有大电容的输入滤波器、可能会增加一些稳定时间、但使用我在(1)中描述的时间应该是正确的。

    我认为 ADS1018的低数据位应该为0。 如果是这种情况、则子 LSB 中将没有数据。 同样、如果该器件是 ADS1118、则这是16位数据的一部分。

    同样、检查器件标识、测试转换时间、并让我知道您的发现。


    吴约瑟

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

    Joseph、  

    正如您所想到的、供应商在布局上犯了错误。 您的建议非常有用和准确。 谢谢你。

    然后、让我澄清第3步。

    如前所述、除非完成转换后配置寄存器、否则数据将保留在最后一次转换结果上。 我"假设"在配置新数据时转换已完成。 (转换时间为0.7ms、我们在2ms 周期内读取)我们使用2个(甚至4个)通道、有必要知道来自哪个通道的数据。 读回 CONFIG 以确保 ADS1018已接收到新的 CONFIG 命令、因此在下一个周期中、我可以将数据放入相应的缓冲区。   

    另一个问题、手动显示"SCLK 不能低于28ms、否则 SPI 模块可能会复位"。 SS 和连续模式都受此限制吗? 即使/CS 是可控的(并非始终为低电平)、此限制仍然存在? 这意味着、如果主 SPI 被其他过程中断、我们应该在28ms 内返回到 SPI 通信。 由于系统中使用 SPI 的其他器件没有此属性、因此我可以通过强制/CS 为低电平来在低速过程中触发 SPI 功能、当被其他过程中断时、/CS 保持低电平、SCLK 暂停。 SPI 通信可能会暂停但不会复位。   

    以下是问题

    1.通过正确设置 SPS 并在恒定周期内配置 ADC、是否可以使用回读配置寄存器来确认下一个数据通道?

    2.是否可以通过连接某些引脚或配置寄存器来删除 SCLK 28ms 复位属性?

    威利

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

    Willie、


    我将直接回答以下问题:

    1.通过正确设置 SPS 并在恒定周期内配置 ADC、是否可以使用回读配置寄存器来确认下一个数据通道?

    配置寄存器的写入由32位数据传输中从 DOUT 读回的最后16位确认。 数据表中的图40和41都显示了这种情况。 我将在此处展示图41:

    我还要注意(如上图所示)、在上一个帖子中、您可以等待数据周期+ 10%+ 20us 进行启动。 但是、您也可以等待 DOUT/DRDY 转换为低电平、而不是等待时间周期、如上图所示。

    2.是否可以通过连接某些引脚或配置寄存器来删除 SCLK 28ms 复位属性?

    恐怕无法禁用器件的 SPI 超时。 如果 SPI 总线在28ms 内没有看到变化、那么 SPI 被复位。


    吴约瑟

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

    Joseph、  

    感谢您的回复、真的很有帮助。

    威利