數(shù)控電位器與Plcl6cxx單片機的接口技術
1x9268器件描述
1X9268是Xicor公司生產(chǎn)的,把2個E2POT數(shù)控電位器集成在單芯片的CMOS集成電路上的一種數(shù)控電位器。它包含兩個電阻陣列,每個電阻陣列包含255個電阻單元,在每個單元之間和二個端點都有可以被滑動單元訪問的抽頭點?;瑒訂卧陉嚵兄械奈恢?,由用戶通過二線串行總線接口控制。每個電阻陣列,與1個滑動端計數(shù)寄存器(WCR)和4個8位數(shù)據(jù)寄存器(R0~R3)聯(lián)系在一起,這4個數(shù)據(jù)寄存器可以由用戶直接寫入或讀出?;瑒佣擞嫈?shù)寄存器的內(nèi)容,控制滑動端在電阻陣列中的位置。
數(shù)據(jù)寄存器可以由用戶讀出和寫入。數(shù)據(jù)寄存器的內(nèi)容可以傳輸?shù)交瑒佣擞嫈?shù)寄存器,以設置滑動端的位置。當前滑動端的位置可以被傳輸?shù)脚c它相聯(lián)系的任一個數(shù)據(jù)寄存器。X9268功能方框圖如圖l所示。
2 X9268的工作原理
X9268支持雙向的定向規(guī)約,是一個從屬器件。它的高四位地址為0101,即為器件的類型辨識符,低四位地址由A3~AO輸入端的狀態(tài)來定義。在SDA線上的數(shù)據(jù),只有在SDL為低時才能改變狀態(tài)。當SCL為高時,SDA狀態(tài)的改變用來表示開始和終止條件。開始條件,SCL為高時,SDA由高到低的跳變;終止條件,SCL為高時,SDA由低到高的跳變。送給X9628的所有命令都由開始條件引導,在其后輸出X9268的從器件地址。X9268把串行數(shù)據(jù)流與該器件的地址比較,若比較成功,則作出一個應答響應。送到X9268的下一個字節(jié)包括指令及寄存器指針的信息。高四位為指令,接著二位(RB和RA)用來選擇4十寄存器中的一個,接下來的一位始終為O,最低位(PO)用來選擇2個電位器中的一個。
9條指令中的4條以發(fā)送指令字節(jié)作為結束。這些二字節(jié)指令在WCR與數(shù)據(jù)寄存器中的一個之間交換數(shù)據(jù);4條指令位三字節(jié)指令在主機與X9268之間傳輸數(shù)據(jù),其中包括主機與WCR之間傳輸數(shù)據(jù)和主機與其中的一個數(shù)據(jù)寄存器之間傳輸數(shù)據(jù);還有一條增加/減少指令。三類指令的指令序列及文字說明見圖2及表1。
X9268包括2個WCR,每個E2POT電位器各有一個,WCR可以被認為是一個8位并行和串行裝載的帶有譯碼的計數(shù)器,用來選擇電阻陣列的256選1開關。WCR是一個易失性存儲器,若斷電其內(nèi)容將失去。雖然該寄存器將在上電時自動裝入RO中的值,但必須注意這個值可能與斷電時的值不同。
每個電位器有4個非易失性數(shù)據(jù)寄存器。這些寄存器可以被主機直接讀出或?qū)懭耄覕?shù)據(jù)可以在4個數(shù)據(jù)存儲器中任一個和WCR之間傳輸。需注意的是,在這些數(shù)據(jù)寄存器中任何一個改變數(shù)據(jù)的操作都是非易失性的操作,將花去10ms的時間(最大)。
3 X9628與Plcl6cxx單片機的接口電路及程序
圖3為PIC16C72與X9628的接口電路,與此對應,給出了X9268所有命令的程序清單。在MAIN主函數(shù)中,先將40寫入E2POT#2的WCR(即滑動端位置為#40),然后將滑動端抽頭減少15個脈沖的位置,即此時WCR的值減少到25(即滑動端位置為#25)。隨后,其它命令也都是相同的過程。
程序清單見本刊網(wǎng)絡補充版www.dpj.com.cn。(單片機為P1C16C72,晶振頻率為4CMHz)
評論