sQSPI limitations
When working with sQSPI, you should be aware of the following limitations.
v1.2.1
Refer to the following detailed descriptions of current limitations:
sQSPI does not support slave mode operations; it can only operate as a controller (master).
The sQSPI support for SPI half-duplex setup is implemented but not tested.
sQSPI SPI modes 1,2, and 3 (see the
nrf_sqspi_dev_cfg_t.spi_cpolphaconfiguration structure) may present artifacts (clock stretching or extra edges) on the last SCLK cycle during a read. This has no effect on data integrity.The nrfx API for sQSPI does not support configuring the use of the positive or negative edge of SCLK delayed read sampling.
sQSPI employs the
nrf_sqspi_dev_cfg_t.sample_delay_cycparameter as an offset to FLPR’s base clock counter , not SLCK clock cycles (see thenrf_sqspi_dev_cfg_tstruct).sQSPI
nrf_sqspi_dev_cfg_t.sample_delay_cycis constrained to either a value of0if usingGPIOHSPADCTRLfor high-speed transfers (see High speed transfers) or a value greater than0but lower than that ofFLPR_counterif a high-speed transfer is not needed (see sQSPI and FLPR counters).Implementation of sQSPI quad or dual lane for command transmission (for example,
2_2_2and4_4_4modes) is implemented but has not been tested.sQSPI does not support a configurable pin for the CSN line; only PIN 5 is supported (see
nrf_sqspi_dev_cfg_t.csn_pin).nrf_sqspi_xfer_t.p_dataneeds to be a pointer with a 32-bit aligned address.sQSPI high-speed reading cannot happen directly when changing from SPI mode 0 to 3. Either do a high-speed write or a slow read (5.8 MHz) in between.
nrf_sqspi_xfer_t.addr_lengthmust be greater thannrf_sqspi_dev_cfg_t.mspi_lines.Any prepared transfer with
nrf_sqspi_xfer_prepare()will be discarded when usingnrf_sqspi_deactivate().sQSPI will present undefined behavior in the following cases:
0 byte reads:
nrf_sqspi_xfer_t.dirset toNRF_SQSPI_XFER_DIR_RXandnrf_sqspi_xfer_t.data_lengthset to0.0 command bits:
nrf_sqspi_xfer_t.cmd_lengthset to0.0 address bits:
nrf_sqspi_xfer_t.addr_lengthset to0.
Data format (display use) limitations:
nrf_sqspi_data_fmt_t.data_bit_reorder_unitmust be set to the same value asnrf_sqspi_data_fmt_t.data_swap_unit.If
nrf_sqspi_data_fmt_t.data_paddingis not set to0- Sum ofnrf_sqspi_data_fmt_t.data_containerandnrf_sqspi_data_fmt_t.data_paddingmust be equal to32.Combination of
nrf_sqspi_data_fmt_t.data_paddingequal to24andnrf_sqspi_data_fmt_t.data_swap_unitequal to8, whenclkdivis equal to or less than6(see sQSPI and FLPR counters) andnrf_sqspi_dev_cfg_t.mspi_linesisNRF_SQSPI_SPI_LINES_DUAL_X_Y_2orNRF_SQSPI_SPI_LINES_QUAD_X_Y_4, leads to the wrong frequency on SCLK.The value calculated as:
32-nrf_sqspi_data_fmt_t.data_paddingmust be a multiple ofnrf_sqspi_data_fmt_t.data_swap_unit.nrf_sqspi_data_fmt_t.data_swap_unitvalues0and4are not supported.nrf_sqspi_data_fmt_t.data_bit_orderandnrf_sqspi_data_fmt_t.addr_bit_orderdo not support the value:NRF_SQSPI_DATA_FMT_BIT_ORDER_LSB_FIRST.