【背景】
在一個Silabs的C8051F347的芯片中,外接一個ADC用於判斷出不同的外部接口類型,即ADC檢測出一定的模擬值,在某一範圍,對應對應不同的接口。
在初始化ADC的時候,會去配置Silabs中對應的寄存器AMX0P和AMX0N。
其中:
AMX0P配置了,你使用哪個Pin腳作爲ADC輸入;
AMX0N配置了,對於模擬信號的輸入檢測方式,是使用Single-ended模式還是Differential模式。
對於Single-ended模式還是Differential模式,具體的含義即兩者的區別,簡單總結如下:
【模擬信號的輸入檢測方式:Single-ended模式和Differential模式的區別】
| Single-ended輸入模式 | Differential輸入模式 |
硬件信號線連接方式 | 對於每一個信號源,都有一根線,連接到你所用到的數據採集接口上。 | 兩根信號線,連接對應的信號源。每一根接到對應的輸入端,比如a+和a-。 |
數據採集方式 | 測量信號與地(ground)之間的差別 | 有兩個高阻抗的功率放大器,檢測輸入端與接口地端之間的電壓。 還有第三個功率放大器,用來算出前兩個功放所測得的電壓,即a+和a-,之間差值。 這樣就排除了兩者之間公共的電壓所帶來的影響。 |
用此法的前提 | (1)信號線是接地的 (2)採樣設備的ground和信號源的ground是相同的(值) |
|
缺點 | (1)地電平差異:一般設備是認爲ground是0V的常量,但是實際上,不同的位置,常有不同的電平。兩者位置越接近,電平越接近於相同。但是如果將兩者的地連接在一起的話,電平差值會導致一個大電流,即接地迴路。這會導致在使用Single-ended模式輸入的時候會出錯。 (2)噪音錯誤:Single-ended模式輸入對於噪音錯誤很敏感。噪音,即非期望的信號組合。由於信號線就像天線,會捕獲環境電子活動,導致了噪音的產生。而對於Single-ended模式,是無法區分噪音和實際信號的。
使用differential輸入,可以解決接地和噪音的問題。 | (1)信號浮空:使用差分模式最常見的一個問題就是忘了將某個連接接地,即浮空。例如電池供電的設備和熱電偶沒有接地的連接。例如,你可以在+和–輸入之間接上一個電池。然後兩個輸入放大器會去監視+到地的電壓和–到地的電壓。然而,由於沒有電池和地之間沒有連接,這些測得的電壓可能是任何的值,也許就就會超過放大器的處理範圍。 對於這些浮空的信號源,應當提供一個參考源。 比如Microlink有一個標示爲0V的插槽。從“–”線上連一個連到這個0V的插槽,或者直接通過一個電阻相連,即可解決此問題。而如果你的信號本身是自接地的,那麼就不需要接這個0V了。 (2)三個用來差分輸入檢測的放大器,總稱爲設備放大器。如前所述,理想情況下,對於兩根線共有的電壓,都可以因差分計算而被消除掉。而實際上,兩個輸入放大器,並不能完美的互相匹配,因此對於公共電壓,多少會出現一些差別的。對於設備放大器接近於理想情況的程度大小,可以表述爲共模抑制比,單位是分貝。此參數越高越好。 另外需要考慮的一點是,公共電壓的範圍,即放大器所能處理的最大的公共電壓,如果環境電壓超過此閾值,那麼測量結果就不準確了。(你的硬件操作範圍也許可以設計的比公共電壓範圍更大,但是操作電壓範圍只能保證你的硬件不會被損壞,卻不能保證一定能正常工作。) (3)差分輸入需要更少的信號? 差分輸入和Single-ended輸入相比,有一個顯而易見的缺點:你需要兩倍數目的線,然後你纔可以連接到一半數目的信號。如果你只有更短的信號線,信號線之間更近,信號大於100mV的話,經過評估,覺得用Single-ended輸入,對你也是OK的,這時,你可以在Single-ended輸入模式中使用差分輸入模式。具體做法是,短路其中一根信號線(通常是短路輸入端)接到V輸入上。這樣的話,差分輸入,就可以提供兩種模式任你選了。 |
優點 |
| 解決了Single-ended模式所具有的問題,即,(只要他們的電壓不是太大,而使得功法無法處理的話)使用此法測得的值,是與接地無關的。 同樣地,此法中,兩個信號線,如果有噪音,那麼也是相同的,而做了差值後,也就消除了,減去了噪音的干擾。 |