ELIOT1 HAL
Загрузка...
Поиск...
Не найдено
Драйвер модуля QSPI

Драйвер контроллера QSPI. Подробнее...

Файлы

файл  hal_nor_flash.h
 Интерфейс драйвера флеш-памяти NOR.
 
файл  hal_qspi.h
 Интерфейс драйвера модуля QSPI.
 
файл  hal_qspi_dma.h
 Дополнение драйвера QSPI для обмена данными с помощью DMA.
 
файл  hal_qspi_nor_flash.h
 Интерфейс драйвера модуля QSPI-NOR-FLASH.
 

Структуры данных

struct  _nor_command_set
 Основной набор команд для флеш-памяти NOR. Подробнее...
 
struct  _nor_config
 Структура первичной конфигурации флеш-памяти NOR. Подробнее...
 
struct  _nor_handle
 Контекст драйвера флеш-памяти NOR. Подробнее...
 
struct  _qspi_config
 Количество бит во фрейме Подробнее...
 
struct  _qspi_xip_config
 Структура параметров конфигурации XIP контроллера QSPI. Подробнее...
 
struct  qspi_dma_handle_t
 Дескриптор QSPI-DMA передачи Подробнее...
 
struct  _qspi_nor_config
 Конфигурационный блок для режима Quad. Подробнее...
 
struct  _qspi_nor_init_config
 Первоначальная конфигурация QSPI. Подробнее...
 
struct  _qspi_nor_handle
 Контекст драйвера NOR Flash. Подробнее...
 

Макросы

#define DUMMY_BYTE   0x00
 

Определения типов

typedef struct _nor_command_set nor_command_set_t
 Основной набор команд для флеш-памяти NOR.
 
typedef struct _nor_config nor_config_t
 Структура первичной конфигурации флеш-памяти NOR.
 
typedef struct _nor_handle nor_handle_t
 Контекст драйвера флеш-памяти NOR.
 
typedef enum _qspi_qmode qspi_qmode_t
 Режим работы контроллера QSPI.
 
typedef struct _qspi_config qspi_config_t
 Количество бит во фрейме
 
typedef struct _qspi_xip_config qspi_xip_config_t
 Структура параметров конфигурации XIP контроллера QSPI.
 
typedef struct _qspi_nor_config qspi_nor_config_t
 Конфигурационный блок для режима Quad.
 
typedef enum _qspi_command_format qspi_command_format_t
 Формат команды QSPI.
 
typedef struct _qspi_nor_init_config qspi_nor_init_config_t
 Первоначальная конфигурация QSPI.
 
typedef enum _qspi_command_type qspi_command_type_t
 Тип команды QSPI.
 
typedef struct _qspi_nor_handle qspi_nor_handle_t
 Контекст драйвера NOR Flash.
 

Перечисления

enum  nor_status_t
 Статусы драйвера флеш-памяти NOR. Подробнее...
 
enum  _qspi_qmode
 Режим работы контроллера QSPI. Подробнее...
 
enum  qspi_dma_status_t
 Статусы выполнения функций Подробнее...
 
enum  _serial_nor_command
 Коды операций микросхемы флеш-памяти Подробнее...
 
enum  
 Требования для включение режима Quad. Подробнее...
 
enum  _qspi_command_format
 Формат команды QSPI. Подробнее...
 
enum  _qspi_command_type
 Тип команды QSPI. Подробнее...
 

Функции

void QSPI_GetDefaultConfigXIP (qspi_xip_config_t *qspi_xip_config)
 Получение конфигурации XIP QSPI по умолчанию
 
void QSPI_GetDefaultCommandSet (nor_command_set_t *command_set)
 Получение стандартного набора комманд SPI Flash.
 
nor_status_t QSPI_EnableXIP (nor_handle_t *handle)
 Заполнение регистра XIPCFG контроллера QSPI.
 
void QSPI_DisableXIP (nor_handle_t *handle)
 Выключение режима QSPI XIP.
 
