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.

[参考译文] MSP430F5510:使用 MSP430F5510上的供应商器件请求输入 USB BSL

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/837760/msp430f5510-usb-bsl-entry-by-using-vendor-device-request-on-msp430f5510

器件型号:MSP430F5510
主题中讨论的其他器件: MSP430USBDEVPACK

您好!

您能否告诉我如何将回调添加到 USB 函数中、该函数由供应商器件通过 USB 命令请求触发?

我们希望通过 USB 的供应商器件请求将 MSP430F5510进入 BSL 模式。
但是、对于以下描述、这不起作用。

{USB_REQ_TYPE_OUTPUT | USB_REQ_TYPE_VENDOR | USB_REQ_TYPE_DEVICE、
0、
0、0、
0、0、
0、0、
0xcc、usbVendorRequest}

这被添加到了 descriptors.c 中的 tUsbRequestList 中
在 usbVendorRequest 回调中、程序计数器跳转到 USB BSL;但是、usbVendorRequest 回调从未执行。

输入数据包如下所示:
bmRequestType = 01000000b
BREQUEST = 0x00
wValue = 0x0000
WINDEX = 0x0000
WLength = 0x0000
数据= 0x00

您是否有 tUsbRequestList 详细信息的任何文档?

此致、
Nomo

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

    你(们)好,Nomo

    很抱歉、我所知有限、以下是一些问题、可让您清楚地了解您的问题:

    1.什么是"通过 USB 发出供应商设备请求命令"? 它是由您自己还是由 TI 编写的? 如果您从 TI 获得它的位置?

    描述 符.c 和 tUsbRequestList 的文件是什么 ?

    此致

    Gary

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

    您好、Gary–San、

    感谢你的答复。

    [引用用户="Gary GAO"]
    1.什么是"通过 USB 发出供应商设备请求命令"? 它是由您自己还是由 TI 编写的? 如果您从 TI 获得它的位置?
    [/报价]
    "Vendor Device Request via USB command"表示主机器件向 MSP430发送请求命令。
    MSP430收到此命令、然后我们希望 MSP430进入 USB BSL 模式。

    [引用用户="Gary GAO"]
    描述符.c 和 tUsbRequestList 的文件是什么?
    [/报价]
    您能否检查以下 MSP430USBDEVPACK?
    www.tij.co.jp/.../MSP430USBDEVPACK

    MSP430USBDEVPACK 中的示例包括描述符.c
    如果检查该文件,则可以看到 tUsbRequestList。

    此致、
    Nomo

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

    你(们)好,Nomo

    对于触发器,USB BSL 非常简单,只需使用_disable_interrupt ()等代码,然后 使用((void (*))0x1000)();。

    在您连接 USB BSL 后、我不太清楚要执行什么操作。 您在应用程序 USB 代码而不是 USB BSL 代码中更改的内容。  

    您能告诉我您想实现什么功能吗? 我对此并不清楚。

    此致

    Gary

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

    您好、Gary–San、

    感谢你的答复。

    通过从 PC 到 MSP430接收 USB 的特定于供应商的命令、应用程序 USB 代码会跳转到 usbVendorRequest 函数。
    在 usbVendorRequest 函数中,执行了_disable_interrupt ()和((void (*))0x1000)()等代码。

    我们无法理解如何通过从 PC 到 MSP430的特定于供应商的命令调用特定于用户的 usbVendorRequest 函数。


    能否在 descriptors.c 中确认 tUsbRequestList?
    您能确认我的第一个帖子是这个主题吗?
    然后、您可以了解我说的内容。

    此致、
    Nomo

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

    你(们)好,Nomo

    那么、在这里、您要做的是 PC 和一个指向 MSP430的命令、您将其命名为"USB 的供应商特定命令"、然后您希望执行 您在 tUsbRequestList 中添加的回调函数以调用 BSL。 但这里的问题是、当您发送命令时、不会执行回调来调用 BSL? 换句话说、当您从 PC 发送命令时、中的 BSL 不会被调用。

     您知道 MSP430USBDEVPACK 中有很多示例代码 ,您在代码中使用哪种演示代码?

    此致

    Gary

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

    您好、Gary–San、

    感谢你的答复。

    [引用用户="Gary GAO"]
    那么、在这里、您要做的是 PC 和一个指向 MSP430的命令、您将其命名为"USB 的供应商特定命令"、然后您希望执行您在 tUsbRequestList 中添加的回调函数以调用 BSL。 但这里的问题是、当您发送命令时、不会执行回调来调用 BSL? 换句话说、当您从 PC 发送命令时、中的 BSL 不会被调用。
    [/报价]
    是的、您的理解是正确的。

    [引用用户="Gary GAO"]
    您知道 MSP430USBDEVPACK 中有很多示例代码,您在代码中使用哪种演示代码?
    [/报价]
    任何演示代码都是目标代码。
    但是、所有演示代码(描述符.c)不在 tUsbRequestList 中包含 USB_REQ_TYPE_VENDOR。
    因此、我们想知道如何在 tUsbRequestList 中添加 USB_REQ_TYPE_VENDOR 以触发回调函数。

    此致、
    Nomo

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

    您好、Gary–San、

    您对我的主题有任何更新吗?

    此致、
    Nomo

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

    你(们)好  

    您是否在名为"uint8_t usbDecodeAndProcessUsbRequest (void)"的函数中放置了一个中断点、如下所示

      

    以查看主机是否发送了请求。

    此致

    Gary

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

    你(们)好,Nomo

    我不知道您是否已经解决了您的问题。 这里我有一些建议

    1.在 uint8_t usbDecodeAndProcessUsbRequest 函数中添加请求检查(空)  

      您应该自行编写检查代码,只需检查 bmRequestType 即可轻松完成, BREQUEST 将正常。 这可以检查 PC 是否正确发送了请求。

    使用 CDC 演示发送命令字、就像我们的演示代码"C1_LedOnOff"一样。 您可以看到、当发送"LED ON"时、您可以通过 UART 串行调试器来打开 LED。

    此致

    Gary

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

    您好、Gary–San、

     

    感谢您的回复和友好支持。

    我的问题已经解决。

    当我遇到另一个问题时、我将发布另一个线程。

     

    此致、

    Nomo