硬汉嵌入式论坛

 找回密码
 立即注册
查看: 7322|回复: 14
收起左侧

[有问必答] STM32F103使用USB进行固件DFU升级问题

[复制链接]

4

主题

6

回帖

18

积分

新手上路

积分
18
发表于 2020-10-17 02:19:27 | 显示全部楼层 |阅读模式
STM32F103VET6,应用环境无按键可用,现在问题是无法进入DFU模式,STM32官方有一个文档是可以利用DFUse Demo软件切换到DFU模式,很可惜附件里的软件无法下载,而且它的片子用的是F4芯片,本身具有USB自举程序。,请教硬汉和各位大神有没有什么好的解决方案,谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106901
QQ
发表于 2020-10-17 10:44:34 | 显示全部楼层
回复

使用道具 举报

4

主题

6

回帖

18

积分

新手上路

积分
18
 楼主| 发表于 2020-10-17 12:05:34 | 显示全部楼层
eric2013 发表于 2020-10-17 10:44
此贴学习即可

http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980

硬汉大神,我看了下教程就是在APP中设置标志位,手动写BootLoader。 实际产品中只有一个电源开关键(长按开关机,短按控制亮灭屏),我想是否可以连续短按10次设置标志位进而进入dfu模式,但是担心用户如果连续进行按键会导致设备无法正常进入APP,如何设置才能让这种风险降到最低呢?不吝赐教,谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106901
QQ
发表于 2020-10-18 09:16:36 | 显示全部楼层
zhongmeijun007 发表于 2020-10-17 12:05
硬汉大神,我看了下教程就是在APP中设置标志位,手动写BootLoader。 实际产品中只有一个电源开关键(长按 ...

可以设置为板子上电前,电源键的状态来设置是否进入dfu模式。
回复

使用道具 举报

0

主题

23

回帖

23

积分

新手上路

积分
23
发表于 2020-11-26 18:16:13 | 显示全部楼层
eric2013 发表于 2020-10-18 09:16
可以设置为板子上电前,电源键的状态来设置是否进入dfu模式。

硬汉,STMF103  usb驱动无法识别,未知USB设备(设备描述符请求失败)。STM32Cubeprg已经安装了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106901
QQ
发表于 2020-11-27 01:15:54 | 显示全部楼层
Jacob_xsbn 发表于 2020-11-26 18:16
硬汉,STMF103  usb驱动无法识别,未知USB设备(设备描述符请求失败)。STM32Cubeprg已经安装了。

如果之前安装过STM32 DFU小软件,要将这个软件的驱动清除干净。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106901
QQ
发表于 2020-11-27 01:16:35 | 显示全部楼层
Jacob_xsbn 发表于 2020-11-26 18:16
硬汉,STMF103  usb驱动无法识别,未知USB设备(设备描述符请求失败)。STM32Cubeprg已经安装了。

解决STM32CubeProg在USB DFU方式无法连接设备的问题
http://www.armbbs.cn/forum.php?m ... 6527&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

23

回帖

23

积分

新手上路

积分
23
发表于 2020-11-27 09:19:34 | 显示全部楼层
eric2013 发表于 2020-11-27 01:16
解决STM32CubeProg在USB DFU方式无法连接设备的问题
http://www.armbbs.cn/forum.php?mod=viewthread&ti ...

STM32F103能用USB进行DFU?在AN2606 应用笔记里没有写能用USB,只能用串口。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106901
QQ
发表于 2020-11-28 01:25:07 | 显示全部楼层
Jacob_xsbn 发表于 2020-11-27 09:19
STM32F103能用USB进行DFU?在AN2606 应用笔记里没有写能用USB,只能用串口。

103不支持,107才支持
回复

使用道具 举报

3

主题

8

回帖

17

积分

新手上路

积分
17
发表于 2022-12-8 10:29:24 | 显示全部楼层
eric2013 发表于 2020-11-28 01:25
103不支持,107才支持

硬汉哥,现在103可以使用cubemx生成DFU工程。
使用过程中有个问题一直没解决,keil中使用jlink Erase Full Chip下载boot,可以使用DFU正常擦写Flash;使用Erase Sector下载的boot,使用DFU下载时报错:  
  10:14:41 :   Address       : 0x0800C000
  10:14:41 : Erasing memory corresponding to segment 0:
  10:14:41 : erasing sector 0003 @: 0x0800c000 done
  10:14:41 : erasing sector 0004 @: 0x08010000 done
  10:14:41 : Download in Progress:
  10:14:42 : Error: Write failed at address: 0x800CC00
  10:14:42 : Error: failed to download Segment[0]
  10:14:42 : Error: failed to download the File
  10:14:55 : Error: RDP is set to level 1, try using Read UnProtect (-rdu) command in order to remove the Read Out Protection.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106901
QQ
发表于 2022-12-8 11:55:37 | 显示全部楼层
王二Gou 发表于 2022-12-8 10:29
硬汉哥,现在103可以使用cubemx生成DFU工程。
使用过程中有个问题一直没解决,keil中使用jlink Erase Fu ...

意思是你的DFU程序,是JLINK还无法正常下载?
回复

使用道具 举报

3

主题

8

回帖

17

积分

新手上路

积分
17
发表于 2022-12-8 15:32:38 | 显示全部楼层
eric2013 发表于 2022-12-8 11:55
意思是你的DFU程序,是JLINK还无法正常下载?

Jlink可以正常下载,stm32cubeProg一直可以稳定连接DFU。出现的情况是stm32cubeProg,通过DFU程序第一次可以成功下载编程,编程过一次后边再烧写会出现如上问题,实在想不明白。
stm32cubeProg报错.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106901
QQ
发表于 2022-12-8 15:57:48 | 显示全部楼层
王二Gou 发表于 2022-12-8 15:32
Jlink可以正常下载,stm32cubeProg一直可以稳定连接DFU。出现的情况是stm32cubeProg,通过DFU程序第一次 ...

这个不太清楚了,我一直用的系统bootloader自带的DFU,这个没问题。
回复

使用道具 举报

3

主题

8

回帖

17

积分

新手上路

积分
17
发表于 2022-12-9 15:28:22 | 显示全部楼层
eric2013 发表于 2022-12-8 15:57
这个不太清楚了,我一直用的系统bootloader自带的DFU,这个没问题。

问题已解决。当Prog通过DFU与BOOT建立通讯的时候,开始下载时,DFU只发送两个地址的擦除(分别问800C000、8010000,APP地址范围(800C000 ~08013b5c)),对应flash擦除驱动要根据这两个地址,擦除APP需写入的地址,APP才能正常写入。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106901
QQ
发表于 2022-12-9 15:59:05 | 显示全部楼层
王二Gou 发表于 2022-12-9 15:28
问题已解决。当Prog通过DFU与BOOT建立通讯的时候,开始下载时,DFU只发送两个地址的擦除(分别问800C000 ...

谢谢告知最终原因。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 10:22 , Processed in 0.206204 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表