STM32F4单片机内部FLASH编程时间

这篇具有很好参考价值的文章主要介绍了STM32F4单片机内部FLASH编程时间。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

单片机内部的flash除了存储固件以外,经常将其分为多个区域,用来存储一些参数或存储OTA升级等待更新的固件,这时就会涉及单片机内部flash的编程和擦除操作。STM32同系列的单片机内部flash特性和扇区大小都不太一样,以下基于STM32F407VET6此型号进行简单介绍。

参考文档

STM32F4xx中文参考手册
STM32F407VET6数据手册

一、STM32F4的FLASH分区及扇区大小

不同型号的STM32F40xx/41xx,其 FLASH容量也有所不同,最小的只有 128K字节,最大的则达到了 1024K字节。 而STM32F407VET6的 FLASH容量为 512K字节, STM32F40xx/41xx的闪存模块组织如下:

stm32 flash写入数据的时间,单片机,stm32,嵌入式硬件

  • STM32F4的闪存模块由:主存储器、系统存储器、 OTP区域和选项字节等 4部分组成。
  • 主存储器,该部分用来存放代码和数据常数(如const类型的数据)。分为 12个扇区,前 4个扇区为 16KB大小,然后扇区4是 64KB大小,扇区 5~11是 128K大小。
  • 不同容量的 STM32F4拥有的扇区数不一样,比如我们使用的 STM32F407VET6,则拥有 8个扇区。

二、FLASH的读取

STM32F4可通过内部的 I Code指令总线或 D Code数据总线访问内置闪存模块, 为了准确读取 Flash 数据,必须根据 CPU 时钟 (HCLK) 频率和器件电源电压在 Flash 存取控制寄存器 (FLASH_ACR) 中正确地设置等待周期数 (LATENCY)。当电源电压低于 2.1V 时 ,必须关闭预取缓冲器。 Flash 等待周期与 CPU时钟频率之间的对应关系如下:

stm32 flash写入数据的时间,单片机,stm32,嵌入式硬件

  • 等待周期通过FLASH_ACR寄存器的 LATENCY[2:0]三个位设置。系统复位后, CPU时钟
    频率为内部 16M RC振荡器, LATENCY默认是 0,即 1个等待周期。
  • 供电电压,我们一般是3.3V,所以,在我们设置 168Mhz频率作为 CPU时钟之前,必须先设置 LATENCY为 5,否则
    FLASH读写可能出错,导致死机。

三、FLASH的编程位数

STM32F4闪存的编程位数可以通过 FLASH_CR的 PSIZE字段配置, PSIZE的设置必须和电源电压匹配,如下:

stm32 flash写入数据的时间,单片机,stm32,嵌入式硬件

  • 由于我们开发板用的电压是3.3V,所以 PSIZE必须设置为 10,即32位并行位数。擦除或者编程,都必须以 32位为基础进行。

四、FLASH的擦除

  • STM32F4的 FLASH编程的时候,要先判断所写地址是否被擦除了(也就是其值必须是 0XFFFFFFFF),否则无法写入。
  • STM32F4的闪存擦除分为两种:扇区擦除和整片擦除。

五、FLASH内部编程时间

如下图所示:

stm32 flash写入数据的时间,单片机,stm32,嵌入式硬件
stm32 flash写入数据的时间,单片机,stm32,嵌入式硬件

可以看出不同扇区擦除时间也是不同的,字写入时间为16us,比如按字写入1024字节数据,只需要4ms,非常快。

由以上可总结出我们使用的 STM32F407VET6:

  • 字写入时间:
    典型值16us 最大值100us
  • 扇区擦除时间:
    16KB:典型值250ms 最大值500ms
    64KB:典型值550ms 最大值1100ms
    128KB:典型值1s 最大值2s

六、总结

由此可大致得出我们使用STM32F407VET6的FLASH时,FLASH的擦除和写入时间,具体实际时间可以通过测试得出。文章来源地址https://www.toymoban.com/news/detail-772274.html