nor_status_t QSPI_NorFlashInit (nor_config_t *config, nor_handle_t *handle)
 Инициализация устройства флеш-памяти NOR.
 
nor_status_t NOR_FlashRead (nor_handle_t *handle, uint32_t address, uint8_t *buffer, uint32_t length)
 Чтение данных с флеш-памяти NOR.
 
nor_status_t NOR_FlashPageProgram (nor_handle_t *handle, uint32_t address, uint8_t *buffer, uint32_t length)
 Программирование страницы флеш-памяти NOR.
 
nor_status_t NOR_FlashEraseBlock (nor_handle_t *handle, uint32_t address, uint32_t size)
 Очистка блока памяти
 
nor_status_t NOR_FlashEraseChip (nor_handle_t *handle)
 Очистка чипа флеш-памяти NOR.
 
void NOR_FlashReadXIP (uint32_t address, uint8_t *buffer, uint32_t length)
 Чтение в режиме XIP.
 
nor_status_t NOR_FlashProgramBlock (nor_handle_t *handle, uint32_t address, uint8_t *page_pointer, uint32_t length)
 Заполнение блока флеш-памяти NOR.
 
uint32_t QSPI_GetInstance (QSPI_Type *base)
 Получение номера блока QSPI.
 
void QSPI_GetDefaultConfig (qspi_config_t *config)
 Получение конфигурации QSPI по умолчанию
 
void QSPI_Init (QSPI_Type *base, const qspi_config_t *config)
 Инициализация контроллера QSPI.
 
void QSPI_SetBitSize (QSPI_Type *base, qspi_bit_size_t bit_size)
 Установка количества передаваемых бит
 
void QSPI_SetQMode (QSPI_Type *base, qspi_qmode_t spi_mode)
 Установка режима SPI.
 
void QSPI_SetInhibitDin (QSPI_Type *base, bool inhibit_din)
 Установка запрета записи в Tx FIFO.
 
void QSPI_SetInhibitDout (QSPI_Type *base, bool inhibit_dout)
 Установка запрета чтения из Rx FIFO.
 
static void QSPI_Enable (QSPI_Type *base)
 Включение контроллера QSPI.
 
static void QSPI_DeInit (QSPI_Type *base)
 Деинициализация контроллера QSPI.
 
static void QSPI_EnableDMA (QSPI_Type *base)
 Включение DMA.
 
static void QSPI_DisableDMA (QSPI_Type *base)
 Выключение DMA.
 
static uint32_t QSPI_GetStatusFlag (QSPI_Type *base)
 Получение значения статусного регистра
 
static void QSPI_SetSlaveSelect (QSPI_Type *base, uint32_t slave_select)
 Переключение ведомого устройства
 
static void QSPI_EnableInterrupt (QSPI_Type *base, uint32_t mask)
 Включение прерываний
 
static void QSPI_DisableInterrupt (QSPI_Type *base, uint32_t mask)
 Отключение прерываний
 
static void QSPI_ClearInterrupt (QSPI_Type *base, uint32_t mask)
 Сброс прерываний
 
static void QSPI_WriteData (QSPI_Type *base, uint32_t data)
 Передача 32-битного слова в Tx FIFO.
 
static void QSPI_WriteDataByte (QSPI_Type *base, uint8_t data)
 Передача байта данных в Tx FIFO.
 
static uint32_t QSPI_ReadData (QSPI_Type *base)
 Чтение 32-битного слова из Rx FIFO.
 
static uint8_t QSPI_ReadDataByte (QSPI_Type *base)
 Чтение байта данных из Rx FIFO.
 
static uint32_t QSPI_GetTXLVL (QSPI_Type *base)
 Чтение уровня заполнения буфера передачи Tx FIFO.
 
static uint32_t QSPI_GetRXLVL (QSPI_Type *base)
 Чтение уровня заполнения буфера приема Rx FIFO.
 
void QSPI_TransferCreateHandleDMA (QSPI_Type *base, qspi_dma_handle_t *handle, dma_handle_t *tx_handle, dma_handle_t *rx_handle)
 Инициализация контекста передачи QSPI-DMA.
 
qspi_dma_status_t QSPI_WriteDataDMA (qspi_dma_handle_t *handle, void *addr, uint8_t incr, uint8_t transfer_width, uint32_t size)
 Запись данных в QSPI TX.
 
qspi_dma_status_t QSPI_ReadDataDMA (qspi_dma_handle_t *handle, void *addr, uint8_t incr, uint8_t transfer_width, uint32_t size)
 Чтение данных из QSPI RX.
 
uint32_t QSPI_GetReadDMADescriptorsCount (uint32_t size_in_bytes)
 Расчет количества дескрипторов многоблочной передачи, нужных для считывания данных из NOR Flash памяти
 
void QSPI_DMAReadDescriptorInitRX (QSPI_Type *base, dma_descriptor_t *desc, uint32_t data_size, void *dst_addr, uint8_t dst_addr_incr)
 Инициализация группы дескрипторов DMA (многоблочная передача) для приема данных в RX буфер.
 
static uint32_t QSPI_GetDummyDMADescriptorsCount (uint32_t size_in_bytes)
 Расчет количества дескрипторов многоблочной передачи, нужных для считывания данных из NOR Flash памяти при посылке фиктивных данных
 
static void QSPI_DMADescriptorInitTX (QSPI_Type *base, dma_descriptor_t *desc, uint32_t count, uint32_t data_size, uint32_t data_width, void *src_addr, uint8_t src_addr_incr)
 Инициализация группы дескрипторов DMA (многоблочная передача) для отправки данных в TX буфер.
 
static void QSPI_DMADescriptorInitRX (QSPI_Type *base, dma_descriptor_t *desc, uint32_t count, uint32_t data_size, uint32_t data_width, void *dst_addr)
 Инициализация группы дескрипторов DMA (многоблочная передача) для приема данных в RX буфер.
 

Поля внутреннего статусного регистра

#define FLASH_STAT_BUSY   (1 << 0)
 
#define FLASH_STAT_WEL   (1 << 1)
 

Подробное описание

Драйвер контроллера QSPI.

Драйвер поддерживает обмен данными с устройствами, подключенными к выходам QSPI в режимах Normal, Dual, Quad SPI и шириной поля данных от 4 до 32 битов.

Работа контроллера QSPI с флеш-памятью NOR.

Макросы

◆ DUMMY_BYTE

#define DUMMY_BYTE   0x00

Фиктивные данные

◆ FLASH_STAT_BUSY

#define FLASH_STAT_BUSY   (1 << 0)

Производится очистка/запись

◆ FLASH_STAT_WEL

#define FLASH_STAT_WEL   (1 << 1)

Бит Write Enable Latch

Типы

◆ qspi_config_t

typedef struct _qspi_config qspi_config_t

Количество бит во фрейме

Структура, определяющая параметры конфигурации контроллера QSPI

Перечисления

◆ anonymous enum

anonymous enum

Требования для включение режима Quad.

Указывает смещение бита Quad Enable.

Элементы перечислений
NOR_QuadModeNotConfig 

Режим Quad не сконфигурирован

NOR_QuadModeStatusReg1_Bit6 

Статусный регистр 1 бит 6

NOR_QuadModeStatusReg2_Bit1 

Статусный регистр 2 бит 1

NOR_QuadModeStatusReg2_Bit7 

Статусный регистр 2 бит 7

NOR_QuadModeStatusReg2_Bit1_0x31 

Статусный регистр 2 бит 1 (специальная команда)

◆ _qspi_command_format

Формат команды QSPI.

Элементы перечислений
QSPI_CommandAllSerial 

Все составляющие команды передаются последовательно

QSPI_CommandDataQuad 

