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.

[参考译文] TMS320F28379D:计算机无法识别 USB 驱动程序

Guru**** 2540720 points
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/612542/tms320f28379d-usb-driver-cannot-be-recognized-by-computer

器件型号:TMS320F28379D
Thread 中讨论的其他器件:controlSUITEC2000WARE

大家好、我的客户正在使用下面的示例代码。

D:\controlSUITE\controlSUITE\device_support\f2837xd\V210\F2837xD_examples_CPU1\USB_dev_serial

1.他做了一些修改,将代码编程为闪存而不是 RAM,然后关闭和打开主板电源,发现计算机无法识别 USB。 是否有任何想法、原因是什么?

2.他正在尝试在计算机上构建主程序,以便通过 USB 与 MCU 通信,从而升级 MCU 中的软件。 他编写了代码、MCU 每1ms 将通过 USB 向计算机传输168字节数据、但发现每6ms 将丢失数据。 他通过 BusHound 监视数据长度。

通过监控 USB_D+波形(下图中的黄线)、可以发现168字节数据被分成3组进行传输。 是这样吗?

客户正在使用  

    USBBufferWrite ((tUSBBuffer *)&g_sTxBuffer、(uint8_t *)&USBTxBuf、168);

他想知道 USBBufferWrite 一次可以发送多少字节

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我写信告诉您、C2000团队成员已被分配到此帖子、应该很快回答。

    此致
    Baskaran
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请使用 C2000Ware 中提供的 windows_drivers。 这些驱动程序已经过签名和更新。

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

    谢谢你 Sal。
    关于数据丢失、您是否知道原因是什么?

    USBBufferWrite 一次可以发送多少个字节?

    此致、
    霍华德

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可能会将缓冲区覆盖到 USB FIFO 中。 如果延迟了对缓冲区的部分写入、这是否解决了问题?

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

    谢谢。 USBBufferWrite 的字节数是否有限制?

    根据延迟、您认为如果我需要每1ms 发送168个字节、我可以每1/8 ms 发送21个字节吗? 因为我无法承受较慢的传输速度。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为这不应该是一个问题。 只要不溢出缓冲区、就应该能够填满缓冲区。 这取决于两个因素:软件缓冲区的大小和物理缓冲区的大小。 物理 USB 缓冲器不应出现问题。 只需确保您没有溢出软件缓冲区。 您可以实现此签入软件。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。
    通过监控我的帖子中图片中的 USB_D+波形黄线、可以发现168字节数据被分成3组进行传输。 是这样吗? 什么可能导致问题?
    霍华德
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这可能是正确的。 批量器件最多发送64字节数据包。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但这是串行模式、而不是批量模式。
    霍华德
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    每包64字节仍然是最大值。

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

    感谢您的回复。

    您是否知道为什么每个数据包之间的时间长达10us?(黄色线)

    对于绿线、每个数据包之间的时间相当短、这是另一家同时使用 F28379的公司 USB D+的波形。

    绿线-另一家公司的良好 USB 通信

    黄线-我的客户的 USB 通信不良(数据丢失)

    它们都使用 F28379。  

    霍华德

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我无法100%确定。 我已经能够在 F2837x 上使用 USB 实现7-8 kbps。 PC 也可能存在此问题。 数据传输的频率既取决于 MCU 发送数据的能力、也取决于主机 PC 发送数据包以请求数据。

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