STM32F4 j進行ADC操作時應注意的幾點問題

2021-08-20 08:28:42 字數 1539 閱讀 3396

所有的stm32晶元中都帶有逐次逼近型adc模組,關於它的應用非常廣泛和頻繁。不過,應用過程中時常也會遇到些問題,這盡力小結下,與大家分享出來算作一些提醒。

1、vdda沒有供電或沒有正常供電;stm32系列眾多,該引數不可一概而論,細節請參考各個晶元資料手冊。

2、取樣電阻取值不合適,跟取樣時間不匹配,經常表現為輸入電阻過大、配置的取樣時間偏短。實際設計時可以參考下stm32官方各系列評估板的相關電路。另外可以參考st官方的應用筆記an2834。關於adc 應用其它的應用筆記,可以去www.stmcu.com.cn搜尋adc即可。

3、adc上電開啟到穩定需要一段時間,即tstab,該引數在資料手冊裡有介紹。在使用暫存器操作時要特別注意這個時間。另外要注意給adc外設上電、使能adc功能、啟動adc轉換、實質ad轉換是不一樣的動作和不同的時間點。

4、輸入訊號幅度超過adc參考電壓範圍導致轉換結果的資料錯誤。

5、晶元供電的波動尤其vref的波動和外來干擾都會導致adc轉換值的異常。

6、在使用注入觸發轉換時,觸發事件的時間間隔必須大於注入轉換序列所需的轉換時間。比方有兩個注入通道所需轉換時間為28 adclk,那觸發事件的間隔必須大於28個adclk,比方29,30 個adclk等都可以。

7、大多數stm32的adc模組在使用前需要校準。校準須在啟動ad轉換之前完成。原則上給adc外設上電後校準一次就夠,但當參考電壓波動較大、溫度變化較劇烈時需再次校準。

8、開啟adc的dma功能,建議在adc校準之後進行。換句話說校準adc前不要使能其adc的dma功能。尤其涉及到多通道adc  dma傳輸時要注意這個次序。

9、如果使用adc的dma傳輸,在啟動ad轉換時,dma需配置好且被使能待命。

10、當使用內部sensor adc通道時,注意這些通道從開啟到穩定跟開啟adc模組一樣都是需要時間的;針對這些特定感測器通道的ad取樣時間,手冊裡往往有相關引數明確告知,請參照使用。比方內部溫度感測器通道的取樣時間推薦為17us.

11、adc通道序列的修改應該保證在adc的停止狀態下進行。

12、在多通道adc dma傳輸時,經常出現因為緩衝區資料型別、源資料型別不一致導致的異常狀況。這裡主要是因為資料寬度不一致所導致的問題。

13、當外部訊號被選擇為注入轉換的觸發訊號時,只有其上公升沿才有效。

上面提到的都只是拋磚引玉的提醒, 設計應用時多留意下,特別是第7、8、9、12四點提醒。stm32的adc外設在不同系列間也不完全相同,尤其涉及多個adc模組配合取樣轉換的時候還是挺複雜的。任何時候都不忘多檢視stm32英文參考手冊和資料手冊。

**:

stm32f407之ADC(操作暫存器)

adc 12位adc是一種逐次逼近型模擬數字轉換器。它有多達19個通道,可測量16個外部和2個內部訊號源和vbat通道。各通道的a d轉換可以單次 連續 掃瞄或間斷模式執行。adc的結果可以左對齊或右對齊方式儲存在16位資料暫存器中。模擬看門狗特性允許應用程式檢測輸入電壓是否超出使用者定義的高 低閥...

基於stm32f407建立stm32F427工程

分為三個部分 1.啟動檔案 2.fwilib 包含兩個資料夾inc和src。src裡面是stm32資源的c檔案,inc則是32資源的h檔案 3.user這也是我不太理解的部分 ddbugconfig只包含了用於debug的初始化,則是f4的系統檔案。我是在f407的基礎上改的 總的來說 1.改了晶元...

STM32多通道ADC操作

自 今天嘗試了下stm32的adc取樣,並利用dma實現取樣資料的直接搬運儲存,這樣就不用cpu去參與操作了。找了不少例子參考,adc和dma的設定了解了個大概,並直接利用開發板來做一些實驗來驗證相關的操作,保證自己對各部分設定的理解。我這裡用了3路的adc通道,1路外部變阻器輸入,另外兩路是內部的...