網頁

2012年8月26日 星期日

USBtinyISP 在 AVR Studio 5 和 Atmel Studio 6 的配置

最近這一陣子,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 的軟體。

安裝設置步驟:

  1. 下載 Atmel Studio 6 或 AVR Studio 5
  2. 下載更新檔 (可裝可不裝,這裡的更新檔是 Ateml Studio 6 Patch2)
  3. 步驟1, 2 的下載檔若是不能下載,請至直接到軟體下載頁面點選育下載的連結並填入相關訊息後下載 (AVR Studio 5、Atmel Studio 6)
  4. 安裝 Windows USBtinyISP W32 driver built with libusb v1.12. ; 其他的版本 64-bit windows Vista or 7 ( 在這個網頁確認是否是最新版本。看 "Drivers" 的內容就好,其他的不需安裝 )
  5. 安裝 Atmel AVR 8-bit and 32-bit Toolchain 最新版 (撰寫時最新版為 V3.4.0)
  6. Toolchain 安裝完成後,打開命令提示視窗,直接輸入 avrdude,看是不是會出現類似下面的文字。如果出現了,就表示安裝與系統環境變數設置沒問題 

  7. 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:\>
    

  8. 打開 AVR Studio 5 或 Atmel Studio 6,在選單 "Tools \ External Tools...",照著下面的圖設置相關參數。不管版本 V5 或 V6


例如設置 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" (或其它設定的名稱),開始燒錄你 ( 妳 ) 的晶片吧 !

3 則留言:

  1. 您好,
    最近使用上也有遇到類似的問題,在您的截圖上有看到針對Atmega328p有獨立一個設置>?是針對不同的IC(被寫入)就會有不同的設置嗎?
    若是的話,請問針對Atmega328p該如何設置呢?

    我依照網路上的資料自行做了一條下載線,在Studio裡面也能被認為是STK500,寫過atmega8沒問題MCU也能正常動作;但是要寫入Atmega328p時,總是寫入不了.(出現確認錯誤訊息),想請問您是否有遇過類似問題?

    謝謝!

    回覆刪除
    回覆
    1. 您好:
      我確定如果您使用的是如這網站(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",可以的話就表示沒問題,你寫入晶片的參數設定要再看一下!

      如果不行可將錯誤訊息或是更詳細得資料放上來一起討論。

      刪除
  2. 你好 感謝你的tinyISP的教學
    成功了 !!
    最近使用stk500v2的燒錄器
    不知道是否有方法呢?

    回覆刪除