可編程數字電位器與AVR單片機的通信說明
START:
LDI R16,$A4;設置AVR單片機I2C總線控制寄存器
OUT TWCR,R16;軟件清除TWINT標志WAIT1:
IN R16,TWCR;讀取控制寄存器TWCR
SBRS R16,7;等待硬件置位TWINT標志
RJMP WAIT1;TWINT標志沒置位,循環檢查等待
IN R16,TWSR;讀取狀態寄存器TWSR
ANDI R16,$F8;屏蔽無效位
CPI R16,$08:檢查"START"信號是否發送成功
BRNE ERROR;"START"信號發送未成功,轉入出錯處理
LDI R16,$56;發送X9221器件地址56="5"器件標識,"6"器件地址
OUT TWDR,R16
LDI R16,$84
OUT TWCR,R16;軟件清除TWINT標志
IN R16,TWSR
ANDI R16,$F8
CPI R16,$18;檢查X9221器件地址是否發送成功
BRNE ERROR;X9221器件地址發送未成功,轉入出錯處理
LDI R16,$2F;設置所發送的數據(0~63有效,例中為47)
OUT TWDR,R16;數據輸出到數據寄存器TWDR
LDI R16,$84
OUT TWCR,R16;軟件清除TWINT標志;檢查數據"2F"是否發送完成,類似于上述循環繼續
.
.
LDI R16,$94;發送"STOP"信號,一次'$2F'數據發送完成
OUT TWCR,R16
ERROR:···;出錯處理過程
END
在此例程中,器件的地址對X9221來說為56,其中"5"是器件本身固有的以區別于其它類型的設備,而"6"是設計硬件時規定的,可以是"0~F"任何十六進制數值;例程中AVR單片機僅作為主機使用且向X9221發送數據,其實從X9221中讀取當前數據也是一樣的。本例程采用查詢方式,程序顯得繁瑣,但是如果采用中斷方式的話,程序就會顯得簡單多,只要標志SREG寄存器中"I"位和I2C總線控制寄存器中的"TEWIE"置"1",即中斷使能有效,當"TWINT"標志置"1"立即產生中斷請求,表明完成當前數據發送完成,可以準備下一個字節數據發送或停止發送等操作。
4 X9221可編程數字電位器在半導體專用設備一些應用研究
4.1用于測量微小電壓變化
圖4是微小電壓測量電路模型,用于芯片鍵合設備中去檢測吸頭上是否有芯片吸附以及吸頭是否堵塞、或者芯片是否丟失等現象。當內徑為大約0.1~0.15 mm的吸頭去吸附一個小芯片時,如果芯片較透明,光敏傳感器檢測出來的電壓變化較小,一般在10~50 mV間;同樣當吸頭吸附一個小芯片時,氣路真空的壓力也會產生變化,這種壓力的變化以傳感器電壓變化輸出。為了改變電位器"中間抽頭"以便與傳感器檢測輸入電壓相匹配,計算機通過RS232接口向單片機發送數據,單片機收到數據后轉發給X9221可編程數字電位器以改變基準電壓值。比較基準電壓U∑+按下式確定:
U∑+是LM393運放同相輸入端電壓(在這種狀態下,考慮到前級傳感器輸出基本上處于放大狀態,所用傳感器電源電壓為+5 V,最高輸出電壓按3.5 V計算)
N是0~63共64種狀態變化值,那么,當U∑+從0~3.5 V變化時,最小分辨率可以達到55 mV左右,用手工進行一般電位器調節達到這樣的分辨率是難以掌控的。
基準電壓(即U∑+)通過機器的人機界面可以"直接調節",如果將電位器數值進行標定,隨時還可以看到當前的基準電壓大小。傳感器輸出電壓與基準電壓比較,使電壓比較器輸出反應當前的狀態,不同的時刻高低電平代表不同的意義,如"吸頭阻塞"、"芯片丟片"、"真空不足"等。
4.2測量微小電流變化
圖5是微小電流測量電路模型,用于引線鍵合設備中去檢測斷線、連線、短路等情況,被測器件是一個半導體元件,當在焊盤上鍵合上一根金線時,通過檢測漏電流來判斷這條金線與芯片鍵合過程中是否存在"斷線"、"連線"、"短路"等情況。計算機通過界面操作發送指令以改變X9221可編程數字電位器的阻值,進而改變電壓源的放大倍數以改變加在被測元件的電壓,從而達到適應不同品種的半導體器件性能要求。
設:信號源的輸出為Us,運放LM324輸出為U0,X9221電阻為Rx,被測元件阻抗為Rz,被測元件流過的漏電流為I0,則用以下兩個表達即可表達它們之間的關系:
通過主機界面改變Rx可編程電阻值,即可以改變U0,U0的改變等于改變了I0,而I0的改變等于改變了流過被測器件的最大允許電流,從而保護了被測器件不會因為檢測漏電流而損壞,通過檢測被測器件上施加的電壓和U0之差值即可判斷漏電流大小,從而檢測金線是否與被測器件焊盤點鍵合上。I0是根據不同器件在工藝參數上需要經常調節的量,以適應不同場合的要求。
5 結束語
可編程數字電位器的最大優點在于直接可以和帶有I2C總線單片機相連而無需特殊設計,上位機可以隨機讀取電位器當前設定值。利用它的這些優點,可以提高設備儀器的智能化水平,特別是在帶有I2C總線的嵌入式單片機中應用十分靈活簡單。隨著電子技術的飛速發展,人們對設備、儀器以及家用電器的追求已不再僅僅滿足功能使用上,而是在產品應用的人性化上要求越來越高,由于大多數自動化設備上,都具有友好的人機界面,人們通過計算機界面想完成所有操作,比如調節一個電位器以調節電流、電壓或者電機速度、轉矩、頻率等物理量,利用可編程數字電位器完全可以通過界面完成。適時采用可編程數字電位器不但可以降低成本、簡化電路設計、提高可靠性,而且可以使設計更加人性化。另外,AVR單片機可以通過JTAG接口完成仿真調試、下載程序;片內有FLASH和E2ROM存儲單元,有標準的串行接口、I2C總線接口、SPI接口增強了其硬件功能;支持C語言編程,便于掌握C語言者無需太多地了解硬件就能進行一些編程。本文探討了AVR單片機、X9221可編程數字電位器及其接口和軟件編程的一些實際應用,許多問題是筆者在應用中的經驗,可能會有些錯誤,希望讀者批評指正。
評論