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.

[参考译文] Linux/DM385:DM385支持多少个 USB UART 端口?

Guru**** 2589300 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/589093/linux-dm385-how-many-usb-uart-port-supported-by-dm385

器件型号:DM385

工具/软件:Linux

客户通过集线器扩展了10个 USB UART 端口、他们可以通过 DM385饱和、并在/dev/ttyACMX 下找到该节点、但只能打开其中的5个、超过5个返回错误、客户调试在模板创建时发现该错误、它如何支持更多 USB UART?

我们在这个 wiki 中发现每个 USB UART 都需要3个端点:  

在下面的 wiki 页面中、AM335x USB 有15个端点、DM385应该是相同的 USB IP。  

http://processors.wiki.ti.com/index.php/StarterWare_USB#Comparison_to_StellarisWare_USB

但在 AM335x 和 DM385 TRM 上、USB 2.0具有15个 RX 和15个 TX 端点、总共30个端点、而不是15个端点。

需要您对端点编号进行澄清、并确认可以支持最大 USB UART 端口?

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

    你是对的。 如果是 DM38x、则支持15 EPS、而 DM36x 支持4 EPS。 打开后,您能否检查内核日志中是否存在任何 MUSB 层错误?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    客户表示没有关于这方面的日志消息。

    它们跟踪驱动程序/内核,找到 musb_host.c 中 musb_schedul()的问题,它返回 ENOSPC。

    函数检查资源池中的资源(如果不可用):

    -如果是批量端点,则获取保留的批量端点(全速到全速,高速到高速,不能是高速到全速)

    -如果它是其它端点(例如中断端点)、则返回 ENOSPC (-28)。

    客户的扩展器件均为全速、因此它们进行了如下修改:

    --在 CDC_ACM 驱动程序中将中断端点属性更改为批量端点,并创建批量话术。

    --更改 MSB_POWER 寄存器,强制它在全速模式下工作。

    通过这些修改、可以支持更多器件、但器件不稳定、容易断开连接和超时。

    需要您的建议~~~

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tony、
    尽管编号中有限制 等时和中断端点(15个 EPS)、但仍然应该能够分配5。 如果启用了 dyn_fifo、您能否检查 musb_core.c 中的 fifo_mode 值是多少?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    已启用 Fifo_mode、结果相同:超过5时不稳定。

    是的、它最多能够支持5个。 但客户需要多达10个。

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

    为 fifo_mode 设置的值是什么?

    是否可以共享断开和超时日志? 哪个层超时?