跳转至

SPI0

功能介绍

SPI0是CI1103通过4线SPI接口方式(QSPI)访问片外Nor Flash的专用接口,其主要特征如下:

  • 支持winbond、gigadevice等多个公司的SPI Nor Flash
  • 支持APB配置接口
  • 支持AHB 数据传输接口,只支持以word方式传输
  • 支持默认从SPI Nor Flash启动,默认传输模式为单线传输

寄存器映射

SPI0的控制器命名为SPIC,其寄存器映射的基地址为0x4004C000,详细的寄存器映射见表19。

表19 SPIC寄存器映射

偏移量 名称 位宽 类型 复位值 描述
0x00 SPIC_CSR_00 32 R/W 0x00124F80 SPIC控制寄存器0
0x04 SPIC_CSR_01 32 R/W 0x00000000 SPIC控制寄存器1
0x08 SPIC_CSR_02 32 R/W 0x00000000 SPIC控制寄存器2
0x0C SPIC_CSR_03 32 R/W 0x00000000 SPIC控制寄存器3
0x10 SPIC_CSR_04 32 R/W 0x00000000 SPIC控制寄存器4
0x14 SPIC_CSR_05 32 R/W 0x00000000 SPIC控制寄存器5
0x18 SPIC_CSR_06 32 R/W 0x00000000 SPIC控制寄存器6
0x1C SPIC_CSR_07 32 R/W 0x00000000 SPIC控制寄存器7
0x20 SPIC_CSR_08 32 R/W 0x00000000 SPIC控制寄存器8
0x24 SPIC_CSR_09 32 R/W 0x00000000 SPIC控制寄存器9
0x28 SPIC_CSR_10 32 R/W 0x0003A980 SPIC控制寄存器10
0x2C SPIC_CSR_11 32 R/W 0x01E84800 SPIC控制寄存器11
0x30 SPIC_CSR_12 32 R/W 0x03D09000 SPIC控制寄存器12
0x34 SPIC_CSR_13 32 R/W 0x04C4B400 SPIC控制寄存器13
0x38 SPIC_CSR_14 32 R/W 0x47868C00 SPIC控制寄存器14
0x3C SPIC_CSR_15 32 R/W 0x00000024 SPIC控制寄存器15
0x40 SPIC_CSR_16 32 R/W 0x00F000F0 SPIC控制寄存器16

SPIC控制寄存器0(SPIC_CSR_00)

偏移量:0x00

复位值:0x00124F80

位域 名称 复位值 类型 描述
31:24 Reserved 0x00 R/W 保留
23:0 TW 0x124F80 R/W 烧写时间寄存器

SPIC控制寄存器1(SPIC_CSR_01)

偏移量:0x04

复位值:0x00000000

位域 名称 复位值 类型 描述
31:2 Reserved 0x00000000 R/W 保留
1:0 BUS_MODE 0 R/W SPI操作位宽控制:
0:标准 spi(如果是rd/wr安全寄存器,则设置为标准spi)
1:双线 spi
2:四线 spi
3:保留

SPIC控制寄存器2(SPIC_CSR_02)

偏移量:0x08

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 ERASE_COUNTER_TAP 0x00000000 R/W 擦除时间控制位:
等待擦除完成的计数器计数步进,默认值为1,即计数器每个cycle做+1,若配为4,则每4个cycle+1。该寄存器在大容量flash擦除时间过长,计数器位数不够时使用。

SPIC控制寄存器3(SPIC_CSR_03)

偏移量:0x0C

复位值:0x00000000

位域 名称 复位值 类型 描述
31:1 Reserved 0x00000000 R/W 保留
0 DMA_EN_HCLK_STATUS 0 R dma_en在HCLK时钟域下的状态,当cpu读写数据时,必须等到dma_en_hclk_status=0时,才能开始数据传输。

SPIC控制寄存器4(SPIC_CSR_04)

偏移量:0x10

复位值:0x00000000

位域 名称 复位值 类型 描述
31:3 Reserved 0x00000000 R/W 保留
2 SPI_CLK_MODE 0 R/W 时钟空闲状态控制位:
0:模式0,总线上无传输时时钟低
1:模式3,总线上无传输时时钟高
1 FAST_READ_IO 0 R/W IO控制位:
0:仅对读取输出使用io
1:对地址和数据使用io
0 FAST_READ_EN 0 R/W Fast read使能位:
0:fast read不使能
1:fast read使能(如果读取安全寄存器,则该位必须为1)

