CI130X SDK API手册  2.2.0
本手册用于描述CI130X SDK各个组件和驱动API
宏定义 | 枚举 | 函数
ci130x_spiflash

CI130X芯片SPIFLASH驱动 更多...

宏定义

#define SPI0FIFO_BASE   0x60000000
 
#define FLASH_MSF   (0)
 

枚举

enum  spic_base_t { QSPI0 = HAL_DTRFLASH_BASE }
 SPI控制器定义 更多...
 
enum  spic_cmd_code_t {
  SPIC_CMD_CODE_WRITE_ENABLE = 0x06,
  SPIC_CMD_CODE_READMANUFACTURERIDDEVICEID = 0x90,
  SPIC_CMD_CODE_READJEDECID = 0x9F,
  SPIC_CMD_CODE_READSTATUSREG1 = 0x05,
  SPIC_CMD_CODE_READSTATUSREG2 = 0x35,
  SPIC_CMD_CODE_READSTATUSREG3 = 0x15,
  SPIC_CMD_CODE_SECTORERASE4K = 0x20,
  SPIC_CMD_CODE_BLOCKERASE32K = 0x52,
  SPIC_CMD_CODE_BLOCKERASE64K = 0xd8,
  SPIC_CMD_CODE_CHIPERASE = 0xc7,
  SPIC_CMD_CODE_PAGEPROGRAM = 0x02,
  SPIC_CMD_CODE_QUADINPUTPAGEPROGRAM = 0x32,
  SPIC_CMD_CODE_WRSTATUSREG = 0x01,
  SPIC_CMD_CODE_WRSTATUSREG2 = 0x31,
  SPIC_CMD_CODE_WRSTATUSREG3 = 0x11,
  SPIC_CMD_CODE_READDATA = 0x03,
  SPIC_CMD_CODE_FASTREAD = 0x0b,
  SPIC_CMD_CODE_FASTREADDUALOUTPUT = 0x3b,
  SPIC_CMD_CODE_FASTREADQUADOUTPUT = 0x6b,
  SPIC_CMD_CODE_FASTREADQUADIO = 0xeb,
  SPIC_CMD_CODE_POWERDOWN = 0xb9,
  SPIC_CMD_CODE_RELEASEPOWERDOWN = 0xab,
  SPIC_CMD_CODE_ENABLERESET = 0x66,
  SPIC_CMD_CODE_RESET = 0x99,
  SPIC_CMD_CODE_READ_UNIQUE_ID = 0x4b,
  SPIC_CMD_CODE_ERASE_SECURITY_REG = 0x44,
  SPIC_CMD_CODE_WRITE_SECURITY_REG = 0x42,
  SPIC_CMD_CODE_READ_SECURITY_REG = 0x48,
  SPIC_CMD_CODE_WRITE_EXTENDED_ADDR_REG = 0xC5,
  SPIC_CMD_CODE_READ_EXTENDED_ADDR_REG = 0xC8,
  SPIC_CMD_CODE_ENABLE_QUAD = 0x38,
  SPIC_CMD_CODE_DISABLE_QUAD = 0xFF
}
 FLASH命令定义 更多...
 
enum  spic_security_reg_t {
  SPIC_SECURITY_REG1 = 0,
  SPIC_SECURITY_REG2 = 1,
  SPIC_SECURITY_REG3 = 2
}
 FLASH安全寄存器定义 更多...
 

函数

int32_t flash_init (spic_base_t spic)
 FLASH普通模式初始化 更多...
 
int32_t spic_read_unique_id (spic_base_t spic, uint8_t *unique)
 读取Unique ID 更多...
 
int32_t spic_read_jedec_id (spic_base_t spic, uint8_t *jedec)
 读取Jedec ID 更多...
 
int32_t spic_erase_security_reg (spic_base_t spic, spic_security_reg_t reg)
 擦除FLASH安全寄存器 更多...
 
int32_t spic_write_security_reg (spic_base_t spic, spic_security_reg_t reg, uint32_t buf, uint32_t addr, uint32_t size)
 写FLASH的安全寄存器 更多...
 
int32_t spic_read_security_reg (spic_base_t spic, spic_security_reg_t reg, uint32_t buf, uint32_t addr, uint32_t size)
 读FLASH的安全寄存器 更多...
 
