RT685 CTimer0 callBack delayed

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

RT685 CTimer0 callBack delayed

4,041 次查看
katte82
Contributor III

I modified the mimxrt685audevk_lpadc_dma_cm33 example from SDK 25.9 for MIMXRT685-AUD-EVK to create this chain:
CTIMER0 -> ADC -> DAC -> PingPongBuffer in RAM.
CTIMER0: 32kHz; ToggleBit on Match_CH_3
ADC0: Start on Trigger 5; Create interrupt for DMA every 16 samples (FIFO watermark = 15)
DMA0: PingPong; Start on Hardware trigger 24

I added Set/Clear pins to the callbacks for debugging.

From the pin log, it appears that the CTimer0 callback is delayed when the DMA is triggered, even though the DMA is executed at a time that does not overlap with the CTimer timing.

Can anyone tell me why this happens?

标签 (1)
标记 (2)
0 项奖励
回复
5 回复数

3,975 次查看
mayliu1
NXP Employee
NXP Employee

Hi @katte82 ,

Thank you so much for your interest in our products and for using our community.

I suggest double checking the following points:

1:Set the NVIC priorities and try to assign a higher priority to CTIMER0 than DMA and ADC, then test again.

2:Verify that the transfer type is set to kDMA_PeripheralToMemory.

 

mayliu1_0-1764831075550.png

Best Regards

MayLiu

0 项奖励
回复

3,969 次查看
katte82
Contributor III
1) Setting the priority solves the problem. But I don't understand why it's necessary. In theory, the hardware has all the time it needs to handle the DMA callback.
2) I've tried many times, but if I switch to PeripheralToMemory, strange things happen and nothing works. The ADC still remain in interrupt and DMA never calls the callback. Maybe PeripheralToMemory don't handle correctly the watermark set to 15? Could using DMA in MemoryToMemory be a problem?

Thanks in advance.
Regards.
0 项奖励
回复

3,872 次查看
mayliu1
NXP Employee
NXP Employee

Hi @katte82 ,

Thanks for your updated information.

A1: It is necessary, because the callback runs in the interrupt service routine (ISR),  and NVIC priority decides who runs first. DMA/ADC ISR preempted CTIMER0, so the CTIMER0 callback was delayed.

A2: I suggest you can refer to SDK demo "evkmimxrt685_lpadc_dma_cm33"

Best Regards

MayLiu

0 项奖励
回复

3,660 次查看
katte82
Contributor III
Thanks for the hint.
1) I continue not understand why the ctimer interrupt need a greater priority. There are many "free usec" after DMA callback.

2) In example, the data flow is handled by the software.
I'm trying to configure the cpu to do all the hard work by itself.

Thanks and Best regards.
0 项奖励
回复

3,602 次查看
mayliu1
NXP Employee
NXP Employee

