【STM32 系列】ADC —— 模數轉換器
引言
由于最近忘記了,自用。
轉換模式
單次轉換,非掃描模式

- 在非掃描模式下,列表中就只有序列1的位置有效,此時可以在序列1的位置指定我們想要轉換的通道,然后ADC就會對這個通道進行模數轉換。
- 等待一段時間,轉換完成后,轉換結果放在數據寄存器中,同時給EOC標志位置1,轉換過程結束,可以在數據寄存器中讀取結果,并且想要再啟動一次轉換,那么就需要手動再觸發一次轉換,如此往復。如果要換一個通道轉換,那么就在轉換之前,將序列1的通道改變即可。
連續轉換,非掃描模式

- 非掃描模式下,列表中就只有序列1的位置有效,序列1中的通道進行轉換。
- 連續轉換在一次轉換結束后不會停止,而是立刻開始下一輪的轉換,并且一直持續下去。轉換之后不需要等待一段時間,因為一直都在轉換,不需要手動開始轉換,也不需要判斷是否結束,隨時可以從數據寄存器中讀取AD值。
單次轉換,掃描模式

- 掃描模式,可以選擇多個序列,指定通道數目, 每個序列中的通道可以重復,每次觸發之后,就會依次對前幾個數目的通道進行轉換。轉換的結果都放在數據寄存器里,為了防止被覆蓋,就需要用DMA將數據及時挪走。幾個通道轉換完成之后,EOC標志位置1,轉換結束,然后需要手動觸發下一次,才能開始新一輪的轉換。
- 單次轉換,每觸發一次,等到轉換結束后就會停止,下次轉換就需要再次觸發才能開始。
連續轉換,掃描模式

- 掃描模式,可以選擇多個序列,指定通道數目, 每個序列中的通道可以重復,每次觸發之后,就會依次對前幾個數目的通道進行轉換。
- 連續轉換,一次掃描完成后,立馬開始下一次的轉換,不需要手動觸發。
間斷模式
是在掃描模式下的,是在掃描的過程中,每隔幾個轉換,就暫停一次,需要再次觸發才能繼續。
觸發控制
規則組的觸發源
觸發控制有來自定時器的信號,也有來自引腳或者定時器的信號(需要用AFIO重映射決定),還有一個就是軟件觸發。
數據對齊
右對齊
16/12/8...位的數據向右靠,高位多出來的補零。
左對齊
16/12/8...位的數據向左靠,低位多出來的補零。左對齊得到的數據會比實際上大,實際上就是把數據左移了幾次,數據左移一次,就是將數據乘以2。一般不用。
轉換時間
采樣保持(打開采樣開關,小電容存儲電壓) + 量化編碼(ADC逐次逼近,位數越多花時間越長)
- 采樣保持的過程,需要閉合采樣開關,等待電容充滿后再斷開采樣開關,就會產生一個采樣時間。采樣保持花費的時間,可以在程序中進行配置為多少個時鐘周期,采樣保持的時間越長,那么精度就越高,越能避免毛刺信號的干擾,但是采樣的頻帶就越小。
- x位的ADC花費的量化編碼的時間就是x+0.5個時鐘周期。例如16位分辨率的ADC,處理一位的信號,就需要一個時鐘周期,最后0.5的時鐘周期是臃腫時間。
- 可以使得ADC超頻,轉換時間可以更短,不過穩定性就沒法保證了。
校準

博客導航
本文來自博客園,作者:膝蓋中箭衛兵,轉載請注明原文鏈接:http://www.rzrgm.cn/Skyrim-sssuuu/p/18774949

浙公網安備 33010602011771號
https://orcid.org/0000-0001-5102-772X