想學8051有一段時間了,可惜都一直斷斷續續的,而學8051有一個最重要的問題就是燒錄器。

為了燒錄8051的晶片,所以花了不少時間上網找了一下資料,大致上有兩種方式,一種是用專用的燒錄器,要錢,所以不考慮。另一個則是利用ISP(In System Programming)方式燒錄。

Atmel公司所生產51晶片有兩種系列,一個是AT89C5X系列,一個是AT89S5X系列。而AT89C51在燒錄時必須在第31接腳VPP提供 +12V的電壓,也就是說如果要用89C5X系列的晶片就必須用專用的燒錄器,但89S5X系列則不用。

為了燒錄的問題,找了很多資料,雖然已經確定使用S系列的單晶片了,但是在燒錄方面還是有點麻煩。因為找到的資料中最簡單的燒錄方式是所謂的燒錄線(自製AT89S51單晶片燒錄器)

只要把燒錄線接在單晶片燒錄的接腳就可以進行燒錄了,雖然很簡單,但是卻是用print port,偏偏筆電上面就是沒有print port,所以燒錄依然還是問題。

之後又花了一些時間找資料,找一個比較方便燒錄的方式。

因為之前上嵌入式的課有買了一條USB轉RS232的線,所以這次打算找一個用RS232燒錄的電路。很剛好被我找到了一個還不錯的東西(89S51/52燒錄器–透過RS232及89C2051燒錄),只不過這個方式有點複雜。這個方式它必須透過另一個單晶片(AT89C2051)做轉換,而且還可以用USB轉RS232的線做燒錄。這個方法雖然可行,但是我必須先做一個AT89C2051的燒錄器將韌體燒進去才能把這個AT89C2051拿來用。即使PO這篇文章的作者也有PO一篇AT89C2051的燒錄器電路(89C2051燒錄器–用89S51實現),但是在不確定有啥問題的情況下,又加上因為實在是很麻煩所以我又把它放在一邊了。

之後幾天,我找到了一個英文網站,也是用AT89C2051來做轉換的,這讓我又有信心了。雖然兩份資料都是用AT89C2051來做轉換,但是我寧願相信外國人會比較厲害,所以我就打算參考這份英文資料(ATMEL AT89SXX ISP Flash Programmer v1.4)來動工了。

這是電路的區塊圖,利用AT89C2051當作中介,將程式碼燒到目標單晶片上。當然,AT89C2051要先把韌體燒進去。


這是詳細的電路圖。網站上提到
「The Programmer has just two ICs. IC1 = AT89C2051, IC2 = MAX 232. Few Resistors, LEDs, capacitors etc. The value of the crystal is critical and must be 11.0592 MHz.」
只需要少許的元件就能完成。


這份資料上只有電路圖、AT89C2051的韌體、燒錄軟體,並沒有AT89C2051的燒錄電路,所以我還是必須要搭配用前一個找到的資料裡面所提到的AT89C2051的燒錄器電路(89C2051燒錄器–用89S51實現)才能完成。

這是燒錄AT89C2051的電路圖。

圖中是利用89S51來當燒錄的單晶片,但是我就是因為89S51的燒錄方是很麻煩才找那麼多的資料,現在又回到原點了,真是Orz。不過這個做完之後就不用再用那種很麻煩的方式,想想也就還好了。

於是我用最先找的方法,燒錄線燒錄89S51的韌體,然後在AT89C2051當作轉換的韌體燒到AT89C2051,之後這顆AT89C2051就能用了。

原來這一切的一切都是陰謀,連做個燒錄器也像寫程式一樣充滿著迴圈。

Comments (1)

On 2012年3月29日 晚上8:29 , Duye Chen 提到...

XD
我當初也是因為要做這個東西才會找了那麼多文章...

謝謝你的連結 :)

獨夜

P.S. 我真的要找時間把那些沒有完成的實驗做完了 Orz