SI-PROG編程器的工作原理及其程序設計
根據文獻[2],長(cháng)城0520 PC-XT機上SN75154的閾值電壓控制端T3接到+5 V。這樣,SI-PROG編程器就不能工作。計算機硬件發(fā)展到今天,UART-般均升級為16550,它與打印機并口、鍵盤(pán)控制器等電路一起集成于LPC芯片內,16550仍與8250相兼容。驅動(dòng)器和接收器也都集成到一個(gè)芯片內,如75232,75185。這些芯片的接收器不再采用圖4中曲線(xiàn)a那樣的閾值電壓,而改為與曲線(xiàn)b相接近的情況。表1為3臺PC機閾值電壓的實(shí)驗測量結果。表中,典型值為芯片數據手冊中的數據,實(shí)驗值為實(shí)驗測量結果。顯然,3臺PC機上,SI-PROG編程器都能正常工作。
2 下載程序設計
根據式(1),用輸出指令向3FBH端口寫(xiě)入40H,將使RESET端置低電平,寫(xiě)入00H,使RESET端置高電平;根據式(2),式(3)。向3FCH端口寫(xiě)入數據,改變其D1位的數值,就可改變SCK端的電平,改變D0位的數值,即改變MOSI的電平;根據式(4),用輸入指令讀取3FEH端口,讀取字節的D4位為MISO返回的數據位。
根據AVR單片機的串行下載算法,發(fā)送串行編程指令的操作步驟為:進(jìn)入串行下載模式;發(fā)送編程使能指令;執行所需的讀、寫(xiě)等操作指令,可執行一條,也可執行多條;退出串行編程模式。
(1)進(jìn)入串行下載模式。保持SCK端為低電平,給RESET端發(fā)送一個(gè)大于兩個(gè)時(shí)鐘周期的正脈沖,AVR單片機便進(jìn)入串行下載模式。
(2)發(fā)送串行編程指令。根據圖2,一個(gè)SCK時(shí)鐘周期可分4個(gè)步驟:輸出位數據到MOSI線(xiàn),延時(shí);令SCK由0變1,延時(shí);讀取MISO線(xiàn)上的數據位;令SCK由1變0,延時(shí)。前兩個(gè)步驟寫(xiě)一位數據到AVR,后兩個(gè)步驟則從AVR讀取1位數據。8個(gè)SCK時(shí)鐘周期寫(xiě)1個(gè)字節,同時(shí)讀一個(gè)字節。AVR單片機每條編程指令均由4個(gè)字節組成。根據上述過(guò)程,將4個(gè)字節的編程指令依次寫(xiě)入到AVR,同時(shí)讀取返回的4個(gè)字節數據。
(3)退出串行編程模式。將RESET端置高電平,AVR單片機退出編程模式。
3 結 語(yǔ)
根據上述分析,采用VC++6.O編程成功地對ATtinyl3和ATmegal6兩種芯片的FLASH進(jìn)行了芯片擦除、讀、寫(xiě)以及對熔絲位的讀、寫(xiě)等操作。注意編程時(shí)需要解決Windows NT/2000,/XP操作系統下訪(fǎng)問(wèn)I/O端口的技術(shù)問(wèn)題。
使用SI-PROG編程器,必須滿(mǎn)足兩個(gè)條件:
(1)串口的UART芯片要與8250兼容;
(2)電平轉換芯片接收器的閾值電壓要介于TTL高、低兩種電平之間。
多數PC機所配置的串口都能滿(mǎn)足上述兩個(gè)條件。某些早期的PC機有可能與PC/XT機類(lèi)似,不滿(mǎn)足條件(1)。目前,家用筆記本電腦上一般不再配置串口。這樣,SI-PROG編程器在某些PC機上不能使用。然而,SI-PROG編程器仍有一定的使用空間。畢竟LISB接口的編程器價(jià)格較高,而一些商用筆記本電腦中取消了并口但保留著(zhù)串口,并口編程器又不能用。而多數臺式機上一般仍配置有串口。
評論