注:当使用read security register时,该寄存器要置1,双线和四线操作时,该位也必须置1。

SPIC控制寄存器5(SPIC_CSR_05)

偏移量:0x14

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 WR_RD_NUM 0x00000000 R/W 读写操作的数据量,单位为字节。
注意:写操作范围为1~256。

SPIC控制寄存器6(SPIC_CSR_06)

偏移量:0x18

复位值:0x00000000

位域 名称 复位值 类型 描述
31:14 Reserved 0x0000 R/W 保留
13:6 CMD_CODE 0x00 R/W spi 命令编码
5 DMA_EN 0 R/W 数据搬运控制:
1:表示使用dma搬运数据
0:表示使用cpu搬运数据
4:1 CMD_TYPE 0x0 R/W 命令类型:
0:编程
1:在flash中写入状态寄存器
2:在flash中读取状态寄存器
3:扇区擦除(4KB)
4:块擦除(32KB)
5:块擦除(64KB)
6:芯片擦除
7:断电
8:释放掉电源
9:保留
10:读取安全寄存器
11:擦除安全寄存器r
12:写入安全寄存器
13:读取
14:读取制造商id
15:读取每个id
0 CMD_EN 0 R/W 0:命令有效

SPIC控制寄存器7(SPIC_CSR_07)

偏移量:0x1C

复位值:0x00000000

位域 名称 复位值 类型 描述
31:3 Reserved 0x000000 R/W 保留
2 INT_EN 0 R/W 中断使能信号:
0:不使用中断
1:使用中断
1 INT_CLR 0 W 中断清除信号:
0:无效
1:清除有效
0 INT 0 R 中断信号:
0:无效
1:中断

SPIC控制寄存器8(SPIC_CSR_08)

偏移量:0x20

复位值:0x00000000

位域 名称 复位值 类型 描述
31:3 Reserved 0x000000 R/W 保留
2:0 DMA_TAP 0x0 R/W 0:每32bit数据准备好向dma申请一次操作
1:每32bitX4数据准备好向dma申请一次操作
2:每32bitX8数据准备好向dma申请一次操作
3:每32bitX16数据准备好向dma申请一次操作
4:每32bitX32数据准备好向dma申请一次操作
5:每32bitX64数据准备好向dma申请一次操作

SPIC控制寄存器9(SPIC_CSR_09)

偏移量:0x24

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 WR_RD_ADDR 0x00000000 R/W FLASH读写地址

SPIC控制寄存器10(SPIC_CSR_10)

偏移量:0x28

复位值:0x0003A980

位域 名称 复位值 类型 描述
31:24 Reserved 0x00 R/W 保留
23:0 TPP 0x03A980 R/W 页面编程时间(周期)

SPIC控制寄存器11(SPIC_CSR_11)

偏移量:0x2C

复位值:0x01E84800

位域 名称 复位值 类型 描述
31:0 TSE 0x1E84800 R/W 扇区擦除(4K) 时间(周期)

SPIC控制寄存器12(SPIC_CSR_12)

偏移量:0x30

复位值:0x03D09000

位域 名称 复位值 类型 描述
31:0 TBE1 0x03D09000 R/W 块擦除(32K)时间(周期)

SPIC控制寄存器13(SPIC_CSR_13)

偏移量:0x34

复位值:0x04C4B400

位域 名称 复位值 类型 描述
31:0 TBE2 0x04C4B400 R/W 块擦除(64K)时间(周期)

SPIC控制寄存器14(SPIC_CSR_14)

偏移量:0x38

复位值:0x47868C00

位域 名称 复位值 类型 描述
31:0 TCE 0x47868C00 R/W 芯片擦除时间(周期)

SPIC控制寄存器15(SPIC_CSR_15)

偏移量:0x3C

复位值:0x00000024

位域 名称 复位值 类型 描述
31:10 Reserved 0x00000000 R/W 保留
9:5 TCSH1 0x1 R/W cs取消选择读取或断电时间
4:0 TCSH2 0x4 R/W cs取消选择编程或擦除时间

SPIC控制寄存器16(SPIC_CSR_16)

偏移量:0x40

复位值:0x00F000F0

位域 名称 复位值 类型 描述
31:16 TRES 0x00F0 R/W 释放掉电时间
15:0 TDP 0x00F0 R/W cs 取消选择断电时间