This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
My objective is to map UART1 transmit and receive events to queue 1 of EDMA3 channel controller 0.
I have something like
CSL_FINST( EDMA3->DMAQNUM[ EDMA_QUEUE_RX_UART1 ], EDMA3CC_DMAQNUM_E0, Q1 );
CSL_FINST( EDMA3->DMAQNUM[ EDMA_QUEUE_TX_UART1 ], EDMA3CC_DMAQNUM_E1, Q1 )
in my code where EDMA_QUEUE_RX_UART1 and EDMA_QUEUE_TX_UART1 being 1.
according to TRM , the field description is this.
As UART1 RX and TX events are events 12 and 13, I quite not sure how do I map/configure it in DMAQNUM register?
Regards
Parul Bhatt
Hi Randy,
Parul is helping me out with adding UART EDMA support for an existing application, which is already using EDMA for the McASP. The code she references was created long ago, as you've noticed, using previous SDX/CSL APIs, etc. We're working on updating the project to the latest SYS-BIOS, but in parallel, we also have to continue integrating UART EDMA support into this version of the project code, without any large scale updates to the support software (CSL).
I've reviewed this thread, and believe what you suggested has worked. I've attached a picture of the running the suggested DMAQNUM commands, using the old CSL FINST, and a value of E4 and E5, per table 16-28, and it appears to show the correct result. Before stepping over these three lines (the first is the RX queuing for McASP in 0, just for reference):
CSL_FINST( EDMA3->DMAQNUM[ EDMA_QUEUE_RX ], EDMA3CC_DMAQNUM_E0, Q0 );
CSL_FINST( EDMA3->DMAQNUM[ 1 ], EDMA3CC_DMAQNUM_E4, Q1 );
CSL_FINST( EDMA3->DMAQNUM[ 1 ], EDMA3CC_DMAQNUM_E5, Q1 );
I set both DMAQNUM0 and DMAQNUM1 to 0x77777777. Then I stepped over them, and see 0 in DMAQNUM0 E0, and 1 in DMAQNUM1 E4 and E5 (representing events E12 and E13, per table 16-28).
In this respect, we've configured to queue the UART Tx and Rx events, in dma queue 1. Would you agree?
Thanks,
Robert