HAL XSPI Types

HAL XSPI Types

group XSPI_Exported_Types

Typedefs

typedef struct hal_xspi_handle_s hal_xspi_handle_t

XSPI Handle Structure type

typedef void ( * hal_xspi_cb_t ) ( hal_xspi_handle_t * hxspi )

XSPI Callback pointer definition

Enums

enum hal_xspi_t

HAL XSPI instance enumeration definition.

Values:

enumerator HAL_XSPI1

HAL XSPI instance 1

enum hal_xspi_state_t

HAL XSPI state enumeration definition.

Values:

enumerator HAL_XSPI_STATE_RESET

Reset state

enumerator HAL_XSPI_STATE_INIT

XSPI is initialized but not yet configured

enumerator HAL_XSPI_STATE_IDLE

XSPI initialized and a global config applied

enumerator HAL_XSPI_STATE_CMD_ACTIVE

Command ongoing

enumerator HAL_XSPI_STATE_AUTO_POLLING_ACTIVE

Auto-polling ongoing

enumerator HAL_XSPI_STATE_TX_ACTIVE

Indirect Tx ongoing

enumerator HAL_XSPI_STATE_RX_ACTIVE

Indirect Rx ongoing

enumerator HAL_XSPI_STATE_MEMORY_MAPPED_ACTIVE

Memory-mapped ongoing

enumerator HAL_XSPI_STATE_ABORT

Abort ongoing

enum hal_xspi_dlyb_status_t

HAL XSPI DLYB State enumeration definition.

Values:

enumerator HAL_XSPI_DLYB_DISABLED

XSPI DLYB disabled

enumerator HAL_XSPI_DLYB_ENABLED

XSPI DLYB enabled

enum hal_xspi_flag_status_t

HAL XSPI flag state enumeration definition.

Values:

enumerator HAL_XSPI_FLAG_NOT_ACTIVE

Flag not active

enumerator HAL_XSPI_FLAG_ACTIVE

Flag active

enum hal_xspi_memory_mode_t

HAL XSPI Memory Mode enumeration definition.

Values:

enumerator HAL_XSPI_MEMORY_SINGLE

Dual memory mode disabled

enumerator HAL_XSPI_MEMORY_DUAL

0x00000040 Dual-memory configuration Dual memory mode enabled

enum hal_xspi_memory_type_t

HAL XSPI Memory Type enumeration definition.

Values:

enumerator HAL_XSPI_MEMORY_TYPE_MICRON

Micron mode

enumerator HAL_XSPI_MEMORY_TYPE_MACRONIX

0x01000000 Macronix mode

enumerator HAL_XSPI_MEMORY_TYPE_APMEM

0x02000000 AP Memory mode

enumerator HAL_XSPI_MEMORY_TYPE_MACRONIX_RAM

Macronix RAM mode

enumerator HAL_XSPI_MEMORY_TYPE_HYPERBUS

0x04000000 Hyperbus mode

enum hal_xspi_memory_size_t

HAL XSPI Memory Size enumeration definition.

Values:

enumerator HAL_XSPI_MEMORY_SIZE_16BIT

16 bits ( 2 Bytes = 2^( 0+1))

enumerator HAL_XSPI_MEMORY_SIZE_32BIT

32 bits ( 4 Bytes = 2^( 1+1))

enumerator HAL_XSPI_MEMORY_SIZE_64BIT

64 bits ( 8 Bytes = 2^( 2+1))

enumerator HAL_XSPI_MEMORY_SIZE_128BIT

128 bits ( 16 Bytes = 2^( 3+1))

enumerator HAL_XSPI_MEMORY_SIZE_256BIT

256 bits ( 32 Bytes = 2^( 4+1))

enumerator HAL_XSPI_MEMORY_SIZE_512BIT

512 bits ( 64 Bytes = 2^( 5+1))

enumerator HAL_XSPI_MEMORY_SIZE_1KBIT

1 Kbits (128 Bytes = 2^( 6+1))

enumerator HAL_XSPI_MEMORY_SIZE_2KBIT

2 Kbits (256 Bytes = 2^( 7+1))

