外部SPI Flash¶
作者:朱汪斌 更新时间:2020年9月1日 关键字:外挂flash SPI QSPI
概述¶
我们可以通过标准的SPI接口和QSPI接口来外挂flash。区别如下 1. 使用标准SPI接口外挂flash,需要自己实现flash驱动,和自己移植文件系统 1. 使用QSPI接口外挂flash,不需要自己实现flash驱动,也不需要移植文件系统 。通过mount接口挂载文件系统后,可以直接通过文件系统接口访问外部flash
标准SPI外挂flash¶
标准SPI有2个,SPI1和SPI2,724UG只支持SPI1
SPI管脚定义
接口 |
名称 |
复用 |
管脚 |
作用 |
---|---|---|---|---|
SPI1 |
SPI1_CLK |
spi_1_clk |
52 |
SPI1的时钟信号 |
SPI1 |
SPI1_DIN |
spi_1_di_1 |
53 |
SPI1的数据信号 |
SPI1 |
SPI1_CS |
spi_1_cs_0 |
54 |
SPI1的片选型号 |
SPI1 |
SPI1_DOUT |
spi_1_dio_0 |
55 |
SPI1的数据信号 |
SPI2管脚定义
接口 |
PIN NO |
Ball Name |
复用 |
作用 |
---|---|---|---|---|
SPI2 |
R19 |
GPIO_0 |
spi_2_clk |
SPI1的时钟信号 |
SPI2 |
R20 |
GPIO_1 |
spi_2_cs_0 |
SPI1的片选型号 |
SPI2 |
P21 |
GPIO_2 |
spi_2_dio_0 |
SPI1的数据信号 |
SPI2 |
P22 |
GPIO_3 |
spi_2_di_1 |
SPI1的数据信号 |
QSPI外挂flash¶
QSPI有2种管脚定义, 电压不同,选择flash型号需要考虑供电电压
通过LCD复用的QSPI (电压域VLCD, 默认关闭,电压范围1.6125V~3.2V)
通过GPIO复用的QSPI (V_GLOBAL_1V8) (724UG不支持)
支持的FLASH型号
GD PUYA WINBOND XMCA XMCC XMCB
客户已经验证过的flash型号有 XT25Q128DWOIGT
LCD复用QSPI FLASH1管脚定义
接口 |
名称PIN NO |
复用Ball Name |
管脚复用 |
作用 |
---|---|---|---|---|
FLASH1 |
LCD_DATA |
spi_flash1_clk |
41 |
FLASH1的时钟信号 |
FLASH1 |
LCD_DC |
spi_flash1_cs |
58 |
FLASH1的片选信号 |
FLASH1 |
LCD_CLK |
spi_flash1_sio_0 |
40 |
FLASH1的数据信号 |
FLASH1 |
LCD_CS |
spi_flash1_sio_1 |
39 |
FLASH1的数据信号 |
FLASH1 |
LCD_SEL |
spi_flash1_sio_2 |
57 |
FLASH1的数据信号 |
FLASH1 |
LCD_FMARK |
spi_flash1_sio_3 |
42 |
FLASH1的数据信号 |
GPIO复用QSPI FLASH1管脚定义
接口 |
PIN NO |
Ball Name |
复用 |
作用 |
---|---|---|---|---|
FLASH1 |
R19 |
GPIO_0 |
spi_flash1_clk |
FLASH1的时钟信号 |
FLASH1 |
R20 |
GPIO_1 |
spi_flash1_cs |
FLASH1的片选信号 |
FLASH1 |
P21 |
GPIO_2 |
spi_flash1_sio_0 |
FLASH1的数据信号 |
FLASH1 |
P22 |
GPIO_3 |
spi_flash1_sio_1 |
FLASH1的数据信号 |
FLASH1 |
T21 |
GPIO_4 |
spi_flash1_sio_2 |
FLASH1的数据信号 |
FLASH1 |
T22 |
GPIO_5 |
spi_flash1_sio_3 |
FLASH1的数据信号 |
LUA 接口¶
mount¶
挂载文件系统分区
语法
io.mount(flashType[,path][,size][,offset][,clock])
参数
参数
取值
释义
flashType
io.SDCARD
SD卡
io.INTERNAL
内部flash
io.EXTERN_PINLCD
外挂flash, LCD复用管脚,V_LCD供电
io.EXTERN_PINGPIO
外挂flash, 使用GPIO pin脚复用,V_PAD_1V8供电
path
字符串 长度>=5,第一个字节为’/‘
mount的文件系统根目录
size
要考虑字节对齐
分区的大小
offset
flash 地址偏移量
clock
clock= 166M/clkDiv,2<clkDiv<255
时钟
返回值
1:成功
0:失败
CSDK 接口¶
iot_fs_mount¶
挂载文件系统分区
语法
BOOL iot_fs_mount(T_AMOPENAT_USER_FSMOUNT * param)
参数
T_AMOPENAT_USER_FSMOUNT 结构体
参 数
释义
取值
pa th
文件系统的根 目录,类似盘符的作用
注.长度至少为 5,以‘/’开头。mount多个文件系统,第二到 第5个字节不能相同。例如“/EXT1”,“/EXT2”, “EXT3”等
of fs et
flash地址偏移量
off set取值范围为0-capacity。注:需要64K对齐
si ze
文件系统的大小
s ize取值范围为0-capacity。注:需要64K对齐
e xF la sh
是否是外部flash
取值0:内部flash 1: 外部flash lcd复用 2: 外部flash gpio复用
cl kD iv
flash分频
频率为166M/clkDiv
返回值
1:成功
0:失败