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.

MCU-PLUS-SDK-AM263X: There's an receiving issue on serial port +EDMA query mode

Part Number: MCU-PLUS-SDK-AM263X


Hi team,

Here's an issue from the customer may need your help:

When debugging serial EDMA communication routines for AM263x CC development boards, customers want to receive serial data via the EDMA+ serial interface query.

The steps are as follows:

  1. When breloadcnt-bcnt>0 is detected, call Static Int32_t UART_edmaDisableChannel(UART_handle handle,UINT32_t isChannelTx);
  2. Pause the EDMA transfer.
  3. When the data receive processing is complete, recall UART_read. And start a new transmission.

Result:

During the test, it was found that the received data had some more 0 values (but no 0 values were sent to the board). The number of receive ports on the development board has also increased (greater than the number actually sent to the development board).

And the customer has tried the follows:

When a value of 0 occurs, the customer breaks the point to see the register status of TPCC and TPTC, and no exceptions were found.

Another phenomenon is that the customer turns off EDMA_opt_TCINTEN_mask and turns on EDMA_opt_ITCINTEN_mask. The number of interrupts fetched is recorded in the interrupt function and a value of 0 is found, the count of interrupts is exactly the amount of data sent by the Serial Interface Assistant to the development board, where breloadcnt - bcnt is greater than this value.

Issue: How to avoid these extra 0 values? Is the above attempt possible? If so, what should they do to avoid the value of 0? If not, how to design the program to get the data through a serial port +EDMA query?

Could you help check this case? Thanks.

Best Regards,

Cherry