28#include "hal_common.h"
42#if defined(QSPI_DRIVER_VERSION_1_6_0)
43typedef enum _qspi_bit_size_t {
44 QSPI_FRAME_BITS_4 = 0x03,
45 QSPI_FRAME_BITS_5 = 0x04,
46 QSPI_FRAME_BITS_6 = 0x05,
47 QSPI_FRAME_BITS_7 = 0x06,
48 QSPI_FRAME_BITS_8 = 0x07,
49 QSPI_FRAME_BITS_9 = 0x08,
50 QSPI_FRAME_BITS_10 = 0x09,
51 QSPI_FRAME_BITS_11 = 0x0A,
52 QSPI_FRAME_BITS_12 = 0x0B,
53 QSPI_FRAME_BITS_13 = 0x0C,
54 QSPI_FRAME_BITS_14 = 0x0D,
55 QSPI_FRAME_BITS_15 = 0x0E,
56 QSPI_FRAME_BITS_16 = 0x0F,
57 QSPI_FRAME_BITS_17 = 0x10,
58 QSPI_FRAME_BITS_18 = 0x11,
59 QSPI_FRAME_BITS_19 = 0x12,
60 QSPI_FRAME_BITS_20 = 0x13,
61 QSPI_FRAME_BITS_21 = 0x14,
62 QSPI_FRAME_BITS_22 = 0x15,
63 QSPI_FRAME_BITS_23 = 0x16,
64 QSPI_FRAME_BITS_24 = 0x17,
65 QSPI_FRAME_BITS_25 = 0x18,
66 QSPI_FRAME_BITS_26 = 0x19,
67 QSPI_FRAME_BITS_27 = 0x1A,
68 QSPI_FRAME_BITS_28 = 0x1B,
69 QSPI_FRAME_BITS_29 = 0x1C,
70 QSPI_FRAME_BITS_30 = 0x1D,
71 QSPI_FRAME_BITS_31 = 0x1E,
72 QSPI_FRAME_BITS_32 = 0x1F
74#elif defined(QSPI_DRIVER_VERSION_2_0_0)
75typedef enum _qspi_bit_size_t {
76 QSPI_FRAME_BITS_4 = 0x00,
77 QSPI_FRAME_BITS_8 = 0x01,
78 QSPI_FRAME_BITS_12 = 0x02,
79 QSPI_FRAME_BITS_16 = 0x03,
80 QSPI_FRAME_BITS_20 = 0x04,
81 QSPI_FRAME_BITS_24 = 0x05,
82 QSPI_FRAME_BITS_28 = 0x06,
83 QSPI_FRAME_BITS_32 = 0x07
86 #error "Please define QSPI controller version"
89#if defined(QSPI_DRIVER_VERSION_1_6_0)
93typedef enum _qspi_format_spi_t {
94 QSPI_FORMAT_MOTOROLA = 0x00,
95 QSPI_FORMAT_TI = 0x02,
96 QSPI_FORMAT_MICROWIRE = 0x03
118#if defined(QSPI_DRIVER_VERSION_1_6_0)
119 uint32_t xfer_format;
169#if defined(QSPI_DRIVER_VERSION_1_6_0)
176void QSPI_SetFormatSPI(QSPI_Type *base, qspi_format_spi_t xfer_format);
210#if defined(QSPI_DRIVER_VERSION_1_6_0)
211 base->ENABLE = QSPI_ENABLE_ENABLEREQ_Msk;
213 while (base->ENABLE != QSPI_ENABLE_ENABLEREQ_Msk)
215#elif defined(QSPI_DRIVER_VERSION_2_0_0)
216 base->ENABLE = QSPI_ENABLE_ENABLE_Msk;
218 while (base->ENABLE != QSPI_ENABLE_ENABLE_Msk)
221 #error "Please define QSPI controller version"
234 while (base->ENABLE != 0)
245 base->CTRL |= QSPI_CTRL_DMA_Msk;
255 base->CTRL &= ~QSPI_CTRL_DMA_Msk;
277 base->SS = slave_select;
288 base->INTR_EN |= mask;
299 base->INTR_EN &= ~mask;
310 base->INTR_CLR = mask;
321 base->TX_DATA = data;
332 *((
volatile uint8_t *)(&(base->TX_DATA))) = data;
343 return base->RX_DATA;
354 return *((
volatile uint8_t *)(&(base->RX_DATA)));
365 return base->TX_FIFO_LVL;
376 return base->RX_FIFO_LVL;
static void QSPI_Enable(QSPI_Type *base)
Включение контроллера QSPI.
Definition hal_qspi.h:208
uint32_t QSPI_GetInstance(QSPI_Type *base)
Получение номера блока QSPI.
static uint32_t QSPI_ReadData(QSPI_Type *base)
Чтение 32-битного слова из Rx FIFO.
Definition hal_qspi.h:341
static uint32_t QSPI_GetStatusFlag(QSPI_Type *base)
Получение значения статусного регистра
Definition hal_qspi.h:264
static uint32_t QSPI_GetTXLVL(QSPI_Type *base)
Чтение уровня заполнения буфера передачи Tx FIFO.
Definition hal_qspi.h:363
static void QSPI_EnableDMA(QSPI_Type *base)
Включение DMA.
Definition hal_qspi.h:243
void QSPI_SetInhibitDin(QSPI_Type *base, bool inhibit_din)
Установка запрета записи в Tx FIFO.
_qspi_qmode
Режим работы контроллера QSPI.
Definition hal_qspi.h:33
static void QSPI_DisableInterrupt(QSPI_Type *base, uint32_t mask)
Отключение прерываний
Definition hal_qspi.h:297
void QSPI_Init(QSPI_Type *base, const qspi_config_t *config)
Инициализация контроллера QSPI.
static void QSPI_WriteDataByte(QSPI_Type *base, uint8_t data)
Передача байта данных в Tx FIFO.
Definition hal_qspi.h:330
static uint32_t QSPI_GetRXLVL(QSPI_Type *base)
Чтение уровня заполнения буфера приема Rx FIFO.
Definition hal_qspi.h:374
static void QSPI_EnableInterrupt(QSPI_Type *base, uint32_t mask)
Включение прерываний
Definition hal_qspi.h:286
void QSPI_SetBitSize(QSPI_Type *base, qspi_bit_size_t bit_size)
Установка количества передаваемых бит
struct _qspi_config qspi_config_t
Количество бит во фрейме
void QSPI_GetDefaultConfig(qspi_config_t *config)
Получение конфигурации QSPI по умолчанию
struct _qspi_xip_config qspi_xip_config_t
Структура параметров конфигурации XIP контроллера QSPI.
static void QSPI_DeInit(QSPI_Type *base)
Деинициализация контроллера QSPI.
Definition hal_qspi.h:230
static uint8_t QSPI_ReadDataByte(QSPI_Type *base)
Чтение байта данных из Rx FIFO.
Definition hal_qspi.h:352
static void QSPI_ClearInterrupt(QSPI_Type *base, uint32_t mask)
Сброс прерываний
Definition hal_qspi.h:308
void QSPI_SetQMode(QSPI_Type *base, qspi_qmode_t spi_mode)
Установка режима SPI.
void QSPI_SetInhibitDout(QSPI_Type *base, bool inhibit_dout)
Установка запрета чтения из Rx FIFO.
static void QSPI_SetSlaveSelect(QSPI_Type *base, uint32_t slave_select)
Переключение ведомого устройства
Definition hal_qspi.h:275
static void QSPI_DisableDMA(QSPI_Type *base)
Выключение DMA.
Definition hal_qspi.h:253
static void QSPI_WriteData(QSPI_Type *base, uint32_t data)
Передача 32-битного слова в Tx FIFO.
Definition hal_qspi.h:319
enum _qspi_qmode qspi_qmode_t
Режим работы контроллера QSPI.
@ QSPI_QuadSPI
Definition hal_qspi.h:36
@ QSPI_DualSPI
Definition hal_qspi.h:35
@ QSPI_NormalSPI
Definition hal_qspi.h:34
Количество бит во фрейме
Definition hal_qspi.h:103
uint32_t inhibit_dout
Definition hal_qspi.h:117
qspi_qmode_t spi_mode
Definition hal_qspi.h:110
uint32_t slave_select
Definition hal_qspi.h:111
uint32_t slave_pol
Definition hal_qspi.h:112
qspi_bit_size_t bit_size
Definition hal_qspi.h:113
uint16_t cont_transfer_ext
Definition hal_qspi.h:109
uint32_t delay_en
Definition hal_qspi.h:104
uint32_t cpha
Definition hal_qspi.h:106
uint32_t mode
Definition hal_qspi.h:114
uint32_t cont_trans_en
Definition hal_qspi.h:108
uint32_t cpol
Definition hal_qspi.h:105
uint32_t dma_en
Definition hal_qspi.h:115
uint32_t inhibit_din
Definition hal_qspi.h:116
uint32_t msb
Definition hal_qspi.h:107
Структура параметров конфигурации XIP контроллера QSPI.
Definition hal_qspi.h:126
uint32_t cpha
Definition hal_qspi.h:129
uint32_t cmd
Definition hal_qspi.h:127
uint32_t addr4
Definition hal_qspi.h:131
uint32_t le32
Definition hal_qspi.h:132
uint32_t dummy_cycles
Definition hal_qspi.h:134
uint32_t hp_end_dummy
Definition hal_qspi.h:135
uint32_t cpol
Definition hal_qspi.h:130
uint32_t hp_mode
Definition hal_qspi.h:133
uint32_t hpen
Definition hal_qspi.h:128