2014/02/06

簡介Adafruit的Gemma與Trinket

之前曾簡單介紹過Adafruit的穿戴式電子開發平台Flora,這一篇則來看看更小更迷你的Gemma與Trinket,因為兩者都使用同樣的微控制器ATtiny85,所以放在同一篇,並且列出差異處。

ATtiny85基本資料如下:

  • 腳位:8個,扣掉Vcc、Gnd、Reset,還有5個,不僅有類比輸入,也有PWM輸出。
  • Flash:8KB,其中2.75 KB被bootloader佔據。
  • EEPROM:512 bytes。
  • SRAM:512 bytes。
Gemma的正反面,直徑約28mm、厚度約7mm,重量1.85g。採用3.3V邏輯準位,時脈為8MHz。
Trinket的正反面,長寬高約31 x 15.5 x 5mm,重量3.29g。邏輯準位有兩個版本5V與3.3V(標示為3V),除此之外皆相同。時脈為8MHz,5V Trinket可跑16MHz。

下圖是5V的Trinket。
3.3V的Trinket。
Gemma與Trinket都使用Mini-USB連接埠,連接電腦端從USB埠供電,電源指示LED(綠色)就會亮起;Adafruit為ATtiny85開發了bootloader,當按下板子的重置鍵後會進入bootloader模式持續10秒(注意,無自動重置功能),此時板子上內建的LED(紅色)呈現呼吸狀態,此時就如同一台ISP燒錄器(等於是一台USBtinyISP ),我們便可使用Arduino IDE或avrdude進行燒錄。

不過ATtiny85這顆AVR微控制器其實並沒有專供存放bootloader的區域,所以有可能因意外或突然拔除電源造成bootloader毀損,但可修復

除了從USB埠供電,也能從外接電源供電,Gemma有JST端子,Trinket沒有JST,須自行接線到BAT+腳位。外接電壓最高可達16V,而3.3V準位的板子(Gemma與3V Trinket)最低輸入電壓建議值為3.5V,5V準位的板子(5V Trinket)則是5.5V;不需要超過6V,只會變成熱能形成浪費。板子的穩壓器能輸出150mA,可應付一般需求,但若要連接一大堆LED或其他零件,建議直接連往外接電源。

可使用三顆AA或AAA一般電池,1.5 x 3 = 4.5V。可使用四顆AA或AAA充電電池,1.2 x 4 = 4.8V。可使用兩顆2032,3V x 2 = 6V。可使用鋰離子/鋰聚合物電池,約3.6V/4.1V或3.7V/4.2V,但3.6V或3.7V無法供應5V Trinket。

板子會自動在USB埠或外接電源之間切換電力來源。不過Gemma與Trinket沒有外接電源的開關,而Flora有。

ATtiny85的8個腳位,扣掉Vcc、Gnd、Reset後,還有5個。都能作為數位輸入、數位輸出之用,可輸出電流大小約20mA;某些腳位有PWM,某些腳位可作為類比輸入,也支援SPI與I2C介面,其中腳位1連接到內建的LED(紅色)。詳請請參閱官方文件。

5個腳位當中有2個腳位與USB線路共享,Gemma並沒有接出來,Trinket有,使用時須小心,燒錄時最好能拔除這2個腳位連接的電路,避免干擾燒錄。

這些產品仍可稱為相容於Arduino,但因為Arduino官方並無使用ATtiny85的產品,所以需要對Arduino軟體開發環境做點小修改,可直接使用Adafruit修改後的版本,目前支援Windows與Mac,但已經有人成功在Linux下使用。更改的地方並不多,其實就是加入對於ATtiny85以及Gemma與Trinket的支援罷了。

與Arduino官方的1.0.5版比較,更動處後條列如下:
  • 子目錄drivers,加入需要的驅動程式。
  • 子目錄hardware/arduino/bootloaders/caterina,加入Flora的bootloader。
  • 子目錄hardware/arduino/core/arduino/USBCore.cpp,修改加入Adafruit自己的USB廠商編號VID與產品編號PID。
  • 子目錄hardware/arduino/variants,增加針腳定義檔。
  • 檔案hardware/arduino/boards.txt,修改加入板子的各項設定值。
  • 檔案hardware/tools/avr/avr/bin/ld.exe,修正錯誤,讓ATtiny85的草稿碼能大於4K。
  • 檔案hardware/tools/avr/etc/avrdude.conf,修改燒錄工具avrdude對於ATtiny85的設定。
  • 子目錄libraries/Adafruit_NeoPixel,Adafruit的產品NeoPixel的程式庫。
Adafruit不僅提供開發板,也寫了非常多的文件與示範專案,值得一看:Gemma的Trinket的
注意,Gemma與Trinket沒有底下的功能:
  • 沒有序列介面,不能跟電腦端(序列埠監控視窗)溝通訊息。
  • 跟有些USB 3.0埠不相容。
我在初次使用Gemma與Trinket時,發現在Windows上無法進行燒錄,但在Mac上卻可以,後來發現裝上USB集線器可以解決問題,這可能是因為電腦端USB驅動程式不喜歡以bit-bang的方式控制USB主方控制器的緣故。


參考資料:

No comments:

Post a Comment