上禮拜六去寶藏巖參加 Openlab Taipei 舉辦的 Our do ino 聚會,跟大家一起學習如何使用 ATtiny85 晶片。本來計劃要用 ATtiny85 搭配 V-USB 製作 USB 名片卡,因為對 ATtiny85 不夠熟悉,中途卡了個關,沒有試成功(PS:可能是 ATtiny85 運作頻率沒設正確)。不過,至少我們學會了怎麼用 Arduino 燒錄 ATTiny。這篇是如何使用 Arduino 燒錄 ATtiny 的記錄。
我們用的是 ATtiny85 晶片,雖然如此,這篇所說的方法對 ATtiny84 (84/44/24), ATtiny85 (85/45/25) 和 ATtiny2313 這些系列的晶片來說應該都適用。
材料
你需要準備下列這些材料:
- Arduino Uno 或 Duemilanove
- ATtiny85 晶片
- 麵包板
- LED 一顆
- 跳線些許
安裝 arduino-tiny
- 下載 arduino-tiny
- 開啟檔案總管,切到 Arduino sketchbook 資料夾(通常是 "C:\Documents and Settings\username\My Documents\Arduino"
- 在 sketchbook 資料夾下建立 hardware 資料夾
- 解開 arduino-tiny 後,把裏面的 tiny 這個資料夾 copy 到 hardware 資料夾
- 重新啟動 Arduino IDE
- 在 Tools > Board 選單裏,你應該會看到像下圖一樣多出很多 ATtiny 的板子可供選擇
把 Arduino 變成燒錄器
我們要用 Arduino 來燒錄 ATtiny 晶片,所以必須先把 Arduino 變成燒錄器 (In-System Programmer, ISP),方法是:
- 啟動 Arduino IDE
- 打開 File > Examples > ArduinoISP 這支程式
- 注意:如果你用的是 Arduino 1.0,你必須先修改 ArduinoISP 的程式,把 heartbeat() function 的 delay(40) 改成 delay(20)。詳情請見這篇的說明。
- 到 Tools > Board 選擇你的 Arduino 板子,例如 Uno 或 Duemilanove
- 上傳 ArduinoISP 程式
連接 Arduino 與 ATtiny
接著要連接 Arduino 與 ATtiny。首先,先來看 ATtiny85 晶片的外觀:
從外觀上看,晶片有一點的地方就是接腳 1 的位置 (即 Reset pin)。下圖則是 ATtiny85 的 pinout:
照下圖連接 Arduino 與 ATtiny:
接腳連線說明:
- ATtiny Pin 4 接到 Gnd
- ATtiny Pin 8 接到 +5V
- ATtiny Pin 1 (Reset Pin) 接到 Arduino Pin 10
- ATtiny Pin 5 接到 Arduino Pin 11
- ATtiny Pin 6 接到 Arduino Pin 12
- ATtiny Pin 7 接到 Arduino Pin 13
另外,順便在 ATtiny Pin 5 上接一顆 LED,因為我們待會馬上會用到。
燒錄 ATtiny
再來我們就可以用 Arduino 來燒錄 ATtiny 了,也就是透過 Arduino 把程式上傳到 ATtiny 上。
- 點 File > Examples > 1. Basics > Blink 打開 Blink 程式
- 把原本的 pin number 從 13 改成 0
- 到 Tools > Board 選擇 "ATtiny85 @ 1 MHz (internal oscillator; BOD disabled)"
- 上傳程式
過幾秒鐘後,狀態列上就會顯示 Done uploading 的訊息。你可能會看到底下這兩行訊息,不過別擔心,程式應該是有正確上傳的:
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
上傳成功後,你就會看到麵包板上的那顆 LED 會亮一秒、滅一秒,不斷地在閃爍。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。