You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sQSPI API provides the data format interface for use with external displays. See :c:var:`nrf_sqspi_data_fmt_t`.
7
+
8
+
The following parameter combinations have been tested and should be considered production ready:
9
+
10
+
.. list-table:: sQSPI data format
11
+
:widths: auto
12
+
:header-rows: 1
13
+
14
+
* - :c:var:`nrf_sqspi_data_fmt_t.data_padding`
15
+
- :c:var:`nrf_sqspi_data_fmt_t.data_container`
16
+
- :c:var:`nrf_sqspi_data_fmt_t.data_swap_unit`
17
+
* - 0
18
+
- 8
19
+
- 8
20
+
* - 0
21
+
- 8
22
+
- 0
23
+
* - 16
24
+
- 16
25
+
- 8
26
+
* - 0
27
+
- 32
28
+
- 16
29
+
30
+
See :ref:`sqspi_limitations` for more information on limitations.
31
+
32
+
33
+
Using external sync bit (tearing effect)
34
+
****************************************
35
+
36
+
sQSPI 1.1.0 can be used alongside some application level processing to send a transfer when a pulse (tearing effect) is detected by either:
37
+
38
+
* Polling a GPIO pin.
39
+
* Setting an interrupt handler liked to an event linked to a specific GPIO pin (access to peripheral ``GPIOTE`` is required for this).
40
+
* Forwarding a GPIO event through DPPI towards FLPR task linked to starting a transfer (access to peripheral ``DPPIC`` is required for this, also see :file:`softperipheral/include/softperipheral_regif.h` for the specific task).
41
+
42
+
You could use the first two options by holding a transfer and starting it when the pulse is detected (using flag ``NRF_SQSPI_FLAG_HOLD_XFER`` in :c:func:`nrf_sqspi_xfer`).
Copy file name to clipboardExpand all lines: softperipheral/doc/sQSPI/limitations.rst
+20-7Lines changed: 20 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,20 +9,33 @@ When working with sQSPI, you should be aware of the following limitations.
9
9
:local:
10
10
:depth: 2
11
11
12
-
v1.0.0
12
+
v1.1.0
13
13
******
14
14
15
15
Refer to the following detailed descriptions of current limitations:
16
16
17
17
* sQSPI does not support slave mode operations; it can only operate as a controller (master).
18
18
* The sQSPI support for SPI half-duplex setup is implemented but not tested.
19
-
* sQSPI SPI modes 1,2, and 3 (see the :c:var:`nrf_sqspi_dev_cfg_t.spi_cpolpha` configuration structure) may present artifacts (delays and clock stretching) on the last SCLK cycle during a transfer.
19
+
* sQSPI SPI modes 1,2, and 3 (see the :c:var:`nrf_sqspi_dev_cfg_t.spi_cpolpha` configuration structure) may present artifacts (clock stretching or extra edges) on the last SCLK cycle during a read, this has no effect on data integrity.
20
20
* The nrfx API for sQSPI does not support configuring the use of the positive or negative edge of SCLK delayed read sampling.
21
21
* sQSPI employs the :c:var:`nrf_sqspi_dev_cfg_t.sample_delay_cyc` parameter as an offset to FLPR's base clock counter , not SLCK clock cycles (see the :c:struct:`nrf_sqspi_dev_cfg_t` struct).
22
-
* sQSPI :c:var:`nrf_sqspi_dev_cfg_t.sample_delay_cyc` has a limit:
* sQSPI :c:var:`nrf_sqspi_dev_cfg_t.sample_delay_cyc` is constrained to either a value of 0 if using ``GPIOHSPADCTRL`` for high speed transfers (see :ref:`nrf54L15_porting_guide_high_speed_transfers`) or a value greater than 0 but lower than that of ``FLPR_counter`` if a high speed transfer is not needed (see :ref:`sqspi_timing`).
27
23
* Implementation of sQSPI quad or dual lane for command transmission (for example, ``2_2_2`` and ``4_4_4`` modes) is implemented but has not been tested.
28
24
* sQSPI does not support a configurable pin for the CSN line; only **PIN 5** is supported (see :c:var:`nrf_sqspi_dev_cfg_t.csn_pin`).
25
+
* :c:var:`nrf_sqspi_xfer_t.p_data` needs to be a pointer with a 32 bit aligned address.
26
+
* 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.
27
+
* :c:var:`nrf_sqspi_xfer_t.addr_length` must be greater than :c:var:`nrf_sqspi_dev_cfg_t.mspi_lines`.
28
+
29
+
* sQSPI will present undefined behavior in the following cases:
30
+
* 0 byte reads: :c:var:`nrf_sqspi_xfer_t.dir` set to ``NRF_SQSPI_XFER_DIR_RX`` and :c:var:`nrf_sqspi_xfer_t.data_length` set to 0.
31
+
* 0 command bits: :c:var:`nrf_sqspi_xfer_t.cmd_length` set to 0.
32
+
* 0 address bits: :c:var:`nrf_sqspi_xfer_t.addr_length` set to 0.
33
+
34
+
Data format (display use) limitations:
35
+
36
+
* :c:var:`nrf_sqspi_data_fmt_t.data_bit_reorder_unit` must be set to the same value as :c:var:`nrf_sqspi_data_fmt_t.data_swap_unit`.
37
+
* If :c:var:`nrf_sqspi_data_fmt_t.data_padding` is not set to 0: :c:var:`nrf_sqspi_data_fmt_t.data_container` + :c:var:`nrf_sqspi_data_fmt_t.data_padding` must equal 32.
38
+
* Combination of :c:var:`nrf_sqspi_data_fmt_t.data_padding` = 24 and :c:var:`nrf_sqspi_data_fmt_t.data_swap_unit` = 8 when ``clkdiv`` equal or less than 6 (see :ref:`sqspi_timing`) and :c:var:`nrf_sqspi_dev_cfg_t.mspi_lines` is ``NRF_SQSPI_SPI_LINES_DUAL_X_Y_2`` or ``NRF_SQSPI_SPI_LINES_QUAD_X_Y_4`` leads to wrong frequency on SCLK.
39
+
* The value calculated as 32 - :c:var:`nrf_sqspi_data_fmt_t.data_padding` must be a multiple of :c:var:`nrf_sqspi_data_fmt_t.data_swap_unit`.
40
+
* :c:var:`nrf_sqspi_data_fmt_t.data_swap_unit` values 0 and 4, not supported.
41
+
* :c:var:`nrf_sqspi_data_fmt_t.data_bit_order` and :c:var:`nrf_sqspi_data_fmt_t.addr_bit_order` don't support value ``NRF_SQSPI_DATA_FMT_BIT_ORDER_LSB_FIRST``.
Copy file name to clipboardExpand all lines: softperipheral/doc/sQSPI/nrf54L15_porting_v1_1_0.rst
+8-7Lines changed: 8 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ This structure shows the relevant files and directories in the `sdk-nrfxlib`_ re
31
31
│ │ └── nrf_qspi2.h
32
32
│ ├── nrf54l15
33
33
│ │ ├── sqspi_firmware.h
34
-
│ │ └── sqspi_firmware_v1.0.0.h
34
+
│ │ └── sqspi_firmware_v1.1.0.h
35
35
│ │ └── ...
36
36
│ ├── nrf_config_sqspi.h
37
37
│ ├── nrf_sp_qspi.h
@@ -228,11 +228,13 @@ The following code snippet shows how the application code can allocate the requi
228
228
}
229
229
}
230
230
231
+
.. _nrf54L15_porting_guide_high_speed_transfers:
232
+
231
233
High speed transfers
232
234
====================
233
235
234
236
.. warning::
235
-
High speed transfers (above 32MHz) on NRF54L15 DK are only supported in sQSPI 1.0.0.
237
+
High speed transfers (above 32MHz) on NRF54L15 DK are only supported starting from sQSPI 1.0.0.
236
238
237
239
A high speed transfer sQSPI application requires both extra high drive strength and access to the peripheral ``GPIOHSPADCTRL`` (GPIO High Speed Pad Control).
238
240
The following settings must be changed for ``GPIOHSPADCTRL.BIAS`` and ``GPIOHSPADCTRL.CTRL``:
@@ -412,23 +414,22 @@ The following code snippet shows how the application code can enable and disable
412
414
}
413
415
414
416
.. warning::
415
-
High speed transfers are closely tied to API parameter :c:var:`nrf_sqspi_dev_cfg_t.sample_delay_cyc`, which is constrained by the following conditions:
416
-
**TODO**
417
+
High speed transfers are closely tied to API parameter :c:var:`nrf_sqspi_dev_cfg_t.sample_delay_cyc`, which needs to be set to 0 (see :ref:`sqspi_limitations`).
417
418
418
419
Memory retention configuration
419
420
******************************
420
421
421
-
The sQSPI soft peripheral requires RAM retention in order to go into the lowest power consumption mode, which can be called through the :c:func:`nrfx_qspi2_deactivate` API.
422
+
The sQSPI soft peripheral requires RAM retention in order to go into the lowest power consumption mode, which can be called through the :c:func:`nrf_sqspi_deactivate` API.
422
423
423
424
Assuming there is an access to the peripheral `MEMCONF`, the following code snippet illustrates how to enable FLPR RAM retention, followed by deactivation and reactivation, and finally how to disable RAM retention:
0 commit comments