當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]摘 要:介紹SI-PROG編程器的工作原理,利用PC機串口UART芯片實現(xiàn)單片機的ISP下載。PC機串口8250芯片中SOUT,DTR,RTS,CTS四個引腳的電平可通過其內(nèi)部的幾個寄存器分別進行控制或讀取,利用引腳可實現(xiàn)單片機的ISP下栽

摘 要:介紹SI-PROG編程器的工作原理,利用PC機串口UART芯片實現(xiàn)單片機的ISP下載。PC機串口8250芯片中SOUT,DTR,RTS,CTS四個引腳的電平可通過其內(nèi)部的幾個寄存器分別進行控制或讀取,利用引腳可實現(xiàn)單片機的ISP下栽。介紹了8250與單片機之間通信信號的邏輯關(guān)系以及電平轉(zhuǎn)換,分析了接收器的閾值電壓的特點,給出了使用SI-PROG編程器的條件。最后,以AVR單片機為例介紹了下載程序設(shè)計。結(jié)果表明,利用PC機串口UART芯片可以實現(xiàn)對AVR單片機的ISP下載,其硬件電路和軟件設(shè)計都很簡單。
關(guān)鍵詞:S1-PROG編程器;程序設(shè)計;UART;AVR單片機


    SI-PROG編程器為PonyProg 2000軟件中使用的一種ISP編程器,該編程器利用PC機串口電路的異步通信控制器UART實現(xiàn)AVR,PIC,AT89等單片機的ISP編程。雖然該編程器不為Atmel的AVRStudio所支持,但是其硬件電路簡單,成本低,便于制作,適于初學(xué)者進行學(xué)習(xí)和簡單開發(fā)。下面以AVR單片機為例,介紹SI-PROG編程器的工作原理及其程序設(shè)計。


l SI-PROG編程器的工作原理
1.1 電路組成
    圖1為SI-PROG串口編程器的工作原理圖。電路分為PC機串口電路、SI-PROG編程器和目標(biāo)機3部分。編程器通過9針D型連接器DB9與PC機串口連接,通過10針連接器J1與目標(biāo)機連接,電路在文獻[4]的基礎(chǔ)上做了適當(dāng)?shù)暮喕?。J1引腳定義與Atmel的STK200下載線相同。

1.1.1 PC機串口電路及SI-PROG編程器
    PC機串口電路由U1~U4組成。8250(U1)為異步通信控制器UART,SN75150(U2,U3)為驅(qū)動器,SN75154為線接收器。U2,U3,U4實現(xiàn)8250引腳上TTL電平與串口DB9上RS 232電平轉(zhuǎn)換。SI-PROG編程器則完成DB9上RS 232電平與目標(biāo)機上TTL電平的轉(zhuǎn)換。
1.1.2 串行SPI接口
    編程器通過目標(biāo)機的SPI接口對其片內(nèi)的FLASH程序存儲器進行下載編程。SPI接口由SCK,MOSI和MISO等幾條信號線組成。下載編程的過程實際上是PC機與AVR的通信過程。兩者的關(guān)系是一種主從關(guān)系,PC機為主機,AVR為從機。主機經(jīng)MOSI引腳將串行數(shù)據(jù)發(fā)給從機,從機經(jīng)MISO引腳將數(shù)據(jù)返回給主機。SCK為串行時鐘脈沖,由主機發(fā)往從機。主機通過SCK脈沖控制與從機的數(shù)據(jù)傳輸。圖2為串行下載編程時序圖。單片機在SCK上升沿讀取MOSI上的數(shù)據(jù)位,在SCK下降沿輸出數(shù)據(jù)位到MISO。

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標(biāo)準(zhǔn),串口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。

    根據(jù)文獻[2],長城0520 PC-XT機上SN75154的閾值電壓控制端T3接到+5 V。這樣,SI-PROG編程器就不能工作。計算機硬件發(fā)展到今天,UART-般均升級為16550,它與打印機并口、鍵盤控制器等電路一起集成于LPC芯片內(nèi),16550仍與8250相兼容。驅(qū)動器和接收器也都集成到一個芯片內(nèi),如75232,75185。這些芯片的接收器不再采用圖4中曲線a那樣的閾值電壓,而改為與曲線b相接近的情況。表1為3臺PC機閾值電壓的實驗測量結(jié)果。表中,典型值為芯片數(shù)據(jù)手冊中的數(shù)據(jù),實驗值為實驗測量結(jié)果。顯然,3臺PC機上,SI-PROG編程器都能正常工作。

2 下載程序設(shè)計
    根據(jù)式(1),用輸出指令向3FBH端口寫入40H,將使RESET端置低電平,寫入00H,使RESET端置高電平;根據(jù)式(2),式(3)。向3FCH端口寫入數(shù)據(jù),改變其D1位的數(shù)值,就可改變SCK端的電平,改變D0位的數(shù)值,即改變MOSI的電平;根據(jù)式(4),用輸入指令讀取3FEH端口,讀取字節(jié)的D4位為MISO返回的數(shù)據(jù)位。
    根據(jù)AVR單片機的串行下載算法,發(fā)送串行編程指令的操作步驟為:進入串行下載模式;發(fā)送編程使能指令;執(zhí)行所需的讀、寫等操作指令,可執(zhí)行一條,也可執(zhí)行多條;退出串行編程模式。
    (1)進入串行下載模式。保持SCK端為低電平,給RESET端發(fā)送一個大于兩個時鐘周期的正脈沖,AVR單片機便進入串行下載模式。
    (2)發(fā)送串行編程指令。根據(jù)圖2,一個SCK時鐘周期可分4個步驟:輸出位數(shù)據(jù)到MOSI線,延時;令SCK由0變1,延時;讀取MISO線上的數(shù)據(jù)位;令SCK由1變0,延時。前兩個步驟寫一位數(shù)據(jù)到AVR,后兩個步驟則從AVR讀取1位數(shù)據(jù)。8個SCK時鐘周期寫1個字節(jié),同時讀一個字節(jié)。AVR單片機每條編程指令均由4個字節(jié)組成。根據(jù)上述過程,將4個字節(jié)的編程指令依次寫入到AVR,同時讀取返回的4個字節(jié)數(shù)據(jù)。
    (3)退出串行編程模式。將RESET端置高電平,AVR單片機退出編程模式。


3 結(jié) 語
    根據(jù)上述分析,采用VC++6.O編程成功地對ATtinyl3和ATmegal6兩種芯片的FLASH進行了芯片擦除、讀、寫以及對熔絲位的讀、寫等操作。注意編程時需要解決Windows NT/2000,/XP操作系統(tǒng)下訪問I/O端口的技術(shù)問題。
    使用SI-PROG編程器,必須滿足兩個條件:
    (1)串口的UART芯片要與8250兼容;
    (2)電平轉(zhuǎn)換芯片接收器的閾值電壓要介于TTL高、低兩種電平之間。
    多數(shù)PC機所配置的串口都能滿足上述兩個條件。某些早期的PC機有可能與PC/XT機類似,不滿足條件(1)。目前,家用筆記本電腦上一般不再配置串口。這樣,SI-PROG編程器在某些PC機上不能使用。然而,SI-PROG編程器仍有一定的使用空間。畢竟LISB接口的編程器價格較高,而一些商用筆記本電腦中取消了并口但保留著串口,并口編程器又不能用。而多數(shù)臺式機上一般仍配置有串口。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