STMCU小助手
发布时间:2023-6-19 18:15
|
前言 3 } Y" ^1 w6 k* o, v* s \; m8 c 目前,越来越多的应用需要扩展外部的 Flash 来满足存储需求。那么,在调试及批量生产的过程中,需要对外扩的 Flash 进行烧录操作。由于 STM32 ST-LINK Utility 以及 STM32CubeProgrammer 中,对 Flash 支持的型号有限,只能覆盖一部分 MCU和 Flash 的型号,无法完全满足客户的需求。而且,它提供的 external loader 的制作模板存在覆盖的芯片型号较少,且无法前期 QSPI Flash 调试的问题。本文旨在提供一种通过 stm32CubeMX 制作 external Flash loader 的方法。客户可以根据自己的型号,进行定制化的生成。本文中,以某客户实际使用的 MCU(STM32H750) 和 Flash(S25LP128F) 为例进行讲解。* R/ W8 g6 h% j: ?2 V4 Z# Z+ M+ n; ? 准备工作 % M& r* ~& t' N1 O" H ⚫安装 STM32CubeIDE& C# M9 w. D% w5 U* q( L) T ⚫安装 MCU 对应型号的 HAL 库 5 q$ U" u! x' _ External loader 开发 External Loader 的开发分成三个部分,第一部分是使用 STM32CubeMX 进行工程的配置及生成。第二部分是外部 Flash 的驱动调试,主要包含初始化,擦除,写入以及读出等操作。第三部分调用驱动函数进行 external loader 的生成,包括外部 Flash信息的定义,包括 Flash 容量的大小,page 的大小,以及 Sector 相关的信息;第三步中 external loader 所需要的代码及对应器件的驱动,可以在下面的 GitHub 仓库中获取,同时也欢迎大家将自己调试好的器件驱动提交到该仓库。 ; j( [$ N+ y5 A( B/ q 使用 STM32CubeMX 生成工程 0 J: c, A; N: A% g! e) [+ {: M 此处,我们使用 STM32CubeIDE 集成的 STM32CubeMX 进行工程的配置和生成。 g4 U! ]% Q1 J3 y 新建工程. x, U7 u9 ?& Q* @3 Q% z1 I, p 选择对应的器件,填入工程名称,并选择存放位置:
; a+ q6 V- i4 A4 {
5 n6 A% ?& _: a$ _/ \$ k 管脚配置 按照硬件原理图选择好对应的 Flash 管脚,此处选择为 Bank2,配置如下图。注意调整管脚的速度为 High,同时使能 QSPI的中断。FlashSize 值设置为 N,Flash 的大小配置 2N+1。. O# G( ^ S( t& _' m# G. H ( U; f) A, ]$ C0 c: R! C. V$ {
, z; E5 E7 r. d
时钟配置) D. z& f2 G9 M/ b 根据板子上的时钟源,进行对应的时钟配置,此处采用内部作为系统 PLL 的时钟源。& S) T: O# s2 A$ o. @ 0 ?4 ^; r! A4 T ( g9 o1 w c( q- J& o( R9 S
完整版请查看:附件& E# U! {1 c% { 2 |3 i0 t0 g8 |/ y+ h& h
通过STM32CubeMX制作外部Flash的烧写驱动.pdf
(680.82 KB, 下载次数: 13)
|
【下载问题解决】关于ST官网下载软件问题解决
STM32CubeMX 6.18.0新版本发布
【STM32U3评测】使用INS5699 RTC模组
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
CubeMX生成CubeIDE工程代码乱码
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
【STM32U3评测】低功耗模式功耗测量
微信公众号
手机版