Hi
I am trying enabled burst DMA for hsadc.
It work as DMA as flow-control(0x2), but I need peripheral flow-control (0x6) for more efficiently. here will some items not clear. is any one have comment with red color part.
LPC_GPDMA->CH[DMA_CH].SRCADDR = (uint32_t) &LPC_ADCHS->FIFO_OUTPUT[0];
LPC_GPDMA->CH[DMA_CH].DESTADDR = (uint32_t) sample); // should I set to zero
LPC_GPDMA->CH[DMA_CH].CONTROL = (DMA_TRANSFER_SIZE) ç programming guide said peripheral flow control(0x6) will ignore this field,However when set to 0, nothing FIFO data been transferred
| (0x0 << 12)
| (0x0 << 15) // dst burst
| (0x2 << 18) // src傳輸寬度,0x2表示以字的形式傳輸
| (0x2 << 21) // dst傳輸寬度,0x2表示以字的形式傳輸
| (0x1 << 24) // src AHB主選擇
| (0x0 << 25) // dst AHB主選擇
| (0x0 << 26) // src增量:0,每次傳輸後src位址不遞增
| (0x1 << 27) // dst增量:1,每次傳輸後的dst位址增量
| (0x1 << 31); //What is Terminal count interrupt
LPC_GPDMA->CH[DMA_CH].CONFIG = (0x0 << 0) // channel eabled ç burst mode is set to 0?
| (HSADC_DMA_READ << 1) // src外設:設置為8-HSADC
| (0x0 << 6) // dst外設:無設置-記憶體
| (0x6 << 11) //流控制:外設-記憶體(0x2 working),XXX - Now test 0x6
| (0x1 << 14) // IE-中斷錯誤遮罩
| (0x1 << 15) // ITC-ç The impact is not clear
| (0x0 << 16) //lock ç The impact is not clear
| (0x0 << 18); //進一步忽略src DMA req ç Confirming.
LPC_GPDMA->CH[DMA_CH].LLI = LLI_Table; ç How to make DMA reload LLI automatically