STM32电机培训online,大佬带你玩电机
FMC和QSPI引脚冲突的解决
分享一个 QSPI N25Q256A的读写程序,支持QUAD, 4字节模式
1.QuadSPI接口的特点。与普通的SPI Flash接口相比,quadSPI可以接四位数据线,传输速率大大提高
STM32F7的quad-spi接口有三种模式
(1)indirect mode(间接模式):所有操作都是用的QUADSPI寄存器,通常在对FLASH寄存器配置时用这种模式
(2)status polling mode(状态轮询模式):外部Flash的状态寄存器查询使用的是这种模式,如果开启中断,可以产生中断信号
(3)memory-mapped mode(内存映射模式):外部flash映射到MCU的地址空间,可以视为内部闪存,读写数据用的这种模式
STM32F7的quad-spi接口主要特点:
(1)三种工作模式
(2)Dual-Flash模式,可以同时接两片Flash,共用CLK和CS片选线。这样可以最多同时传输8位数据(4+4)
(3)支持SDR和DDR
(4)间接模式的DMA通道
(5)内嵌接收和发送FIFO
(6)支持FIFO threshold, timeout, operation complete, access error四种中断
Quad-spi完整的命令格式由5部分组成,分别是Instruction,Address,Alternate-bytes,dummy-cycles和Data这5个阶段,时序图如图所示
3.png (42.97 KB, 下载次数: 30)
2015-9-8 20:19 上传
总结一下特点:
(1)每个阶段都可以选择是 1bit(SO/SI线 single SPI mode),2bit(IO0/IO1线 dual SPI mode),和4bit(IO0/IO1/IO2/IO3线 quad SPI mode)传输,
(2)写数据时,dummy cycle可以为0;读数据时,为了保证足够的转换时间,因为之前是写数据,现在要变成读,至少要1个dummy cycle
(3)这5个阶段都不是必须的,可以没有
(4)indirect mode模式,数据读取时通过QUADSPI_DR寄存器;memory-mapped mode模式,数据直接返回和输出通过AHB总线或者DMA
(5)SDR和DDR模式的区别:两者的instruction阶段都是CLK信号的下降沿数据传输;在DDR模式中,Address,Alternate-bytes和Data这3个阶段都是上升沿和下降沿都有数据传输
(6)F7有32-byte FIFO,可以设置threshold(阈值),接收数据数目超过该值时,FTF(FIFO threshold flag)=1
3.STM32F7-Discovery的quad-spi flash使用的是micron公司的N25Q128A系列,有128Mbit容量,后面附上数据手册,原理图如图所示
1.png (29.91 KB, 下载次数: 25)
2015-9-8 19:45 上传
这里主要说明quad-spi flash代码流程分析
论坛可以下载STM32Cube_FW_F7_V1.1.0压缩包,我也是从里面的例程中学习的。
选择STM32Cube_FW_F7_V1.1.0/project/STM32746G-Discovery/example/QSPI/QSPI_ExecuteInPlace例程
(1)Flash配置寄存器初始化
/* Initialize QuadSPI ------------------------------------------------------ */
QSPIHandle.Instance = QUADSPI;
HAL_QSPI_DeInit(&QSPIHandle);
/* ClockPrescaler set to 2,
本文介绍了STM32F7的quad-spi接口的三种工作模式,重点讨论了内存映射模式,并展示了如何配置和使用QSPI与Micron的N25Q128A Flash进行数据传输。通过STM32F7-Discovery板的QSPIExecuteInPlace例程,详细解析了从写使能到数据传输的完整过程,包括擦除、自动轮询模式以及scatter file中的QSPI执行域。最后提出疑问,探讨程序烧录后如何从QSPI内存映射区域执行。
最低0.47元/天 解锁文章
3090

被折叠的 条评论
为什么被折叠?



