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.

[参考译文] ADS1258:轮询 ADC 通道的方法

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1043751/ads1258-way-to-poll-the-adc-channels

器件型号:ADS1258
主题中讨论的其他器件: ADS131A04ADS131M08ADS1278ADS1274

我在线上和数据表中查看了 ADS1258、但 无法找到请求单个 ADC 通道或所有通道的方法。 是否有办法不使用数据就绪引脚、一次只轮询一个 ADC 通道或为所有 ADC 通道请求 ADC 值?

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

    您好、Matthew、

    使用 DRDY 当然是轮询 ADS1258数据的推荐方法。 如果要使用计数器或类似的时间来计时转换、最好使用单次转换模式(切换 START 引脚或使用 PULSE 命令)来计时。 这样、一旦引脚被拉为高电平或命令被发送、计时器就可以开始计时。 如果您希望尝试在不同通道上超时多个转换、则计时器和 ADC 很可能会退出同步、您将会错过转换或获取损坏/错误的数据。

    主机必须在每个通道上读取 ADC 数据。 此器件中没有缓冲器/FIFO、因此您可以一次读取多通道数据。

    我不太清楚您想要做什么、因此希望其中的一些信息对您有所帮助。 如果没有、请告诉我您的最终目标是什么、我们可以尝试确定解决方案。

    布莱恩

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

    我每次读取一个通道。  发送 SPI 命令以读取 ADC 通道5、然后获取结果。  

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

    您好、Matthew、

    如果您可以单独读取通道、即使用脉冲命令或切换启动引脚、则应能够在主机中设置一个计时器、一旦执行任一操作、该计时器即开始计数。 您可以通过查看 ADS1258数据表中的表11中的信息来确定转换完成所需的时间(请注意表标题中的条件、如果您决定对这些特定寄存器设置进行任何更改)。 表11是相对于主时钟速率(fCLK)的。

    您也可以使用状态寄存器中的新位、尽管该位仅在自动扫描模式下有效。 由于您不想使用 DRDY、因此您必须在一次转换中重复轮询状态字节以确定新数据何时可用。 有关此选项的更多信息、请参阅数据表中的第33页。

    如果您有任何其他问题、请告诉我。

    布莱恩

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

    我不喜欢任何选项。 我想 我将寻找另一个芯片。 我之前已经讨论过 ADC、它们始终允许您单独请求每个通道。 问题是它们只支持12位分辨率、只有8个通道。   

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

    您好、Matthew、

    您当然可以单独请求每个通道数据、但在测量该通道后必须这样做。 因此、如果您测量了通道5、则需要在该转换完成后时钟输出数据。 如果您没有执行、然后开始新的转换、则下一个通道将在下一个通道转换完成后覆盖上一个通道。 换言之、ADC 仅存储最新转换的数据。

    处理流程如下所示:

    • 为 ADC 加电
    • 初始化寄存器、将多路复用器设置为第一个通道、例如 AIN0
    • 开始转换(脉冲命令或 START 引脚)
    • 当转换完成时、时钟输出来自 AIN0的数据
    • 将通道更改为 AIN1、开始转换
    • 当转换完成时、从 AIN1时钟输出数据
    • 等等

    这是您需要的操作类型吗?

    布莱恩

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

    我单击了错误的按钮、这不能解决我的问题、但您可以关闭该主题。

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

    您好、Matthew、

    那么、我们是否有办法帮助确定适用于您的应用的 ADC? 您是否需要同步采样 ADC? 具有并行接口的 ADC? 我不确定我是否完全了解您所寻找的 ADC 操作类型、因此如果您想帮助更详细地解释它、我们将很乐意帮助您找到满足您需求的器件。

    布莱恩

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

    我正在寻找具有24位分辨 率的 ADC、在该 ADC 中、我可以在一条消息或一条通道中一次请求所有 ADC 值。  这样 、我就可以在 DMA 中将它们排队。 如果我这样做、我会认为这会更快、并且使用的 CPU 更少。  

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

    我的数学也是错误的。 我认为读取芯片上的所有 ADC 通道需要62毫秒、实际上是6.2毫秒   

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

    您好、Matthew、

    您可能需要同步采样 ADC、例如:

    • ADS131A04 =无前端驱动的24位、4通道同步采样 ADC
    • ADS131M08 = 具有 PGA 的24位、8通道同步采样 ADC
    • ADS1278 = 具有平坦通带滤波器的24位、4通道同步采样 ADC

    所有这些 ADC 都并行测量每个通道、因此当 DRDY 信号指示新数据就绪时、您可以一次性读取全部4或8个通道的数据值。 您仍需要在下一次转换完成之前读取数据、因为该信息不会被缓冲、但您不必每次发送读取数据命令来按顺序读取每个通道。

    请告诉我您是否正在寻找这种解决方案。 指向这些器件的链接将附加到此主题的顶部、就在主题标题的正下方("ADS1258:轮询 ADC 通道的方法")

    布莱恩

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

    就是这样、但您有一个具有更多通道的通道吗? 我们目前使用2个 ADS1258。 如果您有一个16通道或12通道、那就更好了。 我认为这将使我能够更快或大致相同的速率读取 ADC、而不会占用太多 CPU。 当前设置使用大约25%的 CPU、即数据速率设置为384时。  每次从数据就绪引脚收到中断时 、我需要在总线上放置5个字节、这需要大约80微秒。 这不需要计算在 SPI 总线上发送数据的代码周围运行代码所需的时间以及 进入 和退出中断的时间。   

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

    您好、Matthew、

    目前,我们没有一个同步信道大于8的设备。 但是、可以选择同时使用两个或多个 ADC 来实现相同的目标。 例如、ADS1278和 ADS131A04采用菊花链模式、其中来自控制器的信号馈入一个器件并馈送到下一个器件、在大多数情况下仅使用一个 DOUT 引脚。 下面是 ADS1278数据表的屏幕截图、其中显示了器件如何连接在一起、所需的信号以及 ADC 的数据流如何产生。 ADS131A04采用类似的格式。

    ADS131M08可与多个器件配合使用、但您需要为每个器件使用单独的 CS 线路来控制何时接收数据。 或者、如果控制器上有多个 DOUT 引脚、则可以单独从每个器件获取数据。 更多信息、请参阅 ADS131M08中的第9.1.5节。

    请查看这些选项、如果您有任何其他一般性问题、请告诉我。 如果您对这些同步采样器件有具体问题、我会要求您发布一个包含该特定主题行的新主题、以便我们的其他 ADC 专家之一可以为您提供帮助。 我对这些 ADC 并不像我的一些同事那样熟悉、因此他们将在您开始新的主题时提供支持。

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

    解决该问题的方法。 您可以通过菊花链连接的最大器件数是多少。 我在文档中找不到它。

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

    你好、Matthew

    这取决于多种因素、包括您所需的 SCLK 速度、一个通道的数据量(通常为24位、但如果您启用了 CRC 或状态字节等、则每个通道可具有32、40或更多位)、 以及您打算以多快的速度运行 ADC。 例如、如果采样速度非常慢、例如1SPS、则在下一次转换完成之前、您将有大量时间来时钟输出数据、并且在这些情况下、可以合理地将更多器件以菊花链的方式连接在一起。 另一方面、如果采样速度非常快、则情况正好相反。 此外、如果您开始向链中添加大量器件、则需要考虑数字信号的驱动强度。 因此、它实际上取决于许多因素。

    谨请您选择一个器件(ADS1278可能是最佳选择、因为您可以将1个 ADS1278和1个 ADS1274用于12个通道、 或2个 ADS1278用于16个通道)、并发布包含您的特定要求的新主题帖。 然后、相应的 ADC 专家将在那里为您提供帮助。

    布莱恩