這篇參考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-Programmer選Parallel 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。
參考資料:
- Arduino官方文件,Using an Arduino as an AVR ISP (In-System Programmer),Parallel Port Programmer,Building an Arduino on a Breadboard,From Arduino to a Microcontroller on a Breadboard、Bootloader Development。
- swf.com.tw的用麵包板組裝Arduino微電腦實驗板。
- Dale Wheat的How to Build an Arduino-compatible Physical Computing Platform on a Solderless Breadboard。
- Boarduino, Solderless Breadboard Arduino Clone。
- AVR ISP燒錄線DIY。
- Arduino下载线使用手册。
- 米奇電路的[AVR]-自製AVR ISP下載線~Part-I、[AVR]-自製USB AVR燒錄器~USBasp、[AVR]-自製USB AVR單晶片燒錄器~USBasp v.2。
- GROBO: DIY Arduino - 將Bootloader寫進ATMega晶片!(3)。
- Cooper Maa的把 Arduino 當成一個 AVR ISP(In-System Programmer) 使用(1)、把 Arduino 當成一個 AVR ISP(In-System Programmer) 使用(2)、使用 Arduino 燒錄 ATtiny。
- ladyada的USBtinyISP。
- USBtiny。
- USBasp。
- ELM - Simple AVR Programmer。
- AVR-Doper,STK500 compatible In-System Programmer (ISP) and High Voltage Serial Programmer (HVSP)。
- ScienceProg – AVR ISP。
- Learning About the AVR Parallel Programmer與Learning About Arduino and ATMega8。
- AVRDUDE、PonyProg、UISP。
No comments:
Post a Comment