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.

[参考译文] PROCESSOR-SDK-AM64X:并行捕获模式与直接输入模式 AM64x/AM243x

Guru**** 2390735 points
Other Parts Discussed in Thread: ADS127L11, AM2434, SYSCONFIG, ADS131M08

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1499598/processor-sdk-am64x-parallel-capture-mode-vs-direct-input-mode-am64x-am243x

器件型号:PROCESSOR-SDK-AM64X
Thread 中讨论的其他器件:AM2434SysConfig、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 中设置用于并行捕获的寄存器的示例?

谢谢!

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

    尊敬的 Keith:

    Unknown 说:
    如果我从旧的 POST 并行捕获中正确理解、除了更新 R30之外、不会启动任何其他操作、因此我需要轮询 R30 [B16]、无论如何确定何时将数据传输到缓冲区块。

    您的理解是正确的、读取数据和外部 CLOCKIN 的只是 R31而不是 R30。

    使用并行模式让您可以灵活地使用任何外部信号、而不是在每个 PRU 时钟周期读取、这不会为您的用例带来任何显著的速度优势。

    Unknown 说:
    是否可以修改或创建我自己的 ADC 配置块版本、或者我是否应该手动设置所有内容?
    SYSCONFIG "ADC"模块当前只能用于 MCU+ SDK 中提供的 ADC (ADS85x8、 ADS127L11和  ADS131M08)、对于任何其他 ADC、您可以添加一个"PRU (ICSS)"实例并选择所需的信号和功能。
    若要创建您自己版本的 ADC 模块、您必须修改 SysConfig 模板文件(我不建议这样做、因为自动生成的文件将受到影响)。
    Unknown 说:
    是否有一个在汇编语言而不是 sysconfig 中设置并行捕获寄存器的示例?
     ADC SysConfig 中可用的串行、并行和字节并行模式是指 ADS85x8 ADC 支持的不同接口、而不是 PRU 并行模式。 您必须在应用/固件中将 PRU GPI 设置为16位并行模式。

    此致、

    Nitika.

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

    尊敬的 Nitika:

    感谢您对我的问题的快速回答、并对我的 R31与 R30进行了更正。  我将对此进行编码、并运行一些测试、写入寄存器。

    下一步是在可以使用 R5F_0_0内核访问的共享存储器位置缓冲捕获的数据。  我发现其他一些正在讨论使用数据 RAM 的线程、对于 AM243x、我发现每个 PRU 都有8k Ω 的可用数据 RAM、以及64k 的共享数据 RAM 块。  您是否知道 R5F 内核是否可以访问这两种类型的 RAM?

    此致、

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

    尊敬的 Keith:

    是、R5F 内核可以访问 PRU DRAM 和共享 RAM 存储器。

    如果您需要更大的存储器、PRU 还可以访问2MB MSRAM 和2GB DDR 存储器、但它们的访问延迟可能更高。

    此致、

    Nitika.