SI-PROG編程器的工作原理及其程序設(shè)計
1.2 信號的邏輯關(guān)系
由圖1可見,8250的11,33,32,36四個引腳分別通過編程器與AVR的RESET,MOSI,SCK,MISO相連進行通信。這4個引腳的電平可通過8250內(nèi)部的3個寄存器進行設(shè)置或讀取,如圖3所示。3個寄存器依次為線路控制寄存器(LCR)、Modem控制寄存器(MCR)和Modem狀態(tài)寄存器(MSR)。對于串口1,3個寄存器的端口地址一般為3FBH,3FCH和3FEH。LCR的SB位、MCR的DTR位和RTS位分別控制11,33,32三腳的電平。MSR的CTS位則反映了36腳的電平。
下面分析8250與AVR通信信號間的邏輯關(guān)系。為了避免引起混亂,這里全部采用正邏輯描述。
1.2.1 RESET與SB位的邏輯關(guān)系
線路控制寄存器LCR的D6位SB決定了8250的11腳的電平。當(dāng)SB=1時,11腳被強制拉到低電平,DB9的3腳為高電平。當(dāng)SB=O時,DB9的3腳為低電平。邏輯關(guān)系在Q1上又反相一次。因此,RESET信號與SB位的邏輯關(guān)系為:
RESET=SB (1)
編程時只要通過OUT指令改變SB位的值,就可以控制RESET端的電平。當(dāng)8250復(fù)位后,SB=0,RESET=SB=1,RESET引腳為高電平。
1.2.2 MOSI,SCK信號與DTR,RTS位的邏輯關(guān)系
MODEM控制寄存器MCR的D0位DTR控制著33腳的電平。置DTR=1,則33腳DTR為低電平,是邏輯非關(guān)系。U3相當(dāng)于非門,故MOSI信號與DTR位的邏輯關(guān)系為:
MOSI=DTR (2)
類似的,SCK信號與MCR的D1位RTS的邏輯關(guān)系為:
SCK=RTS (3)
1.2.3 CTS位與MISO信號的邏輯關(guān)系
MODEM狀態(tài)寄存器(MSR)的D4位CTS反映了8250的36腳的電平,當(dāng)CTS端為高電平時,CTS=O;反之CTS=1。CTS位與CTS端是邏輯非關(guān)系。因此,CTS位與MISO信號的的邏輯關(guān)系為:
CTS=MISO (4)
根據(jù)式(1)~式(4),下載編程時,設(shè)置或讀取AVR的RESET,MOSI,SCK,MISO腳的電平問題就變成通過I/O指令設(shè)置或讀取8250內(nèi)部寄存器的SB,DTR,RTS,CTS位的問題。
1.3 SI-PROG編程器的電平轉(zhuǎn)換
根據(jù)RS 232標準,串口DB9上的兩種電平分別為5~15 V和-5~-15 V。編程器電路采用分立元件實現(xiàn)DB9上的RS 232電平與AVR的TTL電平間的轉(zhuǎn)換。
1.3.1 RS 232到TTL電平的轉(zhuǎn)換
圖1中,用限流電阻R3和4.7 V的穩(wěn)壓二極管Z2完成DB9的4腳上RS 232電平到J1的1腳上TTL電平的轉(zhuǎn)換。5~15 V與-5~-15 V高低兩種電平通過R3后將分別變成4.7 V和O V(實際為-O.7 V),符合TTL電平的要求。
類似的,限流電阻R4和4.7 V的穩(wěn)壓二極管Z1完成DB9的7腳上RS 232電平到J1的7腳上的TTL電平的轉(zhuǎn)換。
Q1,R1,R2接成反相器,DB9的3腳上的5~15 V與-5~-15 V兩種電平分別使Q1處于飽和導(dǎo)通和截至狀態(tài),實現(xiàn)了RESET信號的電平轉(zhuǎn)換。
1.3.2 TTL到RS 232電平的轉(zhuǎn)換
TTL到RS 232電平的轉(zhuǎn)換由SN75154線接收器實現(xiàn)。圖4為SN75154的施密特電壓傳輸特性曲線。
當(dāng)閾值電壓控制端T3接Vcc時,它工作在圖4中曲線a狀態(tài),兩個閾值電壓分別為VIT-=-1.1 V和VIT+=2.2 V;當(dāng)T3懸空時,它工作于圖中曲線b狀態(tài),VIT-=-1.4 V,VIT+=2.2 V。顯然,對于后一狀態(tài),MISO引腳上的TTL電平信號可以通過U4到達8250,而前一狀態(tài)則無法通過U4。
評論