enumerator HAL_XSPI_MEMORY_SIZE_4KBIT

4 Kbits (512 Bytes = 2^( 8+1))

enumerator HAL_XSPI_MEMORY_SIZE_8KBIT

8 Kbits ( 1 KBytes = 2^( 9+1))

enumerator HAL_XSPI_MEMORY_SIZE_16KBIT

16 Kbits ( 2 KBytes = 2^(10+1))

enumerator HAL_XSPI_MEMORY_SIZE_32KBIT

32 Kbits ( 4 KBytes = 2^(11+1))

enumerator HAL_XSPI_MEMORY_SIZE_64KBIT

64 Kbits ( 8 KBytes = 2^(12+1))

enumerator HAL_XSPI_MEMORY_SIZE_128KBIT

128 Kbits ( 16 KBytes = 2^(13+1))

enumerator HAL_XSPI_MEMORY_SIZE_256KBIT

256 Kbits ( 32 KBytes = 2^(14+1))

enumerator HAL_XSPI_MEMORY_SIZE_512KBIT

512 Kbits ( 64 KBytes = 2^(15+1))

enumerator HAL_XSPI_MEMORY_SIZE_1MBIT

1 Mbits (128 KBytes = 2^(16+1))

enumerator HAL_XSPI_MEMORY_SIZE_2MBIT

2 Mbits (256 KBytes = 2^(17+1))

enumerator HAL_XSPI_MEMORY_SIZE_4MBIT

4 Mbits (512 KBytes = 2^(18+1))

enumerator HAL_XSPI_MEMORY_SIZE_8MBIT

8 Mbits ( 1 MBytes = 2^(19+1))

enumerator HAL_XSPI_MEMORY_SIZE_16MBIT

16 Mbits ( 2 MBytes = 2^(20+1))

enumerator HAL_XSPI_MEMORY_SIZE_32MBIT

32 Mbits ( 4 MBytes = 2^(21+1))

enumerator HAL_XSPI_MEMORY_SIZE_64MBIT

64 Mbits ( 8 MBytes = 2^(22+1))

enumerator HAL_XSPI_MEMORY_SIZE_128MBIT

128 Mbits ( 16 MBytes = 2^(23+1))

enumerator HAL_XSPI_MEMORY_SIZE_256MBIT

256 Mbits ( 32 MBytes = 2^(24+1))

enumerator HAL_XSPI_MEMORY_SIZE_512MBIT

512 Mbits ( 64 MBytes = 2^(25+1))

enumerator HAL_XSPI_MEMORY_SIZE_1GBIT

1 Gbits (128 MBytes = 2^(26+1))

enumerator HAL_XSPI_MEMORY_SIZE_2GBIT

2 Gbits (256 MBytes = 2^(27+1))

enumerator HAL_XSPI_MEMORY_SIZE_4GBIT

4 Gbits (512 MBytes = 2^(28+1))

enumerator HAL_XSPI_MEMORY_SIZE_8GBIT

8 Gbits ( 1 GBytes = 2^(29+1))

enumerator HAL_XSPI_MEMORY_SIZE_16GBIT

16 Gbits ( 2 GBytes = 2^(30+1))

enumerator HAL_XSPI_MEMORY_SIZE_32GBIT

32 Gbits ( 4 GBytes = 2^(31+1))

enum hal_xspi_free_running_clk_status_t

HAL XSPI Free Running Clock enumeration definition.

Values:

enumerator HAL_XSPI_FREE_RUNNING_CLK_DISABLED

CLK is not free running

enumerator HAL_XSPI_FREE_RUNNING_CLK_ENABLED

0x00000002 Free running clock CLK is always provided (running)

enum hal_xspi_prefetch_data_status_t

HAL XSPI Prefetch Data enumeration definition.

Values:

enumerator HAL_XSPI_PREFETCH_DATA_ENABLED

Automatic prefetch for data is enabled

enumerator HAL_XSPI_PREFETCH_DATA_DISABLED

0x02000000 No prefetch data Automatic prefetch disabled

enum hal_xspi_wrap_size_t

