2011年3月26日 星期六

[DIY] 手工自製彈珠台 - Part II AT89S51 單晶片燒錄器

為了增加彈珠台的樂趣,身為軟體人,硬是把 8051 的書借來海 K 了一頓.. 最後決定用較新的 AT89S51 單晶片來實做,電子材料行一顆 $60。




有了單晶片,接下來的大問題就是,如何將燒錄檔寫到晶片裡.. 市面上 AT89SXX 系列燒錄器,動輒兩千以上啊!Y 拍找到最便宜的也要一千多.. 拜 Google 之賜,網路上資源豐富,且 AT89S51 只需要 5v 電壓,其燒錄器的電路相當簡單,如下圖所示。




另外參考了這兩個網頁的製作心得

追風箏的小孩 - 自製 AT89S51 單晶片燒錄器

Greening - 自製 AT89S51單晶片燒錄器(完全免焊接)

這是第一階段買的部份零件,過程中跑了好幾趟材料行換零件,第一次覺得電子材料行真是個神奇的地方,好多有趣的玩意兒。




由於燒錄器常需要拿來拿去,因此最後我決定捨棄麵包板,改用萬用板來焊接,線路接點會比較穩固。Printer Port 的線路,也因為長久使用的考量,買了 6pin 的莫仕接頭,重複拔取比較不會破壞線路。而供應電源的 USB Port,剛好有一條多餘的 B Type USB 線,所以後來改換 B type 的 USB 母端。

為了不影響上班時間,只好犧牲午休以及下班後的時間,花了兩天將板子與 Printer Port 的線焊好,成品如下。所有電子零件價格總和也只有一百多元,比起市面上的燒錄器價格,讓我直呼現賺兩千塊呀!






接著就要進入燒錄的階段,可以到 ISP Flash Microcontroller Programmer 下載,個人是使用 ISP-3v0.zip。執行程式後,右上角選擇晶片名稱,點擊 Open File 選擇 Hex 燒錄檔,再按下 Write 即可開始寫入,寫入完成會跳出 OK 的訊息視窗。若有寫入失敗的情況,可以試著清空 Buffer,按下 Disp Buffer,並將所有欄位清為 FF,應該就可以再次寫入了。




小弟非硬體出身,談不上什麼寶貴的經驗,不過倒是運氣好解決了一些問題,有一些經驗可以分享。

Q1: 在執行 ISP-Pgm3v0.exe 時跳出「Privilege Instruction」,進入軟體後不管按什麼鈕,甚至按關閉視窗,都會跳出「Privilege Instruction」,只能用工作管理員強制關閉。

A: 若出現此狀況,請不要直接執行 ISP-Pgm3v0.exe,另外,先確定目錄中有否 AllowIO.exe 檔,接著打開命令提示字元,進入 ISP-3v0 目錄,輸入「AllowIO ISP-Pgm3v0 /a」,即可擁有權限存取 IO。

Q2、在燒錄軟體中,按下任何處理鈕時跳出「No Response from uC」,意思為 No Response from Micro-Controller。

A: 通常如果 IC 沒有接上,就會跳出這個訊息。這個問題我沒有遇到,但大部分人的經驗是,可能 Printer Port 線路沒接好,或是 Printer Port 訊號不穩定,或是 Printer Port 腳位接錯,譬如上面的電路圖腳位是從針腳處看進去的,千萬別接錯。若排除訊號線的問題或 IC 故障的可能,那就真的得好好檢查電路零件有沒有故障囉..

[2011/04/20 更新]
Q3、有朋友問到,電腦沒有 Printer Port,能否使用 USB 轉 Printer Port 轉換。關於這點,可以參考此篇文章,有詳細的「經驗分析」,以及購買轉接線的注意事項,請參考 USB 轉 Printer Port


[延伸閱讀] 童年的回憶 - 手工自製彈珠台

