Chapter 2. API Reference
3. The master do the last RDDMA transaction of 512 bytes (equal, longer or shorter than the total length loaded by
the slave are all allowed). The first 508 bytes are valid data from the slave, while the last 4 bytes are meaningless
bytes.
4. The master sends CMD8 to the slave
5. The slave loads another 4092 bytes of data onto the RDDMA
6. The master can start new reading transactions after it sends the CMD8
Terminology
• ESSL: Abbreviation for ESP Serial Slave Link, the component described by this document.
• Master: The device running the esp_serial_slave_link component.
• ESSL device: a virtual device on the master associated with an ESP slave device. The device context has the
knowledge of the slave protocol above the bus, relying on some bus drivers to communicate with the slave.
• ESSL device handle: a handle to ESSL device context containing the configuration, status and data required
by the ESSL component. The context stores the driver configurations, communication state, data shared by
master and slave, etc.
The context should be initialized before it is used, and get deinitialized if not used any more. The master
application operates on the ESSL device through this handle.
• ESP slave: the slave device connected to the bus, which ESSL component is designed to communicate with.
• Bus: The bus over which the master and the slave communicate with each other.
• Slave protocol: The special communication protocol specified by Espressif HW/SW over the bus.
• TX buffer num: a counter, which is on the slave and can be read by the master, indicates the accumulated
buffer numbers that the slave has loaded to the hardware to receive data from the master.
• RX data size: a counter, which is on the slave and can be read by the master, indicates the accumulated data
size that the slave has loaded to the hardware to send to the master.
Services provided by ESP slave
There are some common services provided by the Espressif slaves:
1. Tohost Interrupts: The slave can inform the master about certain events by the interrupt line. (optional)
2. Frhost Interrupts: The master can inform the slave about certain events.
3. Tx FIFO (master to slave): the slave can send data in stream to the master. The SDIO slave can also indicate
it has new data to send to master by the interrupt line.
The slave updates the TX buffer num to inform the master how much data it can receive, and the master then
read the TX buffer num, and take off the used buffer number to know how many buffers are remaining.
4. Rx FIFO (slave to master): the slave can receive data from the master in units of receiving buffers.
The slave updates the RX data size to inform the master how much data it has prepared to send, and then
the master read the data size, and take off the data length it has already received to know how many data is
remaining.
5. Shared registers: the master can read some part of the registers on the slave, and also write these registers to
let the slave read.
The services provided by the slave depends on the slave's model. See
more details.
Initialization of ESP Serial Slave Link
ESP SDIO Slave
The ESP SDIO slave link (ESSL SDIO) devices relies on the sdmmc component. It includes the
usage of communicating with ESP SDIO Slave device via SDSPI feature. The ESSL device should be initialized as
below:
1. Initialize a sdmmc card (see :doc:` Document of SDMMC driver </api-reference/storage/sdmmc>`) structure.
2. Call
sdmmc_card_init()
3. Initialize the ESSL device with essl_sdio_config_t.
mmc_card_t
got in step 2, and the recv_buffer_size member should be filled correctly according to pre-
negotiated value.
Espressif Systems
to initialize the card.
652
Submit Document Feedback
SPI Slave Capabilities of Espressif chips
The card member should be the
for
sd-
Release v4.4
Need help?
Do you have a question about the ESP32-S2 and is the answer not in the manual?
Questions and answers