HAL XSPI Wrap Size enumeration definition.

Values:

enumerator HAL_XSPI_WRAP_NOT_SUPPORTED

wrapped reads are not supported by the memory

enumerator HAL_XSPI_WRAP_16BYTE

0x00020000 external memory supports wrap size of 16 bytes

enumerator HAL_XSPI_WRAP_32BYTE

external memory supports wrap size of 32 bytes

enumerator HAL_XSPI_WRAP_64BYTE

0x00040000 external memory supports wrap size of 64 bytes

enumerator HAL_XSPI_WRAP_128BYTE

external memory supports wrap size of 128 bytes

enum hal_xspi_sample_shift_t

HAL XSPI Sample Shift enumeration definition.

Values:

enumerator HAL_XSPI_SAMPLE_SHIFT_NONE

No shift

enumerator HAL_XSPI_SAMPLE_SHIFT_HALFCYCLE

0x40000000 Sample shift 1/2 cycle shift

enum hal_xspi_delay_hold_t

HAL XSPI Delay Hold Quarter Cycle enumeration definition.

Values:

enumerator HAL_XSPI_DELAY_HOLD_NONE

No Delay

enumerator HAL_XSPI_DELAY_HOLD_QUARTCYCLE

0x10000000 Delay hold quarter cycle Delay Hold 1/4 cycle

enum hal_xspi_cs_boundary_t

HAL XSPI Chip Select Boundary enumeration definition.

Values:

enumerator HAL_XSPI_CS_BOUNDARY_NONE

CS boundary disabled

enumerator HAL_XSPI_CS_BOUNDARY_16BIT

16 bits ( 2 Bytes = 2^(1))

enumerator HAL_XSPI_CS_BOUNDARY_32BIT

32 bits ( 4 Bytes = 2^(2))

enumerator HAL_XSPI_CS_BOUNDARY_64BIT

64 bits ( 8 Bytes = 2^(3))

enumerator HAL_XSPI_CS_BOUNDARY_128BIT

128 bits ( 16 Bytes = 2^(4))

enumerator HAL_XSPI_CS_BOUNDARY_256BIT

256 bits ( 32 Bytes = 2^(5))

enumerator HAL_XSPI_CS_BOUNDARY_512BIT

512 bits ( 64 Bytes = 2^(6))

enumerator HAL_XSPI_CS_BOUNDARY_1KBIT

1 Kbits (128 Bytes = 2^(7))

enumerator HAL_XSPI_CS_BOUNDARY_2KBIT

2 Kbits (256 Bytes = 2^(8))

enumerator HAL_XSPI_CS_BOUNDARY_4KBIT

4 Kbits (512 Bytes = 2^(9))

enumerator HAL_XSPI_CS_BOUNDARY_8KBIT

8 Kbits ( 1 KBytes = 2^(10))

enumerator HAL_XSPI_CS_BOUNDARY_16KBIT

16 Kbits ( 2 KBytes = 2^(11))

enumerator HAL_XSPI_CS_BOUNDARY_32KBIT

32 Kbits ( 4 KBytes = 2^(12))

enumerator HAL_XSPI_CS_BOUNDARY_64KBIT

64 Kbits ( 8 KBytes = 2^(13))

enumerator HAL_XSPI_CS_BOUNDARY_128KBIT

128 Kbits ( 16 KBytes = 2^(14))

enumerator HAL_XSPI_CS_BOUNDARY_256KBIT

256 Kbits ( 32 KBytes = 2^(15))

enumerator HAL_XSPI_CS_BOUNDARY_512KBIT

512 Kbits ( 64 KBytes = 2^(16))

enumerator HAL_XSPI_CS_BOUNDARY_1MBIT

1 Mbits (128 KBytes = 2^(17))

enumerator HAL_XSPI_CS_BOUNDARY_2MBIT

2 Mbits (256 KBytes = 2^(18))

enumerator HAL_XSPI_CS_BOUNDARY_4MBIT

4 Mbits (512 KBytes = 2^(19))

enumerator HAL_XSPI_CS_BOUNDARY_8MBIT

8 Mbits ( 1 MBytes = 2^(20))

