STM32F407 U 盘升级
一、
U
盘升级简析
一般固件升级可以通过串口、网络和 U 盘等方式进行。串口升级的优点有硬件稳定,
驱动简单,但是传输速度慢。网络升级的优点传输速度快,但是驱动复杂,升级场地局限(必
须要有上位机)。U 盘升级的优点不受场地限制,传输速度快,但是驱动有点复杂。不过 ST
官方已经将 USB 的驱动提供给大家,这样我们需要的编写的就更集中在升级过程中。
二、硬件连接
1、U 盘接口
主 控 芯 片 使 用 STM32F407ZG 。 USB 数 据 线 使 用
PB14--->OTG_HS_DM ,PB15--->OTG_HS_DP,并使用 STM32F407ZG 内部的全速
PHY。
2、信息打印串口
使用串口 USART1 输出升级过程中的各种信息。硬件为 PA9、PA10。
三、U 盘升级过程
1
、首先需要检测到有
U
盘插入,如果
U
盘插入
USB
口的
D+
或者
D-
将会从低电平转为
高电平,所以只要检测到数据线上有高电平就表示有
U
盘插入。
2
、等待
USB
驱动识别到
U
盘。
3
、识别
U
盘后就在
U
盘根目录下查找是否存在指定的升级包文件。
4
、如果存在升级包文件,就根据自定义的格式检测升级包是否正确。
5
、如果升级包正确,则进行擦除内部
Flash
,准备写入升级包内容
6
、一边读取升级包内容,一边写入到
Flash
。
7
、写入
Flash
完成后,判断堆栈地址是否有效,如果有效直接重新设置堆栈地址,
并跳转到应用程序中去。
评论0
最新资源