logo

STM32定时器触发ADC的时序话题

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做为TIM1TRGO,同时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 !一起加油

=====================

往前话题阅读链接【点击即可阅读】:

上一篇:轴承的分类有哪些?翔威轴承五金_邢台科宏轴承制造有限公司 下一篇:阜宁镇朝阳村多举措严管卡口守护村民安全
最新资讯