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.

TMS570LS2124: Question about DMA interrupt

Part Number: TMS570LS2124

Tool/software:

Hi Champs,

Now customer is using DMA interrupt, they configured two DMA interrupt , both of which are BTC type (Block transfer complete). There are 16 DMA channels (from 0~15), but according to the description in Table 16-47 of TRM, BTCA only uses 0~5 bits to represent 0~15 channels, instead of 16 bits to represent them one by one.

So if both channel 1 and channel 4 are configured as BTC interrupts, when channel 1 and channel 4 trigger the DMA interrupt at the same time, will BTCA read the wrong channel number and cause the wrong interrupt? Or will this causing interrupt missing?

Customer's meaning is, although BTCA is read then clearly, if it is interrupted at the same time, channel 1 BTCA will be set to 0b010, and channel 4 BTCA will be set to 0b101, so if it is interrupted at the same time, will BTCA be set to 111, that is, it will become the interruption of channel 6?

Now customer find that the program work well when only one DMA interrupt is configured. When two DMA interrupts are configured, one of them will occasionally fail to trigger. They want to know why this issue is occurring.

Thanks!

 

Best Regards,

Julia

  • Hi Julia,

    As per my knowledge with this device,

    The actual block transfer completed channels status is indicated by BTCFLG register bits:

    As mentioned above each bit will indicate the one channel and as you can see there are 16bits and one bit for each channel. If multiple channels completed the block transfer, then the corresponding channel bits will get set.

    BTCAOFFSET will indicate one channel among the all the block transfer completed channels, that means BTCAOFFSET register shows the first channel number which completed block transfer. Once we processed the corresponding channel then the next completed pending channel interrupt will be generated.

    So if both channel 1 and channel 4 are configured as BTC interrupts, when channel 1 and channel 4 trigger the DMA interrupt at the same time, will BTCA read the wrong channel number and cause the wrong interrupt? Or will this causing interrupt missing?

    So, there should not be any wrong interrupts, or missing interrupts will be there.

    --
    Thanks & regards,
    Jagadish.