X9241數(shù)字電位器的原理及在DSP中的應(yīng)用
1 x9241概述
本文引用地址:http://m.butianyuan.cn/article/21565.htmx9241是xicor公司生產(chǎn)的一種集成數(shù)字電位器。它在單一芯片上集成了4個(gè)10kω?cái)?shù)字電位器,每個(gè)電位器的滑動(dòng)端共有64個(gè)離散的調(diào)節(jié)節(jié)點(diǎn),并有4個(gè)8bit的e2prom數(shù)據(jù)寄存器以及一個(gè)滑刷控制寄存器(wcr)。用戶可以通過相應(yīng)指令使電位器的wcr(滑刷控制寄存器)與某個(gè)數(shù)據(jù)寄存器相關(guān)聯(lián),也可以直接控制wcr以達(dá)到改變電位器滑動(dòng)端位置的目地。x9241芯片具有i2c總線接口,可以實(shí)現(xiàn)寄存器映射、改變滑刷位置以及進(jìn)行電位器級(jí)聯(lián)等操作。x9241采用20引腳雙列直插封裝,其引腳排列如圖1所示。其中vwi(i=0~3)為四個(gè)獨(dú)立的10kω電位器的滑動(dòng)端;vli(i=0~3)分別為四個(gè)電位器的兩個(gè)終端;a3,a2,a1,a0為x9241芯片的設(shè)備地址;scl,sda分別為i2c接口的串行時(shí)鐘和串行數(shù)據(jù)線。x9241的工作電壓為5v。
1.1 x9241的內(nèi)部結(jié)構(gòu)
x9241的內(nèi)部結(jié)構(gòu)如圖2所示,從圖中可以看出,一個(gè)x9241芯片內(nèi)含有:i2c總線接口、sda串行數(shù)據(jù)線、scl串行時(shí)鐘線以及4個(gè)pot(電位器)。每個(gè)pot
有4個(gè)8bit的e2prom數(shù)據(jù)寄存器和一個(gè)wcr滑刷控制寄存器。
1.2 x9241的控制方式
需要說明的是,雖然x9241具有i2c總線接口,但由于x9241采用特殊的3字節(jié)指令結(jié)構(gòu),而普通i2c硬件都是雙字節(jié)格式。因此最好采用軟件模擬i2c總線時(shí)序。
1.3 x9241的主要參數(shù)
x9241的主要性能參數(shù)如下:
sck,scl或其它地址輸入端相對(duì)于vss的電壓為-1~+7v;
vh或vl相對(duì)于vss的電壓范圍為±8v;
△v=|vh-vl|為16v;
x9241工作電壓范圍為5v+10%。
因?yàn)関h或vl相對(duì)于vss的電壓范圍是±8v,所以x9241可以不受數(shù)字電路0~+5v電源窗口的制約而廣泛地應(yīng)用于各種具有正負(fù)電源的模擬電路之中。
2 x9241的指令字格式
x9241的讀/寫指令均由三段組成(如圖3所示),每段均有一個(gè)字節(jié):第一段為從屬設(shè)備地址;第二段為指令字節(jié);第三段為數(shù)據(jù)。
第一字段的前4位為設(shè)備類型標(biāo)識(shí),對(duì)于x9241,其固定值為0101,后4位是設(shè)備地址(a3,a2,a1,a0),這4位的0,1取值取決于芯片上的a3-a0引腳是接gnd還是接vcc。第二字段描述了操作類型和操作對(duì)象。其中前4位是指令代碼i3~i0,后4位是操作對(duì)象p1、p0和r1、r0。其中p1,p0是4個(gè)電位器的選擇編碼,r1,r0是每個(gè)電位器的4個(gè)寄存器的選擇編碼。x9241的指令集如表1所列。表中的1/0表示數(shù)據(jù)為1或0,n/a為無效位。
第三字段是8bits的數(shù)據(jù)段,它的前兩位cm、dw是控制位,其中cm是級(jí)聯(lián)模式控制位,當(dāng)cm為0時(shí),為正常模式,當(dāng)cm為1時(shí),該電位器與序號(hào)比它高一級(jí)的電位器級(jí)聯(lián)。比如,若wcr2的cm為1,表示電位器2就與電位器3級(jí)聯(lián)。dw是電位器滑動(dòng)端使能控制位。當(dāng)dw為0時(shí),為正常模式,當(dāng)dw為1時(shí),該電位器的滑動(dòng)端失效,即滑動(dòng)端處于絕緣懸浮狀態(tài)。cm和dw配合使用可以實(shí)現(xiàn)電位器的級(jí)聯(lián),并可保證級(jí)聯(lián)電位器在滑動(dòng)時(shí)只有一個(gè)有效滑動(dòng)端。
x9241的三字節(jié)指令序列傳輸示意圖如圖4所示,x9241還有一種遞增/遞減的控制方式,由于不常用,在此不再陳述。一個(gè)完整的x9241讀/寫時(shí)序包括以下幾個(gè)部分:
(1)起始位。以scl為高電平,sda出現(xiàn)下跳沿為起始標(biāo)志;
(2)傳送x9241的從屬設(shè)備地址字段;
(3)接收x9241返回的ack(應(yīng)答)信號(hào),它是在scl為高電平期間,sda線上為低電平的狀態(tài);
(4)向x9241傳送指令字段;
(5)接收x9241返回的ack信號(hào);
(6)如果是‘寫’方式,則向x9241發(fā)送8bit數(shù)據(jù)。并接收ack信號(hào);如果是‘讀’方式,則準(zhǔn)備接收x9241將要返回的8bit數(shù)據(jù),并在接收完成后,向x9241發(fā)送ack信號(hào);
(7)停止位。以scl為高電平,sda出現(xiàn)上跳沿為i2c傳輸?shù)耐V箻?biāo)志。
3 在tms320f206型dsp中的應(yīng)用
圖5是筆者在氨氮傳感器中使用x9241的部分電路示意圖。在這個(gè)電路中,用x9241上的pot0和pot3代替原模擬電路中的兩個(gè)10kω機(jī)械電位器來完成調(diào)整倍率和零點(diǎn)的任務(wù)。dsp的i/o2,i/o3分別連接到scl和sda端口上。該電路中,x9241的a3獳0均接地,所以它的設(shè)備地址是0000。因此在對(duì)這個(gè)芯片的電位器進(jìn)行讀/寫操作時(shí),第一字段應(yīng)當(dāng)是01010000,即50h(dsp的十六進(jìn)制數(shù))。
圖6和圖7分別是用io2和io3模擬i2c總線時(shí),對(duì)x924進(jìn)行讀、寫的子程序流程圖。
使用數(shù)字電位器的主要優(yōu)勢(shì)是定位精度高,不受機(jī)械震動(dòng)影響,并可以通過程控來實(shí)現(xiàn)半自動(dòng)化調(diào)節(jié)。另外,由于數(shù)字電位器的vh、vl電壓窗口較寬,因而能在許多場(chǎng)合取代機(jī)械模擬電位器。使用數(shù)字電位器的缺點(diǎn)是不能連續(xù)調(diào)節(jié)。由于每個(gè)數(shù)字電位器只有64檔,所以對(duì)于離散多檔位調(diào)節(jié)場(chǎng)合,用數(shù)字電位器很方便。而在需要連續(xù)調(diào)節(jié)的場(chǎng)合,似乎不如連續(xù)可調(diào)的模擬電位器方便。但是設(shè)計(jì)時(shí)可以采取以下方法進(jìn)行補(bǔ)償:
(1)多芯片級(jí)聯(lián)使用,以增加有效檔位;
(2)兩個(gè)數(shù)字電位器配合使用,一個(gè)作為粗調(diào),一個(gè)作為細(xì)調(diào),兩者搭配,可以得出許多種適合不同需要的組合。
光敏電阻相關(guān)文章:光敏電阻工作原理
評(píng)論