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.

[参考译文] TMS320F2.8379万D:C2000Ware事件问题的USB示例。

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/581763/tms320f28379d-usb-examples-from-c2000ware-events-problems

部件号:TMS320F2.8379万D
主题中讨论的其他部件:C2000WAREcontrolSUITE

你好。

我们目前正在开发一个具有2.8377万D的系统,该系统将能够通过USB (CDC)进行连接。 此时此刻,我们正在 对接站上测试3.8379万D控制卡(v 1.3 )。 通过带有外部JTAG的坞站供电。

我刚才运行了几个c2000ware的示例:

...\device_support\f2837xd\examples\CPU1 \USB_host_mouse

...\device_support\f2837xd\examples\CPU1 \USB_dev_serial

在鼠标示例中,当我断开设备与计算机的连接时,它在 ControlHandler例程中接收到USB_EVENT_DISCONNECTED,但在串行示例中没有。 另外,当我重新连接USB时,鼠标示例收到USB_EVENT_CONNECT,而serialel没有。

因此,鼠标可以恢复其连接,而serialel不恢复。

这是一个驱动程序的usbib错误吗? 是否有任何解决方法?

谢谢

塞缪尔·奥尔斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    将PC与运行USB_DEP_SERIAL示例的设备重新连接后,您是否能够通过USB发送/接收串行通信?

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

    您好Sal。

    我刚刚重新检查了示例的作用。
    将USB端输出写入串行端。 在串行端写入不会(它应该同意标题中的注释)。

    如果我断开串行端并重新连接它,它的工作方式与断开连接之前的工作方式相同。

    如果我断开USB端并重新连接,则其工作方式与断开连接之前的工作方式相同。

    我看到的问题是有一个条件(在本例中无法再现,因为UART未写入USB)将锁定从设备到主机的传输:

    UART-Rx至USB路径正在执行以下操作:

    USBUARTRXIntHandler (void) ->
       ReadUART数据()
          IF (USBBufferSpaceAvailable((tUSBBuffer *)&g_sTxBuffer))
             USBBufferWrite(...)

    这会触发USB驱动程序发送数据。
    但是,如果USB与主机断开连接,会发生什么情况? 缓冲区将满,USBBufferSpaceAvailable()将返回0,因此不发送任何数据。
    这应该在ControlHandler中使用USB_EVENT_CONNECTED(调用USBBufferFlush)进行管理,但只有在第一次连接时才达到这一点(通电+连接线)。
    此外,始终不会连接USB_EVENT_DISCONNECTED。

    我通过将示例修改为使用USBBufferWrite()连续写入来检查此锁定。 虽然存在连接,但在第一次重新连接时失败。

    我们希望在连接主机时实现从设备到主机的连续写入,但只要没有事件,我们就会遇到缓冲区满的问题
    与连接相关。

    我还检查了在鼠标示例中,这些事件是在MouseHandler()回调中接收的。

    谢谢!

    塞缪尔·奥尔斯。

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

    感谢您对此进行深入研究并详细说明行为。

    由于我是USB问题的主要支持工程师,目前非常忙碌,我正在努力了解我们是否可以让另一位工程师来研究这一问题。 希望我们能够快速解决您的问题。 无论哪种情况,我都将提交一个错误,以便将来在该示例中查看。

    我同意,似乎确实存在一个错误,因为UART到USB的传输不完整,尽管我过去曾经使用过它。

    如果USB保持连接,则USB FIFO不会溢出。 您是否在连接USB并传输数据时也看到缓冲区溢出?

    您还有其他具体问题吗?

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

    又你好。

    实际上,UART到USB正在工作,我正确设置了卡,现在我可以从UART端发送。

    这让我可以进行此测试:

     -从UART控制台,按一些键以查看另一个键(USB)中的键。

     -然后断开USB A侧的连接,长时间按住某个键(我认为20秒应该这样做)。

     -重新连接USB和与其连接的控制台。  

     -在USB端写入:显示在UART端。

     -在UART一侧写入:USB一侧显示无。

    塞缪尔·奥尔斯。

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

    感谢测试案例。 我们将在下一个C2000Ware版本之前研究此问题。

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

    是否已为下一版本确定了日期?

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

    你好

    我的问题与Samuel Ors完全一样。

    是否找到了问题解决方案?

    我正在使用控制卡F2.8377万D。

    这很奇怪,因为我记得我已经在2017年3月用controlSUITE V200库测试了USB_DEP_SERIAL exemple,我认为标志g_USBConfigdured确实更新得很好。 但现在情况并非如此(使用CottnrolSuite V200或C2000Ware 1.0 .0.0),所以我现在不太确定这一工作在几周前是否正常。

     

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

    没有人解决这个问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    还没有。 我们希望很快就能完成这项工作。

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

    你好

    我也希望!

    我还在尝试检查我这边的USB代码...

    谢谢

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

    是否可以尝试此操作:在断开连接时清除SOFTCONN位,然后重新设置。 这可能会有帮助。

    SAL

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    在我这边,下面是我所做的操纵。 (我希望我能很好地理解您的请求)

    -主板已启动
    -USB电缆已插入计算机
    出现“Event Connected (事件已连接)”(我的标记“UsbConnected”已设置为1)
    -我拔下USB电缆(未连接任何事件...因此我的标记使用连接时保持在1)
    -通过调试器,在寄存器视图中,UsbaRegs->USB_FADDR_POWER->USBFPOWER = 0x60。
    ->手动将值设置为0x40 (位6清除为0 =>位SOFTCONN)=>无附加(未连接任何事件...)
    ->手动将值设置为0x60 (位6设置为1 =>位SOFTCONN)=>无附加(未连接任何事件...)

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

    你好

    我的最后一篇文章是帮助您找到问题吗?

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

    这似乎是示例中的一个错误。 已有报告,工程师将在未来解决此问题。

    谢谢!
    SAL