AVR ISP燒錄線DIY

相信喜歡玩單晶片的人,尤其是非電子相關科系,或是非相關從業人員的電機電子或是自行研究自修的人,最傷腦筋的一件事,就是當您想玩一些單晶片時,這些單晶片的燒錄器是最令人頭痛的問題。如果要去買一個萬用燒錄器,動輒3~5千元,有的功能好一點的,甚至要價萬元以上,光是這一點,就讓很多人打了退堂鼓。因此,我藉著一些個人的DIY慘痛經驗,將我所得到的一些資料,分享給這些喜歡DIY,又沒有門路的玩家一點個人心得。希望藉此拋磚引玉,讓更多的在這方面有挫折的有心人士,能一起分享個人的經驗,讓大家都能輕鬆快樂的DIY。

言歸正傳,首先必須稍微說一下AVR是什麼?我簡單的說好了,因為我所知的也不多,以我所知到的,他是ATMEL公司出的一系列單晶片當中的一樣產品,如同一般市面上流行的8051一般,但是他強調的是RISC指令架構,有120個精簡指令,而且大都是單時脈就可執行的。因此在運作效率上是相當快速的,除了這些以及跟8051同樣有I/O控制外,他還內含全串列雙工的I/O UART(通用非同步接收傳送器),PWM(脈波寬度調變)有8,9,10位元三種選擇,看門口計時器,防copy的保護程式功能等等。

說的太多了,請各位參考相關的書籍吧,原本有一個非常好的網站是宜蘭大學的電子系,當中有相關的AVR教學,大家可以去看看,但是最近發現已經沒有了,真可惜。不過還有很多的網站可以稍微去找找的,這點要靠網友自行研究了,擅用google吧,小弟只是好奇的曾經玩了一下,特將燒錄線的部分,分享告訴大家,免去花大錢之苦。

AVR ISP燒錄線製作:

為什麼要叫做ISP燒錄線呢?什麼是ISP?簡單的說,就是您不必將您的單晶片從您設計好的電路中拔起來,只要將我們做好的AVR ISP燒錄線,接到您電路中那個AVR單晶片上相關的燒錄腳上,您就可以將您寫好或修改完成的控制碼,直接燒錄到AVR中,然後將電路reset後,就可以馬上知道程式執行的結果,有錯就重複更改程式及燒錄的步驟就行了。

這樣是不是很方便?以前都要把單晶片拔起來,放到燒錄器上燒好程式,然後再插回電路中,反覆這樣做,很累的!而且帶著燒錄器又要跑到控制電路附近,通常這些控制板電路放的位置,都不是有很寬敞空間的地方吧?而且燒錄器要電源,您自己帶的0066的背包,工具,三用電表,各種測試儀器設備,電腦,燒錄器東西,真是....。萬一程式又有問題,又要拔起單晶片,然後反覆這個動作......冒汗啊!

現在不用了,只要帶著您心愛的筆記型電腦,一條燒錄線,全部輕鬆搞定,這就是ISP的好處,其實很多的單晶片都已經走這個方式了,所以早期的8051有漸漸被取代的趨勢。當然後期的8051相容晶片,也都將ISP的功能加進去了,以符合潮流吧!

準備的材料:

  1. 請先準備一條5芯的電線,長度約20公分左右,太長燒錄會因為干擾問題,造成燒錄錯誤,電線可以不要太粗,因為要焊接到25PIN 的 D-TYPE插頭上!

  2. 一個25pin D-TYPE的電腦用接頭,就是印表機介面用的那種接頭,要公的(有針腳的那種),因為這條線就是要插在電腦的print介面port上的,用來傳輸燒錄碼到AVR單晶片中。

  3. 一個2.54molex接頭,5pin母的,不懂得可以看後面介紹中的照片。

  4. 330 歐姆1/4W電阻4個。

  5. 最好準備一條約一公尺的print port用的電纜線,因為我們的AVR ISP線很短。

硬體部分的電路圖:

很簡單吧!?這樣一條燒錄用的傳輸線就可以用了喔!

軟體部分:

請下載PonyProg這個軟體,到這裡下載windows的版本,您自己慢慢選吧,建議下載PONYPROG V2.04n,有很多語言的版本喔。

順便介紹一下PonyProg這個軟體,他是自由免費的,也有GPL授權,主要是用在一些介面上的控制,常用於一些燒錄器,特別是一些網友自行研發的燒錄器,支援的單晶片非常廣泛,包括flash記憶體等等,可以上他的網站看說明書就可瞭解,請自行參考。

下載完PonyProg後,把他安裝好後,直接執行它,會聽到一聲馬叫聲,應該就是沒問題了。以下是PonyProg執行後的dump畫面:

上面是開啟燒錄檔以後看到的畫面,功能我不介紹了,您自己去試試就知道一二了,這就是DIY的樂趣呀!

實際使用操作:

  1. 先將您的程式寫好。怎麼寫?哇咧!我還沒說喔?可是我主要是介紹燒錄線耶!怎麼辦?為了大家,只好花個篇幅寫一下好了,請看這裡:AVR程式編寫程序

  2. 將編譯組譯完成的二進位燒錄碼用PonyProg開啟。

  3. 將製作好的AVR ISP燒錄線25pin D-TYPE那一頭接到電腦端的print port上(或透過25pin的延長線),另一端2.54molex 5pin接頭那一端,接到您的AVR控制電路上,可看圖示。

 

 

  1. 請將您的AVR電路的電源接上,請務必確認您的電路硬體上是正常沒問題的,否則即有可能傷害您的AVR電路或是您的電腦,這點請務必小心!而且您的AVR控制電路所用的電源,最好用穩壓5V的電源較好。

  2. 點選PonyProg的download圖示,將您的AVR燒錄碼下載到AVR單晶片中,這時會看到畫面上的顯示,一直到完成,然後請看一下您的電路,是否依照您的設計動作。

  3. 有錯誤,請重複1~6的步驟,直到電路一程式設計正常動作為止。

注意事項:當您將程式下載到AVR後,最好拔除AVR ISP燒錄線,因為燒錄線有時會導致電路動作錯誤,所以下載程式完成,先將ISP燒錄線從電路上移除。

AVR程式編寫程序:

  1. 請先到ATMEL公司下載AVR Studio 4程式,並安裝後即可。

  2. 編寫程式並完成組譯工作,記得燒錄檔要存成.hex格式喔。

  3. 然後就可以用PonyProg將程式透過傳輸線,燒錄到您的目標電路中了。

  4. 除錯,這是最討厭的一件事,抓bug。

注意事項:這種事還有注意事項?不是啦!其實是AVR Studio 4我用不慣,我都是用早期的ATMEL公司出的編譯器寫程式的,因為程式比較小,用起來較順手,不過現在ATMEL公司已經沒放這個程式了,有需要的網友,可以寫信給我,我再e-mail給您吧。請到此處下載:AVR_ISP

一些燒錄線及PonyProg使用上的問題:

我假設你是用AVR90s2313那一顆,其實不管是哪一個型號都是一樣的


                                                                                 接5V電源+
                                                                                           |
                                                               ____________    |
   接燒錄線第4腳 ----------RESET-------| 1                 20 |-+-----VCC
                                            PD0---------| 2                  19 |-------PB7 (SCK) ------- 接燒錄線第3腳
                                            PD1---------| 3                  18 |-------PB6 (MISO) ----- 接燒錄線第2腳
                                         XTAL2-------| 4                  17 |-------PB5 (MOSI) ----- 接燒錄線第1腳
                                         XTAL1-------| 5      AVR    16 |-------PB4 
                                            PD2---------| 6   90S2313 15 |-------PB3 (OC1) 
                                            PD3---------| 7                  14 |-------PB2
                                            PD4---------| 8                  13 |-------PB1 (AIN1)
                                            PD5---------| 9                  12 |-------PB0 (AIN0)
    接燒錄線第5腳---------- GND----+-- | 10                11 |-------PD6 (ICP)
                                                         |     ---------------------
                                                         |
                                            接5V電源地端



記得5v電源你需要另外提供給AVR,如圖上所示,因為我的燒錄線是接一個2.54molex5pin的接頭(母的)因此AVR(90s2313)這一端的燒錄腳,就是圖中AVR的那5支腳,要引出到一個2.54molex5pin的座上(公的),這樣你只要將AVR燒錄線2.54molex5pin的接頭(母的)插到這個座上,另一頭是25pin D-TYPE 接頭接到電腦printer port上就可以了,見下圖可知。

圖示:

然後執行ponyprog程式,將燒錄碼載入,再執行燒錄動作將燒錄碼燒進AVR中即可。其實只要將AVR的型號設定好(畫面上方右邊的下拉式箭頭視窗),以及視窗的setup選項,點選Parallel後,選擇Avr ISP API即可。接著點選LPT1,剩下下面的四個方框都不要點選,就這樣子了。因為我不會剪貼視窗畫面,所以只能用文字描述,希望網友們能看懂。5V電源應該會做吧?(橋式整流後接一個7805就可以了)其實應該就是這樣,也沒什麼太困難的地方吧!

記得,電腦開機時進入BIOS,將parallel port設定成standard模式,一般會被設定成ECP模式。因為ECP可加快印表機的列印,但是用在AVR燒錄時,可能會有問題,所以最好是設定成STANDARD較保險。

聯絡EMAIL:rushoun@gmail.com

回DIY首頁