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.

[参考译文] MSP430F5659:MSP430F5659 USB CDC 和 MSC 接口存在问题

Guru**** 2455560 points
Other Parts Discussed in Thread: MSP430F5659, MSP430F5529

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1425242/msp430f5659-issues-with-msp430f5659-usb-cdc-and-msc-interface

器件型号:MSP430F5659
主题中讨论的其他器件: MSP430F5529

工具与软件:

大家好!

我目前正在研究一个采用 MSP430F5659微控制器的 PCB 项目。 我已成功设置一个 USB 接口、该接口将 CDC (通信设备类)和 MSC (海量存储类)用于 microSD 卡。

虽然只要 microSD 卡在插槽中、一切都正常、但我一卸下它就会遇到问题。 CDC 通信继续运行一段时间、但最终我完全无法进行通信。

我注意到中断矢量USB_UBM_VECTOR仍在定期调用。 但是、当我从主机发送数据时、它没有响应。 最后,接收端点被触发一次,但我不再接收任何bCDC_DataReceived_event.

是否有人遇到过类似的问题、或对如何解决此问题有任何见解? 非常感谢您提供任何帮助或建议!

提前感谢!

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

    您好、Stefan、

    您是否单独尝试过 MSC 的演示代码? 您可以在此基础上添加外部 microSD 卡访问代码、并尝试进行测试。

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

    您好、Gary、

    我想分享一些关于我对控制器和电路板使用 TI 示例"CHM1_term2HidDemo_2LUN"的经验的见解。 实际上、我只需要调整 SD 卡的引脚并正确连接电源。

    我还修改了示例以使用单个逻辑单元号(LUN)、并删除了 HID 功能、仅关注 CDC 通信。 总体而言、只要 SD 卡安装在插槽中、CDC 数据传输就可以正常运行。 但是、我在卸下该卡时遇到同样的问题。

    我已经注意到的一件事是、在这些问题出现之前、USB_UMB_VECTOR 会被触发多次、这似乎与我所面临的问题相关联。 据我所见、USBCDC_sendDataAndWaitTillDone 函数随后返回错误

    如果您有任何见解或建议、非常感谢您提供宝贵的意见!

    此致

    Stefan

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

    我看到我们有演示代码 M2_SDCardReader、您以前是否测试过这样的演示? 此情况应更接近于您的用例。

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

    您好、Gary、
    感谢您的回答。 我可以测试 M2_SDCardReader 示例。 这不应该是一个问题。 但它对我有什么好处? 我有一个问题、如果插槽中没有 SD 卡、我迟早将无法通过 CDC 接口进行通信。 在没有通信的示例中、不会发生问题。

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

    我现已简单修改和测试此示例。 对我来说很好。 插入卡后、它还会在几秒钟后显示在 Windows 中、并且资源管理器将打开驱动器。 当我删除它时、显示空驱动器。 但是、我已经在 Composite _multipleInterfaces 示例中更改了此行为。

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

    看起来不错、我认为你可以根据此演示添加 CDC、最好根据原始工程进行调试。

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

    您好、Gary、
    我添加了 CDC 器件。 现在、我遇到的问题与我的原始固件完全相同。 当我从插槽中移除 SD 卡时、我仍然可以发送一些命令并接收响应(当前我返回带前缀的接收)。 但在某个时候、我不再收到回复。
    我注意到的是、关闭和打开 PC 上的端口会再次捕捉数据传输。 有时我还会在打开端口后直接收到回复、即上次传输的回波(是的、有几个)。 但是、有时我只有在打开端口后发送命令时才会收到响应。

    我已经使用串行端口监视器对接口进行了记录

    [00:561] Written data (COM16) 
        49 6e 66 6f 09 44 65 76 69 63 65 0d 0a            Info.Device..    
    [00:010] Read data (COM16) 
        52 78 32 54 58 3a 20 49 6e 66 6f 09 44 65 76 69   Rx2TX: Info.Devi 
        63 65 0d 0a                                       ce..             
    [00:525] Written data (COM16) 
        49 6e 66 6f 09 44 65 76 69 63 65 0d 0a            Info.Device..    
    [00:040] Read data (COM16) 
        52 78 32 54 58 3a 20 49 6e 66 6f 09 44 65 76 69   Rx2TX: Info.Devi 
        63 65 0d 0a                                       ce..             
    [00:650] Written data (COM16) 
        49 6e 66 6f 09 44 65 76 69 63 65 0d 0a            Info.Device..    
    [00:564] Written data (COM16) 
        49 6e 66 6f 09 44 65 76 69 63 65 0d 0a            Info.Device..    
    [00:859] Written data (COM16) 
        49 6e 66 6f 09 53 65 74 74 69 6e 67 73 0d 0a      Info.Settings..  
    [00:801] Written data (COM16) 
        49 6e 66 6f 09 53 65 74 74 69 6e 67 73 0d 0a      Info.Settings..  
    [00:645] Written data (COM16) 
        49 6e 66 6f 09 53 65 74 74 69 6e 67 73 0d 0a 49   Info.Settings..I 
        6e 66 6f 09 53 65 74 74 69 6e 67 73 0d 0a 49 6e   nfo.Settings..In 
        66 6f 09 53 65 74 74 69 6e 67 73 0d 0a 49 6e 66   fo.Settings..Inf 
        6f 09 53 65 74 74 69 6e 67 73 0d 0a               o.Settings..     
    [02:099] - Close port COM16 
     
    [00:679] - Open port COM16 (C:\Program Files (x86)\MicroRidge Systems\ComTestSerial\ComTestSerial.exe) 
     
    [00:044] Read data (COM16) 
        52 78 32 54 58 3a 20 49 6e 66 6f 09 44 65 76 69   Rx2TX: Info.Devi 
        63 65 0d 0a 52 78 32 54 58 3a 20 49 6e 66 6f 09   ce..Rx2TX: Info. 
        44 65 76 69 63 65 0d 0a 52 78 32 54 58 3a 20 49   Device..Rx2TX: I 
        6e 66 6f 09 53 65 74 74 69 6e 67 73 0d 0a         nfo.Settings..   

    首先、您会在端口上看到一些写入和读取操作。 然后只有写入操作、在关闭和打开端口后、来自控制器的数据到达 PC。

    您是否可以在旧的白色 MSP-EXP430F5529 板上测试此问题? 它上有不同的控制器、但原则上是相同的。 不幸的是、我无法再在任何地方购买它。

    Stefan

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

    是否在调试模式下执行测试? 如果这样、在您停止代码时可能会导致一些问题。 您是否在自由运行模式下测试它?

    我有 MSP-EXP430F5529实验板、当我下载演示代码  M2_SDCardReader 时、它运行良好、SD 卡已显示在 PC 上、并且没有问题。

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

    M2_SDCardReader 代码不是问题。 问题是、我添加了一个 CDC 接口、并且插槽中没有 SD 卡。 那么通信会在一段时间后中断。 附件是 MSP430F5659的代码工程。  

    e2e.ti.com/.../M2_5F00_CDC_5F00_Example.zip

    MSP430F5529的调整应是 SD 卡 SPI 的引脚。 因此、将 UCB1的引脚从端口8更改为端口4

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

    您好、Stefan、

    本周我很忙、将在本周末或下周初尝试。 很抱歉。

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

    您好、Stefan、

    我已按如下方式修改您的代码、将 SPI 端口更改为第4部分

    由于 F5529没有 P9.2和 P9.3引脚、因此将 P9.2和 P9.3测试输出更改为 P7.2和 P7.3。

    然后、我可以构建工程、将其下载到 MSP-EXP430F5529 板中、但是我如何正确监控信号以了解哪些功能正常、哪些功能不有效?

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

    请尝试通过 CDC 接口发送数据几分钟。 发送 CRLF 后、其前面的文本回显前缀"Rx2TX:"。

    只要 SD 卡在插槽中、我就会得到可靠的响应。 如果我移除 SD 卡、它会在一段时间内正常工作、但随后我不再收到任何响应。 当我在 PC 软件中断开并重新连接端口时、我再次获得数据。 有时甚至是来自 PC 缓冲器的多个响应

    我希望您也遇到同样的问题。

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

    您能否共享用于 CDC 数据发送的 GUI?

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

    我正在使用  MicroRidge 的 ComTestSerial。 它易于使用、我可以在按钮上定义命令。  

    https://www.microridge.com/technical-support/software/

    但我在使用自写软件(RAD Studio)时遇到同样的问题

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

    您好、Stefan、

    很抱歉、由于我们公司的 PC 无法安装此类软件、因此响应延迟。 我可以只使用 putty 等 UART 调试工具通过 CDC COM 端口发送数据吗? 如果它可以正常工作、需要发送什么类型的数据? 是否需要设置任何 UART 设置、如波特率等?

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

    您好、Gary、

    迟交的答复不是问题。 很遗憾、我也无法处理此项目。

    我刚刚对 Putty 进行了测试。 在这里,也,我有的问题,几秒钟后,我没有得到更多的答案时, SD 卡被删除。

    以下是我使用的 UART 设置:

    这些也是我通常使用的设置。

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

    好的、重现此问题需要发送什么类型的数据?  

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

    数据对于此测试工程无关紧要。 我只需发送 ASCII 字符并返回带前缀"Rx2TX:"的字符。  

       

    在 Putty 看不是很好

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

    因此、我现在似乎可以在 myside 上看到问题、但在几次后仍尝试仍未找出根本原因、但有一件事可能符合您的要求、即关闭和打开 PC 端的 COM 端口可使通信正常。

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

    关闭和打开 COM 端口对于控制命令和响应来说确实是可行的。 但我还希望连续接收数据。 这对于端口而言不是很容易。

    但我不能相信以前没有人有这个问题。 客户可在最终产品中访问 SD 卡、我对是否真正安装没有影响。 当前解决此问题的方法是、如果未安装 SD 卡且有 USB 连接、器件将完全锁定。

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

    抱歉、Stefan、我必须关闭这个线程、我认为这个线程应该与 MSP430中的 USB 协议设置相关、但我不熟悉 USB 协议。

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

    是否可以将其转发给 USB 堆栈后面的组? 我不会是唯一一个有这个问题的人。

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

    您好、Stefan、

    很遗憾、MSP430的 USB 堆栈设计团队现在不在 TI。

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

    因此、遗憾的是、我无法找到解决方案。 我仍然需要在没有 SD 卡的情况下关闭通信。

    感谢您的帮助。 不管怎样、我现在确信这不仅仅是我。