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.

TMS320F28377D: DMA problems

Part Number: TMS320F28377D
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE

1f3f470b9a6137d9577c6fb4e4803bb9.png

68cb83c5-62e5-47fb-854f-4f30a2413a10.png

72ef4790b350af04cda021f8c9de7c52.png

this my sysconfig setting

ff827c82bac3623093c74e0781bf7fc2.png

1e6eeccc33066ba65439f8e1373add68.png

a4933b447955bcd9a603c777b4ada21d.png

this is my demo code, using software trigger in a 1s timer interrupt, but it does not work, i can not move data from dma_src[8] to dma_dst[8]. how to solve it?

  • here is a ADC setting, using timer0 int to trigger sample, the input pin can be measured with a voltage about 0.8~0.9V, but when reading the result using ADC_readResult(), the result is very low, about 0~30, what can be the problem?

  • Hello,

    Are you seeing the timer0_cnt value increment in the ISR? For the DMA,what variable types are dma_src and dma_dest? And can you check the status of the DMA registers after the software trigger has been stepped over?

    Best Regards,

    Delaney

  • i used Version: 20.3.0.14 1.9.0 CCS to develop my board and added timer0_cnt to the watch screen, when system running, timer0_cnt incremented, but i found that source data had not been moved from dma_src to dma_dst,  as in the program i used two "const void pointer "src, dst" to set the source address and destination address, but it does not work. i used the syscfg tool to config the DMA, not a register configuration by myself.

    1e6eeccc33066ba65439f8e1373add68.png

  • i set the pointer "src" "dst" after the DMA initialization procedure, so it does not work...

  • Hello,

    Apologies for my late reply. Can you make sure the structure of your variables matches the below exactly:

    uint16_t dma_src_buffer[BUFFER_SIZE];

    const void *dma_src = (const void *)dma_src_buffer;

    You will need to use a const void pointer to the GSRAM buffer for the Sysconfig settings (rather than passing in the buffer itself).

    Thanks,

    Delaney

  • the SYSCFG initialization program just set the address before assignment, so i think the register cannot get the right address and it does not work, this might be the problem using SYSCFG.

  • Hello,

    Can you take a look at the spi_ex5_loopback_dma example in C2000ware path: [C2000ware install]\driverlib\f2838x\examples\c28x\spi ? It shows the proper syntax for how to define arrays (sData and rData in this example) in the main file and use their addresses in DMA Sysconfig. Can you make sure your syntax is matching?

    Best Regards,

    Delaney