mark0668 发表于 2015-12-7 13:35:52

[NUCLEO-L476RG开发]首发QSPI 之一 4线数据读写25QXX 和映射读.....

首发QSPI 之一 4线数据读写25QXX 和映射读.....

1。前言
QUADSPI 是一种专用的通信接口,连接单、双或四(条数据线)SPI Flash 存储介质。该接
口可以在以下三种模式下工作:
 间接模式:使用 QUADSPI 寄存器执行全部操作
 状态轮询模式:周期性读取外部 Flash 状态寄存器,而且标志位置 1 时会产生中断(如
擦除或烧写完成,会产生中断)
 内存映射模式:外部 Flash 映射到微控制器地址空间,从而系统将其视作内部存储器

2。QUADSPI主要特性
 三种功能模式:间接模式、状态轮询模式和内存映射模式
 双闪存模式,通过并行访问两个 Flash,可同时发送/接收 8 位数据
 支持 SDR 和 DDR 模式
 针对间接模式和内存映射模式,完全可编程操作码
 针对间接模式和内存映射模式,完全可编程帧格式
 集成 FIFO,用于发送和接收
 允许 8、16 和 32 位数据访问
 具有适用于间接模式操作的 DMA 通道
 在达到 FIFO 阈值、超时、操作完成以及发生访问错误时产生中断




STM32L476 的QSPI 速度是可以支持到80M 读写速度的, 看上面的图我们可以知道25QXX 的4线读写速度是只能支持到 70M(4线)的,这个需要注意了。(当然你要超频也是可以的目前我用80M 的读写速度也没发现什么异常,但不建议超频了可能会不稳定)


了解了上面的的,那我们就开始建工程 工具还是用STM32CubeMX 版本4.11、库用的1.1.1



1.这里选择我们的开发板型号,一些基本的外设和端口就不需要我们再进行设置的了。



2.开启我们要使用的QSPI 外设4线。



3.开启一个串口外设方便我们输出数据查看。



4. 设置一下串口的位数和波特率,波特率就默认选择115200 了,位数为8位。


5.(
      1。主频为80M ,分频系数为1(F CLK = F AHB /2)=40M 的读写速度,
      2.FIFO 中存在 4 个或更多空闲字节可供写入
      3.移位半个周期
      4.容易大小我们给个默认的为20个位大小
      5.( 2nCS 在 Flash 命令之间保持高电平至少 3 个周期)
      6. nCS 为高电平(片选释放)时,CLK 必须保持高电平。这称为模式 3。




6.给QSPI 添加一个DMA 以进行高速度写,如果不用DMA 速度会慢很多,这个大家可以去试验了。



7.设置好DMA 之后记得还要把这两个中断选上。



8.设置好外设参数之后就生成工程这里还需要给工程起个名字,我就起STM32L476QSPI 了。再选上MDK V5 IDE 由于我是用的KEII 5.16编绎器的。



9.选上这个选项给每一个外设都添加一个*.C ,*.H这样可以方便我们管理每一个外设,选好了就点OK 生成工程了。



10.打开生成的工程,给25QXX 的操作函数起一个单独的文件夹,再把25QXX文件添加进来。



11. 给25QXX.C 的文件路径添加进来,按步骤操作就行了。



12.上面步骤都完成后,我们就打开main.c 把25QXX 的头文件添加进来。



13.这里看上面代码注释写的很清楚了。编绎没有错误就可以下载到我们的开发板了。



14. 到这一步就看程序的输出结果了,这里可以看到我用的16MB 的FLASH 读到的ID 为EF17 是正确的,再把读到的0-99地址的数据输出来。结果也是正确的。 我们再看看开启了内存映射的方法读取内存输出也是正确的。(开启内存映射就可以像内部FLASH 一样的操作了)

工程源代码放在附件里了,需要的就下载,觉得好的就顶。不好的话就喷吧,现在的技术也就这样子了:lol



zhangdaijin 发表于 2015-12-7 13:44:21

:):):):):):)谢谢分享mark一下

沐紫 发表于 2015-12-7 13:57:09

顶一个

Paderboy 发表于 2015-12-7 15:58:41

:loveliness:顶一个

moyanming2013 发表于 2015-12-7 17:07:22

学习。。。。。。。。。

munsterzl 发表于 2015-12-7 19:25:13

:o好高级啊。。。只能先仰望下。。。

dsjsjf 发表于 2015-12-7 19:56:21

顶一下      

disheng4688 发表于 2015-12-8 09:14:37

谢谢分享

dsjsjf 发表于 2015-12-9 20:51:43

强悍,谢谢分享

安臣 发表于 2015-12-10 09:41:55

感谢分享
页: [1] 2
查看完整版本: [NUCLEO-L476RG开发]首发QSPI 之一 4线数据读写25QXX 和映射读.....