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.

[参考译文] F29H85X-GPIO-EVM:将引脚配置为 SOM 输出引脚时出现问题

Guru**** 2952510 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1651905/f29h85x-som-evm-issue-in-configuring-pins-as-a-gpio-output-pins

器件型号: F29H85X-EVM-EVM SOM
主题: SysConfig 中讨论的其他器件


我将 SOM 与定制板一起使用。
我想使用 GPIO11 作为 GPIO 作为输出。 但我无法控制该引脚。  
已通过 SysConfig 进行配置。 在这里、我会发布 SysConfig 生成的代码。 有人能帮我解决这个问题吗?

第十一章暗黑漩涡
void D2_init ();
void D2_init (){
  GPIO_setPadConfig (D2、GPIO_PIN_TYPE_STD);
  GPIO_setQualificationMode (D2、GPIO_QUAL_ASYNC);
  GPIO_setControllerCore (D2、GPIO_CORE_CPU1);
  GPIO_setDirectionMode (D2、GPIO_DIR_MODE_OUT);
}
void PinMux_init ()
{
// GPIO11 -> D2 引脚多路复用
  GPIO_setPinConfig (GPIO_11_GPIO11);
}

提前感谢。






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

    尊敬的 Dimple:

    由 SysConfig 生成的代码在结构上正确。 以下是最可能的原因和修复:

    1.已知 SysConfig 错误—缺失方向模式生成

    F29H85X SDK 版本中存在一个确认的 SysConfig 错误 GPIO_setDirectionMode() (1.02.01.00 之前的版本)、该错误在某些配置中未正确生成(尤其是对于 CPU3,但可能会影响其他情况)[1]。 解决其他用户相同症状的修复程序:

    • 升级 到 F29H85X-SDK 版本 1.02.01.00 或更高版本
    • 或 GPIO_setDirectionMode(D2, GPIO_DIR_MODE_OUT); 在 SysConfig 生成的代码部分之外手动添加、作为权变措施[1]

    2.验证是否调用了两个 Init 函数(正确的顺序)

    main() 首先配置了引脚多路复用器、确保调用这两个功能:

    void main(void)
    {
        // ... device/system init ...
        PinMux_init();   // Configure pin mux FIRST
        D2_init();       // Then set direction, pad config, etc.
        
        // Now you can control the pin:
        GPIO_writePin(D2, 1);  // Set high
        GPIO_writePin(D2, 0);  // Set low
    }

    方向/焊盘设置生效[2][3]之前、引脚多路复用器必须将 GPIO11 路由至其 GPIO 功能。

    3.定制电路板上的硬件布线

    由于您将 SOM 与 定制电路板一起使用、请验证:

    • GPIO11 从 SOM 连接器物理路由到定制电路板、而不会发生冲突
    • 没有外部上拉/下拉或其他电路会覆盖 MCU 输出
    • 板载 PMIC (TPS653860XX) 或其他 SOM 元件未声明 GPIO11 [4]
    • 检查 SOM 原理图、确认 GPIO11 未通过 0Ω 电阻器与其他功能共享[2]

    4.确认 CPU 拥有权

    您的代码通过将 GPIO11 分配给 CPU1 GPIO_setControllerCore(D2, GPIO_CORE_CPU1)。 确保执行的代码 GPIO_writePin() 实际在 CPU1 上运行。 在 F29H85X 上、GPIO 控制寄存器 (CTRL_REGS) 只能由 CPU1 写入、而数据寄存器可以由分配的内核写入[1]。


    为了帮助完善这项建议、了解以下信息会有所帮助:

    • 您当前使用的 F29H85X SDK 版本
    • 其他 GPIO 引脚是否在相同的初始化模式下正常工作
    • 您观察到哪些特定行为(引脚卡在高电平,卡在低电平,无切换)
    • 您是否已在定制电路板原理图上确认 GPIO11 布线
    • 哪个 CPU 内核正在执行此代码 (CPU1 或 CPU3)

    资源:

    1. F29H859TU-Q1:SysConfig GPIO 方向错误 — E2E 主题
    2. F29H85x LaunchPad 用户指南
    3. F29H85X GPIO API 文档
    4. F29H85X SDK - TPS653860XX PMIC 示例

    此致、

    Zackary Fleenor

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

    f29h85x-sdk_1_02_01_00

    其他 GPIO 引脚是否能够在相同的初始化模式下正常工作

    是的

    您观察到了哪些特定行为(引脚一直处于高电平,一直处于低电平,无切换)

    驱动至低电平

    未连接外部上拉电阻时为高电平、未连接外部 10k 上拉电阻器时为高电平

    您是否已在定制电路板原理图上确认 GPIO11 布线

    是的、这是非常正确的

    哪个 CPU 内核正在执行此代码 (CPU1 或 CPU3)

    磁芯 1

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

    尊敬的 Dimple:

    根据您的回答、诊断现已明确: GPIO11 的输出驱动器未激活。 外部上拉电阻器(而不是由 MCU 驱动)之后的引脚证明了尽管您的软件配置正确、MCU 在该引脚上处于高阻抗状态。

    由于您的 SDK 是最新的 (1.02.01.00)、其他 GPIO 的工作方式相同、您使用的是 CPU1、并验证了您的定制电路板布线、因此问题几乎肯定出在 SOM 模块本身、而不是您的定制电路板或代码。

    最可能的原因:GPIO11 由 SOM 上的 PMIC I2C 声明

    F29H85X LaunchPad 文档确认 GPIO11 可以 通过组装的电阻器 (R29/R32) 连接到 TPS65036x PMIC 的 I2C 总线[1]。 PMIC-EVM 使用相同的 SOM 架构[2]。 如果 GPIO11 路由至 SOM 模块上的 PMIC I2C (SDA 或 SCL)、PMIC 或其上拉电路将覆盖您的 MCU 输出配置。

    此外、已知 SOM 使用 0Ω 电阻器布线 进行引脚多路复用、这与默认情况下将 GPIO65/64 路由到 EtherCAT 的方式类似、需要重新分配才能重新路由[3]。

    建议的操作

    1. 检查 SOM 原理图 (在 F29H85X-EVM SOM 设计文件 的“Design Files“下提供)[4]—具体查找:

      • GPIO11 是否通过电阻器连接到 PMIC I2C (SDA/SCL)
      • 任何 0Ω 电阻器都会将 GPIO11 路由至 SOM 上的另一个函数
    2. 在切换时直接在 SOM 连接器引脚(不是定制电路板上)上探测 GPIO11 GPIO_writePin(11, 1) GPIO_writePin(11, 0) — 这可以隔离 SOM 本身是否会阻止输出。

    3. 如果 GPIO11 由 SOM 上的 PMIC 声明、则您的选项为:

      • 移除/移除将 GPIO11 连接到 PMIC 的电阻器(SOM 上的硬件模块)
      • 选择一个不与 SOM 外设共享的不同 GPIO 引脚
    4. 快速软件测试 —添加显式切换代码以确认正在进行写入:

      while(1) {
          GPIO_writePin(D2, 1);
          DEVICE_DELAY_US(500000);
          GPIO_writePin(D2, 0);
          DEVICE_DELAY_US(500000);
      }

      如果该引脚仍遵循上拉而不是切换、这将确认硬件覆盖。


    为了帮助完善这项建议、了解以下信息会有所帮助:

    • 是否直接在 SOM 连接器引脚处探测 GPIO11
    • 您是否有 GPIO_writePin() 呼叫主动切换 PIN(而不是仅配置方向)

    1. F29H85X LaunchPad 用户指南 — PMIC I2C GPIO 连接
    2. F29H85X-SDK-EVM PMIC TPS653860XX SOM 文档
    3. F29H85X SDK - SOM 0Ω 电阻器布线(CAN SBL 示例)
    4. F29H85X-HSEC SOM 引脚排列和设计文件

    此致、

    Zackary Fleenor