Hello TI support,
I have investigated some DMA examples in the PDK, cross-referencing the manual to understand the thread pairing.
Please see the mapping below for each investigated example:
Source Thread Id | Destination Thread Id | Source Thread Symbolic Name | Destination Thread Symbolic Name |
MCSPI Example | |||
0x6000 | 0xC618 = 0x8000 | 0x4600 | 0x0018 | UDMAP0 Threads | MAIN_PDMA_MISC / PDMA_MISC_G2 / SPI_MAIN_4_TX_0 |
0x4618 | 0xE000 = 0x8000 | 0x6000 | MAIN_PDMA_MISC / PDMA_MISC_G2 / SPI_MAIN_4_RX_0 | UDMAP0 Threads |
OSPI Example | |||
0x6000 | 0xE000 = 0x8000 | 0x6000 | UDMAP0 Threads | UDMAP0 Threads |
CRC Example | |||
0x6000 | 0xE000 = 0x8000 | 0x6000 | UDMAP0 Threads | UDMAP0 Threads |
ADC Example | |||
0x7400 | 0xE000 = 0x8000 | 0x6000 | MCU_NAVSS0 / MCU_PDMA_ADC | UDMAP0 Threads |
The source thread for the SPI example, in TX mode is the first in the UDMAP0 threads and "the host will need to first pair the channel with a remote data source (normally a
UDMA-P channel), setup the static TR for the channel, and enable the thread"[10.3.1.3.4.3 Destination Channel Initialization in spruil1c.pdf]
My questions:
- For more than one arbitrary peripheral in TX mode, the source thread must be in the range (0x6000 - 0x0x6FFF)? If yes, where can I find the UDMAP0 thread mapping? How many threads actually belong to UDMAP0 Threads category and which is the channel designation? How si this https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j721e/dma_cfg.html channel designation related to the UDMAP Threads?
- For more than one arbitrary peripheral in RX mode, the destination thread should be the same (source) thread for the TX mode, but as a destination thread (0x8000 | 0x6000), in this example?
- How to pair more than one SPI DMA channel? (i.e. MCU_SPI_0_RX_0, MCU_SPI_0_TX_0 and MAIN_SPI_0_RX_0, MCU_SPI_0_TX_0)? Please provide a concrete example.
Thank you.
Best regards,
Mihai