- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, I'm using the DMA.
Is it possible to change value of source in transferring from memory to original component?
I'm using DMA in loop.
I tried to change memory array of td when DMA transfer other td.
It is like that change td[10] value when trinsfer td[3]
But, It was unchanged values of transferred..
If you have advice could you help me?
Thank you!
- Labels:
-
PSoC 5LP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, that is possible.
There is a component that dynamically changes the TD of a DMA - the MDIO Interface component. You could import it in PSoC Creator and see how it is done.
Refer to the DmaInit() function in MDIO_Interface.c. More specifically the AddDMA. That's the one modifying the source/destination address of other DMAs.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
koMi,
Take a look at the DMA component datasheet. There are two DMA transfer methods "Indexed DMA" and "Nested DMA" where the DMA td factors are changed on-the-fly without CPU intervention.
If either of these techniques will not work, then your only choice is to stop the TD (or let the TD finish) then to initialize other TDs via the CPU intervention.
Len
"Engineering is an Art. The Art of Compromise."