int32_t spic_security_reg_lock (spic_base_t spic, spic_security_reg_t reg)
 FLASH的安全寄存器上锁,慎用:上锁之后将导致该安全寄存器不可再次编程 更多...
 
int32_t flash_erase (spic_base_t spic, uint32_t addr, uint32_t size)
 FLASH擦除,兼容32M以上Flash 更多...
 
int32_t flash_write (spic_base_t spic, uint32_t addr, uint32_t buf, uint32_t size)
 写FLASH,兼容32M以上Flash 更多...
 
int32_t flash_read (spic_base_t spic, uint32_t buf, uint32_t addr, uint32_t size)
 读FLASH,兼容32M以上Flash 更多...
 
int32_t spic_protect (spic_base_t spic, FunctionalState cmd)
 FLASH保护设置 更多...
 
int32_t spic_xipconfig (spic_base_t spic)
 FLASH的XIP模式初始化 更多...
 
int32_t flash_clk_div_init (spic_base_t spic)
 FLASH时钟初始化 更多...
 

详细描述

CI130X芯片SPIFLASH驱动

宏定义说明

◆ FLASH_MSF

#define FLASH_MSF   (0)

当Flash容量大于16M byte时,应该定义为 1

◆ SPI0FIFO_BASE

#define SPI0FIFO_BASE   0x60000000

SPI0FIFO 基地址定义

枚举类型说明

◆ spic_base_t

SPI控制器定义

枚举值
QSPI0 

SPI0控制器

◆ spic_cmd_code_t

FLASH命令定义

枚举值
SPIC_CMD_CODE_WRITE_ENABLE 

Write Enable

SPIC_CMD_CODE_READMANUFACTURERIDDEVICEID 

Read Manufacturer / Device ID

SPIC_CMD_CODE_READJEDECID 

Read JEDECID ID

SPIC_CMD_CODE_READSTATUSREG1 

Read Status Register1

SPIC_CMD_CODE_READSTATUSREG2 

Read Status Register2

SPIC_CMD_CODE_READSTATUSREG3 

Read Status Register3

SPIC_CMD_CODE_SECTORERASE4K 

4K Erase

SPIC_CMD_CODE_BLOCKERASE32K 

32K Erase

SPIC_CMD_CODE_BLOCKERASE64K 

64K Erase

SPIC_CMD_CODE_CHIPERASE 

Chip Erase

SPIC_CMD_CODE_PAGEPROGRAM 

Page Program

SPIC_CMD_CODE_QUADINPUTPAGEPROGRAM 

Quad Input Page Program

SPIC_CMD_CODE_WRSTATUSREG 

Write Status Register1

SPIC_CMD_CODE_WRSTATUSREG2 

Write Status Register2

SPIC_CMD_CODE_WRSTATUSREG3 

Write Status Register3

SPIC_CMD_CODE_READDATA 

Read Data

SPIC_CMD_CODE_FASTREAD 

Fast Read

SPIC_CMD_CODE_FASTREADDUALOUTPUT 

Fast Read Dual Output

SPIC_CMD_CODE_FASTREADQUADOUTPUT 

Fast Read Quad Output

SPIC_CMD_CODE_FASTREADQUADIO 

Fast Read Quad IO

SPIC_CMD_CODE_POWERDOWN 

PowerDown

SPIC_CMD_CODE_RELEASEPOWERDOWN 

Release PowerDown

SPIC_CMD_CODE_ENABLERESET 

Enable Reset

SPIC_CMD_CODE_RESET 

Reset Device

SPIC_CMD_CODE_READ_UNIQUE_ID 

Read Uniaue ID Number

SPIC_CMD_CODE_ERASE_SECURITY_REG 

Erase Security Registers

SPIC_CMD_CODE_WRITE_SECURITY_REG 

Program Security Registers

SPIC_CMD_CODE_READ_SECURITY_REG 

Read Security Registers

SPIC_CMD_CODE_WRITE_EXTENDED_ADDR_REG 

write extended Registers

SPIC_CMD_CODE_READ_EXTENDED_ADDR_REG 

read extended Registers

SPIC_CMD_CODE_ENABLE_QUAD 
SPIC_CMD_CODE_DISABLE_QUAD 

◆ spic_security_reg_t

FLASH安全寄存器定义

枚举值
SPIC_SECURITY_REG1 

安全寄存器0

SPIC_SECURITY_REG2 

安全寄存器1

