2015年3月3日 星期二

ATtiny85 開發板使用說明,與 Arduino IDE 編輯環境設置

網頁最後修改時間:2017/01/02

ATtiny85 是屬於 ATMEL 生產的 AVR 8-bit 微控制器晶片,具有 8K Byte 可程式 Flash ROM、512 Bytes In-System 可程式 EEPROM 與 512 Bytes 內部 SRAM,8 支接腳的封裝非常適合小型專案的開發。

一般開發 AVR 晶片使用 ATMEL Studio 或 IAR 整合編輯環境又或是直接使用 AVR GCC 撰寫韌體程式,需要閱讀篇幅攏長的資料手冊才能掌握晶片的開發要點。優點是可以完全發揮晶片的各項功能,但缺點是需要耗費比較多的時間在底層的硬體參數設置與規劃上。對於初學者或是想嘗試使用 ATMEL AVR ATtiny 晶片的人來說,都是非常折磨人的過程 ! 尤其,只需要用到幾支接腳功能的應用來說,能夠快速達到要求才是最重要的,上手過程能夠越短就能省下更多的時間與金錢 !

ATtiny85 開發板就是能解決這問題的一項選擇!

如果是直接使用已經設置好 ATtiny85 開發板的 Arduino IDE 版本 ( 最新的官方釋出版本是使用 Arduino IDE 1.5.8 版本做修改 ),那接下來就只要注意到硬體限制的部分與注意事項就好,其他的部分就毋須理會 ! 但若需要設置 ATtiny85 開發板到 Arduino IDE 不同版本中 ( 這裡是使用 Arduino IDE 1.6.0 做示範,但同樣適用於 1.5 以上的版本 ),也就是讓現有的 Arduino IDE 支援 ATtiny85 開發板的話,那就要注意接下來網頁中的說明!

Note:下面的操作需要一些檔案,這些檔案放置在賣場所提供的雲端硬碟資料夾中,請先開啟雲端硬碟或是下載全部檔案以備使用。若沒有賣場所提供的檔案,同樣的也可以上網找到這些支援檔案依照說明做安裝。
"ATtiny85 開發板 "可至露天賣場訂購:
ATTiny85 開發板

ATTiny85 開發板扣除 VCC 與 GND 兩支接腳,共有六支接腳可供選擇使用,每支接腳除了可作為數位輸出入 ( Digital Input / Output ) 規劃之外,還可規劃為類比輸入、PWM 輸出,並具有與 I2C 與 SPI 周邊的通訊的功能,最重要的一點!就是可以使用 Arduino IDE 來做為程式編輯開發環境。對於熟悉 Arduino 程式語言的使用者來說,程式碼幾乎可以直接移植就能使用,甚至直接套用!

ATtiny85 開發板外觀尺寸與接腳名稱如下圖所示,
ATtiny85 開發板尺寸、板面布局與接腳名稱
( 配合上圖對照 ) 簡單描述開發板規格:
  • 可直接使用 MicroUSB 供電;但建議使用外接式電源經由 VIN GND 供電 ( 供電範圍 DC 7V - 35V ),內建的穩壓器會輸出 DC 5V / 500mA 的電源供開發板使用。
  • 內建 USB,可做為 Serial debugging
  • 8K Flash Memory ( 燒錄 Bootloader 之後,還有 6K Bytes 可供使用 )
  • 6 個可程式功能的接腳,依不同功能取向可配置
    • 最多 6 個數位輸入 / 輸出 ( Digital Input / Output )
    • 最多 3PWM ( 可使用軟體 PWM 設置更多的 PWM 功能的接腳 )
    • 最多 4ADC ( 類比輸入 )
    • 一組 I2C ( 使用 Pin 0Pin  2 )
      對於使用 I2C,請參考 TinyWireM 函式庫 ( Arduino IDE 設置好之後,可在 File / Examples / 找到 TinyWireM )
    • 一組 SPI ( 使用 Pin 0Pin 1Pin 2  )
  • 內建一顆電源指示 LED 燈與一顆 Test / Status 指示 LED 燈 ( 接在 Pin 1 )

ATtiny85 開發板電路圖
Note:電路圖與開發板的對照為 
PB0 - PB5 = JP3 1 - 5 = P0 - P5 ( Pin 0 - Pin 5 )

