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.

[参考译文] TMDS64EVM:如何设置来自 PRU 的 PADTRIG 多路复用器值

Guru**** 2837190 points

Other Parts Discussed in Thread: TMDS64EVM, SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1632597/tmds64evm-how-to-set-padconig-mux-values-from-pru

器件型号: TMDS64EVM
主题: SysConfig 中讨论的其他器件

这是上一个主题的延续、该主题最近有一个后续问题、但可能会在 ether 中丢失: AM6422:如何配置 PRU GPIO 引脚 — 基于 Arm 的微控制器论坛 — 基于 Arm 的微控制器 — TI E2E 支持论坛 。 有些问题从原来的帖子回答,但其他人迷失在 exchang。

最新问题:

我正在为 ICSSG1_PRU0 编写 C 代码、并尝试使用 RGMII 接口编写一个简单的以太网驱动程序(由于客户要求,我无法选择将 SDK 代码文件用于我的应用)。 我通过 CCS XDS110 连接到 PRU、如 TMDS64EVM 的“入门“指南中所述。 我需要对电路板引脚进行配置、以便启用 RGMII 接口。

在 PRU 代码中、我要设置 ICSSG_GPCFG0_REG.PR1_PRU0_GP_MUX_SEL = 2(MII 模式)。 我有 PRU 代码、该代码还尝试将 PADCONFIG46、PADCONFIG47 等的 PADCONFIG 多路复用器值设置为多路复用器模式 2 以启用 PRG1_RGMII1_R* PRG1_RGMII1_T* 信号完整性功能。  

1) 我是否能够从 PRU 代码本身写入 PADCONFIG 寄存器?

2) 当连接到 PRU 进行调试时、我是否需要写入引脚 PADCONFIGFG 寄存器以在这些引脚上启用 RGMII 功能、或者 PRU 是否向 ICSSG_GPCFG0_REG.PR1_PRU0_GP_MUX_SEL 写入 2 足够大?

3) 如果 PRU 无法写入 PADCONFIG 寄存器、但 PADCONFIG 寄存器确实需要写入、则当连接到 PRU 并从 PRU 进行调试时、我还有哪些其他选项、因为 Arm 内核上没有运行的代码?

 

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

    您好、Seth。

    是的、PADCONFIG 寄存器可以从具有软件来修改它们的任何内核进行配置。 因此、它们可以通过 ARM 内核、但也可以通过 PRU 内核本身进行配置。 如果从多个内核写入设置、请注意所有硬件设置都在每个软件实例之间对齐。

    是的、您需要确保 PADCONFIG 设置正确  

    PRU 的内部 MUX_SEL 选择从 PRU 子系统发送到 SoC 本身的信号。 但是、引脚本身有第二个信号多路复用器、它也必须正确进行多路复用以选择 PRU 信号、而不是连接到引脚多路复用器的其他处理器信号之一(即“引脚多路复用器“)。

    从 PRU 设置 PADCONFIG 寄存器的示例  

    PRU 具有对使用 SoC 级地址访问的系统任何部分(假设您尚未设置防火墙来阻止从该内核访问)的读取/写入访问、包括 PADCONFIG 寄存器。

    以下 OpenPRU 示例均配置 PRU 内核的 pinmux 设置:
    https://github.com/TexasInstruments/open-pru

    custom_frequency_generator、fir、logic_speer、multiple_scheduler

    请注意可保护 PADCONFIG 设置不被意外修改的 KICK 寄存器。 确保在所有代码中一致地使用这些寄存器 — 例如,不希望 ARM 依赖于被解锁的 KICK 寄存器、然后 PRU 内核在修改后锁定它们、如果 ARM 在稍后尝试但未能调整设置、则会出现意外行为。

    CCS GEL 文件?  

    我自己没有在 AM64x 上执行此操作、但在较旧的处理器上、我们还可以告诉 CCS 使用 GEL 文件脚本应用 pinmux 设置(例如,请参阅 software-dl.ti.com/.../PRU-Hands-on-Labs.html) 。 因此、如果 ARM 内核尚未配置 pinmux 设置、这可能是 CCS 调试期间的另一个选项。

    此致、

    Nick

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

    如需将来的读者、可以在 AM64x 多核 Academy > memory & peripheral 部分中找到有关共享系统资源的基本概念的更多信息:
    https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AJa64F6ctzZNbb.TYx4mCA__AM64-ACADEMY__WI1KRXP__LATEST

    部分信息不适用于 Seth 的用例、因为他不使用 Linux 对 A53 内核进行编程。 但“所有内核必须就资源使用情况达成一致并避免彼此的设置冲突“的基本概念极其重要、尤其是当他不会使用 SysConfig 等工具来检查他的 RTOS/裸机软件实例之间是否存在资源冲突时。

    此致、

    Nick