Download Print this page

Espressif ESP32 Technical Reference Manual page 162

Hide thumbs Also See for ESP32:

Advertisement

8 SDIO Slave Controller
8.3.2 Sending and Receiving Data on SDIO Bus
Data is transmitted between Host and Slave through the SDIO bus I/O Function1. After the Host enables the I/O
Function1 in the Slave, according to the SDIO protocol, data transmission will begin.
ESP32 segregates data into packets sent to/from the Host. To achieve high bus utilization and data transfer
rates, we recommend the single block transmission mode. For detailed information on this mode, please refer
to the SDIO V2.0 protocol specification. When Host and Slave exchange data as blocks on the SDIO bus, the
Slave automatically pads data-when sending data out-and automatically strips padding data from the incoming
data block.
Whether the Slave pads or discards the data depends on the data address on the SDIO bus. When the data
address is equal to, or greater than, 0x1F800, the Slave will start padding or discarding data. Therefore, the
starting data address should be 0x1F800 - Packet_length, where Packet_length is measured in bytes. Data
flow on the SDIO bus is shown in Figure 8-2.
Figure 8-2. SDIO Bus Packet Transmission
The standard IO_RW_EXTENDED (CMD53) command is used to initiate a packet transfer of an arbitrary length.
The content of the CMD53 command used in data transmission is as illustrated in Figure
8-3
below. For
detailed information on CMD53, please refer to the SDIO protocol specifications.
Figure 8-3. CMD53 Content
8.3.3 Register Access
For effective interaction between Host and Slave, the Host can access certain registers in the Slave via the
SDIO bus I/O Function1. These registers are in continuous address fields from
SLC0HOST_TOKEN_RDATA
to
SSLC0HOST_INT_ST_REG. The Host device can access these registers by simply setting the register
addresses of CMD52 or CMD53 to the low 10 bits of the corresponding register address. The Host can access
several consecutive registers at one go with CMD53, thus achieving a higher effective transfer rate.
There are 52 bytes of field between SLCHOST_CONF_W0_REG and SLCHOST_CONF_W15_REG. Host and Slave
can access and change these fields, thus facilitating the information interaction between Host and
Slave.
8.3.4 DMA
The SDIO Slave module uses dedicated DMA to access data residing in the RAM. As shown in Figure 8-1, the
RAM is accessed over the AHB. DMA accesses RAM through a linked-list descriptor. Every linked list is
Espressif Systems
162
ESP32 TRM (Version 5.2)
Submit Documentation Feedback

Advertisement

loading
Need help?

Need help?

Do you have a question about the ESP32 and is the answer not in the manual?