ceiven 发表于 2024-1-26 13:31

请教下ADC普通通道由DMA传输与ADC抢占通道转换两者时间的差距

用AT32 F415 START V1.3开发板测试,基础例程为AT32F415_Firmware_Library_V2.1.2下的tmr_trigger_automatic_preempted示例工程
时钟配置如下
*         system clock (sclk)   = hext / 2 * pll_mult
*         system clock source   = pll (hext)
*         - hext                = HEXT_VALUE
*         - sclk                = 144000000
*         - ahbdiv            = 1
*         - ahbclk            = 144000000
*         - apb2div             = 2
*         - apb2clk             = 72000000
*         - apb1div             = 2
*         - apb1clk             = 72000000
*         - pll_mult            = 36
*         - flash_wtcyc         = 4 cycle
ADC时钟div为6分频 也就是apb2/adcdiv=12MHz

修改外设配置如下
ADC普通通道为ADC_CHANNEL_4、ADC_CHANNEL_5、ADC_CHANNEL_6,触发方式为TMR1 CH1触发,数据由DMA搬运(DMA buffer大小3,循环模式)。
ADC抢占通道为ADC_CHANNEL_7、ADC_CHANNEL_8、ADC_CHANNEL_9,触发方式也为TMR1 CH1触发。
所有通道采样周期都设置为239.5周期
通过监测TMR1 CH1开始触发后,DMA传输中断完成时间与抢占通道转换完成中断时间分别为125us和65us。
所以请问下为什么ADC普通通道+DMA的方式与ADC抢占的方式两者时间相差会这么大

ceiven 发表于 2024-1-26 13:41

理论计算下转换3个通道的时间为(239.5+12.5)*ad周期*3 = 63us,与示波器上看到3个抢占通道从触发开始到转换完成约65us接近,但是3个普通通道+DMA搬运的时间确花了几乎双倍的时间125us

ceiven 发表于 2024-2-20 15:57

版主能解答一下吗,谢谢了

GYY520520 发表于 2024-2-20 16:45

您好,我们是雅特力代理商,有技术支持,可以联系协助解答您的疑问。 18002528376
页: [1]
查看完整版本: 请教下ADC普通通道由DMA传输与ADC抢占通道转换两者时间的差距