Только данные передаются в режиме Quad

QSPI_CommandOpcodeSerial 

Только код операции передается последовательно

◆ _qspi_command_type

Тип команды QSPI.

Элементы перечислений
QSPI_CommandOpcodeOnly 

Команда имеет только код операции

QSPI_CommandOpcodeAddrOneByte 

Команда имеет код операции и один байт адреса

QSPI_CommandOpcodeAddrTwoBytes 

Команда имеет код операции и два байта адреса

QSPI_CommandOpcodeAddrThreeBytes 

Команда имеет код операции и три байта адреса

QSPI_CommandOpcodeAddrFourBytes 

Команда имеет код операции и четыре байта адреса

QSPI_CommandNoOpcodeAddrThreeBytes 

Команда не имеет кода операции и имеет три байта адреса

QSPI_CommandNoOpcodeAddrFourBytes 

Команда не имеет кода операции и имеет четыре байта адреса

◆ _qspi_qmode

Режим работы контроллера QSPI.

Элементы перечислений
QSPI_NormalSPI 

Стандартный режим SPI

QSPI_DualSPI 

DUAL SPI

QSPI_QuadSPI 

QUAD SPI

◆ _serial_nor_command

Коды операций микросхемы флеш-памяти

Элементы перечислений
NOR_CmdInvalid 

Неверный код операции

NOR_CmdWriteStatus 

WRSR: Запись в статусный регистр

NOR_CmdWriteSecStatus_31 

WRSR: Запись во второй статусный регистр

NOR_CmdWriteSecStatus_3E 

WRSR: Запись во второй статусный регистр

NOR_CmdWriteMemory 

WRITE: Запись байта/страницы в массив флеш-памяти с адресом меньше четырех байт

NOR_CmdWriteMemoryA32 

4PP: Запись байта/страницы в массив флеш-памяти с адресом четыре байта

NOR_CmdWriteEnable 

WREN: Установка бита Write Enable Latch

NOR_CmdWriteDisable 

WRDI: Сброс бита Write Enable Latch

NOR_CmdReadStatus 

RDSR: Чтение статусного регистра

NOR_CmdReadSecStatus_35 

RDSR: Чтение второго статусного регистра

NOR_CmdReadSecStatus_3F 

RDSR: Чтение второго статусного регистра

NOR_CmdReadMemory 

READ: Чтение данных из массива флеш-памяти с адресом меньше четырех байт

NOR_CmdReadMemoryA32 

4READ: Чтение данных из массива флеш-памяти с адресом четыре байта

NOR_CmdReadMemorySDR_1_1_1 

READ: Чтение данных из массива флеш-памяти в режиме 1_1_1

NOR_CmdReadMemorySDR_1_1_2 

READ: Чтение данных из массива флеш-памяти в режиме 1_1_2

NOR_CmdReadMemorySDR_1_2_2 

READ: Чтение данных из массива флеш-памяти в режиме 1_2_2

NOR_CmdReadMemorySDR_1_1_4 

READ: Чтение данных из массива флеш-памяти в режиме 1_1_4

NOR_CmdReadMemorySDR_1_4_4 

READ: Чтение данных из массива флеш-памяти в режиме 1_4_4

NOR_CmdReadMemorySDR_1_4_4_A32 

READ: Чтение данных из массива флеш-памяти в режиме 1_4_4 с адресом четыре байта

NOR_CmdReadMemorySDR_1_1_4_A32 

READ: Чтение данных из массива флеш-памяти в режиме 1_1_4 с адресом четыре байта

NOR_CmdEraseChipNor 

CE: Очистка всего массива флеш-памяти

NOR_CmdEraseChip 

CE: Очистка всего массива флеш-памяти

NOR_CmdErasePage 

PE: Очистка страницы

NOR_CmdEraseSector4KB 

SE4KB: Очистка сектора размером 4КБ

NOR_CmdEraseSector32KB 