enumerator HAL_XSPI_CS_BOUNDARY_16MBIT

16 Mbits ( 2 MBytes = 2^(21))

enumerator HAL_XSPI_CS_BOUNDARY_32MBIT

32 Mbits ( 4 MBytes = 2^(22))

enumerator HAL_XSPI_CS_BOUNDARY_64MBIT

64 Mbits ( 8 MBytes = 2^(23))

enumerator HAL_XSPI_CS_BOUNDARY_128MBIT

128 Mbits ( 16 MBytes = 2^(24))

enumerator HAL_XSPI_CS_BOUNDARY_256MBIT

256 Mbits ( 32 MBytes = 2^(25))

enumerator HAL_XSPI_CS_BOUNDARY_512MBIT

512 Mbits ( 64 MBytes = 2^(26))

enumerator HAL_XSPI_CS_BOUNDARY_1GBIT

1 Gbits (128 MBytes = 2^(27))

enumerator HAL_XSPI_CS_BOUNDARY_2GBIT

2 Gbits (256 MBytes = 2^(28))

enumerator HAL_XSPI_CS_BOUNDARY_4GBIT

4 Gbits (512 MBytes = 2^(29))

enumerator HAL_XSPI_CS_BOUNDARY_8GBIT

8 Gbits ( 1 GBytes = 2^(30))

enumerator HAL_XSPI_CS_BOUNDARY_16GBIT

16 Gbits ( 2 GBytes = 2^(31))

enum hal_xspi_dlyb_state_t

HAL XSPI Delay Block Bypass enumeration definition.

Values:

enumerator HAL_XSPI_DLYB_ON

Sampling clock is delayed by the delay block

enumerator HAL_XSPI_DLYB_BYPASS

0x00000008 Delay block bypass Delay block is bypassed

enum hal_xspi_memory_selection_t

HAL XSPI Memory Select enumeration definition.

Values:

enumerator HAL_XSPI_MEMORY_SELECTION_NCS1

The output of nCS is nCS1

enumerator HAL_XSPI_MEMORY_SELECTION_NCS2

0x01000000 Chip-select selection The output of nCS is nCS2

enum hal_xspi_operation_type_t

HAL XSPI Operation Type enumeration definition.

Values:

enumerator HAL_XSPI_OPERATION_COMMON_CFG

Common configuration (indirect or auto-polling mode)

enumerator HAL_XSPI_OPERATION_READ_CFG

Read configuration (memory-mapped mode)

enumerator HAL_XSPI_OPERATION_WRITE_CFG

Write configuration (memory-mapped mode)

enumerator HAL_XSPI_OPERATION_WRAP_CFG

Wrap configuration (memory-mapped mode)

enum hal_xspi_io_select_t

HAL XSPI IO Select enumeration definition.

Values:

enumerator HAL_XSPI_IO_3_0

Data exchanged over IO[3:0]

enumerator HAL_XSPI_IO_7_4

0x40000000 External memory select Data exchanged over IO[7:4]

enumerator HAL_XSPI_IO_7_0

Data exchanged over IO[7:0]

enum hal_xspi_instruction_mode_t

HAL XSPI Instruction Mode enumeration definition.

Values:

enumerator HAL_XSPI_INSTRUCTION_NONE

No instruction

enumerator HAL_XSPI_INSTRUCTION_1LINE

0x00000001 Instruction on a single line

enumerator HAL_XSPI_INSTRUCTION_2LINES

0x00000002 Instruction on two lines

enumerator HAL_XSPI_INSTRUCTION_4LINES

Instruction on four lines

enumerator HAL_XSPI_INSTRUCTION_8LINES

0x00000004 Instruction on eight lines

enum hal_xspi_instruction_width_t

HAL XSPI Instruction Width enumeration definition.

Values:

enumerator HAL_XSPI_INSTRUCTION_8BIT

8-bit instruction

enumerator HAL_XSPI_INSTRUCTION_16BIT

0x00000010 16-bit instruction

enumerator HAL_XSPI_INSTRUCTION_24BIT

0x00000020 24-bit instruction

