(玩電子) 電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機USB-ISP下載線制作

作者:佚名   來源:本站原創   點擊數:x  更新時間:2008年09月02日   【字體:

   現在的筆記本包括臺式機都漸漸地舍棄了并口、串口;很多網友也跟我說,臺式沒有并口了,下載線沒法用了,讓我幫他想想辦法。看來做個USB-ISP下載線是勢在必行了。

  在網上搜了下,主要有兩種方案,一種是用FT245串口芯片加ATMEGA8的方案,另一種是只用ATMEGA8進行USB串口協議的軟件模擬和ISP下載全部完成。據說第一種穩定,但成本高,電路復雜,不便自制。我們還是本著低成本,簡單易做的原則進行。就用單個M8來做。

  好!廢話少說,干活。在網上搜了一下找了個BUG少,易于自制的圖。

 

  在制做前首先要搞清楚幾點,第一,這個USB下載線本身就是一AVR單片機,在制做完成后首先也得通過其它并或串口ISP下載線給它下載程序,這樣它才能工作。第二先得大概了解一下這個AVR單機機M8的基本資料。這樣才能對電路有個了解,從而便于調試。因此,你原先用的并口ISP下載線在這里還得起著關鍵的作用,可別扔掉啊!我圖示一下這個過程先:


接下來按上述圖的要求準備元件。

  元件準備好后,先得檢測下質量,電阻的阻值、發光管的極性、電容是否有短路。要測試下兩個穩壓管的穩壓值是否正確。最最重要的是先把USB接口用延長線接到PC上,然后用萬用表測一下正極在哪,做個標記,這樣就能搞清楚了D+、D-的位置,也不會接反電源了。免得焊好后發現錯了極性反復焊,焊盤很容易脫落,也避免接反燒了元件。(我開始用的是USB公頭接口,后來發現在板子上吃不上勁,稍一用力很可能會松脫。所以換成母口了)

  電路圖我整理了一下,因為有的元件不需要,有的為了方便檢查,避免漏連了線。

焊接過程就沒什么好說的了,不是PCB板,是洞洞板的,在事先大概做個布局(布局原則就是減短引長度,跳線盡量少。好像我做的跳線并不少哦!)然后就按照上面的電路圖焊接,完成后如下圖,感覺是不是還不錯?:

 

 

 

再來張反面吧,有點慘不忍睹吧!

在調試前也還得先弄清幾個問題:
  第一、電源題:原先的并口下載線是靠S51板上來供電的,也就是說當你焊好你的USB-ISP板后給它裝固件時,USB-ISP板得向原并口下載線供電,而固件裝好后USB-ISP板就是靠PC的USB口向我們的USB-IS板供電了,而你以后的51實驗板就不能向這個USB-ISP板供電了,否則PC和51實驗板都向USB-ISP供電,那么電壓不同就有可能燒壞PC口或元件的。因此J2跳線就是為了區別裝固件和正常下載而使用的。裝固件時另附電源加在USB-ISP上,J2短接,可以過J2口向原來的并口下載線供電。當正常使用時,USB-ISP板上的附加電源撤掉,由PC的USB口供電,將J2斷開,隔離開USB-ISP板和51板電源。


  J1是降速跳線,短接時慢速,在裝固件時要求在慢速下。J3是M8復位跳線,裝固件時要求M8在復位狀態。正常使用時就斷開這三個跳線了。


  第二、ISP接口問題:得弄清下載接口的對應接線,MOSI、MISO、RST、SCK要一一對應不能弄錯。也就是說你原先并口下載線的并口各功能線接到十針的ISP接口和USB-ISP下載線的接口要對得上。例如我的51板是自己做的,上面的十針下載接口是我自己隨意接的沒有按照什么標準。因此我做并口下載線時,就將并口下載線上的各功能線與51板上的一一對應,這樣就能調試通。現在做USB-ISP下載線還是一樣,得按照我自己的十針接口方式,只要各功能線準確無誤地對上就好。
  J1是降速跳線,短接時慢速,在裝固件時要求在慢速下。J3是M8復位跳線,裝固件時要求M8在復位狀態。正常使用時就斷開這三個跳線了。
  不同的PC端下載軟件對并口腳的定義是不同的,這一點一定要弄清楚,否則是不可能正常下載的。有的軟件有配置文件,可以跟據你的要求設置并口的某個腳為什么功能。如ISPLAY 1.5。這些軟件可在http://www.ngacvp.tw 單片機論壇取得(按標題搜索"下載線"),它的配置文件如圖:

你可以通過修改這些MOSI、MISO、SCK、RST、OE、LE等功能輸出的并口腳號以適應你的下載線。

  我的原先并口下載線用的是官方的一張圖:

它的配套PC端下載軟件ISP-30A是不能自己設定并口引腳號的。界面如下圖。

好!下面開始調試,檢查USB-ISP下載板沒有連錯線或短路現象。將USB-ISP下載板的三個跳線短接,接上外加電源,測量電流為6mA,應該沒問題。將原先的并口下載線的并口端接至PC,將十腳ISP接口端與USB下載板對接,測量并口板上的電壓已正常。如下圖:(我這是示意圖,因為在房子里插上PC光線不好,照得不清楚)

 

此時USB下載板上的發光管是不會亮的,因為它里面沒有程序還無法運行。開始進行下載。在PC上運行ISPLAY1.5如圖:

  事先我將配置文件Pin_config.ini內的各功能線已修改為和我的并口下載線相同的腳號。在左下角的“程序設置”里選好那個配置文件。點擊“檢測器件”鈕,但始終檢測不到器件,如上圖。我想我的并口下載線肯定是好的,一直在用啊!難道配置文件不起作用?或那個LE控制時序和我那個板上的要求不同?干脆用那個我一直使用的ISP-30A試試吧!于是將它運行。因為是要給ATMEGA8下載程序,所以在器件選項里選MEGA8。

果然,我點了下Read,居然能正常讀取了,于是我點Open file然后選擇網上下的那個11K大小的main.hex,點擊Write接下來就是寫程序和校驗一切OK。然后點擊Fuse Bytes(熔絲字節),在下圖的SUT0和CKSEL0前點上勾,

 

  然后回到主界面點Write LBs。當寫完之后我把三個跳線一拔,綠色發光管已經亮起,說明M8的程序運行了。這樣我的USB下載板的固件就算裝好了。
  將USB下載板從并口下載器上拔下,我去掉附加電源后將它插到PC的USB口上,立即就發現了新USB設備,一切沒有懸念,安裝驅動程序一路正常(這部分軟件的使用網上已寫的很詳細,我就不重復了),PC告訴我設備可以使用了。我將我的51板和USB下載線連上

 

運行PROGISP1.6.6

  一陣狂喜過后我在“編程器及接口”下的選擇框中選USBASP,在“選擇芯片”里選AT89S51。
點擊“芯片識別字”右邊的RD鈕,哦!可就是檢測不到器件如下圖:

 

  彈出這個窗,說明USB下載線是正常的了,就是檢測不到51目標板。莫非是ISP連線太長?我又做了根只有10CM的ISP連線,但狀況依舊。唉!沮喪啊。休息休息,喝口水……
  突然想起網上說起過用修改過的固件可以針對51板出現的Chip Enable Program Error。立即上網找來那個18K大小的USBISP.hex,重做剛才的下載工作,一切順利,再運行PROGISP1.6.6
  哈哈!檢測到51器件了,

  特征字不匹配,不管它了,先點擊“是”。于是便試著點擊“讀出Flash”鈕。成功!
我接著點“調入Flash”選擇一個我以前的HEX文件,點擊下面的自動,紅色的發光管在不停地閃爍著,我開心啊!
     然而在寫完后校驗時卻總通不過,汗!

  是下載線太長不穩定?就剩10CM長了,難道真的天都不可憐我嗎?在一陣無助的胡亂操作中,突發奇想選AT89S52試試。
  這一試不要緊呀!居然成功啦! 反復下載不同的程序,一切都OK。
  再換上我那長40CM的ISP連線,反復下載程序試驗,你猜怎么著?不要太穩定哦!

  至此大功告成!

總結:
  下載固件時,如果你原先的并口下載軟件支持ATMEGA8。最好就用你一直使用的并口下載軟件。這樣可以先排除并口下載線上的問題。
  遇到問題多試試幾種操作,不要輕易放棄。
  還有就是這個PROGISP1.66是不是有BUG?明明是S51,偏偏要選S52才能正常讀寫。還有那個ISPLAY1.5,估計不是配置文件不起作用就是那個LE的時序和我并口下載線上的要求不一樣。后面抽空再找找原因。

本教程所有軟件和工具請在本站單片機論壇51板塊下載。http://www.ngacvp.tw/bbs/dpj-754-1.html  另外本例制作過程中有任何問題也可以在論壇帖子中提出,我們大家一起來解決。

我在對驅動的安裝和后面的下載寫的較略是因為網上已把軟件部分寫的很細了,上網一搜“USB-ISP”就能搜到。好了!寫的不夠詳盡之處請拍磚,請大家常來www.ngacvp.tw 來學習單片機。我再加料。
  再秀張大圖吧!

 

 

 

 

 

(點擊可顯示大圖)

 

發表評論】【告訴好友】【收藏此文】【關閉窗口

文章評論

沙滩排球小游戏