外部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型号需要考虑供电电压

  1. 通过LCD复用的QSPI (电压域VLCD, 默认关闭,电压范围1.6125V~3.2V)

  2. 通过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:失败

unmount

挂载文件系统分区

  • 语法

    io.unmount(flashType[,path][,size][,offset][,clock])

  • 参数

  • 返回值

    • 1:成功

    • 0:失败

format

格式化文件系统分区

  • 语法

    io.format(flashType[,path][,size][,offset][,clock])

  • 参数

  • 返回值

    • 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:失败

iot_fs_unmount

卸载文件系统分区

  • 语法

    BOOL iot_fs_mount(T_AMOPENAT_USER_FSMOUNT * param)

  • 返回值

    • 1:成功

    • 0:失败

iot_fs_format

格式化文件系统分区

  • 语法

    BOOL iot_fs_mount(T_AMOPENAT_USER_FSMOUNT * param)

  • 返回值

    • 1:成功

    • 0:失败

相关资料以及购买链接

相关开发板购买链接

LCD屏幕购买链接 Air724UG开发板 Air724 开发板使用说明 相关软件资料下载