enumerator HAL_XSPI_INSTRUCTION_32BIT

0x00000030 Instruction size 32-bit instruction

enum hal_xspi_instruction_dtr_status_t

HAL XSPI Instruction DTR Mode enumeration definition.

Values:

enumerator HAL_XSPI_INSTRUCTION_DTR_DISABLED

DTR mode disabled for instruction phase

enumerator HAL_XSPI_INSTRUCTION_DTR_ENABLED

0x00000008 Instruction double transfer rate DTR mode enabled for instruction phase

enum hal_xspi_addr_mode_t

HAL XSPI Address Mode enumeration definition.

Values:

enumerator HAL_XSPI_ADDR_NONE

No address

enumerator HAL_XSPI_ADDR_1LINE

0x00000100 Address on a single line

enumerator HAL_XSPI_ADDR_2LINES

0x00000200 Address on two lines

enumerator HAL_XSPI_ADDR_4LINES

Address on four lines

enumerator HAL_XSPI_ADDR_8LINES

0x00000400 Address on eight lines

enum hal_xspi_addr_width_t

HAL XSPI Address width enumeration definition.

Values:

enumerator HAL_XSPI_ADDR_8BIT

8-bit address

enumerator HAL_XSPI_ADDR_16BIT

0x00001000 16-bit address

enumerator HAL_XSPI_ADDR_24BIT

0x00002000 24-bit address

enumerator HAL_XSPI_ADDR_32BIT

0x00003000 Address size 32-bit address

enum hal_xspi_addr_dtr_status_t

HAL XSPI Address DTR Mode enumeration definition.

Values:

enumerator HAL_XSPI_ADDR_DTR_DISABLED

DTR mode disabled for address phase

enumerator HAL_XSPI_ADDR_DTR_ENABLED

0x00000800 Address double transfer rate DTR mode enabled for address phase

enum hal_xspi_alternate_bytes_mode_t

HAL XSPI Alternate Bytes Mode enumeration definition.

Values:

enumerator HAL_XSPI_ALTERNATE_BYTES_NONE

No alternate bytes

enumerator HAL_XSPI_ALTERNATE_BYTES_1LINE

0x00010000 Alternate bytes on a single line

enumerator HAL_XSPI_ALTERNATE_BYTES_2LINES

0x00020000 Alternate bytes on two lines

enumerator HAL_XSPI_ALTERNATE_BYTES_4LINES

Alternate bytes on four lines

enumerator HAL_XSPI_ALTERNATE_BYTES_8LINES

0x00040000 Alternate bytes on eight lines

enum hal_xspi_alternate_bytes_width_t

HAL XSPI Alternate Bytes Width enumeration definition.

Values:

enumerator HAL_XSPI_ALTERNATE_BYTES_8BIT

8-bit alternate bytes

enumerator HAL_XSPI_ALTERNATE_BYTES_16BIT

0x00100000 16-bit alternate bytes

enumerator HAL_XSPI_ALTERNATE_BYTES_24BIT

0x00200000 24-bit alternate bytes

enumerator HAL_XSPI_ALTERNATE_BYTES_32BIT

0x00300000 Alternate-byte size 32-bit alternate bytes

enum hal_xspi_alternate_bytes_dtr_status_t

HAL XSPI Alternate Bytes DTR Mode enumeration definition.

Values:

enumerator HAL_XSPI_ALTERNATE_BYTES_DTR_DISABLED

DTR mode disabled for alternate bytes phase

enumerator HAL_XSPI_ALTERNATE_BYTES_DTR_ENABLED

0x00080000 Alternate- byte double transfer rate DTR mode enabled for alternate bytes phase

enum hal_xspi_regular_data_mode_t

HAL XSPI Regular Data Mode enumeration definition.

Values:

enumerator HAL_XSPI_REGULAR_DATA_NONE

No data

enumerator HAL_XSPI_REGULAR_DATA_1LINE

0x01000000 Data on a single line

enumerator HAL_XSPI_REGULAR_DATA_2LINES

0x02000000 Data on two lines

enumerator HAL_XSPI_REGULAR_DATA_4LINES

