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.

[参考译文] CCS/RM46L852:向 RM46L852添加一个 USB 端口

Guru**** 1831610 points
Other Parts Discussed in Thread: RM46L852, RM48L952, TMDSRM48HDK, HALCOGEN, TMDXRM46HDK, LAUNCHXL2-RM46
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/953819/ccs-rm46l852-adding-a-usb-port-to-the-rm46l852

器件型号:RM46L852
主题中讨论的其他器件: TMDSRM48HDKRM48L952HALCOGENTMDXRM46HDKLAUNCHXL2-RM46

工具/软件:Code Composer Studio

我有一个带 RM46L852处理器的 launchpad XL2-RM46。 我添加了一个连接到电路板上 J11的原型 USB (器件)端口。 J11具有所有 USB 器件端口信号。 除了 W2FC_SE0O (处理器上的引脚15、Booster Pack 站点1上的 J11-17和 J5-2)之外、我在所有线路上都看到正确的信号。

我知道该软件可以正常工作、因为我使用 RM48L952处理器在 TMDSRM48HDK 上对其进行了测试。 该软件来自"processors.wiki.ti.com/.../File:Halcogen_usb_cdc_example_worked.zip"、 它基于"processors.wiki.ti.com/.../HALCoGen_USB_Device_-_driver_&_CDC_Class 上的"HALCoGen USB 器件-驱动程序和 CDC 类"文章

当我将 RM46L852 USB 端口插入 Win10框时、我收到一条错误消息"USB device not recognized (USB 设备无法识别)"。 我已将其调试为 W2FC_SE0O 引脚无法正常工作-在我的原型中、该引脚上没有信号、其中 TMDSRM48HDK 上有信号。 我已断开 TMDSRM48HDK (在 HALCOGEN 的 PINMUX 中)上的引脚;当我断开时、该单元提供与原型 USB 板的 XL2-RM46相同的错误。 我还从原型板上断开了该信号、但在 W2FC_SE0O 引脚上仍然没有看到信号(我认为原型板可能会使信号短路)。

该信号似乎未连接到 PINMUX、但实际上连接了该信号。

有什么关于 W2FC_SE0O 引脚为何在 RM46L852处理器上不起作用的想法?

具有接口芯片的原型板(左侧连接器上的 W2FC_SE0O 引脚2断开以进行调试):