ATtiny85 雖然同樣使用 Arduino IDE 做開發,但是由於只有 8 支接腳以及硬體上的差異,還是與一般熟知以 ATmega328 晶片有所差異!因此在使用 ATtiny85 開發板必須注意到幾個地方:
  • 大部分為 Arduino 的 ATmega328 撰寫的函式庫不完全適用於 ATtiny85 開發板
  • 燒錄 Bootloader 的 ATtiny85 開發板,還有 6KB 的 Flash ROM 空間可供使用者儲存程式
  • 開發板上的 P3P4 被使用於 USB 通訊與程式寫入時,如果不使用 USB 通訊的功能,就可以直接將這兩支接腳做一般使用。但要注意的是,如果設計的電路會阻礙其接腳的狀態或明顯的影響在這兩支接腳的電壓準位,在上傳 Sketch 前請拔掉任何與開發板連接的電路再上傳程式。
  • 因為 USB 通訊的關係,P3 接腳另外又添加了 1.5 kΩ 的提升 ( pull-up ) 電阻,在設計電路時必須將這點考慮進來,避免無法正常拉低此接腳的準位。
  • ATtiny85 開發板沒有硬體串列埠 ( hardware serial port ),也沒有硬體串列埠轉 USB 的功能,但在File / Examples / DigisparkUSB 資料夾中提供了 DigiUSB 函式庫使用以及類似 Serial Monitor 的範例程式。但有一點要注意的是,有時與電腦的通訊並不總是會隨插即能用,尤其是涉及其他函式庫使用的時候。

下載手動添加 ATtiny85 開發板到 Arduino IDE 的檔案

進入到賣場商品的雲端硬碟中,根據下面列表下載資料夾需要的檔案
雲端硬碟資料夾目錄
  • ATtiny85 開發板 Arduino 驅動程式
    下載 "ATtiny85DevBoard_drivers_for_ArduinoIDE.zip"
  • DigiStumpArduino - Files to add Digistump
    下載 "digistump_bc44c9bb45.zip"
  • ATtiny85 開發板 Arduino Examples
    下載 "Digispark_Examples.zip"

接下來的設置過程適用於 Arduino IDE 1.5+ 以上的版本 ( 有興趣可參考網頁 "Arduino IDE 1.5 3rd party Hardware specification" 中的說明 ),其他版本使用不同的設置方式,請自行上網路搜尋。

Note:請一定要依照下面所說明的步驟來做,在未成功上傳第一個 Sketch 到 ATtiny85 開發板之前,請勿自行變動任何與步驟中不同的動作,避免複雜化與通訊失敗 !!!

安裝環境:Windows 8.1, 64-bit;Arduino IDE 1.6.0

/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*
網頁中的資料是針對舊版的 Arduino IDE 安裝支援 ATtiny85 的硬體套件。現在新版本 ( V1.6.5+ 以上) 的 Arduino IDE 支援自動安裝;詳細的安裝方式可參考 "Connceting and Programming Your Digispark" 網頁中的說明。
/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*

安裝 ATtiny85 開發板 Windows 驅動程式

使用檔案:ATtiny85DevBoard_drivers_for_ArduinoIDE.zip

若已插上 ATtiny85 開發板在 PC 的 USB 插槽中,請先拔掉它!

在作業系統中找一個地方解壓檔案。解壓縮之後,找到裡面的 "Install Drivers.bat" 批次檔並執行它,再根據出現的畫面,一步步安裝 ATtiny85 開發板驅動程式。

開啟 "裝置管理員",再將 ATtiny85 開發板使用 MicroUSB 插到電腦上,接著注意 "裝置管理員"上面的變化,在 "裝置管理員" 中會出現 libusb-win32 devices 的標籤,快速 ( 差不多只有 5 秒鐘的時間 ) 移動滑鼠到標籤點擊一下,就會看到 Digispark Bootloader 的文字出現,這就表示驅動程式已完全安裝成功。

裝置管理員中顯示 ATtiny85 開發板的驅動程式

但緊接著在 5 秒鐘之後,剛剛看到的圖示就會不見!這是因為 ATtiny85 開發板只會在這 5 秒之內作為一個可程式的裝置 ( 也就是可以接收來自 Arduino IDE 所上傳的 Sketch 程式 ),5 秒鐘之後就會開始執行儲存在 Flash ROM  裡面的代碼或是做為其他 USB 裝置 ( 如果使用者去修改其中的 V-USB 代碼 )。這也就是為什麼大約在 5 秒鐘之後,"裝置管理員" 上面的 libusb-win32 devices 圖示會不見的原因,千萬不要認為它驅動不正常。

現象解釋過了之後,先再繼續往下做!


安裝 ATtiny85 開發板硬體描述檔案

使用檔案:digistump_bc44c9bb45.zip

應該沒有記錯,Arduino IDE 在版本 1.5 之後,開始支援第三方硬體的支援檔案安裝在使用者的資料夾中 ( C:\{User}\Documents\Arduino ),這使得軟體更新變得更方便,且幾乎不用再移動之前所撰寫的程式碼,以及對其他硬體環境的支援檔案到新版本軟體的資料夾中,轉換版本上快了很多!其中 {User} 是登入作業系統的使用者名稱,一般就是現在所指的就是

Download the Arduino Software

如果電腦中沒有安裝Arduino IDE 的話,到上面提供的官網連結下載最新版的 Arduino IDE!

不管是下載自動安裝檔或是自行解壓縮安裝的 Arduino IDE,請到安裝資料夾中啟動 arduino.exe 或是桌面上雙擊 Arduino 圖示。因為若之前未安裝或開啟過 Arduino IDE 的話,此項動作將會幫使用者在 C:\{User}\Documents\ 目錄下新建一個 Arduino 的資料夾,不然等一下安裝時就會找不到這個目錄用。