到了这里,关于STM32F4单片机内部FLASH编程时间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用STM32CubeProgrammer工具读取单片机Flash数据读取

    本文主要介绍,如何使用STM32CubeProgrammer工具读取和写入单片机Flash内部的数据,方便调试使用。 2.1 连接Stlink和单片机,点击“connect”进行连接 2.2 读取固定长度的数据 根据程序的大小,设置需要读取的字节数,如下图所示。点击“read”将单片机Flash中的数据读取到STM32Cube

    2024年02月12日
    浏览(32)
  • STM32F103单片机通过SPI全双工通信协议与W25Q64(FLASH)进行通信【串行同步通信(数据线与时钟线配合),(一主多从模式)】附相关驱动代码详解

    1.W25Qxx系列是一种低成本、小型化、使用简单的 非易失性存储器 ,常应用于数据存储、字库存储、固件程序存储等场景 2.存储介质: Nor Flash(闪存) 3.时钟频率:80MHz / 160MHz (Dual SPI) / 320MHz (Quad SPI) 4.存储容量(24位地址): W25Q40: 4Mbit / 512KByte W25Q80: 8Mbit / 1MByte W25Q16: 16

    2024年04月13日
    浏览(53)
  • STM32单片机Flash不擦除直写案例分析

    产品跳闸前需保存致使产品动作的故障类型和具体的故障分析数据,并在产品二次上电后读取故障类型,进行相应指示;之后清除故障类型的相关Flash,但故障分析数据仍保存,以便后续读出分析。然而,Flash扇区擦除时间较长,会影响程序正常运行、判断。 Flash的编程原理都

    2024年02月16日
    浏览(43)
  • 【单片机】STM32单片机的各个定时器的定时中断程序,标准库,STM32F103

    高级定时器和普通定时器的区别(https://zhuanlan.zhihu.com/p/557896041): TIM1是高级定时器,使用的时钟总线是RCC_APB2Periph_TIM1,和普通定时器不一样。 timer.c timer.h 调用 timer.c timer.h 调用 timer.c timer.h 调用 timer.c timer.h 调用 timer.c timer.h 调用

    2024年02月07日
    浏览(49)
  • 【单片机】STM32单片机,定时器的输入捕获,基于捕获的频率计,STM32F103

    下面的定时器都具有输入捕获能力: 查看另一篇文章:https://qq742971636.blog.csdn.net/article/details/131471539 外部计数频率计的缺点:需要两个定时器配合,最高能测量的频率是否有限制我没具体尝试。 基于捕获的频率计的缺点:最高能测量的频率有限制。 TIM3_CH1 PWM PA6 10KHZ。 输入

    2024年02月14日
    浏览(46)
  • 【单片机学习笔记】Windows+Vscode+STM32F4+freeRTOS+FatFs gcc环境搭建

    为摒弃在接受keil邮件,研究了下gun编译,以STM32F407为例,简单记录 Git 选择对应版本直接安装即可https://git-scm.com/download/win make gcc ​ 1)将上述软件包放置于C盘根目录 2)添加环境变量 3)cmd命令行测试环境 分别输入 启动文件及LD文件 目录路径表示问题 字节对齐及指定位置存

    2024年02月07日
    浏览(48)
  • stm32f103单片机—编码器测速

    stm32f103ZET6开发板(非指定) MG513P3012V型号电机(带霍尔编码器)(非指定) 此种测速方法要求单片机的定时器具有编码器模式,对于stm32f1系列,具备编码器模式的定时器有TIM1/2/3/4/5/8, 定时器使用通道1、2来实现编码器功能 ,接线时注意把A/B相接到定时器通道1/2的引脚。 电

    2024年02月06日
    浏览(66)
  • 【单片机】STM32单片机频率计程序,外部脉冲计数程序,基于脉冲计数的频率计程序,STM32F103

    两种方法用于在单片机中实现频率计的功能。 第一种方法是通过定时器来衡量信号的周期,然后将周期转换为频率。在这种方法中,你可以使用单片机的定时器模块来测量输入信号的周期,定时器会产生一个计数值,你可以根据这个计数值来推算出输入信号的周期,并通过简

    2024年02月11日
    浏览(41)
  • 【单片机】STM32单片机,RTC实时时钟,STM32F103C8T6,程序,万年历,数字时钟

    我以STM32F103C8T6为例,但STM32F103的RTC是通用的,STM32F103C8T6有一个原理图: https://qq742971636.blog.csdn.net/article/details/131288390 用纽扣电池给VBAT供电(要共地),即可实现掉电后依旧走时的能力。 主要特性(来源于STM32中文参考手册V10.pdf): 记得加标准库文件: 串口接收:

    2024年02月11日
    浏览(47)
  • 单片机外部晶振故障后自动切换内部晶振——以STM32为例

    作者 日期 版本 说明 Dog Tao 2023.08.02 V1.0 1. 发布初始版本。 Dog Tao 2023.08.10 V1.1 1. 修改了STM32F103时钟系统的配图位置。 时钟信号是单片机的心跳,对嵌入式系统的长期稳定运行有着至关重要的作用。现代单片机的时钟信号一般都支持外部时钟、外部晶体振荡器、内部RC振荡器等

    2024年02月13日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包