2008年9月29日 星期一

燒錄89C2051(用89S51或89C2051)

我想做一個能燒錄89C2051的89C2051
但是我沒燒錄器,所以我沒辦法燒錄第一顆89C2051


所以我要做一顆能燒錄89C2051的89S51,再用這顆89S51來燒錄能燒錄89C2051的89C2051(.....)

這讓我想到一個笑話...

某A看到某B站在某B自己家門外,問他在幹麻...

某B:『想開車出門,但是車鑰匙放在家裡,而家的鑰匙卻放在車子裡...』




看看89C2051的DATASHEET

想做一個IC,功用是:



  • UART跟8bit序列互相轉換






  • 提供三個自定義的腳位供UART端控制使用






  • 提供中斷腳位以回傳值




  • 把相關的腳位做了定義
    P1.0~P1.7     輸出並列埠
    P3.7     EA腳位

    P3.3     自訂腳位A
    P3.4     自訂腳位B
    P3.5     自訂腳位C
    P3.2     中斷腳位

    剩下的就是C2051的其他腳位(RST、XTAL等等)
    因為是用串列控制,所以要一些protocol
    串列收到的資料定義如下

    00~FF 讓P1輸出00~FF的某值,然後EN送出一個脈波
    en EN送出一個脈波
    e1 EN高電位
    e0 EN低電位

    a0 自訂腳位A低電位
    a1 自訂腳位A高電位
    an 自訂腳位A反向
    ac 自訂腳位A送出一個脈波
    at 傳回自訂埠A的值

    tx 傳回P1的值




    上面的聽的霧煞煞沒關係
    再來就是結果展示啦
    我來示範怎麼燒錄C2051
    下載電腦端燒錄程式和燒錄驅動晶片HEX檔
    先把這個HEX檔燒錄進S51內,S51燒錄電路和程式能參考這裡




    再照著這個電路圖把燒錄好的S51和其他零件接出來



    這個電路的驅動IC也能適用C2051(這也是我這一次寫這一篇的目的)

    我有刻意避開P3.6,所以只要接於相對應的腳位就行了(前提是你要有辦法燒錄) ,C2051的P1有LED DRIVER,燒錄起來應該會更穩定




    再來照著程式的指示就能燒錄C2051了



    用麵包板接線的情況



    因為HIN232的電容太多了,所以偷懶一下用事先焊好的實驗版接出來。
    12V電源可以用電源供應器的大四PIN來接出來,比較省事

    注意的是同一條大四PIN別同時接風扇不然電路會不穩定

    因為希望讓電路簡單
    所以並沒有回傳值除錯的功能
    如果燒錯了就再燒一次吧(我也只有一次沒Erase燒錯而已)
     
     
    (2009.3.25注
    使用C2051當燒錄驅動IC時請將P1串接10k歐姆電阻至Vcc,以確保準位夠驅動目標IC。
    )

    43 則留言:

    1. 您好
      我有照你的電路接好
      試了一下燒錄89C2051
      好像有燒錄成功(有顯示燒錄成功) 又不太確定
      按偵測電路 顯示偵測不到燒錄驅動晶片
      跳過2 直接跳3按燒錄 有顯示燒錄完成
      不曉得這樣有沒有燒錄成功呢?
      附上圖片
      http://lh6.ggpht.com/jackylee3232/SOY6WMivQaI/AAAAAAAABR4/131NHUHPtCg/s800/error.jpg
      不好意思
      謝謝

      回覆刪除
    2. 一定要偵測到晶片才能燒錄喔!!

      因為讀取需要控制電壓值。
      為了避免電路過於複雜
      所以我並沒有做讀取的動作,
      偵測晶片只是偵測燒錄驅動晶片,沒有辦法偵測被燒錄的C2051

      在燒錄時電路中的LED燈會閃爍,可以供你判斷燒錄時的狀況。

      如果接線無誤仍然偵測不到驅動晶片,就試著將驅動晶片RESET試試看

      回覆刪除
    3. 您好
      我想再請問一下
      因為我早上又重接一遍
      確定S51有燒錄韌體進去
      接好要燒C2051時 就是沒辦法抓到燒錄驅動晶片
      想請問您一下 如果跳過2燒錄 您那邊也是會顯示燒錄成功嗎? 這就表示雖然顯示有燒錄成功 實際上是沒有燒錄程式進去嗎?
      我有把RS232的5pin接地
      用電表量了一下 RS232的RX pin沒接上電源是0V TX pin是-5V 接上電腦端大四pin的電源後 RX pin沒接上電源是快9V TX pin是-10V
      因為想把問題找出來 所以可能要麻煩您一下 可以看的出來 問題大概在那嗎?
      不好意思問題有點多
      謝謝

      回覆刪除
    4. 跳過偵測也是會燒錄成功的= ="

      這算是BUG吧,我已經修正了

      照著下面的方法測測看:

      1.先把RS232 TX跟RX短路,用程式(超級終端機之類的)測測看輸出的訊號會不會傳回來

      2.把MAX232接出的TXD跟RXD短路,再測測看輸出的訊號會不會傳回來

      3.接上S51,BaudRate調(9600,n,8,1)讓程式輸出"sb",看看會不會傳回"U0"

      4.把S51的P3.7(原本接到C2051的P3.2)串接一顆LED至陽極,讓程式輸出"en",看看LED會不會閃爍

      回覆刪除
    5. 您好

      測試OK囉
      多謝您的詳細的解說
      真的很麻煩一步一步講解
      謝謝

      回覆刪除
    6. 燒錄成功了嗎??

      很好奇是哪一個部份出錯


      哈哈是我程式寫的不太好
      才使你那麼辛苦的除錯

      也謝謝你幫我的燒錄程式Debug囉!!

      回覆刪除
    7. 您好^^
      最近在忙 一直到現在才有空繼續用電路
      您說的步驟都可以成功
      到開您的程式 還是偵測不到燒錄驅動IC
      不過不是有成功燒hex到S51裡
      怎麼還是偵測不到燒錄驅動IC呢?

      不好意思 問題有點多 謝謝

      回覆刪除
    8. 我程式檢查是否偵測到IC的方法也是讓程式輸出"sb",檢查晶片會不會傳回"U0",若會才算是偵測到晶片,所以照您說的已經用程式檢查過了應該也是可以偵測到才對...

      我想恐怕是程式的相容問題.....

      把TXD跟RXD各串連一顆LED至陽極,再開啟程式按偵測看看LED會不會閃爍。

      如果LED恆亮,那就把S51 RESET看看會不會暗下來再試試看。

      回覆刪除
    9. 您好^^
      燒錄成功囉
      一開始用usb to rs232會偵測不到IC
      後來直接接到MB的RS232埠 就可以偵測到IC囉 燒錄成功囉
      多謝您辛苦幫我debug囉
      謝謝

      回覆刪除
    10. 哈哈...

      原來是我沒有寫選擇COM PORT的程式碼

      下次更新時補上!!

      回覆刪除
    11. 您好^^
      再麻煩您有空把選擇COM PORT的功能加上去 這樣筆電也可以用囉^^
      要求有點多 謝謝

      回覆刪除
    12. 功能已經加上去摟!!

      謝謝!!

      回覆刪除
    13. Mahdi你好,新加选择COMM的功能能不能共享一下?我是大陆这边的。XCH

      回覆刪除
    14. 更改右上角PORT的編號就行了喔

      附圖
      http://lh5.ggpht.com/_YGCobP2xvzk/SbKVdiK4X4I/AAAAAAAAAZ0/b-RpchSQ8cM/2008030701.jpg

      回覆刪除
    15. MAHDI你好,你的烧2051程序我们大陆这边还是用不起来,界面显示的是乱码,就是因为台湾汉字使用BIG5内码,大陆这边使用BG2313内码,所以我想,要是能获得你的上位机源文件,我就可以用了。不知道会不会太苛求。你的并口烧AT89S52的有源文件,我在家翻译好了 xch
      xu__changhua@126.com

      回覆刪除
    16. MAHDI你好
      图片看到了。图片上显示的汉字,文件显示的不是汉字。
      XCH
      xu__changhua@126.com

      回覆刪除
    17. MAHDI你好
      前面回复有误,不是并口,是RS232的DTR/DSR和TXD烧89S51/52
      我翻译好了。
      翻译的时候要把BIG5和BG2313编码转来转去的

      回覆刪除
    18. Source Code 我已經上傳更新了

      其實你也能用Applocale來進行編碼轉換的程序,這樣會比較省事。

      回覆刪除
    19. MAHD你好,你的源代码我下载了,非常感谢。Applocale我还没用过,连听都没听说过,我准备看看Applocale。我不是计算机专业的。
      另外我今年春节期间也做了一个isp,见这里http://bbs.eeworld.com.cn/thread-72986-1-1.html
      不过不太完善,我手上有完善了的。需要的话可以传给你,包括源文件。我们可以多交流。

      回覆刪除
    20. 剛剛看了你的ISP程式,感覺很不錯呢。雖然最近課業較繁忙,所以可能沒時間研究了,不過還是很榮幸能跟你討論交流喔^^。

      回覆刪除
    21. Mahdi你好
      Applocale我测试了,果然效果不错,长见识了。谢谢。

      回覆刪除
    22. 請問一下~~
      你的測試步驟3.接上S51,BaudRate調(9600,n,8,1)讓程式輸出"sb",看看會不會傳回"U0"

      讓程式輸出"sb"的意思是要寫一個小程式送進8051的意思嗎

      回覆刪除
    23. 可以寫程式送入串列資料,不過也可以用"超級終端機"會比較方便。

      回覆刪除
    24. 請問一下Mahdi..
      你可以分享一下驅動ic(89s51)裡的程式碼嗎~~^^
      你是用keil c寫的嗎

      回覆刪除
    25. http://hayden0828.01.googlepages.com/UPT100.C

      是用keil C寫的沒錯...其實也只有一些串列資料接收的功能而已,並沒有什麼特別的

      回覆刪除
    26. 請問驅動IC能用C51嗎??
      手上的燒錄版只有能燒錄51的ˊˋ

      謝謝~~

      回覆刪除
    27. 可以喔!!!

      不果要注意埠的腳位對應和提升電阻

      其他都是相容的。

      回覆刪除
    28. 您好,
      小弟照著您的電路做了一份,
      到驅動端C51測試結果都正常,
      燒錄程式執行也都順利顯示燒錄完成,
      可是實際上卻好像沒有真的把程式燒錄進去,
      不知道可能是什麼原因呢?
      而且燒錄端接的P3.1的LED都一直亮著,
      可是根據datasheet好像只有在燒錄時才會才亮?
      感謝您的分享與協助。

      回覆刪除
    29. 如果測試正常

      那麼應該是燒錄端的問題

      先把Vpp(Rst)接至5V再切至12V,看看P3.1 LED燈有沒有熄掉
      P3.1只有在燒錄時會閃爍,先解決這個問題試試看!!!

      回覆刪除
    30. 感謝您即時的回覆,
      反覆測試了一下,
      P3.1仍頑強的亮著呢...
      不知道是否有其他方法測試呢?

      回覆刪除
    31. 那可能要先檢查一下電路囉

      或是拿其他的C2051來測試看看

      這電路Bug超多的.....真是辛苦你們了@@"

      回覆刪除
    32. 小弟有換過2051測試還是一樣,
      電路也用電錶量過各接點,
      甚至也拆掉重接過都還是一樣呢,
      目前仍卡關中...
      有google過其他rs232 port的2051燒錄器的電路,
      看起來都超複雜的,
      小弟還是再去k一下datasheet好了,
      看看是不是什麼環節忽略掉嚕。
      感謝版大熱心協助啦~^^

      回覆刪除
    33. 因為這個電路並沒有除錯的設計,所以較單純,但是同時也是較難Debug,如果有甚麼問題或是建議歡迎再討論喔

      回覆刪除
    34. 我用麵包板依圖製作 可以燒
      拿燒好的 2051 在設計電路板 卻不能燒 (可能問題是出在提到的P1需串聯10K電阻吧!!)
      還有 拿 4051燒 可以燒 但是 燒第二次卻像是 沒清除前程式 不知是燒錄程式問題與否
      原設計圖hin232 第15腳 是否接地 16腳 是否接+5電源
      被燒錄端的2051 第10腳 是否接地 都沒被畫上
      另外在大陸看到一些相同資料 對方 使用usb電源驅動
      然後在max232 內引出10v電壓供 2051 第一腳燒錄電壓
      我做法想 用12v 600ma變壓器 用7805過濾一組 供控制ic使用 在引出12v 給2051第一腳使用 中間不知要使用亟那二極體 限制12v電壓 以免過高 測量了一下 12v電壓 到了 燒錄第一腳 降壓到10.5v左右 拿 12v 1A 試電壓約在13V....
      板主是否可以 教導一下 燒錄原理 以及 燒錄導入碼 大家研究改進 燒錄程式

      回覆刪除
    35. 設計圖所遺漏的腳位是都要接的,我會再重畫一張。

      不能燒錄C4051是程式支援上的問題,已經開始著手解決了。

      max232輸出10V這種接法是不妥當的,DataSheet內有寫說輸入的電壓要11.5V至12.5V之間,所以可能要尋找變種的232準位轉換IC
      我最近會寫一篇關於MC34063的資料,可以用這顆IC轉換出12V的高壓來應用

      用變壓器是可行的,也不需要其他的零件了,Cx051電壓容忍都設計的不錯,12V只要輸入250uA的電流就能工作,輸出會到13V可能是需要更高容量消除鏈波的電容。

      至於燒錄的原理可以參考原廠的Datasheet

      http://www.datasheetcatalog.org/datasheets/270/130451_DS.pdf

      有問題歡迎再提出來討論

      回覆刪除
    36. Hello
      Do you have the english translated VB code and the microcontroller code so that i can add some more functions on it.
      Binu
      www.8051projects.info

      回覆刪除
    37. 你好..是這樣的.我請朋友幫我做一塊控制器.我照他的零組件和線路自己也組了一塊..但後面測試時發現不能動作..於是我拔他做好的控制器上的IC與我買的IC對調..發現可以動作了.
      我想請教的是..因為我對IC燒錄這東西不懂..對英文也陌生..怕把IC燒錄器買回來後不會使用..也找不到人教..
      我現在想用原先寫好程式的IC複製在新的IC上..請問我該怎麼做..和怎麼處理..和該準備哪些東西..可以教教我嗎..
      我的信箱:c921585948@yahoo.com.tw

      回覆刪除
    38. 抱歉..補充一下..我的IC是AT89C2051
      我現在想用原先寫好程式的IC複製在新的IC上..請問我該怎麼做..和怎麼處理..和該準備哪些東西..可以教教我嗎..
      我的信箱:c921585948@yahoo.com.tw

      回覆刪除
    39. 請問電路圖上的R1 跟R3 的電阻是多大的.謝謝~~

      回覆刪除
    40. 請問IC腳位是

      89c2051 89s51
      12----------------8
      13----------------7
      14----------------6
      15----------------5
      16----------------4
      17----------------3
      18----------------2
      19----------------1

      還是

      89c2051 89s51
      12----------------1
      13----------------2
      14----------------3
      15----------------4
      16----------------5
      17----------------6
      18----------------7
      19----------------8

      回覆刪除
    41. 你好 :
      我研究這個電路已經一年多了,從偵測不到驅動IC 到 完成燒錄成功
      可是 我的 燒錄晶片 AT89C2051 還是沒有東西
      不知道您的電路真的能燒錄 C2051嗎
      有幾個問題想請教
      1 我在開檔案時 ,,, Project1 執行階段錯誤'9' 陣列索引超出範圍
      2 C2051第一腳 我看別的電路都有控制v12電路,而你的是直接v12這樣不是一直抹除嗎 資料怎麼寫進去
      3 C2051 P3.1那顆LED總是亮著,除了按S51 Reset 時會熄滅( 兩顆LED都是亮著的從上電到燒錄完成)
      網路上找的電路到現在沒一個成功的,不知道怎麼燒錄 AT89C2051 可以幫幫我嗎 謝謝

      回覆刪除
    42. 你好:
      對照您的麵包板插線圖發現
      1 S51第9腳 RST 直接插 GND
      2 C2051 第一腳沒插東西 ,,,可是電路圖卻是標示12V ??? 我就是一直懷疑這裡
      3 S51 第17腳位的 LED2 好像也省了
      我再繼續努力

      回覆刪除

    Related Posts Plugin for WordPress, Blogger...