《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 電源技術(shù) > 設(shè)計(jì)應(yīng)用 > 高分辨率數(shù)字電位器的軟件實(shí)現(xiàn)
高分辨率數(shù)字電位器的軟件實(shí)現(xiàn)
摘要: 與機(jī)械電位器相比,,數(shù)字電位器有許多優(yōu)點(diǎn)。但是在有些應(yīng)用場(chǎng)合,,數(shù)字電位器的分辨率往往達(dá)不到設(shè)計(jì)要求,,通常最大抽頭數(shù)為1 024。以X9241為例,,內(nèi)部包括一個(gè)I2C接口和4個(gè)64抽頭的數(shù)字電位器,,可獨(dú)立使用,也可串聯(lián)使用,,如按常規(guī)方法使用,,其分辨率較低,即使4個(gè)電位器串聯(lián),,也只能達(dá)到256個(gè)抽頭,。本文提出了一種軟件、硬件結(jié)合的方法,,可使電位器的中間抽頭數(shù)達(dá)到8 001個(gè),,分辨率達(dá)到O.008%。
Abstract:
Key words :

  引 言

  與機(jī)械電位器相比,,數(shù)字電位器" title="數(shù)字電位器">數(shù)字電位器有許多優(yōu)點(diǎn),。但是在有些應(yīng)用場(chǎng)合,數(shù)字電位器的分辨率往往達(dá)不到設(shè)計(jì)要求,,通常最大抽頭數(shù)為1 024,。以X9241" title="X9241">X9241為例,內(nèi)部包括一個(gè)I2C接口和4個(gè)64抽頭的數(shù)字電位器,,可獨(dú)立使用,,也可串聯(lián)使用,如按常規(guī)方法使用,,其分辨率較低,,即使4個(gè)電位器串聯(lián),也只能達(dá)到256個(gè)抽頭,。本文提出了一種軟件,、硬件結(jié)合的方法,可使電位器的中間抽頭數(shù)達(dá)到8 001個(gè),分辨率達(dá)到O.008%,。

  1 設(shè)計(jì)原理

  1.1 基本原理

  高分辨率" title="高分辨率">高分辨率數(shù)字電位器POT由4個(gè)電位器組成,,如圖1所示,4個(gè)數(shù)字電位器POT0,、POT1,、POT2、POT3均為64抽頭數(shù)字電位器,。POTO,、 POT3的固定端并聯(lián),滑動(dòng)端分別接POT12的固定端,。POT12由POT1,、POT2串聯(lián),組成一個(gè)127抽頭的電位器,。4個(gè)獨(dú)立電位器阻值相等,,可根據(jù)需要選取。高分辨率數(shù)字電位器的固定端為VH,、VL,,滑動(dòng)端為VW,VW由POT1,、POT2的2個(gè)滑動(dòng)端并連。

高分辨率數(shù)字電位器POT由4個(gè)電位器組成

  假設(shè)POT0,、POT1,、POT2、POT3,、POT12的滑動(dòng)端位置分別為x0,、x1、x2,、x3,、y,POT的滑動(dòng)端位置為z,。

  現(xiàn)采取以下控制策略:

 ?、偃鬚OT3的滑動(dòng)端位置為x,則POTO的滑動(dòng)端位置同步調(diào)節(jié)到x+1,,即兩電位器始終保持1的間隔,,相當(dāng)于粗調(diào)節(jié);

 ?、谡{(diào)節(jié)POTl2滑動(dòng)端位置y,,相當(dāng)于把間隔為1的區(qū)間再細(xì)分若干等分,即細(xì)調(diào)節(jié)。

  采用等校電路法,,可得到z與x,、y的關(guān)系。

  設(shè)VL,、VH端電位分別為0,、U,滑動(dòng)端電位為UW,,根據(jù)電學(xué)公式可得:

公式

  其中,,U0W、U1W分別為POT1,、POT1滑動(dòng)端輸出電位,,并加到POT12的兩個(gè)固定端。

  由式(1),、式(2)推出式(3),,得VW端輸出電位。

公式

  即電位器POT的滑動(dòng)端相對(duì)于VL的電阻阻值為:

公式

  若規(guī)定z的步進(jìn)增量為1,,則有:

公式

  其中,,R為電位器固定端的阻值,x的取值范圍為0~62,,y的取值范圍為0~127,。z的取值范圍為0~8 001。分辨率為O.008%,,中間抽頭數(shù)為8 001個(gè),。

  因?yàn)閤、y,、z均為整數(shù),,所以有:

公式

  即x為z/127的取整,y為z/127的取余,。

  1.2 控制算法

  式(5),、(6)即為實(shí)現(xiàn)高分辨率數(shù)字電位器的基本公式。為了軟件設(shè)計(jì),,還必須建立POT的中間抽頭位置z與POT0,、POT1、POT2,、POT3的中間抽頭位置的關(guān)系,。

  根據(jù)圖1可知:

公式

串聯(lián)電位器滑動(dòng)端禁止控制

公式

  2 硬件電路

  2.1 X9241數(shù)字電位器

  X9241是Xicor公司生產(chǎn)的數(shù)字電位器,內(nèi)部包括1個(gè)I2C接口和4個(gè)64位數(shù)字電位器POTO,、POT1,、POT2,、POT3。每個(gè)數(shù)字電位器由電阻陣列及與之對(duì)應(yīng)的滑動(dòng)端計(jì)數(shù)寄存器WCR,、4個(gè)位數(shù)據(jù)寄存器R0~R3等部分構(gòu)成,。其引腳配置如圖3所示。

