問題: 某客戶工程師講述,在其產品中需要使用STM32 的 ADC 對多路模擬信號進行同步采樣。采用了 ADC 常規通道的掃描模式來完成這一功能。然而,在調試過程中發現一個奇怪的現象:當將各路模擬信號的電平設置成相同時,ADC對各路模擬信號的轉換結果相同,假設結果用 A 來表示。改變其中某一路模擬信號的電平,并保持其它各路模擬信號的電平不變,ADC對該路信號的轉換結果記為 B。結果發現此時與其在掃描次序上相鄰的下一路模擬信號的轉換結果也發生了變化,記為C。經多次實驗發現,B 和 C 在數值上相對于A 有相同的變化方向。于是,懷疑 ADC 的相鄰通道間存在著某種串擾。 調研: 重復試驗,確認現象如其所述。檢查其硬件設計,在與 VDD、VDDA、VSS、VSSA、Vref+、Vref-相關的電路中未發現異常。修改軟件,增大 ADC 各個通道的采樣保持時間Ts 。重新測試,發現 C 相對于 A 的變化量有所減小。進一步增大 ADC 各個通道的采樣保持時間Ts,發現 C 相對A 的變化量進一步減小。 分析與建議: 對 ADC 所設置的采樣保持時間Ts偏小,導致相鄰通道之間透過采樣電容發生了藕合。 根據公式: ![]() 重新計算 ADC 的采樣保持時間T。其中: ![]() 由該公式計算出的采樣保持時間Ts,可以保證采樣電容上的采樣值相對于信號源的電平的偏差不大于1/4LSB。 當 ADC 的采樣電容在兩個通道之間進行切換時,其電路如下圖(一)所示: ![]() 其中, Cs是ADC的采樣電容,Rs是 ADC 的采樣電阻。兩路信號源 A 和B 的電平分別為Ua和Ub,其內阻分別是Ra和Rb。為了簡化問題,假定兩路信號的掃描次序是由信號源 B 到信號源 A,且信號源 B 接入的時間足夠長,以至在通道切換時采樣電容Cs上的電壓可以近似的等于Ub ,于是,在通道切換到信號源 A 后,采樣電容Cs上的電壓將按如下曲線變化: ![]() 隨著時采樣保持時間t 的增長,采樣電容Cs 上的電壓逐漸趨近于Ua,而其與Ua之間的誤差為: ![]() 該誤差即是信號源 B 通過采樣電容Cs對信號源 A 的藕合值,隨著采樣保持時間t的增長,該值逐漸減小,最終趨近于零,如圖(二)所示。從上面表達式可以看出,有兩種方法可以減小誤差: 1. 通過增加采樣保持時間t,使獲得更多的衰減時間; 2. 通過減小信號源的內阻Ra,使其具有更快的衰減速率; ![]() 以上兩點可以作為消除 ADC 不同通道之間通過采樣電容Cs 產生寄生藕合的理論依據。在實際運用時,在增加采樣保持時間方面可以通過修改 ADC 的設置參數來實現,而在降低信號源內阻方面可以通過在信號源與ADC 之間加入跟隨器進行隔離來實現。 融創芯城與ST建立倉儲物流合作,亞太區ST MCU開發工具,融創芯城獨家負責倉儲、發放!親,這樣實力雄厚的企業,它的拉人注冊享豪禮,你還猶豫什么?抓緊拉人注冊,享受做小股東的樂趣!! |