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.

[参考译文] TMDS64EVM:首次使用 TMDS64EVM

Guru**** 2952510 points

Other Parts Discussed in Thread: AM6422, TMDS64EVM, PROFIBUS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1618611/tmds64evm-first-time-using-tmds64evm

器件型号: TMDS64EVM
主题中讨论的其他器件: AM6422、 PROFIBUS

我最近购买了 TMDS64EVM、以便在 AM6422 处理器上实现实时以太网应用程序。 我的目标是将一个 CortexA53 内核与其中一个 PRU-ICSS 以太网接口连接起来。

我不熟悉使用任何 TI 处理器、因此希望在何处开始为我的目标提供帮助。 经过初步调查、我发现了一个将 Linux 变量加载到 EVM 的过程、但我想能够修改该代码、以便与 PRU-ICSS 连接并实现我的自定义以太网代码。 TI 网站上是否有任何教程或 AM64X Academy 材料的一部分教程可以告诉我如何操作?

我还将开始阅读 AM64x/AM243x 参考手册、但找不到一个部分讨论如何从在芯片上的一个 CortexA53(或任何其他)内核上运行的代码与 PRU-ICSS 单元连接。 您能否还请我指出我应该在文档中查找它的位置?

我将继续搜索学院的材料,但我搜索的一些方向将非常感激!

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

    您好、Seth。

    什么是 PRU 内核、它与以太网有何关系?  

    PRU 内核是可编程的裸机内核、能够以确定性延迟读写处理器引脚、比 TI 或我们的任何竞争对手销售的任何其他处理器内核更快。

    如果您可能希望将一个 PRU 子系统用于 PRU 以太网、并使用一个 PRU 子系统进行自定义编程、您可以在全新中找到更多信息
    PRU Academy >什么是 PRU、PRU 的用途是什么?
    https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AfYd0P3wI1CDis1g9k1nSQ__AM64-ACADEMY__WI1KRXP__LATEST 

    由于 PRU 内核可以如此快速地读取和写入引脚、因此您可以使用它们在软件中实现协议、而无需使用大量电路来实现外设接口。 因此、PRU 内核可以执行添加额外 UART、SPI、I2S 等之类的操作。 并添加额外的以太网端口。

    AM64x 上的以太网:CPSW 和 PRU 以太网

    AM64x 最多可支持 2 个 CPSW 以太网端口和 4 个 PRU 以太网端口(每个 PRU_ICSSG 子系统 2 个端口)。 由于引脚多路复用冲突、您只能在单个设计中使用其中的 5 个以太网端口。

    具有 PRU 子系统的以太网不同于具有 CPSW3G 子系统的以太网、因为 CPSW 是一组硬件电路、而 PRU 以太网在软件中实现。 这也意味着 PRU 以太网可用于实现工业网络接口、如 EtherCAT、EtherNet/IP、Profinet、Profibus 等、而无需支付外部 ASIC 来为您执行协议。

    有关的更多信息 支持 EtherCAT 的 Linux 位于 Linux SDK 中的文档:

    PRU 以太网
    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/latest/exports/docs/linux/Foundational_Components Linux_Drivers PRU_ICSSG_Ethernet.html
    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/latest/exports/docs/linux/Foundational_Components PRU-ICSS/PRU-ICSS/PRU_ICSSG Ethernet_Switch Linux_Drivers
    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/latest/exports/docs/linux/Foundational_Components Network/Kernel/Network/HSR_Offload.html Kernel_Drivers
    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/latest/exports/docs/linux/Foundational_Components Network/Kernel/Network/PRP_Offload.html Kernel_Drivers

    CPSW 以太网
    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/latest/exports/docs/linux/Foundational_Components Network/Kernel/Ethernet.html Kernel_Drivers

    您还可以从 R5F 内核控制以太网  

    如果要在 AM64x 上实现从端以太网协议、这尤其有用、因为 Linux 通常没有用作以太网从站的确定性性能。

    请记住、使用 Linux A53 + R5F 控制以太网将需要一些系统级设计、如果您将来需要相关指导、可以创建一个单独的 e2e 主题。

    有关由 R5F 内核控制的“常规“以太网、请参阅 MCU+ SDK:
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/latest/exports/docs/api_guide_am64x/NETWORKING.html

    请参阅工业通信 SDK、了解上述工业通信协议:
    https://www.ti.com/tool/download/INDUSTRIAL-COMMUNICATIONS-SDK AM64X-AM64X

    此致、

    Nick

    此致、

    Nick

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

    感谢您的答复。 这是很好的信息、但我没有注意到一点是、这是航空航天应用的原型、由于 COTS 源代码的客户/行业限制、我无法使用 SDK 生成的代码。 我需要进行裸机开发、以便在 A53 上进行执行/调度器处理、在 PRU-ICSS 上设置/执行以太网发送/接收处理、以及在两个内核之间交换数据。 对于这种“全新“开发、我是否可以参考任何手册、教程或示例代码?  

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

    您好、Seth。

    在此论坛上,我们提供的支持将受到限制 — 我们可以回答有关 TI 软件或 TI 硬件的问题、但我们不支持自定义代码或操作系统开发。

    综上所述、我知道多家公司和第三方都使用我们的 MCU+ SDK(具有 FreeRTOS 和裸机驱动程序)作为开发自己定制 RTOS 或裸机实现方案的起点。

    我会将您的线程重新分配给另一个更熟悉 R5F <--> PRU 以太网的团队成员。 这是“通用“以太网、还是特定的以太网工业通信协议?

    此致、

    Nick

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

    我认为会有一些限制,所以感谢你的坦率的答复。 请用正确的硬件参考手册为我指明正确的方向、以确保成功。 这适用于 AFDX 实现(航空电子全双工交换以太网,已在 ARINC-664p7 标准中正式化)。 再次感谢您提供的任何支持。

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

    对于 A53 上商业支持的 RTOS 和以太网驱动程序 — GHS Integrity、QNX 和 VxWorks 可在不同程度的支持下选择。

    这适用于 AFDX 实现(航空电子全双工交换以太网,在 ARINC-664p7 标准中正式化)

    这对于使用 PRU-ICSSG 实施在技术上似乎是可行的。  认证要求:航空电子应用需要 DO-254/DO-178C 认证、这需要在 ICSSG 实施中解决、这看起来比实现等特定功能更具挑战性

      • 虚拟链路管理
      • 冗余处理
      • 行李强制执行
      • 序列监控

    .other 选项是指 R5F enet LLD 应用并将其移植到 ti-arm-clang 工具链中的 gcc 工具链、并在此处参考 CPSW 示例: mcupsdk-enet-lld/examples/enet_layer2_cpsw/am62x-sk/a53ss0-FreeRTOS、位于 mcupsdk_next TexasInstruments/mcupk-lsdk-cpsw-cpsw-cuplcuplcuplc.net ·

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

    您能否请我参考 AM6422 中与此问题相关的章节、或者为了与 PRU-ICSSG 上的硬件进行交互、我需要参考哪些手册? 这似乎是我尚未找到的关键信息。 我有 A53 核心参考手册、但这并没有涉及 (从我目前所见)如何编写代码来初始化和使用 PCR-ICSSG 组件。 此外、如何在 A53 上运行的代码和 PRU_ICSSG 上运行的代码之间建立接口(交换数据等)? 除了 TI 证明的任何现有示例之外、请指出允许我从头开始编写代码的文档。 谢谢!

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

    您好、Seth。

    警告:此 PRU 代码将非常复杂

    在我向大家介绍大量资源之前、请记住、我要描述的是一个非常复杂的编程项目、在这个项目中、我将无法为您提供很多帮助。 如果这种协议可在 R5F 内核中进行所有编程、则使用 CPSW 作为以太网端口可能会更容易。 然后、R5F 或 A53 上的裸机代码可以向 CPSW 发送和接收以太网帧。

    如果最终需要针对自定义以太网协议对 PRU 内核进行编程、您可能需要联系第三方公司以获得帮助。 如果您的公司感兴趣、我们可以提供过去成功编写 PRU 以太网固件的一些第三方的名称。

    好的、我们来谈谈 PRU 资源  

    部署硬件资源

    有关硬件的说明、请参阅 AM64x 技术参考手册 (TRM)>处理器> PRU_ICSSG 一章。 文档中可能存在空白、因此如果您有疑问、需要联系。

    开发软件资源

    全新的 AM64x PRU Academy 是您进行 PRU 开发的入门资源。 您需要先了解 PRU 入门实验:
    https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AZlFVyFPIrugfOX0nu3fMg__AM64-ACADEMY__WI1KRXP__LATEST

    OpenPRU 存储库是我们的新存储库、包含示例 PRU 固件:
    https://github.com/TexasInstruments/open-pru

    但是、与编写以太网固件相关的“入门“资源最接近的是 SORTE_G 项目(即千兆位 SORTE)、当前位于较旧的 PRU 软件支持包:
    https://git.ti.com/cgit/pru-software-support-package/pru-software-support-package/tree/examples/am243x/SORTE_G

    如果您对 SORTE_G 有疑问、我可以向编写该示例的人员指出。

    AM64x == AM243x + A53 内核

    我们还可以共享 PRU 以太网交换机固件的源代码。 该代码非常复杂、我们将无法支持有关它的任何问题。

    我该如何开始?

    SORTE_G 比交换机固件更简单、因此我将首先深入了解 SORTE_G 项目。 如果您仍有兴趣进行该操作、您可以请求 PRU 以太网交换机源代码。

    此致、

    Nick

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

    我正在研究的 IRAD 项目需要多个以太网连接、并且由于应用的安全至关重要性(商业航空航天),我们面临总线争用问题 — 因此除了 CPSW 以太网连接外、我们还需要使用 PRU。 我们有一个多核解决方案、在单独内核上运行的应用程序将使用单独的专用以太网连接来满足其需求。

    尽管如此、值得您向我发送您合作编写自定义以太网固件的其他公司的名称。 我还将开始使用您发送的学院链接。 我能够利用内部先前程序的现有定制以太网代码库、因此我希望通过在驱动程序级别定制寄存器访问、使其可用于测试。 如果我对学院说明或设置有任何疑问、我会联系您。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    值得您向我发送您合作编写自定义以太网固件的其他公司的名称。

    您可以联系 工业通信协议 (CouthIT)、他们在定制 PRU 以太网方面拥有丰富的经验。

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

    Nick、您还可以提供上面提到的“PRU 以太网交换机固件“吗? 我不害怕深入研究复杂的代码、并且主要对以太网寄存器在最底层驱动程序层的交互方式感兴趣。 谢谢。

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

    您好、Seth。

    请让您当地的 TI FAE 离线联系我、了解如何访问 PRU 以太网交换机固件。

    此致、

    Nick

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

    我不确定我是否有该联系信息、因此请告诉我如何找到它、或者(如果有)我可以参考的名称/资源列表。谢谢

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

    您好、Seth。

    我正在联系我们的现场团队、寻找合适的人选。 如果他们通过您的工作电子邮件与您联系、是否可以? 如果是这样、我可以从您的帐户中获取它并与他们共享。

    此致、

    Nick