Thread 中讨论的其他器件:AM2434、 SysConfig、ADS127L11、 ADS131M08
工具/软件:
大家好、 与此主题 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1300144/processor-sdk-am64x-pru-16-bit-input-capture 类似、 我尝试从40MSPS ADC (MAX1195或 MAX1198)读取数据、该 ADC 通过并行总线提供两个8位通道数据。 16位并行采集模式似乎非常适合、因为我可以使用 ADC 时钟触发 PRU 上的并行采集。 (ADC 数据表建议输出数据在时钟的上升沿有效)。 根据 AM243x 数据表、PRU 应能够以高达50Msps (20ns 时钟周期)的速率捕获并行数据、但显然、只有当我可以足够快地将数据填充到某个位置时、这才有效。
从旧线程来看、听起来使用直接模式和并行捕获模式处理传入数据之间的唯一区别是 PRU 只会更新 R30 [B16]的位[0-15]、使其转换为低电平或高电平。 与使用直接模式和轮询 R30 [B16]更改为高或低(在装配体中)时相比、此速度是否有任何优势? 如果我从旧的并行后捕获中正确理解、除了更新 R30之外、没有启动任何其他操作、因此我需要轮询 R30 [B16]、无论如何确定何时将数据传输到缓冲区块。
此外、ADS85x8中给出的 SDK 示例非常缓慢、使用宏检测引脚何时变为高电平/低电平会增加相当多的延迟。 对于我的应用、我只有8个时钟周期(AM2434上以333运行)、可在下一次采样出现之前获取 int16并将其存储在缓冲器中、因此我需要消除去抖延迟或直接轮询引脚、而不是使用宏。
我是否正确地跟踪了所有内容、或者我是否做出了一些不好的假设? 请更正我或确认我是否已结束。
此外、SysConfig 中还有一个用于 ADC 的 ICSS PRU 块、ADS858示例中使用了该模块。 该模块中定义了几个我不需要的控制信号。 是否可以修改或创建我自己版本的 ADC 配置块、或者我是否应该手动设置所有设置? 是否有一个在汇编而不是在 SysConfig 中设置用于并行捕获的寄存器的示例?
谢谢!