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.

TMS320C6657: uart的EDMA3发送

Part Number: TMS320C6657
Other Parts Discussed in Thread: TMS320C6654

大家好 咨询下

在试UARTEDMA3发送 用的例程是STK_C6657\UART

 

edma3主要的设置如下:

gpEDMA_CC_regs[tpccNum]->PARAMSET[uartEdmaTxCh].OPT=

                                     CSL_EDMA3_OPT_MAKE(CSL_EDMA3_ITCCH_DIS,

                                     CSL_EDMA3_TCCH_DIS,

                                     CSL_EDMA3_ITCINT_DIS,

                                     CSL_EDMA3_TCINT_EN,

                                     uartEdmaTxCh,

                                     CSL_EDMA3_TCC_NORMAL,

                                     CSL_EDMA3_FIFOWIDTH_NONE,

                                     CSL_EDMA3_STATIC_DIS,

                                     CSL_EDMA3_SYNC_A,                      //A-synchronized模式

                                     CSL_EDMA3_ADDRMODE_INCR,    //增量模式

                                     CSL_EDMA3_ADDRMODE_INCR);   //增量模式

 

gpEDMA_CC_regs[tpccNum]->PARAMSET[uartEdmaTxCh].A_B_CNT = 0x01000004;                       //ACNT=4 BCNT=256

gpEDMA_CC_regs[tpccNum]->PARAMSET[uartEdmaTxCh].DST= (Uint32)(&localUartRegs->THR);

gpEDMA_CC_regs[tpccNum]->PARAMSET[uartEdmaTxCh].SRC_DST_BIDX= 1;

gpEDMA_CC_regs[tpccNum]->PARAMSET[uartEdmaTxCh].LINK_BCNTRLD= 0xFFFF;

gpEDMA_CC_regs[tpccNum]->PARAMSET[uartEdmaTxCh].SRC_DST_CIDX= 0;

gpEDMA_CC_regs[tpccNum]->PARAMSET[uartEdmaTxCh].CCNT= 1;                                                 //CCNT=1

这个设置表示这个UART的传输是A-Synchronized Transfers ACNT=4 BCNT=256 CCNT=1 

按照如下资料的描述 完成上面一次传输的话 一共可以传输ACNT*BCNT*CCNT=256*4*1=1024个字节

但实际上我的串口只收到了256字节的数据???

并且资料上说:In this example, a total of 12 sync events (BCNT × CCNT) exhaust a PaRAM set.     12个sync events是否对应12个edma3的中断了?

例程 按照资料的说法应该产生BCNT × CCNT=256个sync events 

在KeyStone_UART_EDMA_ISR()中计数发现 实际上完成上述传输 只进了一次中断!!!