你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 自举程序中使用的 USB DFU 协议

[复制链接]
STMCU小助手 发布时间:2022-7-25 17:21
前言9 R" a0 x8 n6 g4 \8 g
本应用笔记说明了 STM32 微控制器自举程序中使用的 USB DFU 协议。它详细说明了每个支持的指令。若需器件自举程序 USB 硬件资源和要求的更多信息,请参考 “STM32 系统存储器自举模式 ” 应用笔记 (AN2606)。
. r5 j  [& u! C$ `# g# t) F$ w0 i8 ~* G
CA%9YDNL2_HP_X2D@7OZ1MC.png
' W: d. q; j* T5 |! c

( A, U7 V$ k9 a+ F) d1自举程序代码序列
  Z& Y* f" x5 F$ C: h) q- A9 ~6 }不同版本的自举程序 DFU 在协议 (请求和指令)方面没有区别。要查看具体的区别列表,请参见第 6 节。
7 t) Y  V3 Q* C3 f, X5 l( h进入系统存储器自举模式并且 STM32 器件已配置完毕后 (更多详细信息,请参见AN2606),自举程序代码会配置 USB 及其中断,并会等待 “ 枚举完成 ” 中断。. G) w0 p8 f4 X% P) F  S8 c- _4 H! b
插入 USB 线缆之后,会立即执行 USB 枚举 (如果 USB 线缆已插入,则会立即执行 USB枚举)。如果不希望 STM32 进入 USB DFU 自举程序,必须在复位前先拔出 USB 线缆。
: g$ ^/ i9 @6 O5 @- r自举程序版本会返回到 bcd 器件字段 MSB 中的器件描述符 (示例:0x2000 = 版本 2.0)。
5 I1 t) }% J! m, d% t对于互连型 USB DFU 自举程序,器件会先尝试使用 25 MHz 配置,如果失败,随后会尝试使用 14.7456 MHz,如果失败,最后会尝试使用 8 MHz 配置。如果仍失败,会使用较大的超时值重复执行上述操作 (会再次测试三种配置)。如果第二次尝试也失败的话,会生成系统复位。

" b& r) j3 U; \9 x  _6 b TUUA`B]TDCOT~)MNHMIS$}H.png 3 e2 k+ G5 `  q, h& g8 m% K
$ N: o5 m# s9 F+ l8 d/ e4 A5 T
1. 系统复位后,器件可能会返回到 BL_DFU 循环,也可能执行 Flash 存储器中的代码,具体视连接状态和自举引脚的状态而定。- p: V2 w6 K" [" J0 |
2. 先发出 0 Data Download 请求,然后再发出 GetStatus 请求和 Device Reset 请求,即可退出 DFU 模式。
: R4 K  v$ r; i5 }1 I3. 六次尝试后 (三种时钟配置均测试两次),会生成系统复位。) C8 b. B: S3 \1 r' C
• 如果产品使用 HSE 进行 USB 操作 (连接型产品除外):# ?2 g0 `1 X' a, Y
– 启动时,会测量 HSE (若存在),如果支持,则会配置 USB。如果未检测到, _" `. F/ z7 H7 x
HSE,自举程序将执行系统复位。如果测得的 HSE 时钟值属于不受支持的值,USB 协议将无法正常执行。. m# M2 a+ i: g: |; J" O/ ^+ s: ?; _
• 如果产品使用 HSI 进行 USB 操作。
. u/ h( @2 X: |' |/ [/ v& ]4 h– 启动时,会使用 HSI 时钟配置 USB。" Z6 ^8 w8 C4 W9 S/ m, ^- h% d! p
关于产品配置的更多详细信息,请参见 AN2606。

9 d9 }7 t7 Y5 [( ?
% M) B9 d3 @% o1 p
2 V! M& o3 x& R* c/ d3 J2 x" X: l# _) F3 ]
ZKN3YOYI6P{4HW7DMU[Z1WB.png
: K9 M' B* A- e2 M2 Q% S$ M; V
) s+ P' g7 R$ E7 P& U1. 系统复位后,器件可能会返回到 BL_DFU 循环,也可能执行 Flash 存储器中的代码,具体视连接状态和自举引脚的状态而定。8 p: \8 h% y5 @: \) P- _( }- S
2. 先发出 0 Data Download 请求,然后再发出 GetStatus 请求和 Device Reset 请求,即可退出 DFU 模式。
# P( ]: ?+ J4 u9 n0 @( q& T3. 对于某些产品,不会为 USB 自举程序操作使用外部振荡器 HSE,而只会使用内部振荡器 HSI。请查阅AN2606 产品的相关章节,了解需要为每种产品使用哪种振荡器。
5 d2 `. _* F$ @# E4 M注: 自举程序启动时,内部振荡器 (HSI) 会用作 USB 接口的时钟源。检测到 USB 事件后,外部振荡器会配置为 USB 时钟源。
5 F! f; m; O2 Q, P/ U7 g3 M- F, x7 o3 B3 h. Y: ^. `

' |$ q1 f5 Y& r) r+ Z( n完整版请查看:附件
7 t( i. o" `: S, i8 i. \0 a; Y
4 j' N  U0 M+ F, R

CD00264379_ZHV4.pdf

下载

436.59 KB, 下载次数: 2

赞 收藏 评论0 发布时间:2022-7-25 17:21

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版