17 則留言:

  1. 你好:D請問彈珠台 AT89S51需要寫程式嘛 如果有程式碼可以給我嘛:))

    回覆刪除
  2. 程式沒有寫得多漂亮,就不獻醜了,有問題倒是可以討論討論

    回覆刪除
  3. 因為我們想把這彈珠台做為專題報告 想知道材料需要甚麼 線路圖等:))

    回覆刪除
  4. 線路圖是憑空想像就開始焊接了,說真的實在沒有什麼 AutoCAD 的成品。我想主要的材料是 89S51 單晶片,取 10 隻腳位做 LED,另外 10 隻腳位做微動開關的感應器,9 隻腳位做兩個七段顯示器的控制,1 隻腳位做按鈕控制,1 隻腳位做蜂鳴器控制。

    回覆刪除
  5. 請問用「USB轉25PIN」再接到燒錄器上有辦法燒嗎?
    因為我工作用的筆電沒有25PIN接頭……

    回覆刪除
  6. 這個問題也困擾過我,請參考網誌內容最後新增的部份,有一個討論的蠻詳細的討論串,裡頭有提到購買轉接線要注意的事項,以及可能遇到的問題。可以參考看看再決定

    回覆刪除
  7. 請問...電容是幾v的呢?可以給我詳細資訊嗎= =剛買材料發現沒注意到這點.........麻煩您了!!!!!

    回覆刪除
  8. 電容幾 v 應該無妨吧?我買的是 0.1uF 50V 耐壓 50 伏,可是這小小燒錄器應該不可能到這種程度..

    回覆刪除
  9. 如果用arduino應該會更簡單,http://www.arduino.cc/,現成的電路和晶片整組在拍賣網站NTD700左右就買得到了,建議買跟原廠型號相容的版本就好.便宜又好用(usb燒錄)

    回覆刪除
  10. 感謝您的資訊,USB 燒錄方便多了

    回覆刪除
  11. 不好意思
    我在家裡試著用燒錄程式的時候
    不斷的出現你說的第一個問題
    可是用命令提示字元照著你的方法操作
    仍然出現錯誤 錯誤訊息如下
    AllowIO for PortTalk V2.0
    Copyright 2002 Craig Peacock
    http://www.beyondlogic.org
    PortTalk: You do not have rights to access the Service Control Manager and
    PortTalk: the PortTalk driver is not installed or started. Please ask
    PortTalk: your administrator to install the driver on your behalf.
    PortTalk: Couldn't access PortTalk Driver, Please ensure driver is loaded.
    家裡電腦是WIN7 Printport是用USB的
    而你提供的討論串的連結失效了
    所以我就挑了兩個來試 結果還是不能用
    不知道問題是出在哪裡??
    所以來請教你一下

    回覆刪除
  12. 也許要請您請教高手了,Win7 在存取權限上的管理比舊版系統還要嚴謹,可能有很多 XP 系統以外的例外情況.. 沒有幫上忙不好意思嚕~

    回覆刪除
  13. 剛好對於樓上的問題有點經驗, 路過分享一下.
    同樣是win7, 開啟"命令提示字元"麻煩到
    開始>>所有程式>>附屬應用程式
    找到"命令提示字元"右鍵以系統管理員身分開啟.
    雖然程式成功開啟, 但燒錄時還是失敗, 還再找原因. 以上經驗希望有任何幫助!

    回覆刪除
  14. 你好 請教一下
    我開啟ISP-3v0
    也跑出Privilege Instruction
    可是我看不太懂上面寫的(抱歉電腦不太好)
    只能到開啟'命令提示字元'
    然後就卡住了
    能請你幫幫忙嗎

    回覆刪除
    回覆
    1. 1. 首先確定 ISP-Pgm3v0.exe 同目錄下有沒有 AllowIO.exe 檔案
      2. 命令字元進入 ISP-3v0 目錄的方法,假設位於 D:\\Dir\ABC\ISP-3v0
      依序在命令字元輸入:
      D:
      cd Dir
      cd ABC
      cd ISP-3v0
      3. 命令字元進入 ISP-3v0 目錄後,再輸入 AllowIO ISP-Pgm3v0 /a

      刪除
    2. 您好 我也遇到了 Privilege Instruction 的問題
      我有按照樓上大大的指示
      但後來又遇到以下問題

      我也檢查過以下所提到的PortTalk.SYS有無在System32的資料夾中,是有的。
      所以現在卡住了。
      麻煩各位大大解答,非常感謝。

      D:\Motion\AT89S51\ISP-3v>AllowIO ISP-Pgm3v0/a
      AllowIO for PortTalk V2.0
      Copyright 2002 Craig Peacock
      http://www.beyondlogic.org
      PortTalk: Unknown error while starting PortTalk driver service.
      PortTalk: Does PortTalk.SYS exist in your \System32\Drivers Directory?
      PortTalk: Couldn't access PortTalk Driver, Please ensure driver is loaded.

      刪除
  15. 請問一下
    這邊擺的Parallel Port 電路圖 是從端口那邊方向看過去的 還是從背面焊點看過去的
    (因為方向不同 左右會顛倒) ??????????

    回覆刪除