SE32KB: Очистка сектора размером 32 КБ

NOR_CmdEraseSector 

SE: Очистка сектора

NOR_CmdEraseSector4KBA32 

4SE4KB: Очистка сектора размером 4КБ с адресом четыре байта

NOR_CmdEraseSectorA32 

4SE: Очистка сектора с адресом четыре байта

◆ nor_status_t

Статусы драйвера флеш-памяти NOR.

Элементы перечислений
NOR_Status_Success 

Успешное завершение операции

NOR_Status_Fail 

Ошибка при выполнении операции

NOR_Status_InvalidArgument 

Неверный аргумент

NOR_Status_Timeout 

Превышено время ожидания

◆ qspi_dma_status_t

Статусы выполнения функций

Элементы перечислений
QSPI_DMA_Status_Success 

Успешное выполнение функции

QSPI_DMA_Status_Fail 

Неудачное выполнение функции

QSPI_DMA_Status_InvalidArgument 

Неверно переданные аргументы в функцию

Функции

◆ NOR_FlashEraseBlock()

nor_status_t NOR_FlashEraseBlock ( nor_handle_t * handle,
uint32_t address,
uint32_t size )

Очистка блока памяти

Аргументы
handleКонтекст драйвера флеш-памяти NOR
addressНачальный адрес для очистки
sizeРазмер блока для очистки
Возвращаемые значения
NOR_Status_Success
NOR_Status_Fail
NOR_Status_InvalidArgument
NOR_Status_Timeout

◆ NOR_FlashEraseChip()

nor_status_t NOR_FlashEraseChip ( nor_handle_t * handle)

Очистка чипа флеш-памяти NOR.

Аргументы
handleКонтекст драйвера флеш-памяти NOR
Возвращаемые значения
NOR_Status_Success
NOR_Status_InvalidArgument
NOR_Status_Timeout

◆ NOR_FlashPageProgram()

nor_status_t NOR_FlashPageProgram ( nor_handle_t * handle,
uint32_t address,
uint8_t * buffer,
uint32_t length )

Программирование страницы флеш-памяти NOR.

Аргументы
handleКонтекст драйвера флеш-памяти NOR
addressАдрес программируемой страницы
bufferБуфер памяти
Возвращаемые значения
NOR_Status_Success
NOR_Status_Fail
NOR_Status_InvalidArgument
NOR_Status_Timeout

◆ NOR_FlashProgramBlock()

nor_status_t NOR_FlashProgramBlock ( nor_handle_t * handle,
uint32_t address,
uint8_t * page_pointer,
uint32_t length )

Заполнение блока флеш-памяти NOR.

Аргументы
handleКонтекст драйвера NOR Flash
addressАдрес блока для записи
page_pointerУказатель на буфер для записи
lengthРазмер буфера для записи
Возвращаемые значения
NOR_Status_Success
NOR_Status_Fail
NOR_Status_InvalidArgument

◆ NOR_FlashRead()

nor_status_t NOR_FlashRead ( nor_handle_t * handle,
uint32_t address,
uint8_t * buffer,
uint32_t length )

Чтение данных с флеш-памяти NOR.

Аргументы
handleКонтекст драйвера флеш-памяти NOR
addressНачальный адрес памяти
bufferБуфер памяти
lengthРазмер данных в байтах
Возвращаемые значения
NOR_Status_Success
NOR_Status_Fail
NOR_Status_InvalidArgument

◆ NOR_FlashReadXIP()

void NOR_FlashReadXIP ( uint32_t address,
uint8_t * buffer,
uint32_t length )

Чтение в режиме XIP.

Аргументы
addressАдрес чтения XIP
bufferБуфер записи прочитанных данных
lengthРазмер буфера для чтения

◆ QSPI_ClearInterrupt()

static void QSPI_ClearInterrupt ( QSPI_Type * base,
uint32_t mask )
inlinestatic

Сброс прерываний

