请教大家,MCU常用的USB升级是怎么样的?
最近刚学习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上位机就弹出升级提示了,感觉这种好像也还不错。
最后还是要转成串口升级的吧,bootload,看下文档。哪一款MCU 在线远程升级呢? DreamWanderer 发表于 2025-8-1 21:01
最后还是要转成串口升级的吧,bootload,看下文档。哪一款MCU
为啥要转成串口,不是很理解,at32官方貌似没有cdc做IAP的,我自己做的,没有文档。
mcu型号我用的f403a,可以用usb device cdc的应该都行 本帖最后由 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 系统负责人自己解决就好了,很简单的
AT32的开源资料多吗?跟ST32比怎么样? USB CDC确实在很多操作系统上都能很好地工作,特别是在Windows 10/11上,由于免驱的特性,确实方便很多。不过,对于老版本的Windows,确实需要额外的驱动支持。
页:
[1]