Data on four lines

enumerator HAL_XSPI_REGULAR_DATA_8LINES

0x04000000 Data on eight lines

enum hal_xspi_data_dtr_status_t

HAL XSPI Data DTR Mode enumeration definition.

Values:

enumerator HAL_XSPI_DATA_DTR_DISABLED

DTR mode disabled for data phase

enumerator HAL_XSPI_DATA_DTR_ENABLED

0x08000000 Data double transfer rate DTR mode enabled for data phase

enum hal_xspi_dqs_status_t

HAL XSPI DQS Mode enumeration definition.

Values:

enumerator HAL_XSPI_DQS_DISABLED

DQS disabled

enumerator HAL_XSPI_DQS_ENABLED

0x20000000 DQS enable DQS enabled

enum hal_xspi_write_zero_latency_status_t

HAL XSPI Hyperbus Write Zero Latency Activation enumeration definition.

Values:

enumerator HAL_XSPI_WRITE_ZERO_LATENCY_ENABLED

Latency on write accesses

enumerator HAL_XSPI_WRITE_ZERO_LATENCY_DISABLED

0x00000002 Write zero latency No latency on write accesses

enum hal_xspi_latency_mode_t

HAL XSPI Hyperbus Latency Mode enumeration definition.

Values:

enumerator HAL_XSPI_LATENCY_VARIABLE

Variable initial latency

enumerator HAL_XSPI_LATENCY_FIXED

0x00000001 Latency mode Fixed latency

enum hal_xspi_addr_space_t

HAL XSPI Hyperbus Address Space enumeration definition.

Values:

enumerator HAL_XSPI_ADDR_MEMORY

HyperBus memory mode

enumerator HAL_XSPI_ADDR_REGISTER

0x01000000 HyperBus register mode

enum hal_xspi_hyperbus_data_mode_t

HAL XSPI Hyperbus Data Mode enumeration definition.

Values:

enumerator HAL_XSPI_HYPERBUS_DATA_8LINES

0x04000000 Data on eight lines

enum hal_xspi_match_mode_t

HAL XSPI Match Mode enumeration definition.

Values:

enumerator HAL_XSPI_MATCH_MODE_AND

AND match mode between unmasked bits

enumerator HAL_XSPI_MATCH_MODE_OR

0x00800000 Polling match mode OR match mode between unmasked bits

enum hal_xspi_automatic_stop_status_t

HAL XSPI Automatic Stop enumeration definition.

Values:

enumerator HAL_XSPI_AUTOMATIC_STOP_DISABLED

AutoPolling stops only with abort or XSPI disabling

enumerator HAL_XSPI_AUTOMATIC_STOP_ENABLED

0x00400000 Automatic status-polling mode stop AutoPolling stops as soon as there is a match

enum hal_xspi_timeout_activation_t

HAL XSPI Timeout Activation enumeration definition.

Values:

enumerator HAL_XSPI_TIMEOUT_DISABLE

Timeout counter disabled, nCS remains active

enumerator HAL_XSPI_TIMEOUT_ENABLE

0x00000008 Timeout counter enable Timeout counter enabled, nCS released when timeout expires

struct hal_xspi_hyperbus_config_t
#include <stm32c5xx_hal_xspi.h>

HAL XSPI Hyperbus Configuration Structure definition.

Public Members

uint32_t rw_recovery_time_cycle

It indicates the number of cycles for the device recovery time. This parameter can be a value between 0 and 255.

uint32_t access_time_cycle

It indicates the number of cycles for the device access time. This parameter can be a value between 0 and 255.

hal_xspi_write_zero_latency_status_t write_zero_latency

It enables or disables the latency for the write access.

hal_xspi_latency_mode_t latency_mode

It configures the latency mode.

struct hal_xspi_timing_config_t
#include <stm32c5xx_hal_xspi.h>

HAL XSPI Timing Config structure definition.

Public Members

uint32_t clk_prescaler

It specifies the prescaler factor used for generating the external clock based on the kernel clock. This parameter can be a value between 0 and 255. Choosing a prescaler value of N means dividing the clock by N+1.

