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:帮助在 AM6254上将 PRUSS 时钟设置为333MHz

Guru**** 2468610 points
Other Parts Discussed in Thread: SK-AM62B-P1

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

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

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

工具与软件:

大家好!

我尝试使用以下页面中的信息在 SK-AM62B-P1板上将 PRUSS 内核时钟设置为333:

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1048998/re-am6442-how-to-check-and-set-the-pru-core-frequency-in-linux

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1049800/faq-pru_icssg-how-to-check-and-set-pru-core-frequency-in-linux

最后、我使用了除`pruss_core_clk`之外的以下附加内容:

&pruss_coreclk_mux {
	assigned-clocks = <&k3_clks 81 0>, <&pruss_coreclk_mux>;
	assigned-clock-parents = <&k3_clks 81 1>, <&k3_clks 81 20>;
	assigned-clock-rates = <333000000>;
};

`k3conf`似乎确认 PRU 在333MHz 下运行、但我不确定如何处理其输出:

# k3conf dump clock 81

|------------------------------------------------------------------------------|
| VERSION INFO                                                                 |
|------------------------------------------------------------------------------|
| K3CONF | (version 0.3-nogit built Thu Jul 25 14:13:02 UTC 2024)              |
| SoC    | AM62X SR1.0                                                         |
| SYSFW  | ABI: 4.0 (firmware version 0x000a '10.1.1--v10.01.01 (Fiery Fox))') |
|------------------------------------------------------------------------------|

|-----------------------------------------------------------------------------------------------------------------------------------|
| Device ID | Clock ID | Clock Name                                                             | Status          | Clock Frequency |
|-----------------------------------------------------------------------------------------------------------------------------------|
|    81     |     0    | DEV_ICSSM0_CORE_CLK                                                    | CLK_STATE_READY | 333333333       |
|    81     |     1    | DEV_ICSSM0_CORE_CLK_PARENT_HSDIV4_16FFT_MAIN_2_HSDIVOUT0_CLK           | CLK_STATE_READY | 333333333       |
|    81     |     2    | DEV_ICSSM0_CORE_CLK_PARENT_POSTDIV4_16FF_MAIN_0_HSDIVOUT9_CLK          | CLK_STATE_READY | 333333333       |
|    81     |     3    | DEV_ICSSM0_IEP_CLK                                                     | CLK_STATE_READY | 250000000       |
|    81     |     4    | DEV_ICSSM0_IEP_CLK_PARENT_POSTDIV4_16FF_MAIN_2_HSDIVOUT5_CLK           | CLK_STATE_READY | 250000000       |
|    81     |     5    | DEV_ICSSM0_IEP_CLK_PARENT_POSTDIV4_16FF_MAIN_0_HSDIVOUT6_CLK           | CLK_STATE_READY | 200000000       |
|    81     |     6    | DEV_ICSSM0_IEP_CLK_PARENT_BOARD_0_CP_GEMAC_CPTS0_RFT_CLK_OUT           | CLK_STATE_READY | 0               |
|    81     |     8    | DEV_ICSSM0_IEP_CLK_PARENT_BOARD_0_MCU_EXT_REFCLK0_OUT                  | CLK_STATE_READY | 0               |
|    81     |     9    | DEV_ICSSM0_IEP_CLK_PARENT_BOARD_0_EXT_REFCLK1_OUT                      | CLK_STATE_READY | 0               |
|    81     |    10    | DEV_ICSSM0_IEP_CLK_PARENT_SAM62_PLL_CTRL_WRAP_MCU_0_CHIP_DIV1_CLK_CLK  | CLK_STATE_READY | 400000000       |
|    81     |    11    | DEV_ICSSM0_IEP_CLK_PARENT_SAM62_PLL_CTRL_WRAP_MAIN_0_CHIP_DIV1_CLK_CLK | CLK_STATE_READY | 500000000       |
|    81     |    13    | DEV_ICSSM0_UCLK_CLK                                                    | CLK_STATE_READY | 192000000       |
|    81     |    14    | DEV_ICSSM0_VCLK_CLK                                                    | CLK_STATE_READY | 250000000       |
|-----------------------------------------------------------------------------------------------------------------------------------|

因此、我构建了一个小型固件、只以固定速率(周期)切换 GPO:

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

并使用示波器测量了输出。

我`的是、虽然 Δ t k3conf`都遵循我设置的分配时钟速率、但 GPO 的时序保持不变、但我希望它们能够根据配置的 PRU 频率(200,250或333 MHz)几乎线性地进行缩放。

尽管上面的链接中已经全面介绍了这一点、但我可能仍然缺少一些了解这些信息的关键、需要您的帮助来解决这一问题。

假设上面的环路不会随着 PRU 时钟的增加而提高速度?

什么是` {&K3_CLKS 81 20>` ? 我在 "AM62X 时钟标识符"中搜索它 、但找不到说明。

最后、除了将时钟增加到333MHz 之外、是否有可能在输入 PLL 上启用展频?

此致、

António μ A