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.
工具/软件:TI-RTOS
我已经在 TM4C1294 Launchpad 上运行了示例 USB DFU 程序、其中 DFU 升级模式通过 USR1按钮进行传递、并正常工作。
然后、我加载并按照 USB DFU 复合器件升级模式的说明进行操作、并执行 dfuprog.exe -e 命令、然后看到器件0列为 PID:0x0102。
然后、当我输入命令 dfuprog.exe -i 0 -m 时、我会收到消息"Switching device into DFU mode"。 但是、当我执行另一个 dfuprog.exe -e 命令时、响应为"找到0个器件"
在设备管理器中、我看到 Tivaware 设备升级固件(运行时模型)、在通用串行总线控制器下、我看到具有 VID:1CBE 和 PID:0102的 USB 复合设备。
可能出什么问题了?
Thnaks、
Sam
Windows 10。 仅 OTG USB 连接到 PC。
COM11列出的最后一个事件:
驱动程序管理结束了为设备实例 ID USB\VID_1CBE&PID_0102&MI_00\6&3382D9DC&0&0000安装驱动程序 usbser.inf_amd64_d49c1a9bc63fc04e\usbser.inf 的过程,其状态如下:0x0。
列出的 Tivaware Device Firmware Upgrade 最后一个事件:
驱动程序管理结束了设备实例 ID USB\VID_1CBE&PID_0102&MI_02\6&3382D9DC&0&0002的驱动程序 usb_serial_dfu.inf_amd64_20ee184920bd438f\usb_serial_dfu.inf 安装过程,其状态如下:0x0。
这是一个用于规划固件开发的假设性问题、还是意味着客户手中确实有一个器件、他们想要升级?
DFU 和按钮应用似乎可行。 我拥有一台路由器、需要在上电期间按下重置按钮才能实现特殊功能。
Sam、您好!
您专门将哪个示例固件加载到电路板上? 您还可以尝试使用 LMFlash 编程器并查看结果如何?
使用具有 LMFlash 编程器的 TivaWare boot_serial 示例、我可以毫无问题地看到 DFU 选项。
我不熟悉 dfuprog.exe 的操作、因此如果需要、我需要在下周进行研究、但据我所知、我们的大多数客户都使用 LMFlash 来完成此操作。
查看示例、我看不到适用于复合器件的示例、您能否共享我应该加载到适用于复合器件的 LaunchPad 上的示例?
我使用 Resource Explorer 从以下位置导入了示例:
用于 TivaC->Tiva C 系列的 TI-RTOS ->Tiva TM4C1294NCPNT->EK-TM4C1294XL 评估套件->驱动程序示例->TI 驱动程序示例->USB 示例->USB->串行器件
然后 按照我从 TI Wiki 下载的2016年1月12日名为:USB 串行器件固件升级(DFU)的文档中的说明进行操作
http://processors.wiki.ti.com/index.php/TI-RTOS_USB_DFU
有两个版本、一个需要按下 USR1按钮才能进入 DFU 模式、另一个需要通过命令。
第一个版本可以使用、甚至可以与 LM 闪存编程器1613配合使用。 命令版本不能通过命令提示符或 LM 闪存编程器工作。
我是否应该尝试另一个示例?
好的、我在第一个示例上设置了新的闪存设置、但在第二个示例上设置了新的闪存设置。
我将告诉您这是否能解决它。
谢谢
说明中建议不包含驱动程序。 本教程指导用户从正常的 TivaWare 安装目录安装两个驱动程序。 最后一次安装的驱动程序是项目下载中包含的唯一驱动程序。 它可能是一次性的特殊驱动程序。
我将尝试该补丁。
更新:未安装驱动程序、并显示另一错误消息"Windows Could not find drivers for your device (Windows 无法找到适用于您的设备的驱动程序)"。
Sam、
我将提高这个线程的速度。 我要确认这一基本问题。 从我看到的内容来看、您似乎正在使用 Windows 10。 在这种环境下、当您使用命令 dfuprog 将 Tiva 板从运行时模式转换为 DFU 模式时、它无法这样做。 器件处于某种未知状态、无法正确枚举。 我是否正确?
此外、Ralph 还表示、由于 USB 枚举中的一些更改、USB 堆栈中的复合器件支持当前在 Windows 10上无法正常工作。 不好。
最后、您是否正在寻找复合功能、因为该器件没有按钮?
谢谢、
~Ramsey
是的、Windoz 10。
尝试避免在器件中添加按钮、而不是交易断路器。
按钮版本运行良好、因此我可以解决该问题。
谢谢、
Sam
Sam、
进一步探讨这一点。 构建复合设备 并非唯一的选择。
我不知道您的器件连接到 PC 时会做什么、但我假设它将与某些软件实体通信。 如果您可以控制此操作、则您的软件实体可以向器件发送命令(使用其主接口)以进入 DFU 模式。 设备将重新启动并准备升级。
复合器件示例只是一个如何使用单独接口进入 DFU 模式的图示。 但是、如果您可以控制主接口、那么您可以将该接口用于运行时模式和 DFU 控制。
~Ramsey
Sam、
如果您希望采用单接口方法、我将附加一个文件、其中包含一个用于从 USB 运行时模式切换到 USB DFU 模式的函数。
e2e.ti.com/.../DFU_5F00_sample_5F00_code.zip
从 USB 运行时模式切换到 USB DFU 模式需要执行多个步骤。 这包括终止当前 USB 接口和从 USB 总线分离。 后面是一些有关中断、复位 USB 控制器和 PLL 频率编程的硬件详细信息。 最后一步是再次连接到 USB 总线、并重新枚举为 USB DFU 器件。 示例代码在 TM4C1294器件上的 ROM 代码的帮助下执行这些步骤。
当应用程序决定从运行时模式切换到 DFU 模式时,根据 需要关闭应用程序服务,然后 调用 DFU_renumerate ()函数。
~Ramsey
谢谢。 很抱歉、回复时间太长、个人问题不在市区。
听起来像是很多杂耍和步骤、可能会在现场出错。
由于硬件(按钮)解决方案看起来可靠、我想我可能只需要构建一个硬件解决方案、例如从触摸屏激活的板载电路、以将板置于 DFU 模式。
Sam
Sam、
明白。 使用按钮可能是明智的决定。 祝你好运。
~Ramsey