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.

[参考译文] LP-AM263:SysConfig 的 GPIO 引脚分配问题

Guru**** 2455560 points
Other Parts Discussed in Thread: LP-AM263, SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1260829/lp-am263-problem-with-gpio-pin-assignment-by-sysconfig

器件型号:LP-AM263
主题中讨论的其他器件: SysConfig

SDK 中的 GPIO_LED_BLINK 示例适用于 LP-AM263上的红色 LED。

为了测试 GPIO 分配、我修改了该基本示例。

我将外部 LED 连接到 Booster Pack 接头 J4上的引脚33 、

使用  SysConfig 将 PRO_PRU0_GPIO0分配给它、

GPIO93设置为标准 多路复用 模式7.

此修改后的闪烁程序 在处理器内存中似乎可以正常工作、但外部 LED 不闪烁。

当外部 LED 由另外3.3V 电源供电时工作正常。

但这里不是 Booster Pack 接头 J4上的引脚33上具有该程序。

SysConfig 在 ti_pinmux_config.c 中进行的多路复用配置为:

 

静态 Pinmux_Per Ccfg_t gPinMuxMainDomainCfg[]={
/* GPIO0引脚配置*/
/* GPIO26 -> UART0_CTSN (B7)*/
{
PIN_UART0_CTSN、
( PIN_MODE(7)| PIN_pull_disable | PIN_SLEW_RATE_HIGH | PIN_QUAL_SYNC | PIN_GPIO_R5SS0_0 )
}、
/* GPIO0引脚配置*/
/* GPIO93 -> PR0_PRU0_GPIO0 (K17)*/
{
PIN_PR0_PRU0_GPIO0、
( PIN_MODE(7)| PIN_pull_disable | PIN_SLEW_RATE_HIGH | PIN_QUAL_SYNC | PIN_GPIO_R5SS0_0 )
}、
/* GPIO0引脚配置*/
/* GPIO94 -> PR0_PRU0_GPIO1 (K18)*/
{
PIN_PR0_PRU0_GPIO1、
( PIN_MODE(7)| PIN_pull_disable | PIN_SLEW_RATE_HIGH | PIN_QUAL_SYNC | PIN_GPIO_R5SS0_0 )
}、
/* GPIO0引脚配置*/
/* GPIO96 -> PR0_PRU0_GPIO3 (J17)*/
{
PIN_PR0_PRU0_GPIO3、
( PIN_MODE(7)| PIN_pull_disable | PIN_SLEW_RATE_HIGH | PIN_QUAL_SYNC | PIN_GPIO_R5SS0_0 )
}、

/* UART0引脚配置*/
/* UART0_RXD -> UART0_RXD (A7)*/
{
PIN_UART0_RXD、
( PIN_MODE(0)| PIN_PULL_DISABLE | PIN_SLEW_RATE_LOW )
}、
/* UART0_TXD -> UART0_TXD (A6)*/
{
PIN_UART0_TXD、
( PIN_MODE(0)| PIN_PULL_DISABLE | PIN_SLEW_RATE_LOW )
}、

{PINMUX_END、PINMUX_END}
};

如果处理器焊盘 K17连接到    Booster Pack 接头 J4的引脚33、则这应该起作用。

为什么这不起作用?

非常感谢您的帮助。

此致

