2013/09/08

Arduino:自製並列埠燒錄線

這篇參考Arduino官方網站的Parallel Port Programmer,製作一條並列埠燒錄線,可以燒錄一般草稿碼(sketch)、也可以燒錄bootloader到Arduino的微控制器晶片裡,但不能作為電腦與Arduino之間溝通傳輸的管道,那需要序列傳輸介面。

並列埠(parallel port),又稱為列表機埠(printer port),通常拿來接印表機或掃描器,現在多半被USB取代,不過我的電腦很老舊,所以還有並列埠(也有序列埠),作業系統是Windows XP(XP再戰十年?),板子是Arduino Uno R3,軟體開發環境是1.0.5版。

零件與材料:
  • 並列埠與保護殼
  • 五條電線,一頭焊接在並列埠,一頭是杜邦端子插入杜邦母座
  • 2x3的杜邦母座,套入Arduino板的ICSP針腳
  • 220歐姆電阻,1個
  • 470歐姆電阻,2個
所需工具:
  • 烙鐵
  • 焊錫
並列埠的背面與正面,背面焊接電線與電阻,正面插入電腦的並列埠。


並列埠的保護殼。


五條電線,一頭已裝好杜邦端子金屬部分。


2x3杜邦母座,將杜邦端子金屬部分插入即可。


並列埠有25個腳,我們只需要其中5個,電路圖如下。


動手焊接吧,這就沒什麼好說的了,焊好後用絕緣膠帶捆起來避免短路,塞入保護殼,鎖好螺絲。


根據Arduino Uno板子上的ICSP針腳,將電線另一頭杜邦端子金屬部分插入2x3杜邦母座。


完成囉。


插入Arduino的ICSP,然後將並列埠插入電腦,並提供電源給Arduino板(譬如使用9V電池)。


以上是硬體的部份,軟體的部份需下載MIT's Microcomputer Project Laboratory的giveio,解壓縮後執行裡頭的ginstall.bat即可安裝,這是讓上層軟體可存取低階硬體資源(例如並列埠)的驅動程式。然後開啟Arduino IDE,選Tools-Board設定正確的板子(此處為Uno),從Tools-ProgrammerParallel Programmer,然後就可以透過File-Upload Using Programmer燒錄草稿碼(注意,這麼做bootloader會不見),而透過Tools-Burn Bootloader可燒錄bootloader。

不過當我燒錄某草稿碼後,想要燒錄bootloader,卻出現如下錯誤訊息:
...
bitbang_cmd(): [ 20 3F FE 00 ] [ FF FF FF FF ]
bitbang_cmd(): [ 28 3F FE 00 ] [ FF FF FF FF ]
bitbang_cmd(): [ 20 3F FF 00 ] [ FF FF FF FF ]
bitbang_cmd(): [ 28 3F FF 00 ] [ FF FF FF FF ]
# | 100% 16.58s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x7e00
         0x11 != 0xff
avrdude: verification error; content mismatch

avrdude done.  Thank you.

搜尋後也不知道怎麼解決,但只要拔掉並列埠重插、重置Arduino板的電源、重新開啟Arduino IDE,就可以成功燒錄bootloader。


參考資料:

No comments:

Post a Comment