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.

[参考译文] TMDSIDK437X:PRU 培训实验室中的 Pinmux

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/659107/tmdsidk437x-pinmux-in-pru-training-lab

器件型号:TMDSIDK437X

您好!

我一直在尝试使用  TI AM437x 工业开发套件(而不是 BeagleBone Black)通过 PRU 培训实践实验室(在此处找到:),并遇到了几个问题。  在实验练习1中、R30寄存器正在写入、该寄存器在我可以指示的范围内控制 PRU GPO、以便切换板载 LED。  但是、当我编译并尝试在 IDK 上运行代码时 、LED 不执行任何操作。  我认为这个问题的原因是电路板的 Pinmux 文件为 LED 选择了模式0、在这里引脚控制各种 LCD 和 CAM1信号(在这里的 LED 部分下可见)  。  我的问题是、我可以将这些 Pinmux 设置更改为它们的 GPO 等效模式(模式5)、还是它们在模式0中"锁定"以在开发套件上执行特定功能?  如果我可以更改它们、我是在 Pinmux 应用程序中还是在 Code Composer Studio 中执行此操作?  请提供任何资料。

非常感谢、

Broydon Stufko

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

    我现在看一下、明天会回来。
    Nick
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Broydon、

    引脚 LCD_PCLK 和 LCD_VSYNC (LED0)、以及 CAM1_WEn 和 CAM1_DATA2 (LED1)未连接到电路板上的任何其他引脚、因此它们仅用于 LED 控制(来自 AM437x IDK 原理图)。 进入 LED 0和1的其他两个信号也可能是空闲的、我没有时间查看它们与扩展头的连接。

    更改为模式5看起来是正确的方法。 如果您在 Linux 中构建、我想直接对引脚多路复用进行小幅调整。 下面的流程示例。  

    ~:μ C/ti-processor-sdk-linux-AM437X-EVM-04.02.00.09/board-support$ grep -r 'CAM1_data2' 

    告诉我们引脚是在 u-boot 中设置的、在 Linux 中也是在 AM437X-gp-EVM 中设置的。 AM437x-idk-EVM 中未设置该值、因此我们需要添加行、而不是调整行数。 修改 ti-processor-sdk-linux-am437x-evm-04.02.00.09/board-support/linux-4.9.59+gitAUTOINC+a75d8e9305-ga75d8e9305/arch/arm/boot/dts/AM437x-idk-evm.dts 文件以匹配、但从 MUX_MODE5更改为 MODE0。

    如果该过程对您不起作用、请告诉我。

    此致、  

    Nick

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

    Nick、

    感谢你的答复。  我对嵌入式世界非常陌生、我将为您提供一个机会。  我相信它已经回答了我的问题。

    谢谢、

    布鲁顿

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

    您好、Broydon、

    以下是对 pinmux 设置进行调整的更"官方"过程:

    1) 1)在原理图/数据表中查找引脚多路复用信息:

    CAM1_Wen 不会多路复用到 PRU 输出

    CAM1_data2多路复用器至具有多路复用模式4的 pr0_pru1_gpo10

    dss_pclk (原理图中的 LCD_PCLK)多路复用器至具有多路复用模式5的 pr0_pru1_gpo8

    dss_vsync (原理图中的 LCD_VSYNC)多路复用为 pr0_pru1_gpo6、具有多路复用模式5

    假设您决定使用 DSS_pclk 和 CAM1_data2 (pr0_pru1_GP8和 pr0_pru1_GP10)。

    2) 2)使用 TI pinmux 工具生成您所需的器件树修改。 查看 wiki 、了解有关该工具的更多信息。 转至 pinmux 工具的版本4、打开 AM437X、然后选择 peripheral PRU_PRUSS0:

    默认情况下会选择所有信号(因此 MyPRU_PRUSS01旁边会有红色标记、因为多个信号会路由到同一引脚)。 取消选中"PRU_PRUSS0 Signals (PRU_PRUSS0信号)"旁边的复选框、MyPRU_PRUSS01应进行绿色检查、以指示没有 pinmux 冲突。

    选中 GPO[8]和 GPO[10]旁边的复选框。 选择合适的输出引脚(分别为 A22和 AD21)。 根据需要更改拉动设置。

    查看 PinMux 工具的输出>生成的文件部分。  要插入 ti-processor-sdk-linux-AM437X-EVM-04.02.00.09/board-support/linux-4.9.59+gitAUTOINC+a75d8e9305-ga75d8e9305/arch/arm/boot/dts/AM437x-idk-evm.is 的代码位于 devicetree.txt 文件中:

    mypru_pruss01_pins_default:mypru_pruss01_pins_default{
    pinctrl-single、pins =<
    0xe8 (PIN_OUTPUT | MUX_MODE5)//(A22) GPO_pclk.pr0_pru1_GPO[8]*
    / 0x1f0 (PIN_MODE5)/*(A22) GPO_pclk.pr0_mpru_m1_mu20_mu_mu0_mu_mu20_mu20_mu_mu20_mu_mu_mu0_mu_m
    
    

    此致、  

    Nick