SPIC_SECURITY_REG3 

安全寄存器2

函数说明

◆ flash_clk_div_init()

int32_t flash_clk_div_init ( spic_base_t  spic)

FLASH时钟初始化

参数
spicspiflash控制器

◆ flash_erase()

int32_t flash_erase ( spic_base_t  spic,
uint32_t  addr,
uint32_t  size 
)

FLASH擦除,兼容32M以上Flash

参数
spicspiflash控制器
addr地址
size大小
返回值
RETURN_OK
RETURN_ERR

◆ flash_init()

int32_t flash_init ( spic_base_t  spic)

FLASH普通模式初始化

参数
spicspiflash控制器
返回值
RETURN_OK
RETURN_ERR

◆ flash_read()

int32_t flash_read ( spic_base_t  spic,
uint32_t  buf,
uint32_t  addr,
uint32_t  size 
)

读FLASH,兼容32M以上Flash

参数
spicspiflash控制器
bufmem地址
addrFLASH地址
size大小
返回值
RETURN_OK
RETURN_ERR

◆ flash_write()

int32_t flash_write ( spic_base_t  spic,
uint32_t  addr,
uint32_t  buf,
uint32_t  size 
)

写FLASH,兼容32M以上Flash

参数
spicspiflash控制器
addrFLASH地址
bufmem地址
size大小
返回值
RETURN_OK
RETURN_ERR

◆ spic_erase_security_reg()

int32_t spic_erase_security_reg ( spic_base_t  spic,
spic_security_reg_t  reg 
)

擦除FLASH安全寄存器

参数
spicspiflash控制器
reg安全寄存器选择
返回值
RETURN_OK
RETURN_ERR

◆ spic_protect()

int32_t spic_protect ( spic_base_t  spic,
FunctionalState  cmd 
)

FLASH保护设置

参数
spicspiflash控制器
cmd保护开关,ENABLE,保护;DISABLE,不保护
返回值
RETURN_OK
RETURN_ERR

◆ spic_read_jedec_id()

int32_t spic_read_jedec_id ( spic_base_t  spic,
uint8_t *  jedec 
)

读取Jedec ID

参数
spicspiflash控制器
jedecmem地址,能够缓存3个字节的空间
返回值
RETURN_OK
RETURN_ERR

◆ spic_read_security_reg()

int32_t spic_read_security_reg ( spic_base_t  spic,
spic_security_reg_t  reg,
uint32_t  buf,
uint32_t  addr,
uint32_t  size 
)

读FLASH的安全寄存器

参数
spicspiflash控制器
reg安全寄存器选择
bufmem地址
addr读FLASH安全寄存器地址:通常为(0 - 255)或(0 - 1023),具体的可以查看flash芯片手册
size读FLASH安全寄存器字节数:通常为(1 - 256)或(1 - 1024),具体的可以查看flash芯片手册
返回值
RETURN_OK
RETURN_ERR

◆ spic_read_unique_id()

int32_t spic_read_unique_id ( spic_base_t  spic,
uint8_t *  unique 
)

读取Unique ID

参数
spicspiflash控制器组
uniquemem地址,能够缓存16个字节的空间
返回值
RETURN_OK
RETURN_ERR

◆ spic_security_reg_lock()

int32_t spic_security_reg_lock ( spic_base_t  spic,
spic_security_reg_t  reg 
)

FLASH的安全寄存器上锁,慎用:上锁之后将导致该安全寄存器不可再次编程

参数
spicspiflash控制器
reg安全寄存器选择
返回值
RETURN_OK
RETURN_ERR

◆ spic_write_security_reg()

int32_t spic_write_security_reg ( spic_base_t  spic,
spic_security_reg_t  reg,
uint32_t  buf,
uint32_t  addr,
uint32_t  size 
)

写FLASH的安全寄存器

参数
spicspiflash控制器
reg安全寄存器选择
bufmem地址
addr写FLASH安全寄存器地址:通常为(0 - 255)或(0 - 1023),具体的可以查看flash芯片手册
size写FLASH安全寄存器字节数:通常为(1 - 256)或(1 - 1024),具体的可以查看flash芯片手册
返回值
RETURN_OK
RETURN_ERR

◆ spic_xipconfig()

int32_t spic_xipconfig ( spic_base_t  spic)

FLASH的XIP模式初始化

参数
spicspiflash控制器