2011年6月17日 星期五

avrdude-GUI (yuki-lab.jp Version)

avrdude-GUI 簡介

avrdude 是很普遍使用的 AVR 燒錄程式 (programmer),不過 avrdude 是指令列的工具,對初學者來說很容易令人怯步,sourceForge 上有個 avrdude-gui 的專案,那是給 avrdude 用的 GUI 介面,不過 avrdude-gui 一直停留在 2004 的版本,已經很久沒有更新了。本文要介紹的是另一個 avrdude 的 GUI 介面,是由 KAWAKAMI Yukio 用 C# 撰寫而成的 avrdude-GUI

avrdude-GUI 主畫面如下:

image

使用 avrdude-GUI 第一件事是設定 avrdude.exe 執行檔的路徑:

image
▲ 上圖使用 Arduino IDE 裏的 avrdude.exe

設定 PATH 環境變數

為了使用 avrdude,你必須把底下幾個路徑加到 PATH 環境變數裏:

C:\arduino-00xx\hardware\tools\avr\bin;
C:\arduino-00xx\hardware\tools\avr\utils\bin;
C:\arduino-00xx\hardware\tools\avr\etc

其中,arduino-00xx 是 Arduino IDE 的版本號碼,例如 arduino-0021。

接下來將介紹如何用 avrdude-GUI 燒錄 Arduino Sketch。

燒錄 Arduino Sketch

以 Blink 程式為例,底下是使用 avrdude-GUI 燒錄韌體的步驟:

1. 參考底下畫面設定 Programmer, Port, Device 以及 Command line Option:

image

其中:

Programmer: 由於 Arduino 大部份 bootloader 講的都是 stk500v1 協定,因此這個選項選擇 "Atmel STK500 Version 1.x firmware (stk500v1)

Port: 設定 Arduino 連接的 Serial Port,此例使用 COM4,如果你的 Serial port 不是 COM4,請適當調整。

Device: 設定所用的 AVR 晶片,我使用的是 atmega328p 晶片,你必須知道你 Arduino 板子所用的 AVR 晶片為何。

Command line Option: 這裏設 -b 57600 是指以 57600 bps 的 baud rate 速率燒錄。關於 Arduino 板子的 baud rate 設定,可以在 "arduino-00xx\hardware\arduino\boards.txt" 裏找到,這部份請參考「用 avrdude 燒錄 Arduino Sketch」的說明。

2. 選擇 hex 檔路並開始燒錄

參考下圖所示,接著只要在 Flash 欄位選擇 hex 檔的路徑,然後按下 Write 或 "Erase – Write – Verify" 按鈕,就可以把 hex 檔燒錄到 Arduino 板子上了:

 image 

用 AVR dragon 燒錄 Arduino bootloader

如果你手上有 AVR dragon 燒錄器,可以參考底下的步驟燒錄 Arduino bootloader:

參考下圖的指示:

image

主要是:

(1) Programmer 要選擇 "Atmel AVR Dragon in ISP mode (dragon_isp)"

(2) Port 要用 "usb" 並設定好所用的 Device,本例使用 ATmega328P

(3) 選擇 hex 檔的路徑,Arduino bootloader 的 hex 檔都放在 "arduino-00xx\hardware\arduino\bootloaders" 底下,以 Arduino Duemilanove (atmega328p) 為例,hex 檔是 "arduino-00xx\hardware\arduino\bootloaders\ATmegaBOOT_168_atmega328.hex"

(4) 最後按下 "Erase – Write - Verify" 便可以完成 bootloader 的燒錄工作。

註:你也可以用 AVR Dragon 搭配 avrdude-GUI 讀取與設定 Fuse 與 Lock Bit,不過,以 Arduino 而言,通常是不需要更改的。

延伸閱讀

0 意見: