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.

[参考译文] TMDSCNCD263P:FSI Pinmux 问题

Guru**** 2893300 points

Other Parts Discussed in Thread: SYSCONFIG, AM263P4

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1585996/tmdscncd263p-fsi-pinmux-issues

器件型号: TMDSCNCD263P
主题中讨论的其他器件: SysConfigAM263P4

您好、

我最初将其发布在错误的论坛 (TMDSCNCD263P:FSI Pinmux) 中。 对重复内容表示歉意、但我认为我会在此处重新发布:  

我正在努力让 FSI 在 AM263 控制卡上运行。 我运行了一个非常简单的程序、它只发送一个 ping 帧并接收它:

        /* send ping frame*/
        status = FSI_setTxFrameType(txBaseAddr, FSI_FRAME_TYPE_PING);
        status += FSI_setTxFrameTag(txBaseAddr, FSI_FRAME_TAG1);
        status += FSI_startTxTransmit(txBaseAddr);
        status += SemaphoreP_pend(&gFsiTxSemObject, ClockP_usecToTicks(FSI_TX_TIMEOUT_US));
        if(status != SystemP_SUCCESS)
        {
            DebugP_log("failed to send ping frame\r\n");
            continue;
        }
        DebugP_log("sent ping frame\r\n");
        /* receive ping frame*/
        status += SemaphoreP_pend(&gFsiRxSemObject, ClockP_usecToTicks(FSI_RX_TIMEOUT_US));
        status += FSI_getRxFrameType(rxBaseAddr, &frameType);
        status += FSI_getRxPingTag(rxBaseAddr, &rxFrameTag);
        if (status != SystemP_SUCCESS)
        {
            DebugP_log("failed to receive ping frame\r\n");
            continue;
        }
        DebugP_log("received ping frame: frame tag = %u\r\n", rxFrameTag);
 
在环回模式下运行时、程序可以正常运行;但是、当 I 使用跳线将 Rx 短接至 TX、并且在正常模式下运行时、程序 不起作用(没有接收到 ping 帧)。  
我猜这是 pinmux 问题、因为环回模式绕过了 pinmux;但是、我的设置似乎找不到任何问题。 FSI 信号与 MCAN 信号进行多路复用、但由于 FSI_MUX_SEL 上的上拉电阻器、因此 FSI 默认为 FSI。 顺便说一下、  文档不正确(未组装下拉电阻器):
MCAN 信号通过 1:2 信号路由多路复用器。 多路复用器的选择线路上有一个下拉电阻、因此默认采用 MCAN 信号路由。  
我还可以相当确定我的 AM263 Pinmux 已正确设置。  根据 PROC1592E2 原理图:
 
FSIRX2_CLK J2
FSIRX2_DATA0 G4.
FSIRX2_DATA1   J3
 
FSITX2_CLK G3.
FSITX2_DATA0 H2.
FSITX2_DATA1 g1.
 
SysConfig 设置:

fsirxsyscfg.png
fsitxsyscfg.png
 
我还认为我的中断设置没有任何问题、因为我认为如果这里配置错误、环回程序无法正常工作。  
 