I think if the ctimer has a lower priority, its execution could be delayed, affecting timing precision and real time performance.

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2254174%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERT685%20CTimer0%20%E5%9B%9E%E8%B0%83%E5%BB%B6%E8%BF%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2254174%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E4%BF%AE%E6%94%B9%E4%BA%86%E9%80%82%E7%94%A8%E4%BA%8E%20MIMXRT685-AUD-EVK%20%E7%9A%84%20SDK%2025.9%20%E4%B8%AD%E7%9A%84%20mimxrt685audevk_lpadc_dma_cm33%20%E7%A4%BA%E4%BE%8B%EF%BC%8C%E5%88%9B%E5%BB%BA%E4%BA%86%E8%BF%99%E4%B8%AA%E9%93%BE%EF%BC%9ACTIMER0-%26gt%3B%20ADC-%26gt%3B%20DAC-%26gt%3B%20PingPongBuffer%20%E5%9C%A8%20RAM%20%E4%B8%AD%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3ECTIMER0%EF%BC%9A32kHz%EF%BC%9BtoggleBit%20on%20match_ch_3%20%3CBR%20%2F%3E%20ADC0%EF%BC%9A%E5%9C%A8%E8%A7%A6%E5%8F%91%E4%BF%A1%E5%8F%B7%205%20%E4%B8%8A%E5%90%AF%E5%8A%A8%EF%BC%9B%E6%AF%8F%2016%20%E4%B8%AA%E6%A0%B7%E6%9C%AC%E4%B8%BA%20DMA%20%E5%88%9B%E5%BB%BA%E4%B8%AD%E6%96%AD%EF%BC%88FIFO%20%E6%B0%B4%E5%8D%B0%20%3D%2015%EF%BC%89DMA0%EF%BC%9APingPong%EF%BC%9B%E5%90%AF%E5%8A%A8%E7%A1%AC%E4%BB%B6%E8%A7%A6%E5%8F%91%E4%BF%A1%E5%8F%B7%2024%20%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%E6%88%91%E5%9C%A8%E5%9B%9E%E8%B0%83%E4%B8%AD%E6%B7%BB%E5%8A%A0%E4%BA%86%E8%AE%BE%E7%BD%AE%2F%E6%B8%85%E9%99%A4%E5%BC%95%E8%84%9A%EF%BC%8C%E4%BB%A5%E4%BE%BF%E8%B0%83%E8%AF%95%E3%80%82%3C%2FP%3E%3CP%3E%E4%BB%8E%E5%BC%95%E8%84%9A%E6%97%A5%E5%BF%97%E4%B8%AD%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%87%BA%EF%BC%8C%E5%BD%93%E8%A7%A6%E5%8F%91%E4%BF%A1%E5%8F%B7%20DMA%20%E6%97%B6%EF%BC%8CCTimer0%20%E5%9B%9E%E8%B0%83%E4%BC%BC%E4%B9%8E%E4%BC%9A%E5%BB%B6%E8%BF%9F%EF%BC%8C%E5%8D%B3%E4%BD%BF%20DMA%20%E7%9A%84%E6%89%A7%E8%A1%8C%E6%97%B6%E9%97%B4%E4%B8%8E%20CTimer%20%E6%97%B6%E5%BA%8F%E4%B8%8D%E9%87%8D%E5%8F%A0%E3%80%82%3C%2FP%3E%3CP%3E%E8%B0%81%E8%83%BD%E5%91%8A%E8%AF%89%E6%88%91%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%87%BA%E7%8E%B0%E8%BF%99%E7%A7%8D%E6%83%85%E5%86%B5%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2254174%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3Ei.MX%20RT600%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2254902%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20RT685%20CTimer0%20callBack%20delayed%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2254902%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F256644%22%20target%3D%22_blank%22%3E%40katte82%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CP%3E%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E5%85%B3%E6%B3%A8%E6%88%91%E4%BB%AC%E7%9A%84%E4%BA%A7%E5%93%81%E5%B9%B6%E4%BD%BF%E7%94%A8%E6%88%91%E4%BB%AC%E7%9A%84%E7%A4%BE%E5%8C%BA%E3%80%82%3C%2FP%3E%0A%3CDIV%3E%0A%3CP%3E%E6%88%91%E5%BB%BA%E8%AE%AE%E4%BB%94%E7%BB%86%E6%A3%80%E6%9F%A5%E4%BB%A5%E4%B8%8B%E5%87%A0%E7%82%B9%EF%BC%9A%3C%2FP%3E%0A%3CP%3E1%EF%BC%9A%E8%AE%BE%E7%BD%AE%20NVIC%20%E4%BC%98%E5%85%88%E7%BA%A7%EF%BC%8C%E5%B0%9D%E8%AF%95%E4%B8%BA%20CTIMER0%20%E5%88%86%E9%85%8D%E6%AF%94%20DMA%20%E5%92%8C%20ADC%20%E6%9B%B4%E9%AB%98%E7%9A%84%E4%BC%98%E5%85%88%E7%BA%A7%EF%BC%8C%E7%84%B6%E5%90%8E%E5%86%8D%E6%AC%A1%E6%B5%8B%E8%AF%95%E3%80%82%3C%2FP%3E%0A%3CP%3E2%EF%BC%9A%E7%A1%AE%E8%AE%A4%E4%BC%A0%E8%BE%93%E7%B1%BB%E5%9E%8B%E5%B7%B2%E8%AE%BE%E7%BD%AE%E4%B8%BA%20kDMA_PeripheralToMemory%E3%80%82%3C%2FP%3E%0A%3C%2FDIV%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22mayliu1_0-1764831075550.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22mayliu1_0-1764831075550.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22mayliu1_0-1764831075550.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22mayliu1_0-1764831075550.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22mayliu1_0-1764831075550.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22mayliu1_0-1764831075550.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F368552i042D29DD200F8EBA%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22mayliu1_0-1764831075550.png%22%20alt%3D%22mayliu1_0-1764831075550.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3EMayLiu%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2255027%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20RT685%20CTimer0%20callBack%20delayed%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2255027%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E1)%20%E8%AE%BE%E7%BD%AE%E4%BC%98%E5%85%88%E7%BA%A7%E5%8F%AF%E4%BB%A5%E8%A7%A3%E5%86%B3%E9%97%AE%E9%A2%98%E3%80%82%E4%BD%86%E6%88%91%E4%B8%8D%E6%98%8E%E7%99%BD%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E8%BF%99%E6%A0%B7%E5%81%9A%E3%80%82%E7%90%86%E8%AE%BA%E4%B8%8A%EF%BC%8C%E7%A1%AC%E4%BB%B6%E6%8B%A5%E6%9C%89%E5%A4%84%E7%90%86%20DMA%20%E5%9B%9E%E8%B0%83%E6%89%80%E9%9C%80%E7%9A%84%E5%85%A8%E9%83%A8%E6%97%B6%E9%97%B4%E3%80%82%3CBR%20%2F%3E2)%20%E6%88%91%E8%AF%95%E4%BA%86%E5%BE%88%E5%A4%9A%E6%AC%A1%EF%BC%8C%E4%BD%86%E5%A6%82%E6%9E%9C%E5%88%87%E6%8D%A2%E5%88%B0%20PeripheralToMemory%EF%BC%8C%E5%B0%B1%E4%BC%9A%E5%8F%91%E7%94%9F%E5%A5%87%E6%80%AA%E7%9A%84%E4%BA%8B%E6%83%85%EF%BC%8C%E4%BB%80%E4%B9%88%E4%B9%9F%E5%81%9A%E4%B8%8D%E4%BA%86%E3%80%82ADC%20%E4%BB%8D%E5%A4%84%E4%BA%8E%E4%B8%AD%E6%96%AD%E7%8A%B6%E6%80%81%EF%BC%8CDMA%20%E4%BB%8E%E6%9C%AA%E8%B0%83%E7%94%A8%E5%9B%9E%E8%B0%83%E3%80%82%E4%B9%9F%E8%AE%B8%20PeripheralToMemory%20%E6%97%A0%E6%B3%95%E6%AD%A3%E7%A1%AE%E5%A4%84%E7%90%86%E8%AE%BE%E7%BD%AE%E4%B8%BA%2015%20%E7%9A%84%E6%B0%B4%E5%8D%B0%EF%BC%9F%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%B0%A2%E8%B0%A2%E3%80%82%3CBR%20%2F%3E%E8%B0%A2%E8%B0%A2%E3%80%82%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2256091%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20RT685%20CTimer0%20callBack%20delayed%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2256091%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F256644%22%20target%3D%22_blank%22%3E%40katte82%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CP%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E6%8F%90%E4%BE%9B%E7%9A%84%E6%9C%80%E6%96%B0%E4%BF%A1%E6%81%AF%E3%80%82%3C%2FP%3E%0A%3CP%3E%E7%AD%94%201%EF%BC%9A%E8%BF%99%E6%98%AF%E5%BF%85%E8%A6%81%E7%9A%84%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%9B%9E%E8%B0%83%E5%9C%A8%E4%B8%AD%E6%96%AD%E6%9C%8D%E5%8A%A1%E4%BE%8B%E7%A8%8B%20(ISR)%20%E4%B8%AD%E8%BF%90%E8%A1%8C%EF%BC%8C%E8%80%8C%20NVIC%20%E4%BC%98%E5%85%88%E7%BA%A7%E5%86%B3%E5%AE%9A%E8%B0%81%E5%85%88%E8%BF%90%E8%A1%8C%E3%80%82%20DMA%2FADC%20ISR%20%E6%8A%A2%E5%8D%A0%E4%BA%86%20CTIMER0%EF%BC%8C%E5%9B%A0%E6%AD%A4%20CTIMER0%20%E5%9B%9E%E8%B0%83%E8%A2%AB%E5%BB%B6%E8%BF%9F%E3%80%82%3C%2FP%3E%0A%3CP%3E%E7%AD%94%202%EF%BC%9A%E6%88%91%E5%BB%BA%E8%AE%AE%E6%82%A8%E5%8F%82%E8%80%83%20SDK%20%E6%BC%94%E7%A4%BA%22evkmimxrt685_lpadc_dma_cm33%22%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EMayLiu%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2258844%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20RT685%20CTimer0%20callBack%20delayed%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2258844%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CBR%20%2F%3E1)%20%E6%88%91%E4%BB%8D%E7%84%B6%E4%B8%8D%E6%98%8E%E7%99%BD%E4%B8%BA%E4%BB%80%E4%B9%88%20ctimer%20%E4%B8%AD%E6%96%AD%E9%9C%80%E8%A6%81%E6%9B%B4%E9%AB%98%E7%9A%84%E4%BC%98%E5%85%88%E7%BA%A7%E3%80%82DMA%20%E5%9B%9E%E8%B0%83%E5%90%8E%E6%9C%89%E8%AE%B8%E5%A4%9A%22free%20usec%22%20%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E2)%20%E5%9C%A8%E7%A4%BA%E4%BE%8B%E4%B8%AD%EF%BC%8C%E6%95%B0%E6%8D%AE%E6%B5%81%E7%94%B1%E8%BD%AF%E4%BB%B6%E5%A4%84%E7%90%86%E3%80%82%3CBR%20%2F%3E%E6%88%91%E6%AD%A3%E8%AF%95%E5%9B%BE%E9%85%8D%E7%BD%AE%20CPU%EF%BC%8C%E8%AE%A9%E5%AE%83%E8%87%AA%E5%B7%B1%E5%AE%8C%E6%88%90%E6%89%80%E6%9C%89%E7%B9%81%E9%87%8D%E7%9A%84%E5%B7%A5%E4%BD%9C%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%B0%A2%E8%B0%A2%E5%B9%B6%E8%87%B4%E4%BB%A5%E6%9C%80%E5%B4%87%E9%AB%98%E7%9A%84%E6%95%AC%E6%84%8F%E3%80%82%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2259801%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20RT685%20CTimer0%20callBack%20delayed%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2259801%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E8%AE%A4%E4%B8%BA%EF%BC%8C%E5%A6%82%E6%9E%9C%3CSPAN%3Ectimer%20%3C%2FSPAN%3E%E7%9A%84%E4%BC%98%E5%85%88%E7%BA%A7%E8%BE%83%E4%BD%8E%EF%BC%8C%E5%85%B6%E6%89%A7%E8%A1%8C%E5%8F%AF%E8%83%BD%E4%BC%9A%E5%BB%B6%E8%BF%9F%EF%BC%8C%E4%BB%8E%E8%80%8C%E5%BD%B1%E5%93%8D%E8%AE%A1%E6%97%B6%E7%B2%BE%E5%BA%A6%E5%92%8C%E5%AE%9E%E6%97%B6%E6%80%A7%E8%83%BD%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E