Аргументы
baseБазовый адрес контроллера QSPI
maskМаска прерываний

◆ QSPI_DeInit()

static void QSPI_DeInit ( QSPI_Type * base)
inlinestatic

Деинициализация контроллера QSPI.

Аргументы
baseБазовый адрес контроллера QSPI

◆ QSPI_DisableDMA()

static void QSPI_DisableDMA ( QSPI_Type * base)
inlinestatic

Выключение DMA.

Аргументы
baseБазовый адрес контроллера QSPI

◆ QSPI_DisableInterrupt()

static void QSPI_DisableInterrupt ( QSPI_Type * base,
uint32_t mask )
inlinestatic

Отключение прерываний

Аргументы
baseБазовый адрес контроллера QSPI
maskМаска прерываний

◆ QSPI_DisableXIP()

void QSPI_DisableXIP ( nor_handle_t * handle)

Выключение режима QSPI XIP.

Аргументы
handleКонтекст драйвера флеш-памяти NOR

◆ QSPI_DMADescriptorInitRX()

static void QSPI_DMADescriptorInitRX ( QSPI_Type * base,
dma_descriptor_t * desc,
uint32_t count,
uint32_t data_size,
uint32_t data_width,
void * dst_addr )
inlinestatic

Инициализация группы дескрипторов DMA (многоблочная передача) для приема данных в RX буфер.

Аргументы
baseБазовый адрес DMA
descУказатель на массив дескрипторов DMA
data_sizeОбщий размер передаваемых данных
dst_addrАдрес Приемника
src_addr_incrИнкремент адреса

◆ QSPI_DMADescriptorInitTX()

static void QSPI_DMADescriptorInitTX ( QSPI_Type * base,
dma_descriptor_t * desc,
uint32_t count,
uint32_t data_size,
uint32_t data_width,
void * src_addr,
uint8_t src_addr_incr )
inlinestatic

Инициализация группы дескрипторов DMA (многоблочная передача) для отправки данных в TX буфер.

Аргументы
baseБазовый адрес DMA
descУказатель на массив дескрипторов DMA
countЧисло дескрипторов многоблочной передачи
data_sizeОбщий размер передаваемых данных
data_widthРазмер одного слова данных
src_addrАдрес Источника

◆ QSPI_DMAReadDescriptorInitRX()

void QSPI_DMAReadDescriptorInitRX ( QSPI_Type * base,
dma_descriptor_t * desc,
uint32_t data_size,
void * dst_addr,
uint8_t dst_addr_incr )

Инициализация группы дескрипторов DMA (многоблочная передача) для приема данных в RX буфер.

Аргументы
baseБазовый адрес DMA
descУказатель на массив дескрипторов DMA
data_sizeОбщий размер передаваемых данных
dst_addrАдрес Приемника
src_addr_incrИнкремент адреса

◆ QSPI_Enable()

static void QSPI_Enable ( QSPI_Type * base)
inlinestatic

Включение контроллера QSPI.

Аргументы
baseБазовый адрес контроллера QSPI

◆ QSPI_EnableDMA()

static void QSPI_EnableDMA ( QSPI_Type * base)
inlinestatic

Включение DMA.

Аргументы
baseБазовый адрес контроллера QSPI

◆ QSPI_EnableInterrupt()

static void QSPI_EnableInterrupt ( QSPI_Type * base,
uint32_t mask )
inlinestatic

Включение прерываний

Аргументы
baseБазовый адрес контроллера QSPI
maskМаска прерываний

◆ QSPI_EnableXIP()

nor_status_t QSPI_EnableXIP ( nor_handle_t * handle)

Заполнение регистра XIPCFG контроллера QSPI.

Аргументы
baseБазовый адрес контроллера QSPI
qspi_xip_configКонфигурационная структура режима XIP QSPI

Включение и конфигурация режима QSPI XIP

Аргументы
handleКонтекст драйвера флеш-памяти NOR

◆ QSPI_GetDefaultCommandSet()

