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.

[参考译文] ADS1119:以连续模式采集所有4个通道

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1069270/ads1119-acquiring-all-4-channels-in-continuous-mode

部件号:ADS1119

您好,
我想读一下 ADS1119的所有通道,所以从数据表中可以理解,我需要通过配置寄存器循环使用 mux。
我的疑虑与编写注册表和更改渠道所需的时间有关,我将更好地解释:
我正在尝试在列表90 SPS 中实现目标,哪一项是实现目标的最佳选择?

1)
设置 ADC 用于90 SPS,单次激发

设置通道0的 mux
开始转换
-当 DRDY 调用时,从通道0寄存器中读取值
设置通道1的 mux
启动变频器
读取数据

然后,再次开始循环

2)
-将 ADC 设置为330 SPS,连续模式(但不在乎 DRDY)
设置通道0的 mux
开始转换
-50 US 延迟

设置通道0的 mux
从通道0的寄存器中读取值
设置通道1的 mux
读取通道1的数据

然后,再次开始循环

3)与2)相同,但设置90 SPS 并等待 DRDY


在扩展同一个问题时,是否有针对同一总线上的2台设备的建议工作流?

请提前感谢您的参与。
巴黎

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

    您好,巴黎人,

    总计时将与您在 mux 上循环的信道数,读取所有信道数据所需的时间有关, 您打算使用的 I2C SCL 时钟速度,如果 I2C 总线上还有其他设备也在通信,则也可以使用这些设备。

    循环浏览 mux 时最大的问题是确定转换何时完成以及您实际读取的输入通道。  当您开始转换时,等待转换结束并读取转换时,使用单次激发模式更容易理解。  这是有益的,因为 I2C 定时可能无法准确反映使用连续模式时正在读取的内容。  因此,我建议使用单影像模式,并:

    1. 设置所需的输入通道
    2. 发出 start 命令
    3. 使用 DRDY 作为中断使用 RDATA 命令检索数据
    4. 返回到1

    您循环使用 mux 的速度在很大程度上取决于所使用的 SCL 频率和所选的数据输出速率。

    当添加第二个 ADS1119时,这将变得更加复杂。  在这里,我将使用两 个单独的中断并设置一个标志来确定何时读取数据并设置下一次转换。

    1. 为设备1设置所需的输入通道,然后发出 start 命令
    2. 为设备2设置所需的输入通道,然后发出 start 命令
    3. 等待设备1的中断标志
    4. 等待设备2的中断标志
    5. 阅读设备1的转换
    6. 阅读设备2的转换
    7. 返回到1

    显然,优化有不同之处,但这是基本流程。

    此致,

    鲍勃·B

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

    谢谢你。
    实际上,我必须使用 DRDY 位,而不是使用中断,但我认为这是同样的事情,只是速度较慢。

    您建议在 ADC 中设置什么数据速率? 根据我的理解,实际数据速率输出取决于主设备循环所有信道的速度(显然受 ADC 数据速率的限制)。

    如果是真的,我可以将 ADS1119设置为最大数据速率(1000 SPS),以便将转换时间最小化( 更改信道的时间应为1 ms +0.25 us),并且只能在信道上方循环, 知道读写寄存器的时间肯定超过1.5毫秒

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

    您好,巴黎人,

    一切都取决于 I2C 通信的速度,甚至比转换时间更是如此。  标准(100kHz),快速(400kHz)和快速+(1MHz)之间存在巨大差异。  然后,您需要考虑在读取数据后处理数据的时间。  因此,总体时间比 ADC 的输出数据速率要多得多。  使用 ADC 的1000sps 和 FAST+时钟速度转换和读取结果。  您还需要考虑处理循环剩余部分的处理时间。  您可以将我之前所说的内容修改为:

    1. 设置所需的输入通道
    2. 发出 start 命令
    3. 继续您的处理循环,处理任何以前获取的数据。
    4. 通过读取 DRDY 寄存器位并在可用时读取数据来检查转换是否完成(如果没有,请返回到3)
    5. 阅读转换数据(如果已准备就绪)
    6. 返回到1

    在1000 sps 下工作后,您可以尝试降低数据速率以改善噪音,并查看其是否适合计时窗口。

    此致,

    鲍勃·B