搜索
查看: 5284|回复: 3

[中文资料] AN3156:STM32 自举程序中使用的 USB DFU 协议(中文译文)

[复制链接]
  • TA的每日心情
    开心
    2018-2-6 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    1182

    主题

    4967

    帖子

    1

    蝴蝶豆

    论坛元老

    最后登录
    2020-3-17
    发表于 2017-10-23 16:01:01 | 显示全部楼层 |阅读模式
    AN3156
    应用笔记
    STM32 自举程序中使用的 USB DFU 协议


    前言
    本应用笔记说明了 STM32 微控制器自举程序中使用的 USB DFU 协议。它详细说明了每个
    支持的指令。若需器件自举程序 USB 硬件资源和要求的更多信息,请参考 “STM32 系统存

    储器自举模式 ” 应用笔记 (AN2606)。

    10.png



    目录
    1 自举程序代码序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
    2 USB DFU  自举程序请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
    3 DFU  自举程序指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
    4 DFU_UPLOAD  请求指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
    4.1 Read Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
    4.2 Get 指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
    5 DFU_DNLOAD  请求指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
    5.1 Write memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
    5.2 Set Address Pointer 指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
    5.3 Erase 指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
    5.4 Read Unprotect 指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
    5.5 Leave DFU mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
    6 自举程序协议版本演进 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
    7 版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25



    1、自举程序代码序列
    不同版本的自举程序 DFU 在协议 (请求和指令)方面没有区别。要查看具体的区别列表,
    请参见第 6 节。
    进入系统存储器自举模式并且 STM32 器件已配置完毕后 (更多详细信息,请参见
    AN2606),自举程序代码会配置 USB 及其中断,并会等待 “ 枚举完成 ” 中断。
    插入 USB 线缆之后,会立即执行 USB 枚举 (如果 USB 线缆已插入,则会立即执行 USB
    枚举)。如果不希望 STM32 进入 USB DFU 自举程序,必须在复位前先拔出 USB 线缆。
    自举程序版本会返回到 bcd 器件字段 MSB 中的器件描述符 (示例:0x2000 = 版本 2.0)。
    对于互连型 USB DFU 自举程序,器件会先尝试使用 25 MHz 配置,如果失败,随后会尝试
    使用 14.7456 MHz,如果失败,最后会尝试使用 8 MHz 配置。如果仍失败,会使用较大的
    超时值重复执行上述操作 (会再次测试三种配置)。如果第二次尝试也失败的话,会生成系
    统复位。

    22222.png

    1. 系统复位后,器件可能会返回到 BL_DFU 循环,也可能执行 Flash 存储器中的代码,具体视连接状态和自
    举引脚的状态而定。
    2. 先发出 0 Data Download 请求,然后再发出 GetStatus 请求和 Device Reset 请求,即可退出 DFU 模式。
    3. 六次尝试后 (三种时钟配置均测试两次),会生成系统复位。


    • 如果产品使用 HSE 进行 USB 操作 (连接型产品除外):
    – 启动时,会测量 HSE (若存在),如果支持,则会配置 USB。如果未检测到
    HSE,自举程序将执行系统复位。如果测得的 HSE 时钟值属于不受支持的值,
    USB 协议将无法正常执行。
    • 如果产品使用 HSI 进行 USB 操作。
    – 启动时,会使用 HSI 时钟配置 USB。
    关于产品配置的更多详细信息,请参见 AN2606。

    12.png

    1. 系统复位后,器件可能会返回到 BL_DFU 循环,也可能执行 Flash 存储器中的代码,具体视连接状态和自
    举引脚的状态而定。
    2. 先发出 0 Data Download 请求,然后再发出 GetStatus 请求和 Device Reset 请求,即可退出 DFU 模式。
    3. 对于某些产品,不会为 USB 自举程序操作使用外部振荡器 HSE,而只会使用内部振荡器 HSI。请查阅
    AN2606 产品的相关章节,了解需要为每种产品使用哪种振荡器。



    2 、USB DFU 自举程序请求
    USB DFU 自举程序支持 2004 年 8 月 5 日发布的 1.1 版 “ 器件固件升级通用串行总线器件升
    级规范 ” 规定的 DFU 协议和请求。关于这类请求的更多详细信息,请参见规范。
    表  2 和 表  3 列举了 DFU 类特有的请求及其参数。
    表 表 2. DFU  

    .....


    阅读更多内容,请下载文档:

    下载地址1>>        下载地址2>>


    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    5

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2020-7-15
    发表于 2017-12-1 10:41:27 | 显示全部楼层
    完整中文译文能发出来吗
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-2-6 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    1182

    主题

    4967

    帖子

    1

    蝴蝶豆

    论坛元老

    最后登录
    2020-3-17
     楼主| 发表于 2017-12-4 09:35:04 | 显示全部楼层
    CHLRX 发表于 2017-12-1 10:41
    完整中文译文能发出来吗

    摘录了部分,底部有下载链接可下载全文啊..
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    帖子

    0

    蝴蝶豆

    新手上路

    最后登录
    2019-12-26
    发表于 2019-12-13 20:07:30 | 显示全部楼层
    zero99 发表于 2017-12-4 09:35
    摘录了部分,底部有下载链接可下载全文啊..

    下载下来还是英文版本的
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-5-7 09:53 , Processed in 1.209501 second(s), 40 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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