您好!
我的目标是通过 SPI 接口实现 UDMA 操作、从而在无需微控制器干预的情况下从 LTC2333-16 ADC 连续读取样本。
通过 TM4C1292NCPDT 数据表、我们了解到使用 SPI 接口可以实现 UDMA。 即、只要 SPI 数据缓冲区被填满、SPI 就会发出 DMA 请求。 UDMA 将配置为乒乓模式、以从 SPI 接收数据到存储器、并在 UDMA 乒乓缓冲器填满时生成处理器中断。
LTC2333-16 ADC 可选择配置控制字、即在序列运行模式下为通道选择预先确定的顺序。 但是、每个通道都需要 CNV 即转换信号来从主器件启动转换。 当转换完成时、BUSY 信号被取消置位、并且期望 SCKI 信号从主器件驱动 SDO 数据。 请查看以下单个样本的时序图。
要使用 LTC2335-16的内部序列发生器、我们必须按照如下所述使用多达16种配置的所需序列对其进行编程。 这些配置中的每一种都指定了一次转换所需的通道编号和 SoftSpan 范围。 然后、LTC2335-16将第一个配置应用于第一个转换、第二个配置应用于第二个转换、依此类推、直到达到编程序列的末尾、此时周期将从开始重新开始。
现在、我计划使用计时器脉冲来处理每个样本的 CNV 信号。 然而、SPI 应该在 ADC BUSY 信号之间具有某种握手信号、并且在无需处理器干预的情况下驱动主时钟。
请澄清以下内容。
- 对于每次采样读取、SPI 是否应该能够处理 BUSY 信号以将主时钟驱动到 ADC 而无需处理器干预?
- 请建议是否可以实现任何逻辑来处理 BUSY 信号和 SPI 主时钟之间的握手。
- 在每次从 SPI 缓冲器读取样本后、是否可以在没有处理器干预的情况下提供从 uDMA 到 ADC 的一些信号?
谢谢
巴拉