2012年11月1日 星期四

USBasp 安裝,並於 Arduino ATmega 168、Arduino ATmega 328 上傳 sketch

延續稍早所寫的:  Uploading  Sketch to Arduino ATmega 2560 via AVRISP mkII   一文

在上一篇文章裡頭所提到的 USBasp 燒錄器,雖然未能在 ATmega 2560 正常使用,
但若你手邊有 Arduino  Diecimila (ATmega 168) 、Duemilanove (ATmega 328),
就可以利用 USBasp 替這些版本的 Arduino 更換 Bootloader 和上傳 Sketch 。

下圖為 USBasp 外觀,這是從網拍購得,有些 USBasp 並沒有圖中的桃紅色外殼,
但不影響整體使用。價格大約在 NT $ 200 上下。




目標:

利用 USPasp  燒錄 Bootloader 與上傳 Sketch 至 Arduino Diecimila 、Duemilanove



整體工作步驟為:

安裝 USBasp 驅動程式  ->  開啟 Arduino  IDE  ->  設置燒錄設定  -> 
燒錄 Bootloader  ->  開啟範例程式  ->  燒錄範例程式



由於 USBasp  驅動本身似乎寫的不大好,因此在燒錄 Bootloader 與  Sketch 時,
都會出現警告,但基本上程式在 Arduino 還是運作良好,因此在此不詳述警告解決方法。

其實 USBasp 的警告問題,我也 Google 了很多文章,但基本上多數都是無解



  • 插上 USBasp ,隨即會跳出安裝驅動程式的畫面 


  • 至 C:\arduino-1.0.1\hardware\tools\avr\utils\libusb\bin



  • 開啟 Arduino  IDE ,挑選正確的 Arduino 版本與燒錄器



  • 燒錄 Bootloader 



               < 燒錄完畢後,狀態視窗會如上圖一樣出現警告,但不影響使用,直接忽略即可 >




燒錄範例程式:


開啟範例程式



請選擇 File -> Upload Using Programmer


             < 燒錄完畢後,狀態視窗會如上圖一樣出現警告,但不影響使用,直接忽略即可 >


燒錄過程中 RX、TX 的燈並不會閃爍,是因為經由 ICSP 腳位燒錄並未通過 USB 通訊晶片,因此RX、TX不會閃爍,請別誤以為損壞了。但靠近 Pin 13 腳位旁邊有一棵寫著 「L」 字樣的 LED,會在燒錄 Bootloader 與燒錄程式過程中不斷快速閃爍。

正常燒錄成功的話,應該可以看到 LED 不斷閃爍,到這裡恭喜你已經完成:

  • 將 USBasp 正確安裝驅動程式,並可以在 Arduino IDE 中正常使用
  • 使用 USBasp 燒錄更換 Arduino Diecimila、Duemilanove 的 Bootloader
  • 使用 USBasp 上傳 Sketch 至 Arduino


===============================================================================

這篇文章主要是為了說明買了 USBasp 的使用者,如何正確的安裝 USBasp 的驅動程式,
並可以利用 Arduino IDE 正確上傳 Bootloader 與 Sketch 到 Arduino 上。


這篇裡頭我們依舊先不談如何設定 AVR  單晶片裡頭的 Fuse ,
因為在 Arduino  IDE 中,他只會判讀使用 Arduino  IDE 資料夾本身所夾帶的 Driver,
即使你的 AVRISP  mkII 或  USBasp  是安裝了燒錄器官方所提供的 Driver,
Arduino  IDE 依舊無法正常讀取。


使用 USBasp 的好處如下:

  • 夠便宜! 一個從網拍購買,含運費大約兩百多元即可入手。
  • 可以針對小型的 Arduino 作 Bootloader 燒錄,並上傳 Sketch。
  • 若不需要 Bootloader 時,還可以完整利用 AVR 單晶片全部的記憶體空間,讓開發更有彈性!


之後的篇幅會在提及如何設定 AVR 單晶片的 Fuse 部份。
由於設定 Fuse 時,將會用到燒錄器官方所提供的編譯環境,因此驅動程式必須改灌回官方版本,
在此先暫不詳述。

祝各位實驗順利!  Have  fun !







5 則留言:

  1. 可以詢問一下
    版主~

    插入USB ISP 後
    但是部會生成 COM PORT
    這樣ARDUINO 要設定SERIAL PORT時就無法設定燒入
    這樣要怎樣用比較好呢?
    還是需要用甚麼方式呢?

    感謝您~

    回覆刪除
  2. 您好,插入 USB ISP 若沒有顯示出 COM port,基本上是 USB ISP 的驅動不完整或沒有安裝,請先確認您有正確安裝好驅動程式

    回覆刪除
  3. 我想請問您,燒錄成功之後板子上接的LED會不斷閃爍的原因為何?
    還有,是否有方法能夠消除LED在燒錄成功之後的閃爍?
    謝謝你

    回覆刪除
    回覆
    1. 您好,這部分聽起來比較像是還沒有燒錄完,或是程式端在燒錄完成後沒有關閉 com port,因此會持續閃爍。建議您換一套軟體試試!

      刪除
    2. 你好~新手請教一下
      我使用的是arduino 1.8.1版本的,根據你上面步驟走,但是發現資料夾開到avr之後沒有看見utils這個資料夾,avr資料夾裡面我都看過了沒找到,請問該怎麼辦

      刪除