[应用相关] 请教大家,MCU常用的USB升级是怎么样的?

[复制链接]
 楼主| 哪里需要我了 发表于 2025-8-1 11:20 | 显示全部楼层 |阅读模式
最近刚学习USB,感觉底层还是比较复杂,不过应用还算简单,就搞了一个简易的iap,bootloader 内通过USB CDC升级:自定义的协议触发xmodem传输文件,xmodem接收固件,接一包写一包,写完跳转app。后面想加一个在APP升级自己的,现在就拿tera term试了下是OK的。这usb cdc貌似已经是在win10/11上免驱了,会自动显示一个com口,好像win7不太行要装驱动;接虚拟机Ubuntu也可以显示一个ttyACM0设备,但是接我同事的Linux开发板没显示,他说好像缺cdc的驱动。

我有点不清楚USB虚拟的串口这个兼容性怎么样,想请教一下大家USB升级都是怎么做的,兼容性如何?很久很久以前公司老产品用的串口升级,版本问题售后起来真一言难尽。看AT官方例程是hid升级,这个我不会做上位机,感觉更难做对接了- -;还有一个USB虚拟U盘升级,感觉那个还行;看AT-LINK用的是winUSB,一打开ICP上位机就弹出升级提示了,感觉这种好像也还不错。
DreamWanderer 发表于 2025-8-1 21:01 | 显示全部楼层
最后还是要转成串口升级的吧,bootload,看下文档。哪一款MCU
 楼主| 哪里需要我了 发表于 2025-8-1 22:52 | 显示全部楼层
DreamWanderer 发表于 2025-8-1 21:01
最后还是要转成串口升级的吧,bootload,看下文档。哪一款MCU

为啥要转成串口,不是很理解,at32官方貌似没有cdc做IAP的,我自己做的,没有文档。
mcu型号我用的f403a,可以用usb device cdc的应该都行
dukedz 发表于 2025-8-3 12:21 | 显示全部楼层
本帖最后由 dukedz 于 2025-8-3 12:26 编辑

直接用自己的协议iap升级不香吗?为啥还要切xmodem ymodem这些古老又麻烦的升级协议?

我的 at32 的 bootloader iap 可以参见这个开源项目(usb cdc):
https://bbs.21ic.com/icview-3426278-1-1.html

usb cdc 是跨平台免驱动的,linux 更加不需要驱动
如果 linux 不能识别,可能是 linux 内核裁减过头了, menuconfig 没有使能 usb cdc ,让 linux 系统负责人自己解决就好了,很简单的
hp860629 发表于 2025-8-4 08:55 | 显示全部楼层
AT32的开源资料多吗?跟ST32比怎么样?

评论

肯定没ST多啊  发表于 2025-8-4 09:04
彩虹捕手 发表于 2025-8-4 13:42 | 显示全部楼层
USB CDC确实在很多操作系统上都能很好地工作,特别是在Windows 10/11上,由于免驱的特性,确实方便很多。不过,对于老版本的Windows,确实需要额外的驱动支持。
 楼主| 哪里需要我了 发表于 2025-8-22 14:02 | 显示全部楼层
hp860629 发表于 2025-8-4 08:55
AT32的开源资料多吗?跟ST32比怎么样?

肯定st多呀。不过AT在国产的单片机里面,配合workbench开发已经算很便捷了。
 楼主| 哪里需要我了 发表于 2025-8-22 14:08 | 显示全部楼层
dukedz 发表于 2025-8-3 12:21
直接用自己的协议iap升级不香吗?为啥还要切xmodem ymodem这些古老又麻烦的升级协议?

我的 at32 的 bootl ...

可以可以,感谢,向大佬学习
用xmodem是因为我刚好有个串口Xmodem升级的代码,把底层收发修改移植一下可快了,半小时就改好了,而且可以配合tera term当上位机测试。自己定义协议当然可以,需要做的工作多一些,我比较懒就没做了
 楼主| 哪里需要我了 发表于 2025-8-22 14:16 | 显示全部楼层
彩虹捕手 发表于 2025-8-4 13:42
USB CDC确实在很多操作系统上都能很好地工作,特别是在Windows 10/11上,由于免驱的特性,确实方便很多。不 ...

是的。win10/11,我自测了几个电脑都是免驱的,还算支持比较好的。
以前有发现同事的win10/11电脑装了CH340驱动,接CH340都用不了,就是不知道USBCDC会不会这样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

35

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部