<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32 ADC應用要注意的幾點問題

          STM32 ADC應用要注意的幾點問題

          作者: 時間:2016-11-13 來源:網(wǎng)絡 收藏
          所有的STM32芯片中都帶有逐次逼近型ADC模塊,關于它的應用非常廣泛和頻繁。不過,應用過程中時常也會遇到些問題,這盡力小結(jié)下,與大家分享出來算作一些提醒。


          1、Vdda沒有供電或沒有正常供電;STM32系列眾多,該參數(shù)不可一概而論,細節(jié)請參考各個芯片數(shù)據(jù)手冊。

          本文引用地址:http://www.ex-cimer.com/article/201611/316120.htm

          2、采樣電阻取值不合適,跟采樣時間不匹配,經(jīng)常表現(xiàn)為輸入電阻過大、配置的采樣時間偏短。實際設計時可以參考下STM32官方各系列評估板的相關電路。另外可以參考ST官方的應用筆記AN2834。關于ADC 應用其它的應用筆記,可以去WWW.STMCU.COM.CN搜索ADC即可。

          3、ADC上電開啟到穩(wěn)定需要一段時間,即Tstab,該參數(shù)在數(shù)據(jù)手冊里有介紹。在使用寄存器操作時要特別注意這個時間。另外要注意給ADC外設上電、使能ADC功能、啟動ADC轉(zhuǎn)換、實質(zhì)AD轉(zhuǎn)換是不一樣的動作和不同的時間點。

          4、輸入信號幅度超過ADC參考電壓范圍導致轉(zhuǎn)換結(jié)果的數(shù)據(jù)錯誤。
          5、芯片供電的波動尤其VREF的波動和外來干擾都會導致ADC轉(zhuǎn)換值的異常。
          6、在使用注入觸發(fā)轉(zhuǎn)換時,觸發(fā)事件的時間間隔必須大于注入轉(zhuǎn)換序列所需的轉(zhuǎn)換時間。比方有兩個注入通道所需轉(zhuǎn)換時間為28 ADCLK,那觸發(fā)事件的間隔必須大于28個ADCLK,比方29,30 個ADCLK等都可以。
          7、大多數(shù)STM32的ADC模塊在使用前需要校準。校準須在啟動AD轉(zhuǎn)換之前完成。原則上給ADC外設上電后校準一次就夠,但當參考電壓波動較大、溫度變化較劇烈時需再次校準。
          8、開啟ADC的DMA功能,建議在ADC校準之后進行。換句話說校準ADC前不要使能其ADC的DMA功能。尤其涉及到多通道ADC DMA傳輸時要注意這個次序。
          9、如果使用ADC的DMA傳輸,在啟動AD轉(zhuǎn)換時,DMA需配置好且被使能待命。
          10、當使用內(nèi)部SENSOR ADC通道時,注意這些通道從開啟到穩(wěn)定跟開啟ADC模塊一樣都是需要時間的;針對這些特定傳感器通道的AD采樣時間,手冊里往往有相關參數(shù)明確告知,請參照使用。比方內(nèi)部溫度傳感器通道的采樣時間推薦為17us.
          11、ADC通道序列的修改應該保證在ADC的停止狀態(tài)下進行。
          12、在多通道ADC DMA傳輸時,經(jīng)常出現(xiàn)因為緩沖區(qū)數(shù)據(jù)類型、源數(shù)據(jù)類型不一致導致的異常狀況。這里主要是因為數(shù)據(jù)寬度不一致所導致的問題。
          13、當外部信號被選擇為注入轉(zhuǎn)換的觸發(fā)信號時,只有其上升沿才有效。

          上面提到的都只是拋磚引玉的提醒, 設計應用時多留意下,特別是第7、8、9、12四點提醒。STM32的ADC外設在不同系列間也不完全相同,尤其涉及多個ADC模塊配合采樣轉(zhuǎn)換的時候還是挺復雜的。任何時候都不忘多查看STM32英文參考手冊和數(shù)據(jù)手冊。



          關鍵詞: STM32AD

          評論


          技術(shù)專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();