Vybrid PIT DMA Triggers

cancel
Showing results for 
Search instead for 
Did you mean: 

Vybrid PIT DMA Triggers

Jump to solution
428 Views
Contributor III

Hello All,

I see in the VF6xx data sheet that the PIT is supposed to be able to trigger DMA requests.  However, the documentation for this seems to be lacking.

Does anyone have an example of starting a DMA transfer from a PIT without using a processor interrupt?  Or is this not possible?

Thanks,

Nathan

Labels (6)
0 Kudos
1 Solution
3 Views
Community Manager
This an automatic process.

We are marking this post as solved, due to the either low activity or any reply marked as correct.

If you have additional questions, please create a new post and reference to this closed post.

NXP Community!

View solution in original post

0 Kudos
4 Replies
4 Views
Community Manager
This an automatic process.

We are marking this post as solved, due to the either low activity or any reply marked as correct.

If you have additional questions, please create a new post and reference to this closed post.

NXP Community!

View solution in original post

0 Kudos
5 Views
NXP Employee
NXP Employee

Right now, that is not possble becuase of an errata:

e4588: DMAMUX: When using PIT with "always enabled" request, DMA request does

not deassert correctly

Description:

The PIT module is not assigned as a stand-alone DMA request source in the DMA request

mux. Instead, the PIT is used as the trigger for the DMAMUX periodic trigger mode. If you want

to use one of the PIT channels for periodic DMA requests, you would use the periodic trigger

mode in conjunction with one of the "always enabled" DMA requests. However, the DMA

request does not assert correctly in this case.

Instead of sending a single DMA request every time the PIT expires, the first time the PIT

triggers a DMA transfer the "always enabled" source will not negate its request. This results in

the DMA request remaining asserted continuously after the first trigger.

Workaround:

Use of the PIT to trigger DMA channels where the major loop count is greater than one is not

recommended. For periodic triggering of DMA requests with major loop counts greater than

one, we recommended using another timer module instead of the PIT.

If using the PIT to trigger a DMA channel where the major loop count is set to one, then in

order to get the desired periodic triggering, the DMA must do the following in the interrupt

service routine for the DMA_DONE interrupt:

1. Set the DMA_TCDn_CSR[DREQ] bit and configure DMAMUX_CHCFGn[ENBL] = 0

2. Then again DMAMUX_CHCFGn[ENBL] = 1, DMASREQ=channel in your DMA DONE

interrupt service routine so that "always enabled" source could negate its request then DMA

request could be negated.

This will allow the desired periodic triggering to function as expected.

Best Regards,

Alejandro

5 Views
Senior Contributor I

Hello,

Does this still apply, or the hw was revised?

0 Kudos
5 Views
NXP Apps Support
NXP Apps Support

alejandrolozano​ are you able to help here?

0 Kudos