在STM32芯片的ADC应用中,我们往往会利用定时器来触发ADC的启动转换,而能够触发ADC转换的定时器事件往往有多个,有时我们可能很关注这些定时器事件在触发ADC时有哪些时序上的差别。下面以STM32G4芯片为例,来大致聊聊该话题。
这里选择TIM1来触发ADC。我们从手册或CubeMx配置界面不难看到可用来触发ADC的定时器事件可以是定时器TRGO信号和通道CC事件/信号,而TRGO可能来自定时器的使能动作、定时器的更新事件、通道输出比较事件、通道比较输出参考信号以及编码时钟。
这里先重点就Update事件、通道OCx信号和OCxREF信号作为TRGO来触发ADC,看看相应的触发时间点在哪里。
另外,作为ADC的外部触发事件还有个触发极性选择的配置。这点我们可用从CubeMx配置界面直观看到,如下图所示,可以选择上沿触发、下沿触发或双沿触发。
我这里将TIM1配置为向上计数模式,基于PWM1模式,极性选择为0的条件下,让CH1输出PWM信号,以便观察不同定时器事件及配置对ADC触发时序的影响。
1、当选择Update Event做为TIM1的TRGO,同时TRGO作为ADC的外部触发事件时,不论ADC的触发极性如何选择,都确定在定时器发生更新事件时触发ADC,即下图红色箭头所指位置。
2、当选择OC1做为TIM1的TRGO,同时TRGO作为ADC的外部触发事件时,不论ADC的触发极性如何选择,都确定在定时器发生比较事件时触发ADC,即上图绿色箭头所指位置。
3、当选择OC1REF做为TIM1的TRGO,同时TRGO作为ADC的外部触发事件时,此时ADC的触发时间点还跟ADC的触发极性选择有关,如果选择上升沿触发,ADC触发则发生在上图中的红色箭头处,反之则发生在绿色箭头处,如果选择双沿触发,则上图中红色箭头、绿色箭头处都会触发ADC转换。
上面主要介绍的是ADC触发信号源于定时器的TRGO,如果说ADC的触发信号不是来自TRGO而是来自开篇提到的通道CC事件呢。定时器CC事件包括IC事件【input Capture】和OC事件【output compare】。这里IC事件是不能作为ADC触发源的,那我们看看OC事件作为ADC的触发源的情况,即像下面的配置。
经验证测试,这里选择OC1作为ADC触发源时的情形跟前面选择OC1ref作为TRGO去触发ADC的情形是一样的,具体触发点跟ADC配置的触发极性选择有关,即上面的第三种情形。
看到这里,有人或许会问,既然这两组情形的结果是一样的,为什么配置里面不拿掉一项呢?不过,我们要知道,OCx与OCxref可能一样也可能不一样,具体取决于OC输出时的极性配置。上面我们测得两组情形是一样,刚好是因为OCx与OCxref完全同相,如果调整极性选择,触发时间点就会不一样了,结果就会刚好反过来。毕竟实际应用是千变万化的,说不定哪里就能派上用场。
诚然,STM32系列众多,相应威廉希尔官方网站 手册内容丰富而庞大,细节也多,个别细节可能描述未必很详尽,此时我们实际验证下或许更清晰。OK,关于定时器触发ADC的时序话题就聊到这里。时间真快,祝福2021!一起加油!
原文标题:STM32定时器触发ADC的时序话题
文章出处:【微信公众号:ST MCU 信息交流】欢迎添加关注!文章转载请注明出处。
责任编辑:haq
-
adc
+关注
关注
98文章
6497浏览量
544547 -
STM32
+关注
关注
2270文章
10897浏览量
355865 -
定时器
+关注
关注
23文章
3247浏览量
114761
原文标题:STM32定时器触发ADC的时序话题
文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
关于定时器触发ADC连续采样dma传输的疑问求解?
STM32L151定时器上升沿触发ADC采样,为什么每个PWM周期内会触发第二次采样?
STM32L0使用定时器上升沿触发ADC采样时,采样频率如何确定?
STM32L0采用tim6上升沿触发使ADC采样,把定时器频率配为4K后,采样周期不对,为什么?
STM32L431RCT6进入STOP模式后,ADC注入通道不再触发是为什么?
使用555定时器的可调双定时器电路
![使用555<b class='flag-5'>定时器</b>的可调双<b class='flag-5'>定时器</b>电路](https://file1.elecfans.com/web2/M00/C1/D8/wKgaomXa6PqABqXTAABhX_zgqZw100.png)
定时器原理能控制马达吗为什么
555定时器可以构成哪三种电路 555定时器属于时序逻辑电路吗
555定时器的基本功能 555定时器的工作原理及其应用
AWTK 开源串口屏开发(6) - 定时器的用法
![AWTK 开源串口屏开发(6) - <b class='flag-5'>定时器</b>的用法](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
评论