罗伯特

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

    您好、Robert:

    嗯... 我没有现成的 LaunchPad 可用于测试、但我觉得文档和原理图有点不匹配。

     PR0_PRU0_GPIO0输出来自多路复用器、并且您删除了与控制多路复用器相关的所有代码。  从原理图中可以看到、您 需要将多路复用器设置为启用然后选择为高电平、 PR0_PRU0_GPIO0信号就是传递到 BoosterPack 接头的信号。

    此内容基于 原理图的第11页:

    但是、此文档表示  默认情况下传递 PR0_PRU0_GPIO0。 这似乎不是原理图所指示的那样。

    您能否检查是否添加多路复用器控制并将多路复用器选择设置为高电平会使 LED 闪烁? 如果是、我将与我们的团队一起查看文档、使表格的这一部分更易于理解。

    此致、

    拉尔夫·雅各比

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

    Ralph 您好!

    感谢您的建议。 我希望 SysConfig 结合多路复用器设置激活多路复用器控制。

    我不熟悉 SysConfig 和 CCS、因此请耐心等待。

    如何激活   PR0_PRU0_GPIO0的多路复用器控制?

    此致

    罗伯特

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

    尊敬的 Robert:

     AM263 LaunchPad 的默认 GPIO_LED_BLINK 示例也涵盖了这一点。

    您必须在 SysConfig 中恢复引脚、但用于控制多路复用器的代码如下所示:

        /* Get address after translation translate */
        gpioBaseAddr_en = (uint32_t) AddrTranslateP_getLocalAddr(AM263_U52_MUX_EN_GPIO58_BASE_ADDR);
        pinNum_en      = AM263_U52_MUX_EN_GPIO58_PIN;
    
        GPIO_setDirMode(gpioBaseAddr_en, pinNum_en, AM263_U52_MUX_EN_GPIO58_DIR);
        GPIO_pinWriteHigh(gpioBaseAddr_en, pinNum_en);
        ClockP_sleep(1); /* just make sure MUX route is stable */
    
        gpioBaseAddr_sel = (uint32_t) AddrTranslateP_getLocalAddr(AM263_U52_MUX_SEL_GPIO63_BASE_ADDR);
        pinNum_sel      = AM263_U52_MUX_SEL_GPIO63_PIN;
    
        GPIO_setDirMode(gpioBaseAddr_sel, pinNum_sel,AM263_U52_MUX_SEL_GPIO63_DIR);
        GPIO_pinWriteHigh(gpioBaseAddr_sel, pinNum_sel);
        ClockP_sleep(1); /* just make sure MUX route is stable */

    此致、

    拉尔夫·雅各比

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

    Ralph 您好!

    感谢您的示例。 我试图调整它以符合我的程序、但收到以下错误:

    这是我的 CCS 项目。 它是闪烁示例的副本。

    e2e.ti.com/.../gpio_5F00_led_5F00_blink_5F00_am263x_2D00_lp_5F00_r5fss0_2D00_0_5F00_nortos_5F00_ti_2D00_arm_2D00_clang_5F00_V1.0.7.zip

    请查看为什么它不起作用。

    提前感谢您!

    罗伯特

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

    Ralph 您好!

    对不起,我误解了你的答案和你希望我做什么。

    我使用了万用表并检查了  DDR 开关 U23上的逻辑电压。

    默认情况下(未运行程序) DDR 开关 U23 引脚8上的输入 EN 为 高电平

     在 LP-AM263上、引脚9和10上的 SEL1和 SEL2为低电平。

    PR0_PRU0_GPIO1到达 A1 (并在闪烁程序运行时切换)

    路由到引脚39上的 B1、而不是引脚40上的 C1、这会连接到接头 J4引脚32

    我需要的位置。

    是、 默认情况下所有 PR0_PRU0_GPIOx 由 DDR 开关 U23路由到 B 输出

    而不是 C 输出、此输出将停用所有 适用于 GPIO 的 Booster Pack 引脚接头。

    我知道您曾 在软件示例中尝试将 SEL1和 SEL2切换为高电平。

    不幸的是、您的代码示例在我编译时会触发错误:

    是否有其他方法可以使 U23上的 SEL1和 SEL2变为高电平?

    此致  

    罗伯特

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

    您好、Robert:

    我没有像我所能做到的那样清楚地强调这一点、但

    您必须在 sysconfig 中恢复引脚

    这意味着、您需要转到 SysConfig 并重新添加为这些 IO 删除的配置。 或者、只需重新加载一个全新的  GPIO_LED_BLINK 示例、然后对其进行修改就会更简单。

    如果没有为多路复用器引脚设置 SysConfig、我共享的代码将无法编译。

    此致、

    拉尔夫·雅各比

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

    Ralph 您好!

    LP-263 SDK 中的 GPIO 示例使用 GPIO26上的板载 LED 和板载开关。

    在这两个示例中、SysConfig 中都没有针对 DDR 开关 U23上 EN 和 SEL1/2的 GPIO 配置。  

    我无需恢复任何内容、因为 您的代码示例中不存在用于 EN 和 SEL1/2的 SysConfig GPIO。

    请与您的 SDK 团队沟通、以提供可用于在 BoosterPack 接头上使用 GPIO 引脚的样片。

    这对我来说是个真正的障碍、因为我希望  BoosterPack 接头上的 GPIO 引脚默认连接到 CPU 焊球。

    我在 CPU 文档或 SDK 示例中没有找到任何提示、可以 让我考虑在打开时将 EN 和 SEL1/2

    DDR 通过 SysConfig 和 GPIO 输出切换 U23、从而将 LP-AM263 BoosterPack 接头上断开的 GPIO 引脚切换到 CPU 焊盘。

    请 向 launchpad 盒内的 BoosterPack 信号图中添加一些说明、以说明 LP-AM263的这一重要功能。

    我仍然不明白、为什么要 命名额外的 GPIO AM263_U52_MUX_EN_GPIO58和 AM263_U52_MUX_SEL_GPIO63 。

    在 LP-AM263上、 DDR 开关 称为 U23、而不是 U52。 这对我来说也很令人困惑。  

    若要使用   LP-AM263的 BoosterPack 接头上的 GPIO 引脚、用户需要 在 SysConfig 中设置两个额外的 GPIO:

    DDR 开关 U23上的 EN 需要一个分配给引脚 EPWM7_B/F1的名为 AM263_U52_MUX_EN_GPIO58的 GPIO 输出

     DDR 开关 U23上的 SEL1/2需要 一个 名为 AM263_U52_MUX_SEL_GPIO63且 分配给引脚 EPWM10_B/J3的 GPIO 输出

    需要在用户程序中将两个输出都切换为高电平、才能将 LP-AM263 BoosterPack 接头上的 GPIO 引脚连接到 CPU 焊盘

    再次感谢您的帮助。

    此致

    罗伯特

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

    Ralph 您好!

    在默认 CPU 多路复用器模式7下、 PR0_PRU0_GPIO1上 的外部 LED 仍然没有闪烁。

    我必须   在用户程序中使用附加配置为 PR0_PRU0_GPIO1设置 CPU 多路复用器模式0。

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

    Ralph 您好!

     用户程序中出现键入错误。 抱歉。  

    在默认 CPU 多路复用器模式下、 PR0_PRU0_GPIOx 上的外部 LED 工作正常。

    您是否要上传 LP-AM263上 GPIO 引脚的工作示例?

    再次感谢您的耐心和建议

    此致  

    罗伯特

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

    尊敬的 Robert:

    感谢您的坦率反馈... 由于我最后的两个错误假设、使这个问题变得复杂、我会接受很多错误。

    在这两个示例中,SysConfig 中都没有针对 DDR 交换机 U23上 EN 和 SEL1/2的 GPIO 配置。  [/报价]

    这对我来说,我本可以拥有 宣誓 当天我导入了一个新项目、这就是我看到它们的地方、但现在我意识到我没有导入新项目、因此我添加了该代码、以解决过去的一个问题。 因此、我100%想告诉您存在但不存在的东西。 如果我意识到没有一个快速的例子,我会把一个正确的例子,并分享给你误导的指示. 此外、在事后看来、我应该已经提供了相关的.c 文件和.sconfig 文件、以便您进行快速参考。

    请与您的 SDK 团队联系,以获取可使用 BoosterPack 接头上 GPIO 引脚的样片。

    是的、回头看看这个线程、我们的监听非常清晰。 我会提出这个对 SDK 改进的请求、 同时还会在过渡期间尝试构建一个更全面的示例、以便在 E2E 上发布同样的内容。

    我在 CPU 文档或 SDK 示例中没有找到任何提示、可以 让我考虑在打开时将 EN 和 SEL1/2

    DDR 通过 SysConfig 和 GPIO 输出切换 U23、从而将 LP-AM263 BoosterPack 接头上断开的 GPIO 引脚切换到 CPU 焊盘。

    请 向 launchpad 盒内的 BoosterPack 信号图中添加一些说明、以说明 LP-AM263的这一重要功能。

    [/报价]

    我将回顾 BoosterPack 用户指南和 SDK 文档中的相关文档和我们没有的相关文档。

    我仍然不明白、为什么要 命名额外的 GPIO AM263_U52_MUX_EN_GPIO58和 AM263_U52_MUX_SEL_GPIO63 。

    在 LP-AM263上、 DDR 开关 称为 U23、而不是 U52。 这对我来说也很令人困惑。  

    [/报价]

    这 是个有问题的地方...

    • 两个多路复用器对于 EN 线路共享相同的 I/O、因此我们可能不应将特定芯片命名为
    • 因为我知道使能功能正确。 这让我 假定 从该示例中选择的多路复用器符合您的需要、但实际上、我看到的 GPIO LED 闪烁代码控制的是 U52多路复用器、您需要的是 U23多路复用器。
      • 我想如果我们有一个控制 U23多路复用器的示例、那么对应的 MUX SEL 应进行准确标记、但它可能不会准确地标记 MUX EN、因此我将提交相关反馈。
    • 如果我正确地认识到了这一点、我反而解释说、虽然过程是类似的、但您需要反映 U23多路复用器的引脚、在那里选择引脚是 GPIO64而不是 GPIO63。
    您是否要上传 LP-AM263上 GPIO 引脚的工作示例?
    [/quote]

    我相信其他社区成员如果遇到类似的问题就可以使用这样的项目。  

    虽然我很高兴你能够获得这个工作,我很失望,我不能让你更早。 我对我自己的失误深表歉意,因为这件事拖得太久了。

    此致、

    拉尔夫·雅各比

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

    Ralph 您好!

    该版本 的 GPIO_LED_BLINK 示例适用于我的 LP-AM263、

    e2e.ti.com/.../gpio_5F00_led_5F00_blink_5F00_am263x_2D00_lp_5F00_r5fss0_2D00_0_5F00_nortos_5F00_ti_2D00_arm_2D00_clang_5F00_V1.1.1.zip

    感谢你的帮助。

    此致

    罗伯特