記得關閉 Arduino IDE !! 因為下面步驟所做的變更,都必須要重新開啟 Arduino IDE 之後才會生效!

進入到 C:\{User}\Documents\Arduino\hardware 目錄下 ( 若沒有 hardware 資料夾在 Arduino 目錄下,要自己新建一個 ),將 digistump_bc44c9bb45.zip 直接解壓縮到此,就會在 hardware 目錄下建立一個 digitump 的資料夾,由於一些動作已事先做好,所以不需要再做其他的事,這樣就可以了,繼續下個步驟!


安裝 ATtiny85 開發板範例程式碼

使用檔案:Digispark_Examples.zip

範例程式碼的安裝也同樣是以解壓縮的方式進行。進入到 C:\{User}\Documents\libraries 目錄下,直接將 Digispark_Examples.zip 解壓縮到這個地方,目錄就會多增加一個名為 Digispark 的資料夾,裡面就是範例程式。

開啟 Arduino IDE,點擊 File / Examples 就會看到新增的 Digispark,其他的 Digisprk# 來自於 C:\{User}\Documents\Arduino\hardware\digistump\libraries 。黃色區域部分都是可以使用的 ATtiny85 範例程式碼,有適用的部分之後再自行研究。
Arduino IDE 1.6.0 新增 ATtiny85 開發板範例程式

上傳第一個 Sketch 程式

一但設定好 Arduino IDE 對於 ATtiny85 開發板的支援之後,就是上傳第一個 sketch 程式做測試!

點擊 Arduino IDE 選單 Tools \ Board,在出現的列表中選擇 Digispark ( Default - 16.5 mhz ),而且不需要設定 Programmer ( 就算設定了也不會有影響 ),因為上傳程式是使用 USB 而不是燒錄器 ( Programmer )。
設定目標硬體

插上 ATtiny85 開發板到電腦的 USB 插槽上 !

各位拿到 ATtiny85 開發板時,板子已經預先上傳了一個 Blink.ino 的程式,因此在板子通上電源 5 秒鐘之後,就會看到板子中央的 LED 每秒閃爍一次。

看完現有板載的 Sketch 程式運作的情形之後,拔掉 ATtiny85 開發板!

下面修改這個 Sketch 程式使得 LED 亮的時間變短,藉以與原始板載的 Sketch 做區別。

開啟 Sketch 程式 ( File / Examples / Digispark / Start ) ,並修改裡面的內如與下面程式碼一樣,修改之後的 Sketch 程式碼記得存檔。
 1 
 2 // the setup routine runs once when you press reset:
 3 void setup() {                
 4   // initialize the digital pin as an output.
 5   pinMode(1, OUTPUT); //LED on Model A   
 6 }
 7 
 8 // the loop routine runs over and over again forever:
 9 void loop() {
10   digitalWrite(1, HIGH);  // turn the LED on (HIGH is the voltage level)
11   delay(50);               // wait for a second
12   digitalWrite(1, LOW);    // turn the LED off by making the voltage LOW
13   delay(500);               // wait for a second
14 }

按下 upload 按鈕 ( 或從選單  File / Upload ),程式開始編譯。編譯完成之後就是重點了!在 Arduino IDE 的畫面下方的 Log 視窗會出現文字

"Running Digispark Uploader ...

Plug in device now... ( will timeout in 60 seconds )"

就是這個時候!Arduino IDE 會出現訊息,提示使用者在 60 秒裡,插上 ATtiny85 開發板到 USB 插槽準備上傳 Sketch 程式
編譯完成,出現訊息等待使用者插上 ATtiny85 到 USB 插槽
因為程式很短,所以一下子的時間就會完成上傳的動作。

我們將開始上傳的 Log 視窗訊息以及完成的視窗訊息貼在下面供大家做參考
上傳 Sketch 程式 - 01
上傳 Sketch 程式 - 02

完整的 Sketch 程式碼與完成上傳完成的 Log 視窗訊息,如下圖所示
Blink.ino

Sketch 上傳完成之後,等一會兒就會開始執行程式,就會看到與之前不一樣的 LED 亮滅方式,到此就完成所有的設置與測試 ATtiny85 開發板的動作,其他的就看使用者自己的應用了!


結論

ATtiny85 是一顆小巧且功能強大的晶片,除了接腳比較少之外,大多數的功能都能在 Arduino IDE 中來實現,而且程式撰寫相對於使用 AVR GCC 來做更加的簡單與快速,對於初學者或是有經驗的使用者都是一個很好入門以及實驗的板子!

更重要的一點,範例程式中有好幾個使用 V-USB 開發的範例程式,都是可以直接使用 ATtiny85 開發板來做的,有興趣這部分的使用者可以花點時間研究一下,就這樣 !

沒有留言:

張貼留言