- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello.
I have just created attachment project, but the transfer of DMA is completed in the middle.
I want to send from ROM to RAM, DMA transfer 100 Word.(finally, want to enter DMA transfer interrupt routine)
But Actually, when after a few byte transfer, enter DMA transfer interrupt routine.
How do I fix it?
Please give me some advice.
Best regards,
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
From your comment, I assume that you want to trigger the DMA completion interrupt after transferring 100 words of data from Flash to RAM. Is this correct?
If yes, then you can use the below settings. Quick walkthrough of the below settings (the ones that matter most in your case):
Interrupt - Trigger on every X loop transfer completion: Triggers DMA interrupt after transferring X loop i.e. 100 words of data.
Channel State - Disable: I am disabling the channel after completing the transfer (both X and Y). You can leave it enabled. However that combined with "Chain to Descriptor_1" and an infinite trigger from software, will keep transferring data from Flash to RAM indefinitely
Trigger retriggering - Immediate: Again since you were using infinite trigger in the software, I have configured it to retrigger immediately. Again, options other than "Wait for reactivation" will trigger continuously. The wait for reactivation, will require you to deactivate the trigger in firmware and then reactivate it. One other thing, since you are transferring only "One transfer (word) per trigger", every trigger will only transfer one word. And if you want to see the transfer of 100 words in one shot/trigger, then select "One X loop transfer per trigger" as input type. However since you are providing an infinite trigger in the firmware, I did not modify this field and just changed the retriggering mechanism.
Number of X loops - 1: we are transferring only one set of 100 words. The other two fields in Y Loop transfer does not matter as after one X loop transfer, the descriptor is complete. However if you are transferring more than one loop, be sure to modify Src/Dst increment (in number of Data element size) as per your requirements.
You can refer to the component datasheet for details on other parameters.
Let me know if this helps.
Regards,
Meenakshi Sundaram R
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
From your comment, I assume that you want to trigger the DMA completion interrupt after transferring 100 words of data from Flash to RAM. Is this correct?
If yes, then you can use the below settings. Quick walkthrough of the below settings (the ones that matter most in your case):
Interrupt - Trigger on every X loop transfer completion: Triggers DMA interrupt after transferring X loop i.e. 100 words of data.
Channel State - Disable: I am disabling the channel after completing the transfer (both X and Y). You can leave it enabled. However that combined with "Chain to Descriptor_1" and an infinite trigger from software, will keep transferring data from Flash to RAM indefinitely
Trigger retriggering - Immediate: Again since you were using infinite trigger in the software, I have configured it to retrigger immediately. Again, options other than "Wait for reactivation" will trigger continuously. The wait for reactivation, will require you to deactivate the trigger in firmware and then reactivate it. One other thing, since you are transferring only "One transfer (word) per trigger", every trigger will only transfer one word. And if you want to see the transfer of 100 words in one shot/trigger, then select "One X loop transfer per trigger" as input type. However since you are providing an infinite trigger in the firmware, I did not modify this field and just changed the retriggering mechanism.
Number of X loops - 1: we are transferring only one set of 100 words. The other two fields in Y Loop transfer does not matter as after one X loop transfer, the descriptor is complete. However if you are transferring more than one loop, be sure to modify Src/Dst increment (in number of Data element size) as per your requirements.
You can refer to the component datasheet for details on other parameters.
Let me know if this helps.
Regards,
Meenakshi Sundaram R
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello msur-san,
Thank you for your quick reply.
Thanks to you I was able to resolve that.
Best regards,