MCXA346 DMA request with ADC

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MCXA346 DMA request with ADC

Jump to solution
903 Views
346500452
Contributor III

你好,

 

        在使用MCX A346 FRAm开发板进行frdmmcxa346_lpadc_edma这个例程运行的时候,有个问题不解。

         为什么在DMA中断里面每次要重新调用EDMA_EnableChannelRequest这个函数,也就是CHn_CSR[ERQ]这个寄存器的值,我看了datasheet里面,也没说这个会自动清零啊?

 

期待回复,谢谢。

Labels (1)
0 Kudos
Reply
1 Solution
839 Views
Celeste_Liu
NXP Employee
NXP Employee

Hello @346500452 ,

感谢在我们的社区中发帖。请检查demo中是否配置了TCDn_CSR[DREQ]。当一次 major loop 传输完成时,如果 DREQ=1,eDMA 会自动禁止该通道的后续请求,表现为把该通道的请求使能关掉(软件上等价于 ERQ 被清掉),随后才产生中断。因此若想继续下一轮采样/搬运,就需要在中断里重新把通道请求使能,也就是再次执行 EDMA_EnableChannelRequest()。

Celeste_Liu_0-1768475960456.png

祝生活愉快。

BR

Celeste

 

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the "ACCEPT AS SOLUTION" button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
Reply
1 Reply
840 Views
Celeste_Liu
NXP Employee
NXP Employee

Hello @346500452 ,

感谢在我们的社区中发帖。请检查demo中是否配置了TCDn_CSR[DREQ]。当一次 major loop 传输完成时,如果 DREQ=1,eDMA 会自动禁止该通道的后续请求,表现为把该通道的请求使能关掉(软件上等价于 ERQ 被清掉),随后才产生中断。因此若想继续下一轮采样/搬运,就需要在中断里重新把通道请求使能,也就是再次执行 EDMA_EnableChannelRequest()。

Celeste_Liu_0-1768475960456.png

祝生活愉快。

BR

Celeste

 

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the "ACCEPT AS SOLUTION" button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply