STM32F407 SPI flash

STM32F407 SPI

接口:

STM32F407 SPI flash

STM32F4XX时钟计算

HCLK=168M PCLK1 =HCLK/4 =42M PCLK2 =HCLK/2 =84M

SPI2、SPI3在PCLK1,最大时钟为42M

SPI1在PCLK2,最大时钟为84M

STM32F4 支持的最大SPI时钟为37.5Mbits/s 因此需要分频。

例程选择SPI2 分频后为21M

串行Flash W25Q64BVSSIG (最高支持80MHz)。

 

测试:

STM32F407 SPI flash

全部写入0XAA 数据长度8192K 擦除:20.798 写入耗时42.599S 读:9.008S

STM32F407 SPI flash

 

百度的参照时间

擦除:8.9S 写入22.5S 读出 1.8S  校验时间1.8S

 

芯片特点:W25Q64 SPI Flash 语音字库存储器

该芯片通常做语音或者字库的存储器

 

SPI flash 属于NorFlash 接口简单,但速度慢,一般在语音字库,小程序存储场合广泛使用。

W25Q64是华邦公司推出的大容量SPI-Flash产品,W25Q64的容量为64Mb,即8M字节,该系列还有W25Q80/16/32等。
W25Q64将2M的容量分为128个块(Block),每个块大小为64K字节,每个块又分为16个扇区(Sector),每个扇区4K个字节。W25Q64的最小擦除单位为一个扇区,也就是每次必须擦除4K个字节。这样我们需要给W25Q64开辟一个至少4K的缓存区,这样对SRAM要求比较高,要求芯片必须有4K以上SRAM才能很好地操作。

 

一、技术性能
SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构;支持多slave模式应用,一般仅支持单Master。
时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first);SPI接口有2根单向数据线,为全双工通信,目前应用中的数据速率可达几Mbps的水平。

二、接口定义
SPI
接口共有4根信号线,分别是:设备选择线、时钟线、串行输出数据线、串行输入数据线。 

STM32F407 SPI flash

(1)MOSI:主器件数据输出,从器件数据输入
(2)MISO:主器件数据输入,从器件数据输出
(3)SCLK :时钟信号,由主器件产生
(4)/SS:从器件使能信号,由主器件控制

 

三、内部结构

STM32F407 SPI flash

四、传输时序

SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的下降沿上数据改变,上升沿一位数据被存入移位寄存器。

STM32F407 SPI flash

SPI接口没有指定的流控制,没有应答机制确认是否接收到数据。

SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。


SPI
总线有四种工作方式(SP0, SP1, SP2, SP3),其中使用的最为广泛的是SPI0SPI3方式。

 

SPI接口有四种不同的数据传输时序,取决于CPOLCPHL这两位的组合。图1中表现了这四种时序,
时序与CPOL、CPHL的关系也可以从图中看出。


STM32F407 SPI flash