hal_xspi_sample_shift_t shift

It allows delaying the data sampling by 1/2 cycle to take into account external signal delays.

hal_xspi_delay_hold_t hold

It allows holding the data for 1/4 cycle.

uint32_t cs_high_time_cycle

It defines the minimum number of clocks which the chip select must remain high between commands. This parameter can be a value between 1 and 64.

uint32_t cs_refresh_time_cycle

It enables the refresh rate feature. The chip select is released every Refresh+1 clock cycles. This parameter can be a value between 0 and 0xFFFFFFFF.

hal_xspi_dlyb_state_t dlyb_state

It enables the delay block bypass, so the sampling is not affected by the delay block.

struct hal_xspi_memory_config_t
#include <stm32c5xx_hal_xspi.h>

HAL XSPI Memory Configuration structure definition.

Public Members

hal_xspi_memory_mode_t mode

It specifies the memory mode.

hal_xspi_memory_type_t type

It indicates the external device type connected to the XSPI.

hal_xspi_memory_size_t size_bit

It defines the size of the external device connected to the XSPI. It corresponds to the number of address bits required to access the external device.

hal_xspi_wrap_size_t wrap_size_byte

It indicates the wrap-size corresponding to the external device.

hal_xspi_cs_boundary_t cs_boundary

It enables the transaction boundary feature and defines the boundary of bytes to release the chip select.

struct hal_xspi_config_t
#include <stm32c5xx_hal_xspi.h>

HAL XSPI Global Configuration structure definition.

Public Members

hal_xspi_memory_config_t memory

It specifies the XSPI memory configuration structure definition

hal_xspi_timing_config_t timing

It specifies the XSPI timing configuration structure definition

hal_xspi_hyperbus_config_t hyperbus

It specifies the XSPI Hyperbus configuration structure definition

struct hal_xspi_auto_polling_config_t
#include <stm32c5xx_hal_xspi.h>

HAL XSPI Auto Polling mode configuration structure definition.

Public Members

uint32_t match_value

Specifies the value to be compared with the masked status register. This parameter can be any value between 0 and 0xFFFFFFFFU.

uint32_t match_mask

Specifies the mask to be applied to the status bytes received. This parameter can be any value between 0 and 0xFFFFFFFFU.

hal_xspi_match_mode_t match_mode

Specifies the method used for determining a match.

hal_xspi_automatic_stop_status_t automatic_stop_status

Specifies whether automatic polling is stopped after a match.

uint32_t interval_cycle

Specifies the number of clock cycles between two reads during automatic polling phases. This parameter can be any value between 0 and 0xFFFF.

struct hal_xspi_regular_cmd_t
#include <stm32c5xx_hal_xspi.h>

HAL XSPI Regular Command Structure definition.

Public Members

hal_xspi_operation_type_t operation_type

It indicates whether the configuration applies to the common registers or to the registers for the write operation (these registers are only used for memory-mapped mode).

hal_xspi_io_select_t io_select

It indicates the I/Os used to exchange data with external memory.

uint32_t instruction

It contains the instruction to be sent to the device. This parameter can be a value between 0 and 0xFFFFFFFFU.

hal_xspi_instruction_mode_t instruction_mode

It indicates the instruction mode.

hal_xspi_instruction_width_t instruction_width

It indicates the width of the instruction.

hal_xspi_instruction_dtr_status_t instruction_dtr_mode_status

It enables or disables the DTR mode for the instruction phase.

uint32_t addr

It contains the address to be sent to the device. This parameter can be a value between 0 and 0xFFFFFFFF.

hal_xspi_addr_mode_t addr_mode

It indicates the address mode. Address mode specifies the number of lines for address (except no address).

hal_xspi_addr_width_t addr_width

It indicates the width of the address.

hal_xspi_addr_dtr_status_t addr_dtr_mode_status

It enables or disables the DTR mode for the address phase.

uint32_t alternate_bytes

It contains the alternate bytes to be sent to the device. This parameter can be a value between 0 and 0xFFFFFFFF.

hal_xspi_alternate_bytes_mode_t alternate_bytes_mode

