軟件實現(xiàn)高分辨率的非易失性數(shù)字電位器的方法
巧妙的利用軟件編程,將x9241內(nèi)部的四個64抽頭數(shù)字電位器組成一個高分辨率低成本的數(shù)字電位器
本文引用地址:http://www.biyoush.com/article/20619.htm
數(shù)字電位器(dcp)是專為替代傳統(tǒng)機械電位器、可變電阻器而設(shè)計的新型集成電路。其通過i2c、spi以及cs,u/d,inc三線方式與mcu接口,可實現(xiàn)應(yīng)用程控調(diào)節(jié),也有按鈕控制方式,從而實現(xiàn)與傳統(tǒng)機械電位器或可變電阻器相同的電位、電阻調(diào)節(jié)功能的特殊集成電路。與傳統(tǒng)機械電位器相比,數(shù)字電位器具有數(shù)字調(diào)節(jié)、長壽命、易于裝配、節(jié)省空間、不受振動影響等突出優(yōu)點,已被廣泛應(yīng)用于醫(yī)用設(shè)備、儀器儀表、工業(yè)控制、計算機、家用電器、手機、數(shù)碼產(chǎn)品等各個領(lǐng)域。
在有些應(yīng)用中,如激光二極管的動態(tài)偏置調(diào)節(jié),使用數(shù)字電位器或者微調(diào)dac來控制電壓,就受到了分辨率、接口、成本的限制。為了解決這類問題,我們將在這里介紹使用低分辨率(64抽頭)、低成本的intersil(xicor)公司i2c總線控制數(shù)字電位器x9241組成一個高分辨率(8001抽頭)的數(shù)字電位器的解決方法。
實現(xiàn)高分辨率的原理
我們假設(shè)有三個數(shù)字電位器,pot1和pot2為64抽頭dcp,pot3為128抽頭dcp,其中pot1和pot2用作pot3的vh和vl的設(shè)置,并且必須保證pot1和pot2始終為“1”個位置間隔,那么就有63種不同的電壓間隔施加到pot3上。理論上,當(dāng)pot3在特殊電壓抽頭127和下一個電壓間隔的抽頭0之間跳動時,應(yīng)該還有一個多余的抽頭位置,但是這些抽頭不是多余的,它們的作用可以改善輸出的線性度,因為在相鄰的兩個電壓間隔中的抽頭0和抽頭127的電壓是一樣的。對于63個不同間隔的每一個,又借助127個不同的輸出,就會有8001(63×127=8001)個不同的vw輸出可以在vh和vl之間獲得。圖1就是說明的這個概念。

intersil(xicor)公司的x9241把四個非易失性數(shù)字電位器集成在一個單片cmos微電路中,它的功能框圖如圖2。x9241包含四個電阻陣列,每個陣列包含63個電阻單元。在每個單元之間和兩個端點都有可以被滑動單元訪問的抽頭點?;瑒訂卧陉嚵兄械奈蛔佑捎脩敉ㄟ^i2c總線控制。每個電阻陣列與一個滑動端計數(shù)寄存器(wcr)和四個8位數(shù)據(jù)寄存器聯(lián)系在一起,四個數(shù)據(jù)寄存器和滑動端計數(shù)寄存可以由用戶直接寫入和讀出?;瑒佣擞嫈?shù)寄存器的內(nèi)容控制滑動端在電阻陣列中的位置。數(shù)據(jù)寄存器的內(nèi)容可以傳輸?shù)交瑒佣擞嫈?shù)寄存器以設(shè)置滑動端位置,當(dāng)前滑動端的位置也可以傳輸?shù)饺魏闻c之聯(lián)系的數(shù)據(jù)寄存器中。滑動端計數(shù)寄存器是易失性的,器件上電時,滑動端計數(shù)寄存器自動的裝入數(shù)據(jù)寄存器0(r0)中的值。四個數(shù)據(jù)寄存器是非易失性的,如果在應(yīng)用中不需要對電位器有多種設(shè)置保存時,可以用作通用存儲單元,用來保存系統(tǒng)參數(shù)或用戶數(shù)據(jù)。


x9241極適用于這個任務(wù),因為其內(nèi)部正好有四個獨立的dcp,并且有相鄰dcp串聯(lián)的機制,而且其采用i2c總線控制接口,抽頭位置可以在軟件中直接改變而不需要通過每個中間位置轉(zhuǎn)換。
圖4是使用x9241u(49.37k、49.38k、49.32k、49.24k)器件對電路進(jìn)行測試得到的相鄰抽頭之間的典型結(jié)果。大圖表示每個抽頭的滑動端電壓占所加總電壓的百分比,其中插圖為相鄰抽頭之間的分辨率占所加總電壓的百分比。

為了方便理解實現(xiàn)控制的細(xì)節(jié),我們提供了c語言源代碼(代碼由xicor公司提供,我們做了一定的修改)。用戶只需要自己再編寫適用于不同單片機的i2c硬件接口函數(shù)(函數(shù)名稱同程序中介紹一致),在應(yīng)用程序中加入我們提供的源代碼,簡單的調(diào)用程序中介紹的5個函數(shù),就可以方便地實現(xiàn)dcp的高分辨率控制。
關(guān)于x9241實現(xiàn)高分辨率的軟件源代碼,工程師可到http://www.icbase. com/download/x9241.c去下載。
光敏電阻相關(guān)文章:光敏電阻工作原理
評論