[应用相关]

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

[复制链接]
495|3
手机看帖
扫描二维码
随时随地手机跟帖
ceiven|  楼主 | 2024-1-26 13:31 | 显示全部楼层 |阅读模式
用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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

18

帖子

1

粉丝