主题中讨论的其他器件: ADS131A04、 ADS131M08、 ADS1278、 ADS1274
我在线上和数据表中查看了 ADS1258、但 无法找到请求单个 ADC 通道或所有通道的方法。 是否有办法不使用数据就绪引脚、一次只轮询一个 ADC 通道或为所有 ADC 通道请求 ADC 值?
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 通道或所有通道的方法。 是否有办法不使用数据就绪引脚、一次只轮询一个 ADC 通道或为所有 ADC 通道请求 ADC 值?
您好、Matthew、
使用 DRDY 当然是轮询 ADS1258数据的推荐方法。 如果要使用计数器或类似的时间来计时转换、最好使用单次转换模式(切换 START 引脚或使用 PULSE 命令)来计时。 这样、一旦引脚被拉为高电平或命令被发送、计时器就可以开始计时。 如果您希望尝试在不同通道上超时多个转换、则计时器和 ADC 很可能会退出同步、您将会错过转换或获取损坏/错误的数据。
主机必须在每个通道上读取 ADC 数据。 此器件中没有缓冲器/FIFO、因此您可以一次读取多通道数据。
我不太清楚您想要做什么、因此希望其中的一些信息对您有所帮助。 如果没有、请告诉我您的最终目标是什么、我们可以尝试确定解决方案。
布莱恩
您好、Matthew、
如果您可以单独读取通道、即使用脉冲命令或切换启动引脚、则应能够在主机中设置一个计时器、一旦执行任一操作、该计时器即开始计数。 您可以通过查看 ADS1258数据表中的表11中的信息来确定转换完成所需的时间(请注意表标题中的条件、如果您决定对这些特定寄存器设置进行任何更改)。 表11是相对于主时钟速率(fCLK)的。
您也可以使用状态寄存器中的新位、尽管该位仅在自动扫描模式下有效。 由于您不想使用 DRDY、因此您必须在一次转换中重复轮询状态字节以确定新数据何时可用。 有关此选项的更多信息、请参阅数据表中的第33页。
如果您有任何其他问题、请告诉我。
布莱恩
您好、Matthew、
您当然可以单独请求每个通道数据、但在测量该通道后必须这样做。 因此、如果您测量了通道5、则需要在该转换完成后时钟输出数据。 如果您没有执行、然后开始新的转换、则下一个通道将在下一个通道转换完成后覆盖上一个通道。 换言之、ADC 仅存储最新转换的数据。
处理流程如下所示:
这是您需要的操作类型吗?
布莱恩
您好、Matthew、
您可能需要同步采样 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 专家将在那里为您提供帮助。
布莱恩