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.

[参考译文] MSP432E411Y:MSP432E4111Y:使用 Simplelink 4.20 SDK 时定制电路板上的 NDK 配置和 NC_NetStart 存在问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1392884/msp432e411y-msp432e4111y-problem-with-ndk-configuration-and-nc_netstart-on-custom-board-using-simplelink-4-20-sdk

器件型号:MSP432E411Y
主题中讨论的其他器件: SysConfig

工具与软件:

我使用 Simplelink 4.20 SDK 和 BGAEVM 开发板开发了一个适用于 MSP432e411Y MCU 的应用。   应用使用 NDK 创建 TCP 服务器来侦听传入连接、然后通过自定义 Telnet 接口进行通信以控制 A2D、PWM 和各种 GPIO。   在开发板上、一切都能正常运行、但是、当我将程序转换到我在此 MCU 上驻留的生产测试板时、我能获得启动和初始化的所有功能、但网络堆栈不能正常运行。

到目前为止、我将问题追溯到 NC_NetStart 似乎返回错误且 NDK 继续关闭堆栈的问题。   所有这些都是使用 SysConfig 框架构建的、因此这些调用在自动生成的 ti_ndk_config.c 文件中进行处理。   

我的比较复杂、因为我为这个开发的电路板包含一个由这个 MCU 发出脉冲的外部看门狗。   因此、如果我暂停系统以尝试通过此板上的 JTAG 进行调试、看门狗将超时并向 MCU 发送复位脉冲。   这将是一个严重的不便,但不是一个不可能的任务,关闭这个外部看门狗,我可能这样做,如果我不能解决这个问题。   不过、我当时希望有人可能对硬件角度(外部晶体、PHY 等)上的可能情况有所了解、这可能是我可以调查的原因。   

正如我所说、在开发 BGAEVM 板上、一切都可以正常引导。   

欢迎您提出任何建议或想法。  

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

    您好!

    [报价 userid="375785" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1392884/msp432e411y-msp432e4111y-problem-with-ndk-configuration-and-nc_netstart-on-custom-board-using-simplelink-4-20-sdk "]开发板上一切尽善尽美、但是当我将程序转换为此 MCU 所在的生产测试板时、我获得了启动和初始化的所有功能、但没有网络堆栈。

    这意味着电路板和 EVM 之间的硬件存在一些细微差异。 我建议您比较 EVM 或 LaunchPad 与您的定制 板之间的原理图? 您可能需要检查 RBIAS 引脚是否通过4.87k 欧姆电阻器接地。 您是否有25MHz 外部晶体? 这是集成 PHY 工作的必要条件。 还要检查 PHY 和 RJ45之间的保护二极管和变压器。 请转至《 MSP432E 系统设计指南》第4.1节 、了解以太网接口设计的最佳实践。  

    [报价 userid="375785" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1392884/msp432e411y-msp432e4111y-problem-with-ndk-configuration-and-nc_netstart-on-custom-board-using-simplelink-4-20-sdk "]我有一个复杂性、那就是我为开发此产品的电路板包含一个由此 MCU 发出脉冲的外部看门狗。   因此、如果我暂停系统以尝试通过此板上的 JTAG 进行调试、看门狗将超时并向 MCU 发送复位脉冲。   这将是一个严重的不便,但不是一个不可能的任务,关闭这个外部看门狗,我可以这样做,如果我不能解决这个问题[/报价]

    是的、我建议您禁用外部 WD 以使调试更轻松。  

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

    谢谢 Charles、

    我已经查看了定制电路板的原理图、但看不到任何会引起问题的东西(尽管我可能忽略了一些东西)。   我可以发现的唯一重大差异是、我将 RX 和 TX 线路与开发板上的线路交换(它们具有进入 ENOTX 线路和 TX 到 RX 的磁性元件的 RX、我将它们对齐了)、但这应该无关紧要、因为插孔是自动 MDIX 兼容的。   但是、也许这是一个问题。

    在设置 EMAC 和 NDK 堆栈时、我没有在 SysConfig 之外做任何事情来为 EMAC 提供时钟。  我是否应该在那里做一些我忽视的事情?

    以下是其余的 MCU 连接。   有什么特别之处吗?   我已经将专有信号的名称留空、但那里是函数标签。  如果更多信息对我没有提供的信息有帮助、我很乐意接受。   

    如果没有、也没有什么突出的"错误"、我可能会着手验证电路板信号、以确保一切正常。   

    我应该补充的是、如果我从 MCU 程序启动 NDK、我可以通过振荡和探头在一定程度上验证 GPIO、PWM 和 ADC 信号的功能。   所以它实际上与 EMAC 隔离。   

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

    Patrick、您好!

     25MHz OSC 和 RBIAS 看起来不错。 您能否展示 PHY 与 RJ45之间的保护二极管和变压器原理图?

     您能否尝试裸机(无 RTOS)以太网示例并查看是否存在同样的问题? 这是为了确定当您说  NC_NetStart 将返回错误时问题是否特定于 NDK。  

     在 C:\ti\simplelink_msp432e4_sdk_4_20_00_12\examples\nortos\MSP_EXP432E401Y\lwip 下可以找到一些基于 lwIP 栈的裸机以太网示例。 我建议您尝试 ethernet_with_lwip 示例。 它是一个简单的网络服务器。 首先在 EVM 上运行、然后在定制电路板上运行。 如果它在您的电路板上工作、那么问题可能与 NDK 有关、但现在我有点怀疑、因为您已经说过您的应用在 EVM 上运行、而不是在您的电路板上运行。 这导致我认为这是硬件层面的问题。 在任何情况下、都可以尝试一下这个 lwip 示例。  

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

    这是变压器原理图。

    我将根据您的建议设置裸机示例并进行尝试。   可能要到明天才能实现、但我会让您知道它是如何实现的。  

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

    您好!

     我看到两种差异。 第一个区别是 PHY 和 RJ45连接器之间没有保护二极管。 这对于避免任何 ESD 事件非常重要。  如果没有适当的保护、可能会损坏 PHY。 有关详细信息、请参阅系统设计指南应用手册。 下一个区别是、您使用的 RJ45连接器具有集成变压器。  我不熟悉您选择的 RJ45连接器、但使用集成变压器的 RJ45连接器时没有遇到问题。 正如我上一次回复中建议的那样、请进行实验以确定问题是特定于 NDK 还是由于硬件差异。 以下是我上一次答复的建议。  

     您能否尝试裸机(无 RTOS)以太网示例并查看是否存在同样的问题? 这是为了确定当您说 NC_NetStart 将返回错误时问题是否特定于 NDK。  

     在 C:\ti\simplelink_msp432e4_sdk_4_20_00_12\examples\nortos\MSP_EXP432E401Y\lwip 下可以找到一些基于 lwIP 栈的裸机以太网示例。 我建议您尝试 ethernet_with_lwip 示例。 它是一个简单的网络服务器。 首先在 EVM 上运行、然后在定制电路板上运行。 如果它在您的电路板上工作、那么问题可能与 NDK 有关、但现在我有点怀疑、因为您已经说过您的应用在 EVM 上运行、而不是在您的电路板上运行。 这导致我认为这是硬件层面的问题。 在任何情况下、都可以尝试一下这个 lwip 示例。  

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

    运行 LWIP 裸机示例让我意识到、我没有正确地为用户寄存器刷写器件 MAC 地址。   解决该问题后、我能够使用 LWIP 和 NDK 启动网络。   我现在还有其他与系统的行为方式和开发板上的经验有关的问题、但我认为这些问题超出了这一线程的范围。