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.

[参考译文] CCS/msp430F5638:MSP430 BSL USB 不能从 CDC 转换为 HID

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/599269/ccs-msp430f5638-msp430-bsl-usb-can-not-swith-from-cdc-to-hid

器件型号:MSP430F5638

工具/软件:Code Composer Studio

您好支持者、

我尝试在我的器件上使用 BSL USB 固件更新包。

MSP430F5638设置具有 COM 端口的 CDC、它可以与 PC 主机正常工作。

将 MSP430F5638设置为 HID 和 python 接口显示为 READY……  但是,如果固件从 CDC 切换到 HID,则 python 不会显示就绪.....  它指示0x2047和0x0200未找到/  

固件如何将 MSP430F 5638从 CDC 转换为 HID? 以便 python 正常工作。  您是否有处于 CDC 模式的 MSP430F5638使 python 正常工作?  或 python 在 CDC PI USB 中工作。  在 MSP430和主机 PC 上向我发送完整项目。  目前只需要 PC。  已测试重新提交的调用、不 起作用。  需要在 HID 模式下对 USB 进行设置。  python 起作用。 使用任何其它模式启动 USB、它不起作用。 例如、指出 CDC、mise。  

如果您感到困惑、请致电860-977-7965与我联系。

路易  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    顺便说一下、我使用 IAR 工作台、而不是 CCS 工具
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的代码到底是如何切换到 BSL 的?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    开关使用以下代码:在 usb.c 文件中

    uint8_t usbGetDeviceDescriptor (空)

    usbClearOEP0ByteCount();
    wBytesRemainingOnIEP0 = SIZEOF_DEVICE_descriptor;
    #ifdef non_compose_multiple_interface.
    usbSendDataPacketOnEP0 ((uint8_t*) usbDeviceDescriptioners[activeInterfaceIndex]);
    其他
    if (u8UpdateFimware!= 1)

    //u8UpdateFimware = 0;
    usbSendDataPacketOnEP0 ((uint8_t*)&abromDeviceDescriptor);
    __no_operation();

    其他

    //u8UpdateFimware = 0;
    usbSendDataPacketOnEP0 ((uint8_t*)&abromDeviceDescriptionerFw);
    __no_operation();

    // usbSendDataPacketOnEP0 ((uint8_t*)&abromDeviceDescriptor);
    #endif
    返回(false);


    在 descriptor.c 中添加以下内容
    USB_PID = 0x0010
    USB_FW_PID = 0x0200

    //uint8_t const abromDeviceDescriptor[SIZEOOF_DEVICE_descriptor]={
    uint8_t const abromDeviceDescriptor[SIZEOF_DEVICE_descriptor]={
    sizeof_device_descriptor、 //此描述符的长度
    DESC_TYPE_DEVICE、 //键入此描述符的代码
    0x00、0x02、 //发布 USB 规范
    0x02、 //器件的基本类代码
    0x00、 //器件的子类代码
    0x00、 //设备的协议类型代码
    EP0_packet_size、 //结束点0的数据包大小
    USB_VID&0xFF、USB_VID>>>8、 //器件的供应商 ID、TI=0x0451
    //您可以在 www.usb.org"上订购自己的 VID
    USB_PID&0xFF、USB_PID>>8、 //器件的产品 ID,
    //此 ID 仅用于此示例
    VER_FW_L、VER_FW_H、 //器件的修订级别
    1、 //制造商名称字符串描述的索引
    2、 //产品名称字符串描述的索引
    USB_STR_index_SERNUM、 //序列号字符串描述的索引
    1 //支持的配置数
    };
    uint8_t const abromDeviceDescriptionorFw[SIZEOOF_DEVICE_descriptor]={
    sizeof_device_descriptor、 //此描述符的长度
    DESC_TYPE_DEVICE、 //键入此描述符的代码
    0x00、0x02、 //发布 USB 规范
    0x02、 //器件的基本类代码
    0x00、 //器件的子类代码
    0x00、 //设备的协议类型代码
    EP0_packet_size、 //结束点0的数据包大小
    USB_VID&0xFF、USB_VID>>>8、 //器件的供应商 ID、TI=0x0451
    //您可以在 www.usb.org"上订购自己的 VID
    USB_FW_PID&0xFF、USB_FW_PID>>8、 //器件的产品 ID,
    //此 ID 仅用于此示例
    VER_FW_L、VER_FW_H、 //器件的修订级别
    1、 //制造商名称字符串描述的索引
    2、 //产品名称字符串描述的索引
    USB_STR_index_SERNUM、 //序列号字符串描述的索引
    1 //支持的配置数
    };


    全局变量 add uint8_t u8UpdateFimware;

    当变量为0或1时、在 msp430F5638上调试加载映像、连接到 USB、效果良好。 CDC 与 GUI 一起工作、HID 与 python 一起工作、但无法在运行时从1切换到0或从0切换到1、开关由 CDC GUI 控制。 因为 python 没有显示就绪..... 它显示0x2047 0x0200 not found ............ 控制面板的设备管理、它不显示 CDC 通信端口。

    希望这对您有所帮助。

    调用450、317或2017手册中的 BSL 使用说明

    void updateMainMspFIrmware (void)

    u8Layer2TaskScheduler &=~update_main_firmware;
    u8UpdateFimware = 0;
    _disable_interrupt ();
    USBKEYPID = 0x9628;//解锁 USB 配置寄存器
    #if 0
    USB_connect();
    USB_enable();
    其他
    USB_DISCONNECT ();//PUR 高电平、禁用 VBUS 中断
    USB_disable();//禁用 USB 模块,禁用 PLL
    #endif
    // USBCNF &=~PUR_EN;//将 PUR 引脚设置为高阻态,从逻辑上与主机断开连接
    // USBPWRCTL &=~VBOFFIE;//禁用 VUSBoff 中断
    USBKEYPID = 0x9600;//锁定 USB 配置寄存器
    _DELAY_CYCLES (50000);

    //((void (*)() 0x1000)();//调用 BSL


    路易
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    所有注释掉的代码都是什么? 尤其是"调用 BSL"行?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否有 USB HID PC 驱动程序链接? 我的一台 PC 没有 HID 驱动程序。 或在 HID 样本旁边有黄色标记。 您是否有 PC CDC 驱动程序链接? 我应该先获取所有驱动程序。