主题中讨论的其他器件:AM2634、 ADS7038-Q1、ADS7038
您好!
对于我们的应用、除了 AM2634上提供的模拟输入通道外、我们还需要额外的模拟输入通道。 主要是由于系统中的电压电平不同、应使用具有 SPI 接口的外部多通道 ADC。 实际上 ADS7038-Q1是我们的首选解决方案。 但是、我不确定所选的解决方案是否是最佳解决方案、因为我们确实对 SPI-ADC 使用了所谓的"动态"通道选择模式。 要做到这一点,我们需要发出一个传输间隔(!) 1.25us 时、写入传输我们要接下来转换的下一个通道。 基本来说、它是有效的。 不过、我们打算将 EDMA 用于许多其他请求、我有点不确定该系统解决方案是否能够处理片上系统中的所有数据传输、 尽管这是一个多核系统、但具有很多资源和功能。
除了与外部 SPI-ADC 之间的1.25us 传输量外、我们还需要每5us 进行一次 DMA 传输
- FSI 信道
-数据从实时控制系统传输到系统内存等
总之、我们将需要(没有任何网络 DMA) 5..7个通道、其中两个通道每1.25微秒、其余通道每5微秒。 现在、在提出问题之前、我想展示如何为外部 SPI-ADC 完成此操作。
显示了 SoC 上配置为处理1.25us 传输的"组件"。 上图中没有显示用于相互隔离不同电压电平所需的数字隔离器。 AM2634处于电压电平"A"上、外部 SPI-ADC 处于电压电平"B"上。 在现实生活中、它的外观如下:
在这种情况下应使用 ADS7038的所谓"动态"模式。 不过、可能存在更好的方法。 看起来每次转换都需要片选的上升沿。 换句话说,我不能发出一组模拟输入通道的突发转换与一个引脚信号事件等...
-"焦点"每1.25us 显示一次来自 EPWM0单元的触发(浅蓝色)
-从 SPI0到外部 SPI-ADC 的片选(品红色)
-时钟。 在此配置中、时钟速度为25MHz、每次传输16个时钟(绿色)。
(此示波器屏幕截图中未显示数据线路 SDI 和 SDO)
由于需要4个以上的外部通道、因此使用顺序不同的序列来选择所需的所有通道。 15us 后、重复此序列。 描述该序列顺序的表位于 MAIN 存储器中、可由 DMA 读取。 系统应配置为无限运行。 它应每1.25和5微秒传输数据、每5微秒处理和过滤数据。 在此级别的处理应主要以接近于使用外部 FPGA 情况下的"无抖动"性能运行、以保证在此数据收集和预处理级别上无抖动运行。
现在问题(抱歉很多问题...):
问题1:此系统方法能否保证这一点? 我知道这个问题有点模棱两可。 但是、我不知道如何使用该系统中涉及的 IP (MCSPI+RTCS+FSI+PRU)测量 EDMA3性能、而没有实施整个应用、这是我目前所无法实现的。 我对如何衡量这一点或使潜在问题可见的任何想法都非常受欢迎。 请告诉我。
Q2:在 EPWM0事件(1.25us 触发)之后、需要超过300ns 的时间、直到发生芯片选择的下降沿。 DMA 需要多少时间? 这主要是因为 DMA 处于"低电平"状态、还是 MCSPI-IP 配置的根本原因? 在此环境中、DMA 正在从系统存储器中的表中读取一个字(16位)、并将这个一个字写入 MCSPI 组件的输出寄存器/缓冲器、以选择下一步要转换的通道。 据我所知、DMA 的系统时钟是200 MHz。 对吧?
Q3:现在在 MCSPI0-IP 上执行写入和数据传输操作来选择外部 SPI-ADC 并从中收集数据、是否有更好的方法来定期发出写入和数据传输操作? 我使用 DMA、 我找不到任何其他选项、例如直接使用计时器或 ePWM 单元。 这就是我使用一个 DMA 通道的原因、也是因为我使用了此 ADC 的"动态"模式。 但是、这并非必须要做的事情。
Q4:在系统传输性能方面、有没有比 MCSPI 接口更好的方法将外部多通道 ADC 连接到 AM2634?
Q5:在每个字之后、必须发出 DMA 读取请求(从外部 SPI-ADC 接收到一个数据字)是否正确? 需要通过读取请求将接收到的值存储到 PRU0的数据存储器中以进行预处理。 我无法突发存储数据包、但必须传输每个字? 需要多长时间? 或者如何让所需的时间可见? 根据我的理解、这里没有选项可以将 DMA 作为内部系统上的主器件传输到 GPIO 引脚的时间、从而显示占用的总线所有者运输时间。
Q6:不能同时在 MCSPI 内对同一通道使用 DMA 和 FIFO 这一说法是否正确? 在这里、我仅使用 MCSPI 的通道0。 我试图在 MCSPI 上启用和配置接收 FIFO ,但这样做我就不会再得到任何 DMA 读取请求...
希望问题不要太多。 总之、感谢大家的分享、希望如果系统性能在所有情况下都足够好、或者如果其他概念可能更适合此类应用、我可以得到一些更好的"估算"的想法。
Br
Markus