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.

[参考译文] AM625:PRU 时钟速度

Guru**** 2468610 points
Other Parts Discussed in Thread: AM625, SK-AM62

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1450458/am625-pru-clock-speed

器件型号:AM625
主题中讨论的其他器件: SK-AM62

工具与软件:

您好!

我使用 AM625 EVM 板和 GPI 直接输入模式进行 SPI 位拆裂。 SPI 主器件以12.5MHz 的频率持续流式传输数据。 我 有一个问题-我无法获得所有的位。

 

然后、我开始进行一些测试。 根据 TRM、AM62x 的时钟速度为333MHz。

因此、我尝试使用以下代码切换 PRU 引脚(P22 - GPMC0_AD5.PR0_PRU0_GPO5):

    .sect ".text"
    .global main

main:

MainLoop:

    SET r30, r30, 5         
    CLR r30, r30, 5         
    JMP MainLoop  

当我示波此引脚时、 频率为12.5MHz、宽度为25MHz。 如果 PRU 以333MHz 的时钟频率运行、那么一个周期内应该至少达到大约160MHz、或者上述引脚进行切换(高电平/低电平)。

然后、我在 SK-AM62入门套件用户指南中看到 PRU 引脚为低速引脚-"AM62x SKEVM 有一个20引脚 PRU 接头、提供到 PRG0接口的低速连接"、我想这可能是真正的原因。

因此、我尝试了 BeagleBone black (200MHz 时钟速度)、看看是否可以更快地切换引脚。

我使用命令"config-pin P8_12 pruout"将 P8_12配置为 pruout、我使用了上面的相同代码、但我使用的不是位5、而是位14并运行它。

时钟宽度为16.667MHz 和25MHz。

我的问题是、如何验证 PRU 是否运行的时钟正确、以及如何正确设置时钟(AM62x 或 BeagleBone 200MHz 时为333MHz)?

 

此致、

John

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

    John、您好!

    在这种情况下、"低速"仅意味着"不要将其用于125MHz 以太网协议"。 我被告知 SPI 应该可以。

    实际上、我们在 SDK 10.0后发现、默认情况下、我们没有正确设置 PRU 时钟- Linux devicetree 文件中的时钟设置只是默认 AM64x 设置的复制/粘贴操作、并会引发时钟错误。 我提交了一个错误、我们正计划为即将推出的 SDK 10.1修复该错误。 让我看看团队是否真正解决了错误,或者它是否仍然突出...  

    我首先注意到的主题是: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1410928/am625-sdk-10-ti-sci-clk-recalc-rate-failed-for-dev-81-clk-20-ret--19

    我还会将您链接到具有相同问题的另一个主题。  μ António 制定了一个测试程序、完全符合我过去验证 PRU 时钟频率的方法(等待 N 个 PRU 时钟、然后切换信号)。 信号脉冲的宽度是否= 3/4/5 ns * N?): https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1450236/am625-help-setting-pruss-clock-to-333mhz-on-am6254

    我还将在收到开发人员的反馈时更新该线程。

    此致、

    Nick

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

    好的、我让开发团队重新运行测试来提交此提交、看起来消除了启动时的时钟错误:
    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/arch/arm64/boot/dts/ti/k3-am62-main.dtsi?h=ti-linux-6.6.y-cicd&id=34e6b1d215aae3e5d9c9d455edc943140ec99775

    因此、您应该能够将其用作将 PRU 时钟频率更改为333MHz 的框架。

    请注意、我预计技术参考手册(TRM)中提供的 PRU 时钟信息是错误的。 有关预计时钟实际外观的更多详细信息、请参阅上面的主题: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1410928/am625-sdk-10-ti-sci-clk-recalc-rate-failed-for-dev-81-clk-20-ret--19

    在今后几个星期里、我将不能在这个问题上投入更多的时间、对此事先表示歉意。 但是、请随时更新我-我是 AM62x 学院多核模块的作者(我将在这里链接该模块、如果您还进行任何 M4F 或 DM R5F 开发、请 访问 https://dev.ti.com/tirex/explore/node?node=A__AJa64F6ctzZNbb.TYx4mCA__AM62-ACADEMY__uiYMDcq__LATEST)。   2025年、我们的团队和我将为 AM62x 学院创建名为 PRU 学院的新模块。 我要添加的页面之一是修改时钟频率、因此我将此主题添加为书签、以便在我们开始编写该页面时参考。

    此致、

    Nick

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

    您好、Nick。

    编译器件树并引导器件后。 我运行了 k3conf

    $ k3conf dump parent_clock 81 14.


    **□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□F |
    | VERSION INFO |
    **□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□F |
    | K3CONF |(版本0.3-nogit 创建于7月25日14:13:02 UTC 2024)|
    | SoC | AM62X SR1.0 |
    | SYSFW | ABI:4.0 (固件版本0x000a '10.0.8--v10.00.08 (Fiery Fox))')|
    **□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□F |

    ||---------------------------------------------------------- |
    |时钟信息|
    ||---------------------------------------------------------- |
    |器件 ID |时钟 ID |时钟名称|状态|时钟频率|
    ||---------------------------------------------------------- |
    | 81 | 14 | DEV_ICSSM0_VCLK_CLK | CLK_STATE_READY | 250000000 |
    ||---------------------------------------------------------- |

    **□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□F |
    |时钟父信息|
    **□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□F |
    |已选择|时钟 ID |时钟名称|状态|时钟频率|
    **□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□F |
    **□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□F |

     

    所以、解决方法是将 PRU 时钟设置为250MHz?

    然后、我运行我在上面提供的 GPIO 切换开关、我将其设置范围。 我仍获得相同的频率输出16.667Mhz。

    此致、

    John

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

    您好、Nick。

    我尝试了补丁、也尝试了您提供的链接
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1450236/am625-help-setting-pruss-clock-to-333mhz-on-am6254

     

    我使用了链接中提到的相同代码。

     while (1 ) {
            __delay_cycles(100);
            __R30 |= 0x80;
            __delay_cycles(100);
            __R30 &= ~0x80;
        }

    我获得了类似的结果(~1.63Mhz)。

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

    John、您好!

    很抱歉,这里响应缓慢,我在圣诞节假期之前被一些关键工作束缚。 如果我们需要更多讨论、请在1月对该主题执行 ping 操作、以确保我回来后您的主题不会丢失。

     António 大家都可以将自己的时钟设置为333MHz、而且 TI 开发人员的代码应该能够成功地将时钟设置为250MHz。 希望这是足够的信息来解除阻止您:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1450236/am625-help-setting-pruss-clock-to-333mhz-on-am6254 

    此致、

    Nick

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

    John、您好!

     António 回到这里、我有时间坐下来分析 S ö m 的时钟设置代码、但代码不正确。 我在上面链接的代码要求 Linux 执行不可能执行的操作(采用固定的250MHz 接口时钟、并将时钟设置为不同的频率)。 因此、它可能会产生正确的结果、但我不能保证它能正常工作、或者它能与所有软件版本一起工作。

    请在此处查找最新指南: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1459880/am625-i-would-like-to-get-the-pru-running-at-333mhz-in-am625/5640275#5640275

    此致、

    Nick