Forum Rule: Always post complete source code & details to reproduce any issue!
-
Is Manual Triggering in DMA Hardware or software
I was looking through the DMAChannel.h file and saw this function
Code:
void triggerManual(void) {
DMA_SSRT = channel;
}
If I'm understanding this correctly, this sets the start bit in TCD_CSR of whatever channel I'm calling it from. However, in the documentation of CSR register there is this table (below) that says that the START bit is automatically cleared with hardware and the DONE bit is automatically cleared by software if it is software initiated. So if I am calling this, will I have to also manually clear the start bit and the done bit or will it automatically clear after I call this function?
-
No I think the DONE bit is only set by HW, so you have to clear it in SW if triggering a cycle and you want to see it change at the end. Nothing automatic about the SW as you have to write that! In other words the HW clears the start bit automatically, and sets the DONE bit automatically. Documentation isn't great for this.
So don't try to manually clear the start bit, that might not do what you think. Just clear the DONE bit, set the START bit and wait for the DONE bit to go high...
Anyway try it out and see what happens...
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules