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.

[参考译文] Linux/TMDSEVM572X:PAD 配置问题

Guru**** 2614265 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/657558/linux-tmdsevm572x-pad-configuration-questions

器件型号:TMDSEVM572X
主题中讨论的其他器件:AM5728

工具/软件:Linux

您好!

在针对572x 的 u-boot 焊盘配置中、焊盘配置寄存器似乎被写入两个单独的步进/级、首先是主焊盘配置、然后是"Δ 阵列"焊盘配置。  这两个数组出现在 mux_data.h 中,而 pad IO 配置似乎在 board.c 中的 rechature_iodelay()中的两个独立阶段中完成:

1) 1) rechatch_iodelay ()中的第一个初始化步骤使用主焊盘配置阵列(例如 core_padconf_array_Essential _X15)写入焊盘配置寄存器

2) rechatch_iodelay ()中的第二个初始化步骤从"delta"数组( 例如 core_padconf_array_delta_X15)写入填充配置寄存器、该数组似乎主要是 VIN/VOUT、多路复用模式0。

* pinmux 应用手册 sprac44 (我使用的是较旧版本)中的 Perl 脚本在 padconf.h 中生成一个大表,其中包含所有 PAD 配置,包括 VOUT、VIN、 然后、您似乎  需要将 Perl 脚本输出中的 VOUT/VIN 条目拆分为"delta array"、并将其他所有内容放在 main、array 中(焊盘配置必不可少)。

问题:

1) 1) 为什么焊盘配置寄存器写入操作分为两个阶段、例如初级阶段和差值阶段?  如果您将所有内容写在一个大循环中而不是将其分解、会发生什么情况?  这是因为需要限制每个配置步骤的执行时间、还是需要在所有其他步骤之后启动视频?

2) 2)这种顺序是否依赖于首先配置所有非视频焊盘、然后是模拟视频焊盘(例如 Δ 阵列)、仅适用于配置用于模拟视频的焊盘?

3) 3)如果我们将 M0模式为模拟视频的焊盘重新配置为不同的多路复用模式(请参阅下面的示例)、我们是否仍然需要将该特定的焊盘配置放置在 Δ 阵列元件中、或者该焊盘配置是否可以放置在主阵列中?

{VOUT1_D12、(M0 | PIN_OUTPUT | SLEWCONTROL | MANUAL_MODE)}、// vout1_d12.vout1_d12 *

{VOUT1_D12、(M10 | PIN_OUTPUT)}、// vout1_d12.PR2_uart0_rts_n *

我认为这在 sprac 44中没有得到解决。  如果我错过了 TRM 中的解释、请原谅我!

谢谢!!!

Jeff

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

    我将更深入地探讨您的问题、但作为起点、请注意、我们要求引脚多路复用几乎是第一级引导加载程序中的所有内容。

    所有引脚复用或 IODelay 配置(MMC 除外)都需要在隔离模式下进行。 但是、如 AM572x TRM 的"隔离要求"部分所述:"当 IO 被隔离时、代码只能从内部 RAM 执行。" 这是因为隔离模式会影响所有 IO、因此无法访问 DDR。 因此、隔离模式和引脚多路复用配置必须在引导时完成。 不支持在内核中进行运行时 pinmux 更改。

    另请参阅 AM572x 器件勘误表:
    更改 IO 设置时可能会出现 i869 IO 故障

    另请参阅以下链接:

    e2e.ti.com/.../1995178
    e2e.ti.com/.../540246
    e2e.ti.com/.../571589

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

    根据下面的 REDIRECTAL_ioDELAY 代码段、焊盘配置分为2个步骤:

    对于为5728定制电路板端口的用户、我们只需知道何时拆分焊盘配置即可。 我确定信息在某个地方、但我尚未找到良好的经验法则或解释原因...

    再次感谢!!

    Jeff


    摘录载于 board.c
    (二

    在 u-boot/board/ti 中
    void 重校准_iodelay (void)



    pconf = core_padconf_array_essal_x15;


    /*设置 I/O 隔离*/
    RET =__RE重 校准_iodelay_start ();

    /*在此处执行多路复用*/
    do _set_mux32 (((*ctrl)->control_padconf_core_base、pconf、pconf_sz);


    /*现在执行应该安全的奇怪的次要增量*/

    pconf = core_padconf_array_delta_x15_sr2_0;


    do _set_mux32 (((*ctrl)->control_padconf_core_base、pconf、pconf_sz);


    /*特写.. 去除隔离*/
    _re重 校准_iodelay_end (ret);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jeff、

    根据我的理解、"delta 数组"特定于 AM572x 器件芯片版本(1.1或2.0)。 因此、当电路板上有 AM572x SR1.1器件时、使用 core_padconf_array_delta_x15_SR1_1、当电路板上有 AM572x SR2.0器件时、使用 core_padconf_array_delta_x15_sr2_0。 因此、代码更加灵活、并且支持两个芯片修订版本(1.1和2.0)。

    SR1.1和 SR2.0在 VOUT1手动模式下存在差异。 有关更多信息、请参阅:

    www.ti.com/.../sprac44a.pdf -第1.3.3节手动模式示例

    AM572x DM SR1.1 (SPRS915Q.pdf)和 DM SR2.0 (SPRS953C.pdf)。

    如果您计划仅在 SR2.0电路板上运行代码、则可以使用一个通用数组。



    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,谢谢! 我认为基于云的 Pinmux 工具现在仅为 SR2.0生成引脚多路复用输出、对吧?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Jeff Andich"]我认为基于云的 pinmux 工具现在仅为 SR2.0生成 pinmux 输出,对吗?[/quot]

    基于云的引脚多路复用工具支持 AM5728 SR1.1和 SR2.0。 当您从下拉菜单中选择"AM5728_SR2.0"器件时、该工具将仅为 SR2.0生成引脚多路复用器输出。

    此致、
    帕维尔