新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 16位∑-Δ模數轉換器AD7705及其校準

        16位∑-Δ模數轉換器AD7705及其校準

        ——
        作者:陳勇鋼,吳伯農 (北京工業大學 機電工程學院 北京100041) 時間:2007-01-26 來源:《現代電子技術》 收藏

        1 ad7705簡介
        ad7705是ad公司推出的16位∑-δ(電荷平衡式)a/d轉換器。他包括由緩沖器和增益可編程放大器(pga)組成的前端模擬調節電路、∑-δ調制器及可編程數字濾波器等,能直接對來自傳感器的微弱信號進行a/d轉換。此外他還具有高分辨率、寬動態范圍、自校準,低功耗及優良的抗噪聲性能,因此非常適用于儀表測量和工業控制等領域。
        1.1 基本特性
        ad7705的基本特性為:16位無丟失代碼;0.003%的非線性度;pga可選擇1,2,4,8,16,32,64,128;8種增益;輸出數據更新速率可編程;具有自校準和系統校準功能,三線串行接口,可緩沖模擬輸入;低功耗。
        1.2 引腳功能
        ad7705的引腳排列如圖1所示,各引腳的功能說明如下:

        本文引用地址:http://www.104case.com/article/21018.htm

        sclk:串行時鐘輸入。
        mclk in:主時鐘輸入。時鐘頻率為500khz-5mhz。
        mclk out:主時鐘輸出。
        cs反:片選,低電平有效。
        reset反:復位。該端口為低電平時,可以將控制邏輯、接口邏輯、校準系數以及數字濾波器等復位為上電狀態;
        ain2(+)、ain2(-):分別為差分模擬輸入通道2的正、負輸入端。
        ain1(+)、ain1(-):分別為差分輸入通道1得正、負輸入端。
        ref in(+)、ref in(-):分別為參考電壓的正、負端。為了確保元件的正常工作,ref in(+)端口的輸入信號必須大于ref in(-)端的輸入。
        drdy反:邏輯輸出。低電平表示可以讀取新的數據轉換;高電平時不可讀取數據。

        idn,dout:分別為串行數據輸入和輸出端。

        1.3 片內寄存器

        ad7705共有8個片內寄存器,他們是通信寄存器、設置寄存器、時鐘寄存器、數據寄存器以及幾個測試和校準寄存器。這些寄存器的任何操作都必須先寫通信寄存器,然后才能對其他寄存器進行操作。

        (1)通信寄存器

        通信寄存器是一個8位讀/寫寄存器,寫入通信寄存器的數據決定下一次讀/寫操作在哪一個寄存器上進行,完成對所選寄存器的讀/寫操作后,該端口等待下一次寫操作,這也是通信寄存器的缺省狀態,如果在din為高電平時,寫操作持續的時間足夠長(至少32個串行時鐘周期),那么ad7705將返回該缺省狀態。

        通信寄存器中的rs2,rs1,rs0為寄存器選擇位,他們決定對哪一個寄存器進行讀/寫操作,常用的寄存器主要有通信寄存器(rs2rs1rs0=000)、設置寄存器(rs2rs1rs0=001)、時鐘寄存器(rs2rs1rs0=010)以及數據寄存器(rs2rs1rs0=011)。r/w反為讀寫選擇位。該位確定對選定寄存器進行讀還是寫操作,"0"表示寫操作,"1"表示讀操作。ch1,ch0為通道選擇位,00選擇通道1,01選擇通道2。

        (2)設置寄存器

        設置寄存器是一個8位讀/寫寄存器,其中md1,md0為工作模式選擇位,md1md0=00,01,10,11分別對應正常工作模式,自校準、零標度系統校準以及滿標度系統校準。g2,g1,g0為增益選擇位,g2g1g0=000-111分別對應1,2,4,8,16,32,64,128八種增益。

        (3)時鐘寄存器

        時鐘寄存器是一個8位讀/寫寄存器。其中clk為時鐘位。如果器件的主時鐘頻率為2.457 6mhz(clkdiv=0)或4.915 2mhz(clkdiv=1),該位置"1",如果主時鐘頻率為1mhz(clkdiv=0)或者2mhz(clkdiv=1),該位置"0",此外clk還與fs1和fs0共同選擇器件的輸出更新速率。

        (4)數據寄存器

        數據寄存器是一個16位只讀寄存器,他用來存放ad7705的最新轉換結果。這里要注意:當對ad7705進行寫操作時,ad7705期望msb(最高有效位)在前,但微控制器(如8051系列)首先輸出lsb(最低有效位),因此必須對數據進行倒序。不過同時還要注意:數據寄存器雖然是一個16位寄存器,但他由2個8位存貯單元組成,因此必須分成2個8位分別進行倒序。進行讀操作時同樣如此。

        (5)測試寄存器

        該寄存器主要用于測試,建議用戶不要隨便對其進行更改。

        (6)零標度寄存器

        (7)滿標度寄存器

        2 校準

        當環境溫度、工作電壓、增益或雙極/單極輸入范圍變化時,必須對ad7705進行校準,校準可通過對寄存器的md1和md0位編程實現,校準可去除偏置和增益誤差。

        2.1 自校準

        對于所選通道,無論使用何種校準模式,adc的片上微控制器必須記錄2個不同模擬輸入狀態的調制器輸出,也就是"零標度"和"滿標度"點。通過這些轉換,微控制器可以計算轉換器輸入/輸出轉換函數的增益斜率,元件內部通過33位分辨率決定16位的轉換結果。

        自校準模式中,adc決定內部校準點,ad7705在內部短接2個輸入端比如ain(+)=ain(-)=vref),以得到用以確定校準系系數的零標度點,只要模擬輸入引腳上的信號不超過正常范圍,他們就不會影響校準過程。而滿標度系數則可以在選定的增益下,通過輸入端施加電壓vref來確定。

        自校準可以通過寫設置寄存器中的md1和md0來實現(md1md0=01)。在該校準模式中,可以通過drdy來確定轉換何時結束且模擬輸入的轉換數據可用。校準初始化時drdy為高電平,直到外部模擬輸入的轉換結果可用時才變為低電平,校準過程必須考慮pga的增益。

        2.2 系統校準

        系統校準通過寫設置寄存器中的md1和md0來實現,他分2步完成,可補償系統增益、偏移以及器件內部誤差。在選定的增益下,先后在外部給ain(+)端施加零標度電壓和滿標度電壓,分別校準零標度點(md1md0=10)和滿標度點(md1md0=11)。根據零標度和滿標度校準的數據,片內微控制器計算出轉換器的輸出/輸出轉換函數的偏移和增益斜率,對誤差進行補償。在單極性模式下,系統校準在轉換函數的零標度和滿標度之間完成;在雙極性模式下,標準在中點電壓(零差分電壓)和正的滿標度電壓之間完成。

        2.3 現場校準

        系統校準作為工廠校準的一部分,實現起來并不困難,然而由于校準過程中必須在2個模擬輸入端施加系統零標度和滿標度電壓,而現場的2種標度電壓并不容易確定,因此現場的系統校準實現起來要麻煩得多。這樣一來,用戶在進行工廠系統校準后,還必須考慮如何消除由現場溫度變化所延期的adc漂移誤差。下面就介紹一種解決該問題的方法,他包括工廠校準和現場校準2個部分。

        (1)工廠校準

        在選定增益和輸出更新速率下,進行自校準;
        讀取并存儲校準寄存器內容,令偏移=z0,增益=g0;
        在選定增益和輸出更新速率下,進行系統校準;
        讀取并存儲校準寄存器內容,令偏移=zs,增益=gs,將系統校準系統加載到adc中,便可在現場使用該系統。
        如果環境溫度變化,可以遵照以下方法對偏移和增益漂移進行校準。

        (2)現場校準

        在選定增益和輸出更新速率下,進行自校準,這里要注意:增益和輸出更新速率必須跟前面的自校準和系統校準保持一致;
        讀取校準寄存器內容,令偏移=z1,增益=g1;
        計算新的校準系數:zn=zs+(z1-z0)
        gn=zs×(g1/g0)
        將zn與gn寫入校準寄存器。
        該方法不僅保留了初始的系統校準,又對系統進行了調整,這樣便可消除adc中由溫度漂移引起的誤差。不過該方法也只能消除由adc引起的漂移誤差,對于由模擬前端信號鏈引起的漂移誤差則不起作用。

        2.4 手動校準

        在校準過程中,當輸入范圍不是正常輸入范圍時,校準過程中不能通過零標度和滿標度電壓進行系統校準,這時便可通過認為改變校準系數來解決該問題。下面便介紹如何改變系數,來適應輸入范圍不是0-vref(±vref)時的情況,首先,應該針對適當的增益,輸入范圍、更新速率以及選擇的單/雙輸入模式,使用自校準程序進行校準。然后根據自校準得到的系數,計算出新的系數。

        例如,如果所需電壓vin表述如下:
        vin=a×vref+b
        式中b為偏移電壓,a×vref為輸入間距。當短接輸入端進入零標度校準,且施加vref進行滿標度校準時,a=1,b=0,當輸入范圍不是0-vref(±vref)時,可以遵照下面的步驟進行處理:首先減去偏移b,這樣便可以在模擬輸入電壓為b時得到0代碼,然后通過a×vref來調整輸入范圍,這樣輸入vin便可得到滿標度代碼。
        手動校準過程大致如下:首先進行自校準,并讀取校準系數,定義z0=零標度系數,f0=滿標度系數,接下來便可將z0和f0代入下面的公式,求出適用于新的輸入范圍的新系數:
        zn=z0+(b×220/(span×f0/224))
        fn=f0/a
        式中,span為正常情況下的滿標度電壓間距,單極模式下等于vref/增益,雙極模式下等于2×vref/增益,b為偏移電壓(單位:v),a為相對于正常間距的縮放因子,為了確保元件正常工作,a的值必須位于0.8-1.05之間,至此,將zn和fn寫入校準寄存器,器件便可繼續進行a/d轉換。
        下面通過具體的實例進行說明,假如器件使用單極模式,自校準后ad7705的零標度系數為2 165 373,滿標度系數為5 416 211,由于使用單極模式,因此用作校準的電壓范圍為0-vref,當使用5v電壓時,vref等于2.5v,如果用戶所需模擬輸入范圍為0.2-2.6v,那么,b=0.2,而a=(2.6-0.2)/2.5=0.96,這樣便可求出新的標度系數zn和fn:
        zn=2 165 373×(0.2×220/(2.5×5 416 211/224))=2 425 218
        fn=5 416 211/0.96=5 641 886
        這里需要說明的是,只有當用戶清楚地了解期望輸入范圍的上、下限以及實際輸入間距與正常輸入間距之比時,才能使用這種方法。
        使用該方法時,如果用戶能確保變量a位于0.8-1.05之間,那么ad7705能夠滿足數據手冊中的噪聲要求。例如,在單極模式中,當電壓為5v,更新速率為50hz,增益為1時,ad7705的rms噪聲為4.1μv,其信號范圍為0-2.5v。在上例中,將輸入范圍改為0.2-2.5v。如果操作條件(更新速率、增益等)不變,那么噪聲仍為4.1μv。使用前一輸入范圍時,取整后的峰-峰分辨率為log(2.5v/6.6×4.1μv)/log 2=16位,而更改后的峰-峰分辨率為log(2.4v/6.6×1.5μv)/log2=16位,他同樣也進行了取整。

        2.5 校準頻度

        校準的頻繁程度通常由以下幾個因素決定:

        (1)轉換器所需的精度;
        (2)漂移特性對adc性能的影響;
        (3)系統的工作溫度。

        當然還有其他一些因素也會對其產生影響,比如熱電偶的影響及增益漂移等。
        通常,所需的精度越高,校準就越頻繁,進行校準后,高分辨率的轉換器將會附帶一些偏移與增益漂移誤差,比如,ad7705由溫度引起的偏移為0.5μv/℃。因此為了提高精度,有時也必須考慮寄生電偶的溫度效應以及器件外部的漂移源等。

        模數轉換器相關文章:模數轉換器工作原理


        電荷放大器相關文章:電荷放大器原理


        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 辽源市| 盐亭县| 都兰县| 高唐县| 神农架林区| 开鲁县| 防城港市| 青田县| 潞西市| 龙游县| 衢州市| 万源市| 历史| 微博| 武邑县| 台中市| 毕节市| 资讯 | 格尔木市| 石屏县| 麦盖提县| 平安县| 伊宁市| 合川市| 博白县| 青岛市| 永嘉县| 安国市| 时尚| 新津县| 天长市| 哈密市| 兰溪市| 岗巴县| 射阳县| 公安县| 和政县| 磴口县| 峡江县| 吴川市| 赞皇县|