X9241引腳配置

  每個(gè)電位器由63個(gè)電阻段組成,,每個(gè)電阻陣列的物理終端等效于機(jī)械電位器的固定端(VH,、VL)。每個(gè)陣列的VH和VL以及每個(gè)電阻段之間的接點(diǎn)(即抽頭)通過(guò)FET開(kāi)關(guān)連接滑動(dòng)輸出端,,而滑動(dòng)端在電阻陣列中的位置由從WCR控制,。其中,VW,、VW1,、VW2、VW3分別為4個(gè)電位器的滑動(dòng)端,,VL0,、 VL1、VL2,、VL3分別為4個(gè)電位器的低端,、VH0、VH1,、VH2,、VH3分別為4個(gè)電位器的高端。如果將4個(gè)電阻陣列中的2個(gè),、3個(gè)或4個(gè)串聯(lián),,可構(gòu)成127、190或253抽頭的數(shù)字電位器,。芯片采用I2C總線接口,SDA,、SCL分別為串行數(shù)據(jù)和串行時(shí)鐘,。A0~A3為芯片地址設(shè)置位。

  X9241提供了把陣列串聯(lián)起來(lái)的方法,,可以把1個(gè)陣列的63個(gè)電阻元件與1個(gè)相鄰陣列的電阻元件串聯(lián)起來(lái),。其控制位在3字節(jié)的指令中,其數(shù)據(jù)字節(jié)包括用來(lái)定義滑動(dòng)端位置的6位(LSB)加上高2位:CM(串聯(lián)方式)和DW(禁止滑動(dòng)端),。數(shù)據(jù)字節(jié)如下所示:

數(shù)據(jù)字節(jié)

  2.2 電路設(shè)計(jì)

  根據(jù)圖1的設(shè)計(jì)原理和圖3的引腳配置圖,,可實(shí)現(xiàn)高分辨率數(shù)字電位器的電路設(shè)計(jì),如圖4所示,。

高分辨率數(shù)字電位器的電路設(shè)計(jì)

 ?、賁DA、SCL是I2C總線的串行數(shù)據(jù)和串行時(shí)鐘,與單片機(jī)的I/O線相連,,單片機(jī)是主器件,,X9241是從器件,器件地址為:

  0 1 0 1 A3 A2 A1 A0

  高4位固定,,低4位由A3~A0的接線方式所決定,,按照?qǐng)D4電路的接線方式,X9241的從地址為50H,。

 ?、跒榱颂岣呔€性度,可在VW0與VL1之間加入1級(jí)運(yùn)算放大器組成的跟隨器,,VW3與VH2之間也加入1級(jí),。其改進(jìn)電路如圖5所示。

改進(jìn)電路

  3 程序設(shè)計(jì)

  3.1 讀寫(xiě)單個(gè)數(shù)字電位器函數(shù)設(shè)計(jì)

  根據(jù)X9241的指令結(jié)構(gòu)和控制時(shí)序,,可以編寫(xiě)讀寫(xiě)單個(gè)數(shù)字電位器的程序,。

  (1)改變電位器中間抽頭命令(寫(xiě)WCR)時(shí)序以寫(xiě)電位器POT0為例,把電位器0的中間抽頭WCR設(shè)置為20H(X9241每個(gè)電位器的最大抽頭數(shù)是 64,,即有效值小于63),。命令控制字為101000000B,即AOH,;若在電路中AOA1A2A3均接低電平,,則器件地址為01010000B,即 50H,。其命令序列如下:

 

  Start→發(fā)送地址50H→Ack→發(fā)送命令字A0H→ACK→發(fā)送20H→ACK→Stop,。

  (2)讀電位器中間抽頭位置命令(讀WCR)時(shí)序以讀電位器POT1為例,把電位器1的中間抽頭WCR位置值讀回,。命令控制字為100100000B,,即90H;若在電路中AOA1A2A3均接低電平,,則器件地址為01010000B,,即50H。其命令序列如下:

  Start→發(fā)送地址50H→Ack→發(fā)送命令字90H→ACK→接收1個(gè)字節(jié)→ACK→Stop,。

  3.2 主函數(shù)設(shè)計(jì)

  本函數(shù)的功能是把設(shè)計(jì)的數(shù)字電位器POT的中間抽頭位置z轉(zhuǎn)換為4個(gè)獨(dú)立數(shù)字電位器POT0~POT3的中間抽頭位置寄存器WCR的值x0~x3,,同時(shí)控制POT1、POT2的控制位CM和DW,,如圖6所示,。

4個(gè)獨(dú)立數(shù)字電位器控制的程序流程圖

  在流程圖中,當(dāng)y<64時(shí),,POT12(由POT1和POT2串聯(lián))的中間抽頭位置在POT2范圍內(nèi),,所以POT1的中間抽頭失效,,即置DM1=1;當(dāng)y≥64時(shí),,POT12的中間抽頭位置在POT1范圍內(nèi),,所以POT2的中間抽頭失效,即置DM2=1,。

  結(jié) 語(yǔ)

  采用軟硬件協(xié)同的方法,,能以較低的成本實(shí)現(xiàn)高分辯率數(shù)字電位器的設(shè)計(jì)。同一芯片中4個(gè)數(shù)字電位器的良好匹配和電壓跟隨器的應(yīng)用,,使設(shè)計(jì)的數(shù)字電位器具有更好的線性度,。在實(shí)際應(yīng)用中,為了提高帶負(fù)載能力,,需要在滑動(dòng)輸出端接一輸出緩沖器,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。