Part Number: TMS570LC4357
Hi team,
SCI plus DMA can now transfer fixed-length data multiple times. But it is not always possible for the customer to send a fixed length of data using a serial port, sometimes 10 bytes of data and sometimes 20 bytes of data.
The customer would like to know how to configure DMA so that can transmit data of different lengths.
Fixed-length data can be sent multiple times with the following programs and results:
#include"HL_sci.h"
#include"HL_reg_sci.h"
#include "HL_reg_dma.h"
#include "HL_sys_dma.h"
g_dmaCTRL g_dmaCTRLPKT_SCI1_TX;
uint8 SCI1_TX_DATA[40]={0};
void SCI_DMA_Init(void)
{
dmaReqAssign(DMA_CH19, DMA_REQ29);
g_dmaCTRLPKT_SCI1_TX.SADD = (uint32)(SCI1_TX_DATA) ;
g_dmaCTRLPKT_SCI1_TX.DADD = ((uint32_t)(&(sciREG1->TD))+3);
g_dmaCTRLPKT_SCI1_TX.CHCTRL = 0;
g_dmaCTRLPKT_SCI1_TX.FRCNT = 10;
g_dmaCTRLPKT_SCI1_TX.ELCNT = 1;
g_dmaCTRLPKT_SCI1_TX.ELDOFFSET = 0;
g_dmaCTRLPKT_SCI1_TX.ELSOFFSET = 0;
g_dmaCTRLPKT_SCI1_TX.FRDOFFSET = 0;
g_dmaCTRLPKT_SCI1_TX.FRSOFFSET = 0;
g_dmaCTRLPKT_SCI1_TX.PORTASGN = PORTA_READ_PORTB_WRITE;
g_dmaCTRLPKT_SCI1_TX.RDSIZE = ACCESS_8_BIT;
g_dmaCTRLPKT_SCI1_TX.WRSIZE = ACCESS_8_BIT;
g_dmaCTRLPKT_SCI1_TX.TTYPE = FRAME_TRANSFER ;
g_dmaCTRLPKT_SCI1_TX.ADDMODERD = ADDR_INC1;
g_dmaCTRLPKT_SCI1_TX.ADDMODEWR = ADDR_FIXED;
g_dmaCTRLPKT_SCI1_TX.AUTOINIT = AUTOINIT_OFF;
dmaSetCtrlPacket(DMA_CH19,g_dmaCTRLPKT_SCI1_TX);
dmaSetChEnable(DMA_CH19, DMA_HW);
sciREG1->SETINT |= (1<<16U) ;
}
void SCI_DMA_SEND(uint8 length)
{
// dmaRAMREG->PCP[DMA_CH19].ITCOUNT =(0x00000001 | length<<16);
dmaSetChEnable(DMA_CH19, DMA_HW);
}
uint32 timen=50000;
int user_main(void)
{
uint8 i=0;
sciInit();
dmaEnable();
for(i=0;i<40;i++)
{
SCI1_TX_DATA[i]=i;
}
SCI_DMA_Init();
while(1)
{
while(timen--);
timen=50000;
SCI_DMA_SEND(20);
}
}

Failed to send data of different lengths, only the first time is successful. The program made the following changes and results:
void SCI_DMA_SEND(uint8 length)
{
dmaRAMREG->PCP[DMA_CH19].ITCOUNT =(0x00000001 | length<<16);
dmaSetChEnable(DMA_CH19, DMA_HW);
}

Could you help check this issue? Thanks.
Best Regards,
Cherry