在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
+關注
關注
99文章
6534瀏覽量
545771 -
STM32
+關注
關注
2272文章
10924瀏覽量
357608 -
定時器
+關注
關注
23文章
3255瀏覽量
115389
原文標題:STM32定時器觸發ADC的時序話題
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
與定時器相關的寄存器有哪些類型
關于定時器觸發ADC連續采樣dma傳輸的疑問求解?
STM32L151定時器上升沿觸發ADC采樣,為什么每個PWM周期內會觸發第二次采樣?
STM32F0R8T6定時器預分頻配置影響AD采樣值,為什么?
如果STM32定時器外接了正交編碼器,該剩余通道是否能做PWM輸出呢?

STM32L0使用定時器上升沿觸發ADC采樣時,采樣頻率如何確定?
STM32L0采用tim6上升沿觸發使ADC采樣,把定時器頻率配為4K后,采樣周期不對,為什么?
STM32L053R8T6TR利用定時器觸發ADC采樣時選用tim6,為什么在cubenx中tim6無法選擇時鐘源?
STM32L431RCT6觸發ADC模擬看門狗規則通道轉換后,定時器中斷事件無法觸發注入通道事件,為什么?
STM32L431RCT6進入STOP模式后,ADC注入通道不再觸發是為什么?
STM32U575定時器PWM觸發DMA搬運內存時,為什么程序在DMA中斷里出不來?
使用555定時器的可調雙定時器電路

評論