我缺少什么吗? 有任何关于下一步要看的建议吗?

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

    我遇到的 问题和 Jared 一样。 使用 AM263P4 控制卡(地雷的版本为 PROC159B (001)) 和 MCU+ SDK v11.00.00.19 可以轻松复制这一数据。

    加载 示例“FSI 环回中断“。 进行以下更改:

    1.在 SysConfig 中、更改 FSI TX 和 RX 引脚多路复用以匹配 AM263P4 控制卡 (RX_CLK =焊球 J2、RX_DATA0 =焊球 G4、TX_CLK =焊球 G3、TX_DATA0 =焊球 H2)

    2.在文件 fsi_loopback_interrupt.c 中、将“fsi_enableRxInternalLoopback"替换“替换 为 “fsi_ 禁用 RxInternalLoopback“

    在 controlCARD 上、使用分流跳线将接头 J6 上的 TX CLK 短接至 RX CLK(引脚 1 至 2)、并将 TX DATA0 短接至 RX DATA0(引脚 5 至 6)。  

    完成这些更改后、我看到的结果与 Jared 相同、看起来 FSI RX2 未收到。 我使用示波器  在 J6 引脚 2 和 6 上看到 TX 时钟和数据、并且该示例在环回模式下成功运行。 但是、当禁用环回后、程序会一直挂起、等待 RX 中断。

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

    您好、Jared、Steven、

    首先,我要确认你已经说过的话,所以没有混淆:

    1. 多路复用器 U33 负责选择 MCAN 或 FSI 信号如何路由到 各自的接口。  FSI  默认选择、因为上拉电阻 R204 路由多路复用器的 A->B2 端口。  
      1. 不过、  该电路板的初始版本 Rev E1 与此相反、默认情况下安装了下拉电阻。 应检查控制此多路复用器选择信号的 IO 扩展器的 SysConfig 设置、以确保其也在软件中被拉至高电平:
    2. 验证 MCU PinMux:
      1. 比值 MCU 引脚
        FSIRX2_CLK J2
        FSIRX2_DATA0 G4.
        FSIRX2_DATA1 J3
        FSITX2_CLK G3.
        FSITX2_DATA0 H2.
        FSITX2_DATA1 g1.
      2. 在您发送的 SysConfig 屏幕截图中、这一切看起来都很好。

    请在 SysConfig 中确认多路复用器 SEL 配置、以排除 MCU PinMux 或板级信号配置的任何问题。

    此致、

    Brennan  

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

    嗨、Brennan、

    感谢您继续回答我的问题。 我已验证安装了正确的上拉电阻器;但是、我们通过 SysConfig 设置在软件中选择的 FSI 多路复用器。 我尝试使用正确的 FSI 多路复用器选择更新 SysConfig、但代码现在挂起在 I2C_TRANSFER () 上。 我假设这是 SysConfig 中 I2C 设置不正确导致的。  

    我的 SysConfig 设置是否有任何问题?

    感谢您的帮助、

    Jared

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

    Jared  

    I2C2 是连接到 IO 扩展器的 I2C 外设。 您需要配置:

    • C7 上的 I2C2_SCL
    • B7 上的 I2C2_SDA

    请告诉我 I2C 传输现在是否完成。

    此致、

    Brennan

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

    更改后似乎仍在 I2C 传输中挂起。

    这里是我的项目的链接。  

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

    您好 Jared、

    您能否将项目文件作为 zip 文件夹上传到该线程? 我无法访问下拉框。 我将在我身边重复并报告任何发现(可能在明天)。

    此致、

    Brennan

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

    e2e.ti.com/.../fsi_5F00_loopback_5F00_interrupt_5F00_am263px_2D00_cc_5F00_r5fss0_2D00_0_5F00_nortos_5F00_ti_2D00_arm_2D00_clang.zip

    这里是 zip。

    再次感谢 Brennan、

    Jared

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

    嗨、Jared、

    我尚未完全解决此问题、但我想共享更新:

    1. 即使 FSI 正确的板载多路复用器/MCU 引脚多路复用设置、也无法使板载 J6 接头上的外部环回正常工作。
    2. 不过、  如果我将控制卡插入扩展坞、并使用不经过任何多路复用的 FSI 引脚、则外部环回的示例运行正常:
      1. 如果您有扩展坞并且想继续开发、我在此处附加了 FSI RX/TX 的 SysConfig 设置。 对于这些信号,布线不会经过任何外部多路复用 — 连接是从 MCU 直接到边缘连接器的。 您需要进行的硬件连接包括:  
        1. CLK:HSEC_59 <-> HSEC_58
        2. d0:HSEC_61 <->HSEC_60
        3. D1:HSEC_63 <-> HSEC_62
      2. SysConfig:

    我将继续研究为什么这不能在板载标头上工作、但我希望在平均时间提供一个临时解决方案、并验证软件本身是否正常。

    此致、

    Brennan

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

    嗨、Brennan、

    有趣! 我有一个坞站、我将尝试复制您的设置并告诉您是否可以复制。

    您是否能够使 I2C 传输在不挂起的情况下正常工作? 想知道您是否仍认为这是软件 FSI MUX SEL 的问题。

    再次感谢、

    Jared

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

    Jared

    神秘在这里解决。 根本原因是、在为 EVM 供电时、该多路复用器选择网络所连接上拉电阻器的 3V3 网络默认不会出现。 此电源网来自非默认的 PMIC LDO 输出。

    通过首先配置 PMIC 来启用此 LDO (LDO2)、我能够使用板载接头运行示例。 我随附了 CCS 文件来执行此操作。

    然后、使用 SW10 按钮将 PORz 置为有效。 最后、运行 FSI 外部环回示例。  

    只要您不断开 EVM 的电源、该 LDO2 就会保持开启状态。

    e2e.ti.com/.../pmic_5F00_user_5F00_reg_5F00_cfg_5F00_am263px_2D00_cc_5F00_r5fss0_2D00_0_5F00_nortos_5F00_ti_2D00_arm_2D00_clang.zip

    此致、

    Brennan