D/A數位類比轉換器的動作原理非常簡單—即:給定數位輸入,它就提供準確的輸出電壓。但實際上,輸出電壓的準確性是視一些因素而定,包括在信號鏈中來自D/A轉換器以及來自其他元件的增益和偏移誤差。系統設計師必須補償這些誤差,以便得到最高的輸出準確性。有一種解決方案是外加一些元件,透過後段製造調整將誤差移除。有些D/A轉換器具有內部的調整暫存器,允許使用者校正出存在於系統中的誤差,這樣,傳至D/A轉換器的數位碼就會產生正確的輸出電壓。本篇設計指南將會解釋運用一種軟體解決方案而非硬體方案來降低系統誤差的必要步驟。
在所有D/A轉換器上,偏移誤差和增益誤差是兩個常見的誤差機制。當運用到最小的程式碼時,偏移誤差是從預期的最小電壓的變異所產生。舉例來說,對一顆單極D/A轉換器而言,0x0000的碼應該提供最小的輸出電壓。當D/A有可能經過工廠校正而有一固有的低偏移時,在信號鏈中的放大器及其他元件將會增加整體的偏移值。在信號鏈中的整體偏移稱為系統偏移。透過下文介紹的晶片內建暫存器,就可以移除系統偏移。
理想上,當偏移誤差被移除時,增益誤差是轉換函數斜率的偏差。以一顆D/A轉換器為例,它可能需要在0V電壓啟動,在5V電壓終止,但實際的轉換函數可能在5mV啟動,在5.015mV終止。在本例中,增益誤差為10 mV。(圖一)顯示這些誤差。
(圖二)顯示包含了具16通道、14位元D/A轉換器,其中一個通道與一個放大器的簡單信號鏈。如圖示,包括調整暫存器。在信號鏈的最終輸出電壓受到應用於D/A的數位碼以及D/A和放大器的增益與偏移誤差所決定。D/A的c和m暫存器可被用來減少這些失誤。這些暫存器在此一基礎上工作,可以用公式y=mx+c描述一條直線。當運用在D/A轉換器的轉換函數使用這個做法,可以看出D/A的輸出電壓(y)並不只是與數位輸入碼(x)有關,也受到m和c值的影響。假設m和c暫存器經過編程,以致它們消除系統增益和偏移誤差,則系統輸出電壓將變得更加準確。
AD5390的轉換函數在技術手冊中給定如下:
假設m和c的預設值被用到,則被載入至DAC暫存器的值(x2)將與輸入值(x1)相同,例如,針對偏移和增益誤差並無調整。下一段將描述m和c暫存器如何被用來降低系統的增益與偏移誤差。
移除系統偏移誤差
在開始調整c暫存器之前,必須瞭解在該暫存器中每個位元變化的情形。給定的的輸出範圍為2 × VREF。因此,對於2.5V參考電壓,輸出電壓為5V。由於有14位元D/A有16384內碼階, 每一階的電壓變化為5/16384 = 305.175 ?V。 這就是1 LSB。 對c暫存器使用正確值,將會降低低於這個值的偏移誤差。
為量測出系統偏移必須將D/A通道設定最小的電壓。接著系統輸出電壓被量測出,且與預定的輸出電壓做比較。兩者之間的差異就是偏移誤差。
假設系統在+5 mV量測出偏移,然後需要
這意指未盡可能地降低+5 mV偏移跟需要用8192 – 16 = 8176來編程c暫存器。當偏移並不完全被消除掉時,就是已經被降低成5 mV ? (16 × 305.175 ?V) = 117.2 ?V
移除增益誤差
隨著系統偏移誤差被降低,現在可以校正出系統的增益誤差。如先前所提,增益誤差是理想的轉換函數斜率的偏差。由於轉換函數是一條直線,最壞情況下偏離理想圖形會落在轉換函數的頂端,例如,最高電壓。將該電壓移到最靠近理想值處,在確保系統提供最準確的輸出電壓給任何給定的D/A內碼上,將會有所作用。
為計算出m暫存器所需要的值,使用者應該要寫0x03FFF給提供最高輸出電壓的D/A通道。在理想世界中,這會是+5V – 1LSB = 4.999695 V。假設,在我們的範例中,系統輸出電壓測量為5.0067 V,然後我們就有一個約7 mV的增益誤差。如先前一樣,使用相同的LSB,我們發現m暫存器需要用以下公式來降低:
因此設定m 暫存器為 (16382 – 20) = 16362 將會降低增益誤差在1 LSB範圍內。
典型範例
如上述的校正例行程式, 其作業的方式可以如一次完成的工廠校正的一部份,這些地方m和c暫存器的值可被儲存在一顆EEPROM以及被載入成系統啟動程序的一部份,或者系統也可以被設計來定期地量測輸出電壓,並隨需要調整m和c暫存器。針對後者,通常會用到一顆高品質的A/D轉換器。每個D/A通道的輸出會依序被連接到A/D輸入,且電壓經過校正。這可以用一顆多工器來做到。內建多工器/監控器功能,讓設計者的工作更加容易,減少外部元件數。 16個電壓輸出的任何一個都可以由內部切換,所以它們顯現出單一輸出腳位被連接到用來量測A/D轉換器。這樣將會讓設計者把D/A轉換器中的誤差移除。為移除系統誤差,必須有輸入腳位與多工器相連並允許外部電壓以相同方法被監測。(圖三)顯示典型的應用實例。
結語
運用以上所述的方法,一般是有可能降低增益與偏移誤差從數十微伏範圍到100毫100 ?V。這有明顯的優點:提供了更加準確的系統,卻毋需購買更加昂貴的D/A轉換器的花費,或者必須增加額外的元件來完成相同的工作。