SE0O 示波器屏幕截图、请注意100mV/div 的刻度。 如果我把它放在1V/div 上、它看起来就像是一小部分噪声:

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

    您好!

    与 USB 器件模块相关的 RM48x 和 RM46x 之间存在时钟变化:

    在 RM48上、USB 器件所需的48MHz 时钟在 VCLKA3时钟域上驱动:

    在 RM46上、这个48MHz 时钟由 VCLKA3_DIVR 时钟信号驱动、所以 VCLKA3需要被配置为一个更快的信号、然后被分频(缺省值为/2)以获得48MHz。

    请告诉我这是否有帮助。

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

    另请注意 、如果 W2FC_SE0O 已连接到我的原型、我会在该 W2FC_SE0O 上获得相同的信号。

    另请注意、我知道引脚工作的原因是我将其切换到 PINMUX 中的数字输出、并在环路中切换它、输出按预期切换。 (我将其切换回)。

    下面是在   TMDSRM48HDK 上工作 (被识别为 CPC 器件)的信号 W2FC_SE0O 的屏幕截图:

    特写:

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

    感谢您的回答。

    我将 PLL2设置为48MHz 并选择作为 VCLKA3 src。 然后 VCLKA3分频器设置为1、因此 VCLKA3_DIVR 为48MHz。 这是否可以?

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

    谢谢。 时钟设置看起来正确。 您是否 根据 TMDSRM48HDK 原理图检查了原理图?

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

    是的、我对原理图进行了仔细比较。 除 SE0O 线路外、所有器件均正常工作。

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

    下面是用于互连的原理图、包括 J11引脚编号:

    e2e.ti.com/.../7271.USB-Port-Schematic.pdf

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

    对于 SE0O 线为什么不起作用、您还有什么想法吗?

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

    不幸的是、不 我想您提到过、通过将引脚配置为 N2HET1[22]并切换输出可以排除物理连接问题。 您能否确认您可以在连接器 J5/2和 J11/17上看到此引脚正确切换?

    我正在尝试访问此开发套件以验证操作是否正确:  

    我将在访问此更新并验证正确操作后发布更新。

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

    我的开发套件中的 USB 端口(TMDXRM46HDK)已经在工作。 我遇到问题的电路板是 LAUNCHXL2-RM46。 我添加了一个原型 USB 端口、该电路板上的 SE0O 线路无法正常工作。

    如果您获得 TMDXRM46HDK 并使 USB 端口正常工作、您将重复我的工作。 这不是我需要帮助的。 我需要帮助的是了解为什么 LAUNCHXL2-RM46上的 SE0O 线路未处于活动状态。

    谢谢。

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

    您能否确认代码在 RM46HDK 上工作而不在 RM48HDK 上工作?  TMDXRM46HDK 上使用的器  件与 LAUNCHXL2-RM46上使用的器件相同、因此从 MCU 的角度来看、代码在一个器件上运行而不在另一个器件上运行是没有理由的。

    唯一的可能是连接器与 USB 端口之间的物理连接出现错误。

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

    令人困惑...

    我在 TMDXRM48HDK (48L952)上运行代码、该板内置 USB 连接器。

    我在 LAUNCHXL2-RM46上移植并测试了相同的代码(46L852、无内置 USB 连接器、并在其上构建了原型以添加 USB 端口)、但它不起作用。 SE0O 线没有信号。

    我已断开 SE0O 线与原型的连接、但仍然看不到信号。

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

    为了确保处理器或电路板没有任何问题、我购买了新 的 LAUNCHXL2-RM46、并将原型 USB 板连接到它。 它仍然不起作用:

    下面是设置为数字输出并在环路中切换的 SE0O 线路的示波器截图。 我将查看具有示波器的 J5-2。 信号在原型板上看起来是一样的。 因此引脚工作正常。 存在一些设置问题:

    您对时钟有什么其他想法吗? 或其他事了吗?

    这是正常工作的 TMDSRM48HDK。 我在两个装置上使用相同的代码。

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

    RM48和 RM46上的相同代码不起作用。 请参阅我之前的文章、了解与驱动 USB 器件模块所需48MHz 时钟的 VCLKA3时钟域相关的时钟差异。

    在 RM48上、VCLKA3被配置为48MHz、并且无需其它分频器配置来将48MHz 驱动至 USB 器件模块。

    在 RM46上、如果 VCLKA3仍然配置为48MHz、则需要将 VCLKA3_DIVR 配置为1分频、以将该48MHz 驱动至 USB 器件模块。 此分频器的默认值为2分频、因此如果您在 RM48和 RM46之间运行相同的代码、则不起作用。

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

    我在器件之间移植了代码、这意味着我根据需要修改了时钟分频器和 PLL、以便为 USB 子系统提供48MHz 的频率(上面附加的屏幕截图)。  移植代码时、我还在 HAL 中选择了正确的器件。 因此、除了通过 HAL 完成计时和引脚设置之外、代码"不完全相同"。

    VCLKA3分频器的默认值为1、btw。

    此时我猜测这是一个硬件问题、因为我在分析仪数据流中看到错误数据包(952个工作文件和852个附加的非工作文件)。 嗯、您的系统现在不允许我附加文件... 我将发布此帖子、并尝试附加到下一个帖子。

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

    e2e.ti.com/.../8424.csv

    e2e.ti.com/.../3884.csv

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

    经过大量调查、我发现使用 RM46L852处理器的 launchpad LAUNCHXL2-RM46上的 SE0O 线未激活。

    它为低电平、并在连接 到 TMDSRM48HDK 时发出高电平脉冲。 但它在 LAUNCHXL2-RM46上处于空闲状态。

    您对这种情况的原因有什么进一步的想法吗?

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

    我发现了问题:它位于 HALCoGen 编写的 pinmux.c 文件中。

    在下面的 pinmux.c 中、我注释掉了254、256、257和258行。 这些线路将引脚功能硬编码为 USB 端口功能以外的内容。 代码注释为: /*SAFETYMCUSW 134 S MR:12.2 "LDRA 工具问题"*/

    当它为 RM46L852 (144引脚鸥翼)而不是 RM48L952 (384引脚 BGA)写入数据时、错误就会存在。

    在我注释掉这些行后、SE0O 行开始工作、USB 端口被 Windows 识别。

    如何解决此问题? 每次我重建代码时、HALCoGen 都会继续写我的评论... 如何在用户代码部分中使用"硬编码"、以便与 HALCoGen GUI 配合使用、而不会被覆盖?

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

    感谢您的报告、我将针对此问题为 HALCoGen 提交一个错误。

    对于使用 HALCoGen 生成代码、您可以使用如下所示的代码:

    /*用户代码开始(4)*/
    
    #if 0
    
    //后跟不正确的代码
    
    /*用户代码结束*/
    
    /*SAFETYMCUSW 134 S MR:12.2. "LDRA 工具问题"*/
    PINMUX_SET (0、1、GIOB_3);
    /*SAFETYMCUSW 134 S MR:12.2. "LDRA 工具问题"*/
    PINMUX_SET (0、2、GIOA_0);
    PINMUX_SET (1.5、GIOA_1);
    PINMUX_SET (3、15、HET1_22);
    PINMUX_SET (18、125、HET1_14);
    PINMUX_SET (18、126、GIOB_0);
    PINMUX_SET (21、133、GIOB_1);
    
    /* USER CODE BEGIN (5)*/
    
    #endif
    
    //在此处更正代码...
    
    /*用户代码结束*/
    

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

    感谢您提供代码修复。

    工作中是否有新版本的卤素灯?

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

    我必须与工具的支持团队核实是否有任何更新。 我们一定会将其添加到"发行说明"文档中的已知问题列表中。

    此致、Sunil

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

    HALCOGEN 的新版本何时发布?

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

    您好、Charlie、

    目前未计划进行此操作。 如果这一变化确实计划进行更新、我将发布更新。

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

    我要说,这使我有点紧张,因为它太老了。 它支持 FreeRTOS、但仅支持非常旧的版本。 Hercules 是否是产品线的可行、长期、不过时的计划? 或者、我应该查看您的另一个产品线吗?

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

    TI 的产品寿命支持计划记录在以下位置: www.ti.com/.../product-life-cycle.html

    我们正在使用 Hercules MCU 设计新程序、即使在2026年之后也开始生产、目前该产品系列没有淘汰计划。

    我们查看 HALCoGen 错误并确定是否可以使用"已知问题"文档更新来解决这些错误、如果没有合理的变通办法、则制定更新计划。

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

    这是一个很好的消息;我在这款产品上投入了大量资金、将其用于新的产品线。