It indicates the mode of the alternate bytes.

hal_xspi_alternate_bytes_width_t alternate_bytes_width

It indicates the width of the alternate bytes.

hal_xspi_alternate_bytes_dtr_status_t alternate_bytes_dtr_mode_status

It enables or disables the DTR mode for the alternate bytes phase.

hal_xspi_regular_data_mode_t data_mode

It indicates the data mode. Data mode specifies the number of lines for data exchange (except no data).

hal_xspi_data_dtr_status_t data_dtr_mode_status

It enables or disables the DTR mode for the data phase.

uint32_t dummy_cycle

It indicates the number of dummy cycles inserted before data phase. This parameter can be a value between 0 and 31U.

hal_xspi_dqs_status_t dqs_mode_status

It enables or disables the data strobe management.

uint32_t size_byte

It indicates the number of data transferred with this command. This field is only used for indirect mode. This parameter can be a value between 1 and 0xFFFFFFFFU.

struct hal_xspi_hyperbus_cmd_t
#include <stm32c5xx_hal_xspi.h>

HAL XSPI Hyperbus Command Structure definition.

Public Members

hal_xspi_addr_space_t addr_space

It indicates the address space accessed by the command.

uint32_t addr

It contains the address to be sent to the device. This parameter can be a value between 0 and 0xFFFFFFFF.

hal_xspi_addr_width_t addr_width

It indicates the width of the address.

uint32_t size_byte

It indicates the number of data transferred with this command. This field is only used for indirect mode. This parameter can be a value between 1 and 0xFFFFFFFF.

hal_xspi_dqs_status_t dqs_mode_status

It enables or disables the data strobe management.

hal_xspi_hyperbus_data_mode_t data_mode

It indicates the data mode. Data mode specifies the number of lines for data exchange (except no data).

struct hal_xspi_memory_mapped_config_t
#include <stm32c5xx_hal_xspi.h>

HAL XSPI Memory Mapped mode configuration structure definition.

Public Members

hal_xspi_timeout_activation_t timeout_activation

Specifies if the timeout counter is enabled to release the chip select.

uint32_t timeout_period_cycle

Specifies the number of clock cycles to wait when the FIFO is full before releasing the chip select. This parameter can be any value between 0 and 0xFFFF.

struct hal_xspi_handle_s
#include <stm32c5xx_hal_xspi.h>

HAL XSPI handle Structure definition.

Public Members

hal_xspi_t instance

XSPI registers base address

volatile hal_xspi_state_t global_state

Internal state of the XSPI HAL driver

uint8_t * p_buffer

Address of the XSPI buffer for transfer

volatile uint32_t xfer_size

Number of data to transfer

volatile uint32_t xfer_count

Counter of data transferred

hal_xspi_memory_mode_t mode

Specifies the memory mode

hal_xspi_delay_hold_t hold

It allows holding the data for 1/4 cycle

hal_xspi_memory_type_t type

Indicates the external device type

uint32_t fifo_threshold

Specifies the FIFO configuration value

uint32_t is_dma_error

Indicates an error occurs in DMA mode

hal_dma_handle_t * hdma_tx

Handle of the DMA channel used for transmit

hal_dma_handle_t * hdma_rx

Handle of the DMA channel used for receive

const void * p_user_data

User Data Pointer

hal_xspi_cb_t p_error_cb

XSPI error callback

hal_xspi_cb_t p_abort_cplt_cb

XSPI abort callback

hal_xspi_cb_t p_fifo_threshold_cb

XSPI FIFO threshold callback

hal_xspi_cb_t p_cmd_cplt_cb

XSPI command complete callback

hal_xspi_cb_t p_rx_cplt_cb

XSPI receive complete callback

hal_xspi_cb_t p_tx_cplt_cb

XSPI transfer complete callback

hal_xspi_cb_t p_rx_half_cplt_cb

XSPI half receive complete callback

hal_xspi_cb_t p_tx_half_cplt_cb

XSPI half transfer complete callback

hal_xspi_cb_t p_status_match_cb

XSPI status match callback

volatile uint32_t last_error_codes

XSPI error codes