分两块内容:

一、该开发板的Flash的容量是1024KB,即1MB。

二、外接SPI Flash,型号是W25Q128,容量是128Mb即16MB。

这两个Flash有什么区别?

从教程STM32分类上来看,STM32F407ZGT6中的“G”代表该芯片的Flash大小是1024KB。其实STM32芯片是已经封装好的成品,主要由内核和片上外设构成,内核也就是CPU,是由ARM公司设计,而ST公司作为芯片生产厂商做的是内核之外设计部件(片上外设)并生产整个芯片,下图是STM32的芯片架构简图:

由此看出,这个1MB的Flash是片内的Flash。

Flash、RAM、片上外设这些功能部件共同排列在一个4GB的地址空间内。我们主要看Flash,它的地址是由芯片厂商或者用户分配,STM32F407也给它内部的Flash会分配地址(这个过程叫存储器映射)。还有一个概念叫存储器重映射(也就是给存储器再分配一个地址)。在这4GB的空间里,ARM平均分了8个块,每块512MB。其中Block0用来设计成内部Flash。Block0内部区域的划分如下图:

外接的SPI Flash是接在片上外设的,属于扩展的Flash。

首先了解原理图:

此外:WP引脚控制写保护,为低电平时禁止写,这里接3V3,即不使用此功能。HOLD 引脚用于暂停通讯,为低电平时,通讯暂停,数据输出引脚输出高阻抗状态,时钟和数据输入引脚无效,这里直接接电源,不使用通讯暂停功能

查询数据手册可知主要引脚:

查询中文参考手册可知:SPI1位于APB2上。

由RCC章可知:APB2 总线时钟 PCLK2 = 84MHz

关于SPI的初始化配置和读写SPI Flash的程序可以从附件里下载。这里点下重点!

在进行配置之前我们一定要了解到:

该SPI Flash是作为从机,STM32即为主机,而且通信方式是全双工。数据帧长度为8位,Flash支持模式0和模式3此处配置成模式0(即CPOL为低,CPHA为奇数边沿采样),NSS引脚为软件,波特率分频因子为2分配,分频后是42MHZ。MSB先行。

我们可以通过指令对SPI Flash执行相关操作!

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