国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于可編程數(shù)字電位器在AVR單片機(jī)中的應(yīng)用

發(fā)布時(shí)間:2010-8-16 11:49    發(fā)布者:lavida
1 引言  

AVR嵌入式單片機(jī)具有豐富的硬件、軟件資源,其中的串行I2C接口能滿足很多應(yīng)用場(chǎng)合的要求,兩個(gè)AVR單片機(jī)通過(guò)I2C總線直接連接就可實(shí)現(xiàn)單片機(jī)相互通信;AVR單片機(jī)還可以和任何具有I2C總線接口的外設(shè)直接連接而無(wú)須其它硬件電路支持。而X9221系列可編程數(shù)字電位器在智能測(cè)試設(shè)備上應(yīng)用非常廣泛,通過(guò)I2C總線可以簡(jiǎn)單地構(gòu)成單片機(jī)與各種外設(shè)之間乃至與計(jì)算機(jī)之間的通信,建立友好的人機(jī)界面聯(lián)系。硬件設(shè)計(jì)簡(jiǎn)單、靈活,只需要將所有設(shè)備的SDA和SCL信號(hào)線分別并聯(lián)在一起并加上拉電阻即可,有助于提高設(shè)備的自動(dòng)化水平、可靠性、穩(wěn)定性及電氣裝配的工藝性。AVR單片機(jī)和X9221系列可編程數(shù)字電位器都有內(nèi)置的E2ROM單元,可以非常方便地為用戶保留一些工藝參數(shù);X9221系列電位器0~63級(jí)的變化可以將電位器調(diào)節(jié)到手動(dòng)無(wú)法實(shí)現(xiàn)的平滑級(jí)別,調(diào)節(jié)過(guò)程中不會(huì)產(chǎn)生噪聲且壽命長(zhǎng)、不受機(jī)械振動(dòng)污染潮濕影響等。  

2 X9221系列數(shù)字電位器介紹  

2.1電氣特性及硬件結(jié)構(gòu)原理  

X9221系列電位器共有15種規(guī)格型號(hào),有雙列直插DIP20和表面貼裝SOIC20兩種封裝。電源電壓民品級(jí)、工業(yè)級(jí)為4.5~5.5V,軍品級(jí)為2.7~5.5V;一組封裝芯片內(nèi)有兩個(gè)數(shù)字電位器,參見(jiàn)圖1,X9221系列電位器封裝及引腳功能。內(nèi)置的E2ROM單元,可以在掉電時(shí)將數(shù)據(jù)很好地保存,上電時(shí)自動(dòng)加載到自己的RAM單元,電位器接口是標(biāo)準(zhǔn)的I2C總線,其中的數(shù)據(jù)寄存器可通過(guò)I2C總線進(jìn)行讀寫操作;電位器滑動(dòng)端(VW0/RW0,VW1/RW1)相當(dāng)于普通電位器中間抽頭,是無(wú)摩擦"觸點(diǎn)"。  


  
X9221系列電位器總電阻配置有3種阻值2 kΩ、10kΩ、50kΩ,用戶可根據(jù)自己的設(shè)計(jì)需求來(lái)選型。每一個(gè)芯片有A0~A3四位二進(jìn)制編程的器件地址以區(qū)分I2C總線上接入的不同外設(shè),因此,一條總線上最多可接入16個(gè)X9221器件。器件內(nèi)部有兩組類型的寄存器"DATA"和"WCR",他們的訪問(wèn)則由串行數(shù)據(jù)線上的命令字來(lái)確定。電阻陣列通過(guò)內(nèi)部編碼可以有64種狀態(tài),0~63種狀態(tài)的連續(xù)變化,相當(dāng)于電位器中心抽頭從普通電位器的一端滑動(dòng)到另一端;所有的寄存器都可以通過(guò)I2C總線進(jìn)行雙向操作,即可讀可寫。  

"在線"實(shí)時(shí)的調(diào)節(jié)電位器"中間抽頭位置"可以有3種方法:通過(guò)I2C總線向WCR寄存器寫數(shù)據(jù)(串行加載)、通過(guò)對(duì)相應(yīng)的DATA類寄存器直接寫數(shù)據(jù)(并行加載)、以及增量減量命令(下面會(huì)討論到)直接寫數(shù)據(jù);概念上電位器"中間抽頭位置"可以由"WCR"寄存器來(lái)替代,其另一類寄存器可以由"DATA"寄存器來(lái)替代。  

2.2數(shù)字電位器I2C總線時(shí)序及指令  

2.2.1一般I2C總線通信時(shí)序  

X9221系列數(shù)字電位器其接口是按標(biāo)準(zhǔn)的I2C總線設(shè)計(jì)的,因此,硬件連接非常簡(jiǎn)單,只需把串行時(shí)鐘線SCL、串行數(shù)據(jù)線SDA與之對(duì)應(yīng)相連即可。其通信完全符合I2C總線協(xié)議要求,串行時(shí)鐘線SCL、串行數(shù)據(jù)線SDA按照規(guī)定的協(xié)議產(chǎn)生一序列脈沖串,進(jìn)而完成傳輸一組數(shù)據(jù)的任務(wù)。參見(jiàn)圖2 I2C總線通信時(shí)序。  


  
X9221系列數(shù)字電位器完全以從機(jī)的身份出現(xiàn)在I2C總線上,它不可以主機(jī)的身份出現(xiàn)在I2C總線上,也就是說(shuō)對(duì)其寄存器的讀寫操作都受控于主機(jī),這一點(diǎn)一定要在硬件和軟件設(shè)計(jì)上留意。當(dāng)主機(jī)發(fā)出"START"信號(hào)后,從機(jī)(X9221A)芯片即將拉高SDA線,表明放棄數(shù)據(jù)線權(quán)限由主機(jī)控制,主機(jī)發(fā)送一個(gè)字節(jié)后再由從機(jī)(X9221A)芯片自動(dòng)拉低SDA線,表明數(shù)據(jù)收到,如果此時(shí)從機(jī)將SDA線拉不低,表明從機(jī)沒(méi)有正常接受數(shù)據(jù),主機(jī)必須啟動(dòng)下一個(gè)寫周期。可以理解為主機(jī)每發(fā)送一個(gè)字節(jié)后都會(huì)等待一個(gè)ACK回答響應(yīng)信號(hào),否則,主機(jī)認(rèn)為從機(jī)(X9221A)沒(méi)有正常接收數(shù)據(jù)。  

2.2.2 X9221指令表  

表1是X9221所有指令說(shuō)明,其中前4種指令的正常執(zhí)行需要在串行數(shù)據(jù)線上至少有3個(gè)步驟:①通過(guò)數(shù)據(jù)線寫從機(jī)地址;②寫指令;③寫數(shù)據(jù)。才能完成一個(gè)寄存器的讀或?qū)懀@4種指令適用于X9221三字節(jié)時(shí)序格式操作。如果是寫在WCR類型的寄存器中,掉電后數(shù)據(jù)丟失,寫在DATA類型的寄存器中,掉電后數(shù)據(jù)存在其中;全局轉(zhuǎn)換的4種指令的正常執(zhí)行需要在串行數(shù)據(jù)線上至少有2個(gè)步驟:①通過(guò)數(shù)據(jù)線寫從機(jī)地址、②寫指令,才能完成所有寄存器之間的數(shù)據(jù)交換,適用于X9221兩字節(jié)時(shí)序格式操作;最后一種"+/-"指令相當(dāng)于"在線"上下調(diào)節(jié)電位器中間抽頭,比較直觀,很好理解。"+/-"指令僅訪問(wèn)WCR類型寄存器,且只是寫操作,如果數(shù)據(jù)線SDA保持高電平,下一個(gè)時(shí)鐘信號(hào)SCL周期到來(lái),WCR寄存器數(shù)據(jù)"+1"。如果數(shù)據(jù)線SDA保持低電平,下一個(gè)時(shí)鐘信號(hào)SCL周期到來(lái),WCR寄存器數(shù)據(jù)"-1"。然而,不管哪種命令,只要寫DATA類型的寄存器(芯片內(nèi)的E2ROM存儲(chǔ)單元),寫操作要花費(fèi)大約10 ms時(shí)間才能完成,在設(shè)計(jì)通信軟件時(shí)一定要特別留意。  


  
3 AVR系列單片機(jī)與數(shù)字電位器硬件和軟件設(shè)計(jì)  

3.1 X9221數(shù)字電位器與AVR系列單片機(jī)硬件接口  

X9221數(shù)字電位器與AVR系列單片機(jī)硬件接口如圖3所示。硬件連接非常簡(jiǎn)單,只需將所有設(shè)備串行數(shù)據(jù)線SDA、串行時(shí)鐘線SCL相連接并接10 kΩ左右的上拉電阻即可。連接在I2C總線上的邏輯電平為"線與"邏輯關(guān)系,只要有一個(gè)設(shè)備將其拉低,總線上即出現(xiàn)低電平,當(dāng)所有設(shè)備總線都懸掛起時(shí)呈現(xiàn)高阻狀態(tài)。主機(jī)發(fā)送模式就是向其中一個(gè)外設(shè)寫入數(shù)據(jù),首先產(chǎn)生一個(gè)啟動(dòng)信號(hào)"START","START"發(fā)送成功后才向外設(shè)發(fā)送設(shè)備地址,地址發(fā)送成功后,再發(fā)送數(shù)據(jù),數(shù)據(jù)可以是1~N個(gè)字節(jié),所有數(shù)據(jù)發(fā)送完成,最后發(fā)送"STOP"完成主機(jī)寫的過(guò)程。主機(jī)接收模式也是一樣的,過(guò)程類似。對(duì)X9221來(lái)說(shuō)地址發(fā)送完成后,必須發(fā)送指令模式,告訴X9221目前將做什么,指令的含義上面已提到,指令模式后是一組數(shù)據(jù),其它過(guò)程一樣。  


  
為了使I2C總線處于正常狀態(tài),所有總線上的設(shè)備必須加電,如果有一個(gè)設(shè)備沒(méi)有加電,總線將處于不正常工作狀態(tài)。在總線上有幾個(gè)設(shè)備同時(shí)欲將發(fā)送數(shù)據(jù)時(shí),競(jìng)爭(zhēng)中某主機(jī)發(fā)現(xiàn)仲裁失敗后,應(yīng)立即回到從機(jī)狀態(tài)或放棄總線請(qǐng)求,保證獲取總線控制權(quán)的主機(jī)正常發(fā)送數(shù)據(jù);不同的主機(jī)有不同的總線時(shí)鐘頻率,通過(guò)SCL信號(hào)"線與"來(lái)保證,即高電平為高電平中最短的,低電平為低電平中最長(zhǎng)的,也就是說(shuō)協(xié)議"照顧"了速度最慢的設(shè)備;集結(jié)在總線上所有的傳送必須包含相同數(shù)目的數(shù)據(jù)包,否則,多主機(jī)系統(tǒng)中仲裁結(jié)果無(wú)法定義,這在設(shè)計(jì)上要特別注意。  

3.2 X9221數(shù)字電位器與AVR系列單片機(jī)通信軟件設(shè)計(jì)  

下面是一個(gè)通過(guò)查詢由atmega16單片機(jī)向X9221發(fā)送數(shù)據(jù)的例程,在這個(gè)例程中需要注意的是TWINT標(biāo)志利用軟件寫"1"進(jìn)行清零(清除硬件置位標(biāo)志),而當(dāng)前發(fā)送完成后由硬件自動(dòng)將TWINT標(biāo)志置"1",TWINT標(biāo)志是不能通過(guò)硬件清零的;每次通過(guò)檢查TWINT標(biāo)志判斷當(dāng)前發(fā)送是否完成,通過(guò)讀取狀態(tài)寄存器TWSR的值判斷發(fā)送的數(shù)據(jù)是否正確。  

START:  

LDI R16,$A4;設(shè)置AVR單片機(jī)I2C總線控制寄存器  

OUT TWCR,R16;軟件清除TWINT標(biāo)志W(wǎng)AIT1:  

IN R16,TWCR;讀取控制寄存器TWCR  

SBRS R16,7;等待硬件置位TWINT標(biāo)志  

RJMP WAIT1;TWINT標(biāo)志沒(méi)置位,循環(huán)檢查等待  

IN R16,TWSR;讀取狀態(tài)寄存器TWSR  

ANDI R16,$F8;屏蔽無(wú)效位  

CPI R16,$08:檢查"START"信號(hào)是否發(fā)送成功  

BRNE ERROR;"START"信號(hào)發(fā)送未成功,轉(zhuǎn)入出錯(cuò)處理  

LDI R16,$56;發(fā)送X9221器件地址56="5"器件標(biāo)識(shí),"6"器件地址  

OUT TWDR,R16  

LDI R16,$84  

OUT TWCR,R16;軟件清除TWINT標(biāo)志  

IN R16,TWSR  

ANDI R16,$F8  

CPI R16,$18;檢查X9221器件地址是否發(fā)送成功  

BRNE ERROR;X9221器件地址發(fā)送未成功,轉(zhuǎn)入出錯(cuò)處理  

LDI R16,$2F;設(shè)置所發(fā)送的數(shù)據(jù)(0~63有效,例中為47)  

OUT TWDR,R16;數(shù)據(jù)輸出到數(shù)據(jù)寄存器TWDR  

LDI R16,$84  

OUT TWCR,R16;軟件清除TWINT標(biāo)志;檢查數(shù)據(jù)"2F"是否發(fā)送完成,類似于上述循環(huán)繼續(xù)
LDI R16,$94;發(fā)送"STOP"信號(hào),一次'$2F'數(shù)據(jù)發(fā)送完成  

OUT TWCR,R16  

ERROR:···;出錯(cuò)處理過(guò)程  

END  

在此例程中,器件的地址對(duì)X9221來(lái)說(shuō)為56,其中"5"是器件本身固有的以區(qū)別于其它類型的設(shè)備,而"6"是設(shè)計(jì)硬件時(shí)規(guī)定的,可以是"0~F"任何十六進(jìn)制數(shù)值;例程中AVR單片機(jī)僅作為主機(jī)使用且向X9221發(fā)送數(shù)據(jù),其實(shí)從X9221中讀取當(dāng)前數(shù)據(jù)也是一樣的。本例程采用查詢方式,程序顯得繁瑣,但是如果采用中斷方式的話,程序就會(huì)顯得簡(jiǎn)單多,只要標(biāo)志SREG寄存器中"I"位和I2C總線控制寄存器中的"TEWIE"置"1",即中斷使能有效,當(dāng)"TWINT"標(biāo)志置"1"立即產(chǎn)生中斷請(qǐng)求,表明完成當(dāng)前數(shù)據(jù)發(fā)送完成,可以準(zhǔn)備下一個(gè)字節(jié)數(shù)據(jù)發(fā)送或停止發(fā)送等操作。  

4 X9221可編程數(shù)字電位器在半導(dǎo)體專用設(shè)備一些應(yīng)用研究  

4.1用于測(cè)量微小電壓變化  

圖4是微小電壓測(cè)量電路模型,用于芯片鍵合設(shè)備中去檢測(cè)吸頭上是否有芯片吸附以及吸頭是否堵塞、或者芯片是否丟失等現(xiàn)象。當(dāng)內(nèi)徑為大約0.1~0.15 mm的吸頭去吸附一個(gè)小芯片時(shí),如果芯片較透明,光敏傳感器檢測(cè)出來(lái)的電壓變化較小,一般在10~50 mV間;同樣當(dāng)吸頭吸附一個(gè)小芯片時(shí),氣路真空的壓力也會(huì)產(chǎn)生變化,這種壓力的變化以傳感器電壓變化輸出。為了改變電位器"中間抽頭"以便與傳感器檢測(cè)輸入電壓相匹配,計(jì)算機(jī)通過(guò)RS232接口向單片機(jī)發(fā)送數(shù)據(jù),單片機(jī)收到數(shù)據(jù)后轉(zhuǎn)發(fā)給X9221可編程數(shù)字電位器以改變基準(zhǔn)電壓值。比較基準(zhǔn)電壓U∑+按下式確定:  


  
U∑+是LM393運(yùn)放同相輸入端電壓(在這種狀態(tài)下,考慮到前級(jí)傳感器輸出基本上處于放大狀態(tài),所用傳感器電源電壓為+5 V,最高輸出電壓按3.5 V計(jì)算)  

N是0~63共64種狀態(tài)變化值,那么,當(dāng)U∑+從0~3.5 V變化時(shí),最小分辨率可以達(dá)到55 mV左右,用手工進(jìn)行一般電位器調(diào)節(jié)達(dá)到這樣的分辨率是難以掌控的。  

基準(zhǔn)電壓(即U∑+)通過(guò)機(jī)器的人機(jī)界面可以"直接調(diào)節(jié)",如果將電位器數(shù)值進(jìn)行標(biāo)定,隨時(shí)還可以看到當(dāng)前的基準(zhǔn)電壓大小。傳感器輸出電壓與基準(zhǔn)電壓比較,使電壓比較器輸出反應(yīng)當(dāng)前的狀態(tài),不同的時(shí)刻高低電平代表不同的意義,如"吸頭阻塞"、"芯片丟片"、"真空不足"等。  

4.2測(cè)量微小電流變化  

圖5是微小電流測(cè)量電路模型,用于引線鍵合設(shè)備中去檢測(cè)斷線、連線、短路等情況,被測(cè)器件是一個(gè)半導(dǎo)體元件,當(dāng)在焊盤上鍵合上一根金線時(shí),通過(guò)檢測(cè)漏電流來(lái)判斷這條金線與芯片鍵合過(guò)程中是否存在"斷線"、"連線"、"短路"等情況。計(jì)算機(jī)通過(guò)界面操作發(fā)送指令以改變X9221可編程數(shù)字電位器的阻值,進(jìn)而改變電壓源的放大倍數(shù)以改變加在被測(cè)元件的電壓,從而達(dá)到適應(yīng)不同品種的半導(dǎo)體器件性能要求。  


  
設(shè):信號(hào)源的輸出為Us,運(yùn)放LM324輸出為U0,X9221電阻為Rx,被測(cè)元件阻抗為Rz,被測(cè)元件流過(guò)的漏電流為I0,則用以下兩個(gè)表達(dá)即可表達(dá)它們之間的關(guān)系:  


  
通過(guò)主機(jī)界面改變Rx可編程電阻值,即可以改變U0,U0的改變等于改變了I0,而I0的改變等于改變了流過(guò)被測(cè)器件的最大允許電流,從而保護(hù)了被測(cè)器件不會(huì)因?yàn)闄z測(cè)漏電流而損壞,通過(guò)檢測(cè)被測(cè)器件上施加的電壓和U0之差值即可判斷漏電流大小,從而檢測(cè)金線是否與被測(cè)器件焊盤點(diǎn)鍵合上。I0是根據(jù)不同器件在工藝參數(shù)上需要經(jīng)常調(diào)節(jié)的量,以適應(yīng)不同場(chǎng)合的要求。  

5 結(jié)束語(yǔ)  

可編程數(shù)字電位器的最大優(yōu)點(diǎn)在于直接可以和帶有I2C總線單片機(jī)相連而無(wú)需特殊設(shè)計(jì),上位機(jī)可以隨機(jī)讀取電位器當(dāng)前設(shè)定值。利用它的這些優(yōu)點(diǎn),可以提高設(shè)備儀器的智能化水平,特別是在帶有I2C總線的嵌入式單片機(jī)中應(yīng)用十分靈活簡(jiǎn)單。隨著電子技術(shù)的飛速發(fā)展,人們對(duì)設(shè)備、儀器以及家用電器的追求已不再僅僅滿足功能使用上,而是在產(chǎn)品應(yīng)用的人性化上要求越來(lái)越高,由于大多數(shù)自動(dòng)化設(shè)備上,都具有友好的人機(jī)界面,人們通過(guò)計(jì)算機(jī)界面想完成所有操作,比如調(diào)節(jié)一個(gè)電位器以調(diào)節(jié)電流、電壓或者電機(jī)速度、轉(zhuǎn)矩、頻率等物理量,利用可編程數(shù)字電位器完全可以通過(guò)界面完成。適時(shí)采用可編程數(shù)字電位器不但可以降低成本、簡(jiǎn)化電路設(shè)計(jì)、提高可靠性,而且可以使設(shè)計(jì)更加人性化。另外,AVR單片機(jī)可以通過(guò)JTAG接口完成仿真調(diào)試、下載程序;片內(nèi)有FLASH和E2ROM存儲(chǔ)單元,有標(biāo)準(zhǔn)的串行接口、I2C總線接口、SPI接口增強(qiáng)了其硬件功能;支持C語(yǔ)言編程,便于掌握C語(yǔ)言者無(wú)需太多地了解硬件就能進(jìn)行一些編程。
本文地址:http://www.qingdxww.cn/thread-21484-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點(diǎn)宏來(lái)節(jié)省時(shí)間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項(xiàng)目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進(jìn)行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人三级在线播放线观看 | 在线视频日韩欧美 | 日本在线免费看片 | 三级视频在线播放 | 国产一级片免费视频 | 亚洲最大网址 | 99国内精品久久久久久久黑人 | 999成人网 | 9久热精品免费观看视频 | 久久.com| 91香蕉国产观看免费人人 | 日韩免费视频播放 | 色播艾小青国产专区在线播放 | 在线观看视频91 | 一区二区三区四区在线观看视频 | 精品视频在线免费播放 | 国产精品国产三级在线专区 | 亚洲成a人片77777老司机 | 一个人在线观看www迅雷 | 日韩2页| 有没有www动漫在线观看高清 | 国产精品永久免费 | 国产一级在线观看 | 中文字幕天堂久久精品 | 狠狠亚洲婷婷综合色香 | 绿巨人香蕉草莓向日葵 | www.四虎| 四虎最新网址入口 | 免费视频一区二区 | 国产一级大片在线观看 | 一级录像免费录像 | 亚洲视频免费在线观看 | 成人伊人亚洲人综合网站222 | 91精品综合久久久久久五月天 | 特级一级毛片免费完整版视频 | 久久精品免费观看久久 | 免费九九视频 | 在线观看 欧美 | a级成人毛片久久 | 69精品在线观看 | 亚洲国产日韩在线一区 |