微控制器外置QSPI Flash选型的注意事项

总结
为了扩展微控制器可用的 flash 空间,用户可以使用 qspi 接口连接 qspi flash;为了让用户能尽量像使用片内 flash 那样下载和运行程序,减少额外操作,需要有对应的下载算法与相应的 2nd bootloader。
本文以 plus-f5270 开发板为例(该开发板搭载的 mm32f5277e9pv 微控制器具备 qspi 接口,且板载 w25q64jvisq qspi flash 芯片),介绍了 mm32f5 系列芯片的 qspi 引脚,以及与 qspi flash 通信的过程,在 mdk 平台上实现客制化的下载算法,简单的 2nd bootloader,并以 mindsdk 的 hello_world 样例工程为例,进行少量的修改,使其能够存储在 qspi flash 上,最终验证了微控制器能够运行存储在qspi flash 上的应用程序。
 注意事项
外置 qspi flash选型
在进行 qspi flash 的选型过程中,尤其要关注其工作电压的范围,部分 qspi flash 的额定工作电压为 1.8v ,若在3.3v 电压下,是无法正常工作的,反之亦然。
除了电压范围外,部分 qspi flash 芯片在默认情况下,处于非四线模式,原本 qspi 的 d2 & d3 引脚会被用于写保护使能和 hold 使能,使能四线模式的方法,需参照使用的 qspi flash 芯片手册进行操作。
qspi flash 与微控制器连接时,为了满足阻抗匹配的要求,其信号线上需要串联22ω或33ω的电阻,否则,在与 qspi flash 通信时,会发现读到的数据与期望的数据可能不一致。
生成 flashloader 时出现显示路径不同的warning
在配置 flashloader 的 mdk 工程文件时,在 options for target ->  c/c++(ac6)  -> warnings 选项下,若选择 all warnings 选项,在build时会出现 warning:
flashdev.c(25): warning: non-portable path to file '..flashos.h'; specified path differs in case from file name on disk [-wnonportable-include-path]  #include ..flashos.h        // flashos structures           ^~~~~~~~~~~~~~           ..flashos.h  
将该配置选项修改为 ac5-like warnings 后,样例build无问题。
program size: code=4088 ro-data=4256 rw-data=4 zi-data=0    after build - user command #1: cmd.exe /c copy objectsmm32f5270_qspi_flashloader.axf ..mm32f5270_qspi_flashloader.flm  已复制         1 个文件。  .objectsmm32f5270_qspi_flashloader.axf - 0 error(s), 0 warning(s).  
生成下载算法时出现 l6305 warning
查看整个下载算法工程文件,会发现当前工程中没有启动文件与主函数,默认只有几个功能函数,在这种情况下,编译会爆出下面的警告:
l6305w: image does not have an entry point. (not specified or not set due to multiple choices.)  
但下载算法本身是不需要启动文件和主函数的,只在下载代码时由调试器调用下载算法中的功能,因此,需忽略该 warning。选择 options for target ->  linker` -> misc controls选项,修改该选项内容为 --diag_suppress l6305 。
修改源文件后下载该文件出现无法加载闪存编程算法的问题
对比所生成的下载算法大小与工程文件的`options for target -> debug -> settings -> flash download -> ram for algorithm -> size 选项下配置的算法大小,发现当前下载算法大于 size 所配置的大小,因此,需适当调大 size 的大小,例如由0x1000增加到0x2000。
在实现下载算法时,为了保证下载算法足够小,其代码量不要过多,需删除未使用的函数。
应用程序不能出现影响 qspi 使用的代码
需要检查应用程序的代码,对可能影响到 qspi 的代码进行调整,例如 gpio 的配置,gpio 时钟的复位,以及直接对 qspi 的操作。


高通突显野心,希望自己无处不在
微控制器EMC 的PCB设计——本地器件地
电感线圈的电感稳定性说明
RF采样ADC的优势
最强便携充电宝来袭,紫米10号移动电源Pro正式上线
微控制器外置QSPI Flash选型的注意事项
传乐视网复牌在即 盲目抄底恐深套
不可不知的2014冬奥会十大创新技术
京瓷开发出零温度特性的标准具滤波器
德州仪器上市HDMI接口用辅助等多种芯片
最简单的单极电动机原理分析
单旋翼无人机与遥控直升机有区别吗?
关于锂离子电池高电压电解液
智能制造建设物联网设备健康管理系统的必要性
Qorvo全新功率应用控制器(PAC)器件支持20电池组BMS
你不说我还以为这是普通桌子!实际这是个售价1.4万元的电脑机箱!
EDA云平台能够解决什么问题,它的优势是什么
全球首款支持USB 3.1标准的有源光纤数据线,能够自我供电
电蜂优选厂家HSL连接器的作用有哪些?
中美日纷纷开始6G研究,欧洲才敲响6G大门