Part Number: RM57L843
Hello,
I am working with HET IDE code as shown below:
L00 CNT { next=L01,reqnum=0,request=GENREQ,reg=A,max=5};
L01 ECMP { next=L02,hr_lr=HIGH,en_pin_action=ON,cond_addr=L03,pin=27,action=PULSEHI,reg=A,data=0,hr_data=0};
L02 MOV32 { remote=L01,type=IMTOREG&REM,reg=NONE,data=0,hr_data=0};
L03 BR { next=L00,cond_addr=L00,event=NOCOND};
I am trying to transmit data stored in g_test_tx_buf using HET + HTU:
uint32_t g_test_tx_buf[2048];
Setup function:
void Transmit_Engine_Setup(uint32_t* sourceAddr, uint32_t targetIdx, uint32_t len)
{
htuREG1->GC = 0x00010000;
for(volatile int i=0; i<3000; i++);
htuREG1->CPENA = 0x00;
htuREG1->MPCS = 0x00000005;
htuDCP1[0].IFADDRA = (uint32_t)sourceAddr;
htuDCP1[0].IHADDRCT = (1U << 23) | (1U << 18) | targetIdx;
htuDCP1[0].ITCOUNT = 0x00010000 + len;
hetREG1->GCR = 0x00010001;
hetREG1->REQENS = (1U << 0);
htuREG1->CPENA = 0x01;
}
Function call:
Transmit_Engine_Setup(g_test_tx_buf, HTU_DCP0_TARGET, 2048);
According to the TRM (SPNU562A, page 1168), the IFTCOUNT field in ITCOUNT is 8 bits, so the maximum transfer count per frame is 255.
Because of this limitation, it seems that transferring 2048 words in a single operation is not possible.
My questions are:
- Is there a recommended method to transfer a buffer larger than 255 words using HTU?
- Should this be handled by splitting the transfer into multiple HTU frames?
- Is there any hardware-supported mechanism (e.g., auto-reload, chaining, or circular mode) to handle larger transfers efficiently?
Any guidance would be appreciated.
Thank you.