2014年05月24日 | 公開。 |
2014年05月27日 | 一部改変。(表5) |
2015年10月07日 | 表5を最新の情報に書き換えた。 Arduino IDE 1.6.Xに対応した。 |
2015年10月15日 | このページの内容を、一部次のページに移した。 |
2016年02月25日 | 表4のATtiny44のアナログ入力ピンの数を訂正。 |
2016年07月01日 | ATtinyサポートファイルの入手法を更新。 |
2017年06月05日 | 表4を更新。 |
2017年06月08日 | 表4と表5を更新。 ATtiny13Aに関する記述を追加。 |
ATtiny13A、ATtiny44、ATtiny84、ATtiny45、およびATtiny85は、Arduino Unoに使われているATmega328Pと同じAtmel社のAVRマイコンと呼ばれるマイコンの一種です。ATtinyシリーズのAVRマイコンは、小型で、省電力、低コストになっている一方、ATmegaシリーズのAVRマイコンに比べると、内蔵している周辺回路の種類が少なかったり、搭載しているメモリの量が少なかったりと、性能的には制限があります。
性能的に制限があるといっても、例えばLEDが数個点滅するアクセサリを作るなどの用途では、ATmega328Pの性能はほとんど活かされておらず、それよりも、作品を小型化できるATtinyシリーズを使う方が好ましい事が多々あります。
ATtiny44とATtiny84は、14ピンのマイコンで、GPIOが12本使えます。また、それらのGPIOピンの内の8本は、10ビットのアナログ入力(A/D変換入力)としても使えます。一方で、搭載メモリが少なかったり、UART(シリアル通信)などの周辺回路がなかったりします。(注:USIという周辺回路を、半2重のUARTとして使えない事もない)
ATtiny13A、ATtiny45およびATtiny85は、8ピンのマイコンで、GPIOが6本使えます。また、それらのGPIOピンの内4本は、10ビットのアナログ入力としても使えます。搭載メモリや周辺回路が貧弱な点は、ほぼATtiny44やATtiny84と同様です。
次の表に、ATtiny13A/44/84/45/85とATmega328Pの主な違いをまとめます。
項目 | ATtiny13A | ATtiny45 | ATtiny85 | ATtiny44 | ATtiny84 | ATmega328P |
---|---|---|---|---|---|---|
ICのピン数 | 8ピン | 8ピン | 8ピン | 14ピン | 14ピン | 28ピン |
GPIOの本数 | 6本 (Arduinoとして使う場合は5本) |
←ATtiny13Aに同じ | ←ATtiny13Aに同じ | 12本 (Arduinoとして使う場合は11本) |
←ATtiny44に同じ | 23本 (Arduinoとして使う場合は20本) |
アナログ入力の本数 (アナログ入力ピンはGPIOピンと共用) |
4本 (Arduinoとして使う場合は3本) |
←ATtiny13Aに同じ | ←ATtiny13Aに同じ | 8本 | ←ATtiny44に同じ | 6本 |
PWM出力の本数 (PWM出力ピンはGPIOピンと共有) |
2本 | 4本 (Arduinoとして使う場合は2本) |
←ATtiny45に同じ | 4本 (Arduinoとして使う場合は3本) |
←ATtiny44に同じ | 6本 |
フラッシュメモリの容量 | 1kB | 4kB | 8kB | 4kB | 8KB | 32kB |
RAMの容量 | 64B | 256B | 512B | 256B | 512B | 2kB |
EEPROMの容量 | 64B | 256B | 512B | 256B | 512B | 1kB |
UARTインターフェース | なし | なし | なし | なし | なし | 1チャンネル |
I2C(TWI)インターフェース | なし | なし | なし | なし | なし | 1チャンネル |
SPIインターフェース | なし | なし | なし | なし | なし | 1チャンネル (マスター/スレーブ両対応。ただしArduinoで使えるのはマスターモードのみ) |
ATMega328P、ATtiny13AおよびATtiny85が秋月電子で入手できるのに対し、ATtiny44/84/45は、入手ルートが少ないです。
ATtiny13A/44/84/45/85にも、色々なパッケージの物がありますが、素人でも半田付けしやすいDIPタイプの物(型番の最後に-PUまたは-20PUが付く)に限って、入手先を調べてみました。次の表に入手先と、2017年6月の時点の価格を示します。
入手先 | ATtiny13A-PU | ATtiny45-20PU | ATtiny85-20PU | ATtiny44-20PU | ATtiny84-20PU |
---|---|---|---|---|---|
RSコンポーネンツ | 349円(1個購入時) 211円(50個購入時) |
765円(1個購入時) 327円(5個購入時) 219円(5個購入時) |
238円(5個購入時) 216円(25個購入時) |
250円(1個購入時) | 816円(1個購入時) 394円(2個購入時) |
共立電子 | 185円 | 349円 | 324円 | 630円 | |
マルツ | 200円(1個購入時) 157円(25個購入時) 122円(100個購入時) |
272円(1個購入時) 212円(25個購入時) 164円(100個購入時) |
215円(1個購入時) 204円(100個購入時) 194円(200個購入時) |
460円(1個購入時) 438円(50個購入時) 419円(100個購入時) 386円(200個購入時) |
442円(1個購入時) 356円(25個購入時) 290円(100個購入時) |
千石電商 | 221円(1個購入時) 198円(100個購入時) |
||||
スイッチサイエンス | 250円 | ||||
妙楽堂 | 110円 | 190円 | |||
Digikey | 100円(1個購入時) 92円(25個購入時) 84円(100個購入時) |
136円(1個購入時) 124円(25個購入時) 113円(100個購入時) |
148円(1個購入時) 135円(25個購入時) 123円(100個購入時) |
186円(1個購入時) 171円(25個購入時) 154円(100個購入時) |
243円(1個購入時) 224円(25個購入時) 203円(100個購入時) |
MOUSER | 102円(1個購入時) 94円(25個購入時) 85円(100個購入時) 81円(1000個購入時) |
139円(1個購入時) 126円(25個購入時) 115円(100個購入時) 110円(1000個購入時) |
149円(1個購入時) 137円(25個購入時) 125円(100個購入時) 120円(1000個購入時) |
216円(1個購入時) 198円(25個購入時) 180円(100個購入時) 171円(1000個購入時) |
267円(1個購入時) 227円(25個購入時) 205円(100個購入時) 197円(1000個購入時) |
秋月電子 (税込み価格) |
50円 | 160円 |
注:秋月電子以外の入手先の単価は消費税抜きで表示していますが、DigikeyとMOUSERは海外の商社ですので、輸入金額が1万円未満なら、消費税がかかりません。また、これらの海外の商社は、送料が高いので、少数のマイコンを試しに買ってみる用途には向きません。海外の商社の商品価格は、為替レートの変動に応じて、毎日の様に変動します。上の表は、参考程度に見てください。
ATtiny13AのスケッチをArduino IDEで開発する方法は、Arduinoで作った回路の小型化(Arduino互換機の製作)(10)に詳しく載っています。そちらを参照してください。
標準のArduino IDEでは、ATtiny44/84/45/85用のスケッチを開発する事はできませんが、MITメディアラボのHigh-Low TechグループがProgramming an ATtiny w/ Arduino 1.6(or 1.0)というページで、ATtinyサポートファイルを配布しており、これを利用する事で、ATtiny44/84/45/85の開発ができるようになります。このサポートファイルは、Arduino IDEの1.0.Xおよび1.6.X(Xは任意の数字)で使えます。
注:ATtinyサポートファイルはArduino IDE 1.6.0~1.6.3でもご利用いただけますが、Programming an ATtiny w/ Arduino 1.6(or 1.0)でサポートファイルのインストール法が説明されているのは、Arduino IDE 1.0.XとArduino IDE 1.6.4以降の場合だけです。
ATtinyサポートファイルの入手法は、Arduino IDE 1.0.Xをお使いの場合と、Arduino IDE 1.6.Xの場合とで異なります。
Arduino IDE 1.0.Xをお使いの場合、ATtinyサポートファイルをダウンロードするには、Programming an ATtiny w/ Arduino 1.6(or 1.0)のページの中ほどに、ide-1.0.x.zipというファイルがダウンロードできるリンクがありますので、探してください。
ダウンロードしたファイルを展開するとattiny-ide-1.0.xというフォルダができます。そのフォルダの中には、attinyという名前のフォルダが入っています。このattinyフォルダを、Arduino IDEが起動していない状態で、ドキュメント\Arduino\hadwareフォルダ(Windows環境の場合)の中にコピーすると、ATtinyサポートファイルのインストールが完了します。もし、ドキュメント\Arduino\hadwareフォルダがなければ、ドキュメント\Arduinoフォルダの中にhardwareフォルダを作成してから、その中にattinyフォルダをコピーしてください。
Arduino IDE 1.6.4以降をお使いの場合は、Arduino IDE上でATtinyサポートファイルの入手とインストールができます。以下の手順に従って、ATtinyサポートファイルの入手とインストールを行ってください。
Arduino IDEを起動後、ファイル→環境設定メニューを選択し、環境設定ダイアログボックスを開きます。
環境設定ダイアログボックス内で、追加のボードマネージャのURLの欄に
と入力し、OKボタンをクリックします。
注:古いArduino IDEの場合は、Additional Boards Manager URLsの欄に上記URLを入力します。
ツール→ボード→ボードマネージャメニューを選択し、ボードマネージャを起動します。
注:古いバージョンのArduino IDEでは、「ツール→ボード→Boards Manager...」メニューを選択します。
ATtinyサポートファイルは、ボードマネージャ内でattinyと表示されます。そのattinyをクリックして選ぶと、インストールボタンが表示されますので、クリックします。
注:古いバージョンのArduino IDEでは、Installボタンをクリックします。
ATtinyサポートファイルをインストールした後にArduino IDEを起動し、ツール→マイコンボードメニューを見ると、ATtiny44/84/45/85が追加されているのが分かります。
例えば、Arduino IDE 1.0.5の場合は、次の様な表示になります。
マイコンの型番の後ろに(internal 1MHz clock)などと書かれていますが、これは、クロックの周波数などを表しています。これらの表記とその意味の対応表を次に示します。
表記 | 意味 | 備考 |
---|---|---|
internal 1MHz clock | 内部1MHzクロック | 消費電力を下げたい場合に使う。 |
internal 8MHz clock | 内部8MHzクロック | ソフトウェアシリアルライブラリを使う場合や、高速の処理が必要な場合に使う。 |
external 20MHz clock | 外部20MHzクロック | 特に高速の処理が必要な場合に使う。この記事ではこのモードを扱わない。 |
また、Arduino IDE 1.6.4の場合は、ツール→ボードメニューを開くと、次の様な表示になります。
選択肢がATtinyのひとつしかありませんが、それを選んで、さらにツール→プロセッサメニューと、ツール→Clockメニューで、マイコンの種類とクロックの設定を選択します。
この様に、Arduino IDE 1.0.Xと1.6.Xでは、マイコンの種類やクロックの設定方法が異なりますが、これ以降は、Arduino IDE 1.0.Xを使う事を前提に説明をします。
先ほど、クロックの設定の話が出ましたので、簡単にクロックの話をしておきます。
ATtiny44/84/45/85には、8MHzのRC発振器が内蔵されており、これをマイコンのクロックとして使う事ができます(internal 8MHz clock)。また、これを内蔵の分周器で8分周し、1MHzのクロックとして使う事もできます(internal 1MHz clock)。
またATtiny44/84/45/85では、外部に水晶振動子またはセラミック発振子を付け、これをクロック源にすることもできます。しかしなら、Arduino用ブートローダ/スケッチライタは、外部のクロックを使うモードには対応していません。
外部クロック(external)モードでヒューズビットの書き込み(後述)を行うと、それ以降、Arduino用ブートローダ/スケッチライタでは、そのマイコンに対して書込みが行えなくなります。必ず内部クロック(internal)モードを選択してください。
ツール→マイコンボードメニューで、使いたいマイコンとクロック周波数を選べば、通常のArduinoと同様にATtiny44/84/45/85のスケッチを書く事ができるようになります。ただし、Arduinoの全ての関数が使えるわけではありません。ATtiny44/84/45/85で使える関数(およびライブラリ)は以下の通りです。
また、ATtiny44/84/45/85のピン配置は次の図の様になっています。
このページでは、ATtiny44/84/45/85の開発環境の構築の仕方の説明をしました。次のページではスケッチをATtiny44/84/45/85に書き込む方法について説明します。
商品名 | Arduino用ブートローダ/スケッチライタキット | |
税抜き小売価格 | 3000円 | |
販売店 | スイッチサイエンス | |
サポートページ | Arduino用ブートローダ/スケッチライタキットサポートページ |
商品名 | Arduino用ブートローダ/スケッチライタ(完成品) | |
税抜き小売価格 | 3600円 | |
販売店 | スイッチサイエンス マルツ | |
サポートページ | Arduino用ブートローダ/スケッチライタ(完成品)サポートページ |
商品名 | Arduino Uno用ブートローダスケッチライタシールドキット | |
税抜き小売価格 | 1440円 | |
販売店 | スイッチサイエンス | |
サポートページ | Arduino Uno用ブートローダライタシールドキットサポートページ |