6 DMA Controller (DMA)
Software can use a DMA Engine by assigning a linked list to define the DMA operational parameters.
The DMA Engine transmits the data from the RAM to a peripheral, according to the contents of the out_link
descriptor. Also, the DMA Engine stores the data received from a peripheral into a specified RAM location,
according to the contents of the in_link descriptor.
6.3.2 Linked List
The DMA descriptor's linked lists (out_link and in_link) have the same structure. As shown in Figure 6-2, a
linked-list descriptor consists of three words. The meaning of each field is as follows:
• owner (DW0) [31]: The allowed operator of the buffer corresponding to the current linked list.
1'b0: the allowed operator is the CPU;
1'b1: the allowed operator is the DMA controller.
• eof (DW0) [30]: End-Of-File character.
1'b0: the linked-list item does not mark the end of the linked list;
1'b1: the linked-list item is at the end of the linked list.
• reserved (DW0) [29:24]: Reserved bits.
Software should not write 1's in this space.
• length (DW0) [23:12]: The number of valid bytes in the buffer corresponding to the current linked list. The
field value indicates the number of bytes to be transferred to/from the buffer denoted by word DW1.
• size (DW0) [11:0]: The size of the buffer corresponding to the current linked list.
NOTE: The size must be word-aligned.
• buffer address pointer (DW1): Buffer address pointer. This is the address of the data buffer.
NOTE: The buffer address must be word-aligned.
• next descriptor address (DW2): The address pointer of the next linked-list item. The value is 0, if the
current linked-list item is the last on the list (eof=1).
When receiving data, if the data transfer length is smaller than the specified buffer size, DMA will not use
the remaining space. This enables the DMA engine to be used for transferring an arbitrary number of data
bytes.
6.4 UART DMA (UDMA)
The ESP32 has three UART interfaces that share two UDMA (UART DMA) controllers. The UHCI_UARTx_CE
is 0, 1, or 2) is used for selecting the UART controller to use the UDMA.
Espressif Systems
Figure 6-2. Linked List Structure
123
Submit Documentation Feedback
(x
ESP32 TRM (Version 5.2)
Need help?
Do you have a question about the ESP32 and is the answer not in the manual?