void QSPI_GetDefaultCommandSet ( nor_command_set_t * command_set)

Получение стандартного набора комманд SPI Flash.

Аргументы
command_setНабор команд SPI Flash

◆ QSPI_GetDefaultConfig()

void QSPI_GetDefaultConfig ( qspi_config_t * config)

Получение конфигурации QSPI по умолчанию

Аргументы
configКонфигурационная структура QSPI

◆ QSPI_GetDefaultConfigXIP()

void QSPI_GetDefaultConfigXIP ( qspi_xip_config_t * qspi_xip_config)

Получение конфигурации XIP QSPI по умолчанию

Аргументы
qspi_xip_configКонфигурационная структура режима XIP QSPI

◆ QSPI_GetDummyDMADescriptorsCount()

static uint32_t QSPI_GetDummyDMADescriptorsCount ( uint32_t size_in_bytes)
inlinestatic

Расчет количества дескрипторов многоблочной передачи, нужных для считывания данных из NOR Flash памяти при посылке фиктивных данных

Аргументы
size_in_bytesЧисло данных в байтах
Возвращает
Количество дескрипторов многоблочной передачи

◆ QSPI_GetInstance()

uint32_t QSPI_GetInstance ( QSPI_Type * base)

Получение номера блока QSPI.

Аргументы
baseАдрес QSPI
Возвращает
Номер блока QSPI

◆ QSPI_GetReadDMADescriptorsCount()

uint32_t QSPI_GetReadDMADescriptorsCount ( uint32_t size_in_bytes)

Расчет количества дескрипторов многоблочной передачи, нужных для считывания данных из NOR Flash памяти

Аргументы
size_in_bytesЧисло данных в байтах
Возвращает
Количество дескрипторов многоблочной передачи

◆ QSPI_GetRXLVL()

static uint32_t QSPI_GetRXLVL ( QSPI_Type * base)
inlinestatic

Чтение уровня заполнения буфера приема Rx FIFO.

Аргументы
baseБазовый адрес контроллера QSPI
Возвращает
Количество фреймов данных в буфере приема

◆ QSPI_GetStatusFlag()

static uint32_t QSPI_GetStatusFlag ( QSPI_Type * base)
inlinestatic

Получение значения статусного регистра

Аргументы
baseБазовый адрес контроллера QSPI
Возвращает
Значение регистра STAT

◆ QSPI_GetTXLVL()

static uint32_t QSPI_GetTXLVL ( QSPI_Type * base)
inlinestatic

Чтение уровня заполнения буфера передачи Tx FIFO.

Аргументы
baseБазовый адрес контроллера QSPI
Возвращает
Количество фреймов данных в буфере передачи

◆ QSPI_Init()

void QSPI_Init ( QSPI_Type * base,
const qspi_config_t * config )

Инициализация контроллера QSPI.

Аргументы
baseБазовый адрес контроллера QSPI
configСтруктура с настройками контроллера по умолчанию

◆ QSPI_NorFlashInit()

nor_status_t QSPI_NorFlashInit ( nor_config_t * config,
nor_handle_t * handle )

Инициализация устройства флеш-памяти NOR.

Функция инициализирует контроллер QSPI и флеш-память NOR.

Аргументы
configКонфигурация флеш-памяти NOR
handleКонтекст драйвера флеш-памяти NOR
Возвращаемые значения
NOR_Status_Success
NOR_Status_Fail
NOR_Status_InvalidArgument

◆ QSPI_ReadData()

static uint32_t QSPI_ReadData ( QSPI_Type * base)
inlinestatic

Чтение 32-битного слова из Rx FIFO.

Аргументы
baseБазовый адрес контроллера QSPI
Возвращает
Считанное 32-битное слово

◆ QSPI_ReadDataByte()

static uint8_t QSPI_ReadDataByte ( QSPI_Type * base)
inlinestatic

Чтение байта данных из Rx FIFO.

Аргументы
baseБазовый адрес контроллера QSPI
Возвращает
Считанный байт данных

◆ QSPI_ReadDataDMA()

qspi_dma_status_t QSPI_ReadDataDMA ( qspi_dma_handle_t * handle,
void * addr,
uint8_t incr,
uint8_t transfer_width,
uint32_t size )

Чтение данных из QSPI RX.

Аргументы
handleДескриптор DMA-QSPI передачи
addrАдрес Приемника
incrИнкремент адреса
transfer_widthШирина одного слова
sizeОбщий размер данных (в байтах)
Возвращаемые значения
QSPI_DMA_Status_Success
QSPI_DMA_Status_Fail
QSPI_DMA_Status_InvalidArgument

◆ QSPI_SetBitSize()

void QSPI_SetBitSize ( QSPI_Type * base,
qspi_bit_size_t bit_size )

Установка количества передаваемых бит

Аргументы
baseБазовый адрес контроллера QSPI
bit_sizeКоличество передаваемых бит

◆ QSPI_SetInhibitDin()

void QSPI_SetInhibitDin ( QSPI_Type * base,
bool inhibit_din )

Установка запрета записи в Tx FIFO.

Аргументы
baseБазовый адрес контроллера QSPI
inhibit_dinЗапрет (1) или нет запрета (0) на запись

◆ QSPI_SetInhibitDout()

void QSPI_SetInhibitDout ( QSPI_Type * base,
bool inhibit_dout )

Установка запрета чтения из Rx FIFO.

Аргументы
baseБазовый адрес контроллера QSPI
inhibit_doutЗапрет (1) или нет запрета (0) на чтение

◆ QSPI_SetQMode()

void QSPI_SetQMode ( QSPI_Type * base,
qspi_qmode_t spi_mode )

Установка режима SPI.

Аргументы
baseБазовый адрес контроллера QSPI
spi_modeРежим SPI

◆ QSPI_SetSlaveSelect()

static void QSPI_SetSlaveSelect ( QSPI_Type * base,
uint32_t slave_select )
inlinestatic

Переключение ведомого устройства

Аргументы
baseБазовый адрес контроллера QSPI
slave_selectВыбор ведомого устройства по битовой маске

◆ QSPI_TransferCreateHandleDMA()

void QSPI_TransferCreateHandleDMA ( QSPI_Type * base,
qspi_dma_handle_t * handle,
dma_handle_t * tx_handle,
dma_handle_t * rx_handle )

Инициализация контекста передачи QSPI-DMA.

Аргументы
baseБазовый адрес QSPI
handleУказатель на контекст
tx_handleУказатель на контекст драйвера DMA для передачи данных
rx_handleУказатель на контекст драйвера DMA для приема данных

◆ QSPI_WriteData()

static void QSPI_WriteData ( QSPI_Type * base,
uint32_t data )
inlinestatic

Передача 32-битного слова в Tx FIFO.

Аргументы
baseБазовый адрес контроллера QSPI
data32-битное слово для передачи

◆ QSPI_WriteDataByte()

static void QSPI_WriteDataByte ( QSPI_Type * base,
uint8_t data )
inlinestatic

Передача байта данных в Tx FIFO.

Аргументы
baseБазовый адрес контроллера QSPI
dataБайт данных для передачи

◆ QSPI_WriteDataDMA()

qspi_dma_status_t QSPI_WriteDataDMA ( qspi_dma_handle_t * handle,
void * addr,
uint8_t incr,
uint8_t transfer_width,
uint32_t size )

Запись данных в QSPI TX.

Аргументы
handleДескриптор DMA-QSPI передачи
addrАдрес Источника
incrИнкремент адреса
transfer_widthШирина одного слова
sizeОбщий размер данных (в байтах)
Возвращаемые значения
QSPI_DMA_Status_Success
QSPI_DMA_Status_Fail
QSPI_DMA_Status_InvalidArgument