最近這一陣子,Atmel 一直在更新 AVR 微處理器的編輯軟體,從 AVR Studio 4 到現在最新的版本 Atmel Studio 6,程式碼撰寫變得越來越人性化,也大幅減少打字錯誤以及編譯的速度,因此如果電腦還有空間的話,可以更新或是直接下載 AVR Studio 5 或 Atmel Studio 6 安裝,絕對讓你耳目一新!
電腦環境:
- HP COMPAQ 8710W
- Processor: Intel Core 2 Duo CPU T7500 2.20GHz
- Memory (RAM) : 4GB
- Windows Vista Business, SP2, 64-bit
- 燒錄器:USBtinyISP ( 上 Google 瞧瞧這東西的樣子! )
我一開始使用 AVR Studio 4 配合 USBtinyISP 進行晶片的燒錄,但官方軟體只知官方燒錄硬體,如 STK500 和 AVRISP Programmer。因為兩者都是使用 serial port ( 串列埠 ) 與 PC 做連接,而 USBtinyISP 是使用 USB 轉 serial port,兩者不同,即使插上 USBtinyISP, AVR Studio 4 也不會認得 USBtinyISP。
解決的方法就是 USBtiny500 將 USBtinyISP 模擬成 AVR Studio 4 認得的硬體,並利用 COM Bride 軟體 com0com,建立 AVR Studio 4 與 USBtinyISP 兩者 serial port 的連接。這樣傳送到 STK500 或 AVRISP 的命令,就會轉到 USBtinyISP 幫你(妳)完成燒錄的動作。
AVR Studio 4 使用 USBtinyISP 燒錄的方法,請參考這個網站的說明。
升級到 V5 和 V6 後,上述的方法就不能再用了,也就是本文接下來要講的,怎樣使用升級後的軟體做燒錄,以及環境如何設置。
AVR Studio 5 與 Atmel Studio 6 兩者設置步驟都一樣,不同的是在設置 "Tools / External Tools" 的參數有些差異,因此接下來會一起討論。
ps. 如果你是直接安裝 AVR Studio 5 或是 Atmel Studio 6,直接使用下面步驟及可,不需再安裝前面 AVR Studio 4 的軟體。
安裝設置步驟:
- 下載 Atmel Studio 6 或 AVR Studio 5
- 下載更新檔 (可裝可不裝,這裡的更新檔是 Ateml Studio 6 Patch2)
- 步驟1, 2 的下載檔若是不能下載,請至直接到軟體下載頁面點選育下載的連結並填入相關訊息後下載 (AVR Studio 5、Atmel Studio 6)
- 安裝 Windows USBtinyISP W32 driver built with libusb v1.12. ; 其他的版本 64-bit windows Vista or 7 ( 在這個網頁確認是否是最新版本。看 "Drivers" 的內容就好,其他的不需安裝 )
- 安裝 Atmel AVR 8-bit and 32-bit Toolchain 最新版 (撰寫時最新版為 V3.4.0)
- Toolchain 安裝完成後,打開命令提示視窗,直接輸入 avrdude,看是不是會出現類似下面的文字。如果出現了,就表示安裝與系統環境變數設置沒問題
- 打開 AVR Studio 5 或 Atmel Studio 6,在選單 "Tools \ External Tools...",照著下面的圖設置相關參數。不管版本 V5 或 V6
C:\>avrdude Usage: avrdude [options] Options: -p <partno> Required. Specify AVR device. -b <baudrate> Override RS-232 baud rate. -B <bitclock> Specify JTAG/STK500v2 bit clock period (us). -C <config-file> Specify location of configuration file. -c <programmer> Specify programmer type. -D Disable auto erase for flash memory -i <delay> ISP Clock Delay [in microseconds] -P <port> Specify connection port. -F Override invalid signature check. -e Perform a chip erase. -O Perform RC oscillator calibration (see AVR053). -U <memtype>:r|w|v:<filename>[:format] Memory operation specification. Multiple -U options are allowed, each request is performed in the order specified. -n Do not write anything to the device. -V Do not verify. -u Disable safemode, default when running from a script. -s Silent safemode operation, will not ask you if fuses should be changed back. -t Enter terminal mode. -E <exitspec>[,<exitspec>] List programmer exit specifications. -x <extended_param> Pass <extended_param> to programmer. -y Count # erase cycles in EEPROM. -Y <number> Initialize erase cycle # in EEPROM. -v Verbose output. -v -v for more. -q Quell progress output. -q -q for less. -? Display this usage. avrdude version 5.10, URL: <http://savannah.nongnu.org/projects/avrdude/> C:\>
例如設置 ATtiny2313:
- Command: "avrdude.exe"
- Arguments: "-c usbtiny -p t2313 -U flash:w:Release\$(ItemFileName).hex:i"
- Initial directory: "$(ProjectDir)"; 試過用 "$(ItemDir)" 也可以,都可找到正確的 *.hex 檔
- 選擇 "Use Output window"; 這樣就可以直接在下方的輸出視窗看到燒錄執行的進度
AVR Studio 5, Atmel Studio 6, "Tools \ External Tools..." 介面設置
設置好之後,插上 USBtinyISP 到 PC,連接 ISP 線到晶片,在選單中選擇 "Tools \ USBtinyISP - Attiny2313" (或其它設定的名稱),開始燒錄你 ( 妳 ) 的晶片吧 !
您好,
回覆刪除最近使用上也有遇到類似的問題,在您的截圖上有看到針對Atmega328p有獨立一個設置>?是針對不同的IC(被寫入)就會有不同的設置嗎?
若是的話,請問針對Atmega328p該如何設置呢?
我依照網路上的資料自行做了一條下載線,在Studio裡面也能被認為是STK500,寫過atmega8沒問題MCU也能正常動作;但是要寫入Atmega328p時,總是寫入不了.(出現確認錯誤訊息),想請問您是否有遇過類似問題?
謝謝!
您好:
刪除我確定如果您使用的是如這網站(http://www.seeedstudio.com/wiki/Atmel_AVRISP_STK500_USB_ISP_Programmer#Supported_Devices)上面說的那一種,那它是有支援 ATMega328p 的。
您可以試試下面使用 STK500 燒錄的 ATMega328p 的 argument (設定是 "" 裡面的字串)
"-c stk500 -p m328p -U flash:w:Release\$(ItemFileName).hex:i"
通常發生寫不進去晶片時,請先確認是否可進入 Terminal mode
"avrdude -p m328p -c stk500 -t",可以的話就表示沒問題,你寫入晶片的參數設定要再看一下!
如果不行可將錯誤訊息或是更詳細得資料放上來一起討論。
你好 感謝你的tinyISP的教學
回覆刪除成功了 !!
最近使用stk500v2的燒錄器
不知道是否有方法呢?