AVR atmega8 線上燒錄機 DIY

前一陣子在看有關Linux Driver和OS的一些書,看著看著....就不知怎麼的開始玩起單晶片,老實說為什麼這麼跳tone我也不知道。反正忽然之間回神過來的時候...就這樣子了。

不過還是碎碎唸一下,因為玩得不是很順@@。主要的原因為是國內在玩單晶片的主流還是在玩8051,所以有關AVR晶片的參考資料就少了。搞得我出問題的時候常常卡住。

其實一開始我也是想玩8051 + c語言的組合(對組合語言沒有愛...),但是在找不用錢的compiler、燒錄器、燒錄程式....找著找著,我就開始對AVR晶片產生興趣了。

想在AVR晶片上用C言語來玩的話,有avr-gcc這個opensource 的compiler,而燒錄程式的話則可以用avrdude,燒錄器的話網路上就有很多資料可以自行把電路板給DIY出來。

當然,這和我一開始就玩了一下下Arduino也有關,Arduino所用的核心晶片是atmega328這個晶片。而當然地,我就從比較便宜的atmega8開始玩了。

而這篇文章就是在說怎麼自已做一個atmega8的ISP燒錄器。不過是用電腦上的serial port (古老的com1 com2...)當作介面。

主要參考資料是這個網頁:(其實直接看這個網頁搞不好會比在這邊看我碎碎唸快一些)

http://www.circuitvalley.com/2011/04/avr-serial-port-programmer.html

電路圖可以參考這個網頁。

如果和我一樣是新手的話,不建議和這個網頁一樣把一部份的電路燒在COM port的連接器上。因為焊接技術不好很容易失敗。

而比較建議的方式是,把上面的兩個電路圖做一個整合,如下圖: (這個是我自已畫的...有錯不要找我...)






然後燒在一塊電路板上。像下面這樣:(焊接新手...Orz...線亂拉一通)


而電路圖裡面的5V電源部份,我是用USB type B的母頭拉出來提供的。因為這樣才不用去另外找一個5V的直接電源供應器。

所以我用到的材料有:

電阻 4.7K2
電阻 10K2
電阻 15K2
二極體 1N41481
齊納二極體 5.1V2
晶體管 BC5471
電路板1
USB type B 母1
排線 (10條)1
排線牛角接頭(10孔 壓排線用) 1
COM port 接頭(母)1
晶體振盪器 4MHz1
陶瓷電容 22pF2
ATMega81
ATMega8 socket (28pin)1
單芯電線、焊槍、焊錫、助焊劑...

這些東西都可以在光華商場附近那個地下室的電子商場買到。我都是買個兩份以防萬一。裡面大概就ATMega8最貴吧,我買的時候大約一顆要價150 NTD左右。(後來才知道在露天拍賣上一顆不到50元.....Orz...)

我把COM port 上的9個pin都焊到那個排線上,然後排線的另一端壓了牛角接頭(pin)。而電路板上面則焊上相對應的9支pin。其他的元件照電路圖焊一焊。焊好之後就可以接上電腦的com port和USB(5V電源)試看看了。

而燒錄軟體建議用PonyProg2000 (for win),可以在下面這個網頁找到。 

http://www.lancos.com/ppwin95.html

執行這個軟體之後馬上會聽到一聲馬叫聲,常常嚇我一跳。

而一開始的時候要先做 I/O Setup。

設定為 "Serial" ,"SI Prog I/O"  指定COM port (COM1, COM2 ...)。

然後指定要寫入的晶片為 AVR micro , ATmega8

PonyProf2000的圖形按鈕中,找到一個長得鎖頭的按下去就可以設定Atmega8的Fuse 設定。

設定請參考Atmega8的官方手冊。

=========================================
如果是要燒USBasp的話,把下面這幾個選項打勾(設為0的意思):

BOOTSZ0
BOOTSZ1
CKOPT
SPIEN
SUT1
BODEN

其他不要打勾 (設為1的意思)
==========================================


設好之後按write之後,沒什麼錯誤訊息的話就應該是OK了。

要燒錄程式碼進去Flash memory (Program memory)的話,要先讀取compile完成的檔案(.hex檔)。

然後再按上面那個有個箭頭指向錄色方塊,寫著一個"P"字的按鈕。

等到顯示OK之後,應該就沒問題了。












留言

  1. 您好,
    想請問一下,
    我都有照著線路接在麵包板上,(也是使用ATMEGA8)
    但在PonyProf2000的I/O Setup設定時按Probe會秀出Test Failed
    感覺是認不到IC...
    我是用主機板上的COM PORT用轉接線轉10PIN,
    想請教一下為什麼?!
    謝謝~

    回覆刪除
  2. 嗯...其實...這世界上最難的事情之一...我想...隔空 Debug 應該要算一件。
    是我來做的話,也只能用三用電錶一個點一個點看看有沒有接錯。
    不過如果只是需要一個ISP燒錄器的話,其實去網路上買可能會比較快一點,而且價格不貴(非原廠的100多就有)還是USB介面的。
    這篇文章在做的事情只能說是DIY者的浪漫--什麼都要自己來,成功過後,我已經了無遺憾了...。
    到了後來,為了方便,我自己也去買了個AVR ISP來用,而且還是原廠的...貴鬆鬆...QQ。

    回覆刪除

張貼留言

熱門文章