STM32之ADC轉換

ADC轉換

Stm32上有12位的逐次逼近模型模擬數字轉換器。它有多達18個通道,可測量16個外部和2個內部信號源。各個通道的ad轉換方式可有:單次、連續、掃描或者間斷模型。Adc得到的結果可以左對齊和右對齊方式存儲在16位數據寄存器中。

通常使用的是右對齊方式,而如果使用左對齊的話,其值相當於(左移6位)擴大了64倍,再其處理的時候精度提高了。(例如,接5v的電壓,通常算到mv的時候都整體乘以1000,精度得到提高,其左對齊相當於乘以了64,省掉了一個乘法器運算)。

Stm32的adc還具有模擬看門狗特性允許應用程序檢測輸入電壓是否超出用戶定義的高低閾值。Adc輸入的時鐘不能超過14MHz,它由PCLK2經分頻產生。STM32F103系列最少都擁有 2 個 ADC,我們選擇的 STM32F103RCT 包含有 3 個 ADC。STM32 的 ADC 最大的轉換速率爲 1Mhz,也就是轉換時間爲 1us(在 ADCCLK=14M,採樣週期爲 1.5 個 ADC 時鐘下得到),不要讓 ADC 的時鐘超過 14M,否則將導致結果準確度下降。

 

ADC主要特徵:

12位分辨率

轉換結束、注入轉換結束和發生模擬看門狗事件時產生中斷

單次和連續轉換模式

從通道0到通道n的自動掃描模式

自校準

帶內嵌數據一致行的數據對齊

採樣間隔可以按通道分別編程

規則轉換和注入轉換均有外部觸發選項

間斷模式

雙重模式

ADC轉換時間:

Adc供電要求:2.4到2.6v

ADC輸入範圍:Vref-<Vin<Vref+<=VDD(3.6v)

規則通道轉換期間有DMA請求產生

 

ADC開關控制

通過設置ADC_CR2寄存器的ADON位可給ADC上電。第一次設置ADON位時,它將ADC從斷電狀態下喚醒。ADC上電延遲一段時間後(Tstab),再次設置ADON位時開始轉換。通過清零ADON位可以停止轉換,並將ADC置於斷電模式。這個模式中,ADC幾乎不耗電。

ADC通道選擇

單次轉換和連續轉換模式選擇,是否爲掃描模式, 注入通道管理和規則通道選擇

校準和數據對齊

可編程的通道採樣時間

 

單次轉換模式下, ADC只執行一次轉換。該模式既可通過設置ADC_CR2寄存器的ADON位(只適用於規則通道)啓動也可通過外部觸發啓動(適用於規則通道或注入通道),這時CONT位爲0。
一旦選擇通道的轉換完成:
● 如果一個規則通道被轉換:
─ 轉換數據被儲存在16位ADC_DR寄存器中
─ EOC(轉換結束)標誌被設置
─ 如果設置了EOCIE,則產生中斷。
● 如果一個注入通道被轉換:
─ 轉換數據被儲存在16位的ADC_DRJ1寄存器中
─ JEOC(注入轉換結束)標誌被設置
─ 如果設置了JEOCIE位,則產生中斷。

在連續轉換模式中,當前面ADC轉換一結束馬上就啓動另一次轉換。此模式可通過外部觸發啓動或通過設置ADC_CR2寄存器上的ADON位啓動,此時CONT位是1。每個轉換後:
● 如果一個規則通道被轉換:
─ 轉換數據被儲存在16位的ADC_DR寄存器中
─ EOC(轉換結束)標誌被設置
─ 如果設置了EOCIE,則產生中斷。
● 如果一個注入通道被轉換:
─ 轉換數據被儲存在16位的ADC_DRJ1寄存器中
─ JEOC(注入轉換結束)標誌被設置
─ 如果設置了JEOCIE位,則產生中斷。

 

ADC涉及到的寄存器:ADC_CR1(控制寄存器), ADC_CR2,ADC_SMPR1(採用時間寄存器),ADC_SMPR2, ADC_JOFRX(注入通道數據偏移寄存器x), ADC_HTR(看門狗高閾值寄存器),ADC_LTR, ADC_SQR1(規則序列寄存器), ADC_SQR2, ADC_SQR1,ADC_JSQR(注入序列寄存器),ADC_JDRX(注入數據寄存器x),ADC_DR(規則數據寄存器)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章