1.概要
- AVRISP mkIIクローンに変身させたArduinoボードとATtiny他の開発環境を組み込んだArduino IDEを連携させた使い方を解説します。
2.用意するもの
- AVRISP mkIIクローンに変身させたArduino UNO Rev.3 他
- ATtinyの開発環境を組み込んだArduino IDE
- ATtiny85,ATtiny13, ATtiny10デバイス
- ブレッドボード / ジャンパー線
- オスーメスジャンパー線
秋月電子・ブレッドボードジャンパーコード(オスーメス)類似品 - LED / 抵抗 330〜1KΩ
3.実験回路
ATtiny13/85 ISPモード | ATtiny10 TPIモード |
![]() |
![]() |
ATtiny10/13のピン割付は「資料 Arduino ATtiny/mega ピン割付表」参照。
4.使い方 / 動作テスト
Attiny85
- デバイスにATtiny85を用い「3.実験回路」のATtiny13/85(図1)を配線します。
UNOのISP信号ピンとデバイスのISP信号ピンの名称の合わせて配線接続します。ATtiny13/45/85以外のピン割付は「資料 Arduino ATtiny/mega ピン割付表」に収容してあります。
- 書込み装置選択 IDEのメニュー[ツール]→[書込み装置]と進みAVRISP mkIIを選択します。
- ボード選択 IDEのメニュー[ツール]→[ボード:]と進み[ATtiny25/45/85]を選択します。図A
- Chipの選択 IDEのメニュー[ツール]→[Chip:]と進み[ATtiny85]を選択します。図B
- Clockの選択 IDEのメニュー[ツール]→[Clock:]と進み[IMHz(Internal)]を選択します。図C
- 下のスケッチを入力します。。
#define PIN 3 #define DTIME 500 void setup() { pinMode(PIN, OUTPUT); } void loop() { digitalWrite(PIN, HIGH); delay(DTIME); digitalWrite(PIN, LOW); delay(DTIME); }
- [マイコンボードに書き込む]ボタンをクリックします。
コンパイルと書き込みが行われ,工場出荷状態のATtiny85であればLEDが約0.5秒間隔で点消灯するはずです。 - クロックを8MHz(Internal)に変更
- IDEのメニュー[ツール]→[Clock:]と進み[8MHz(Internal)]を選択します。
注意:ここでクロック選択を誤ると,後ほど行う「ヒューズビット書き換え実験」でATtiny85が動かなくなります。 - 再度「マイコンボードに書き込む」ボタンをクリックします。
LEDが約4秒間隔で点消灯します。これは,ATtiny85が内蔵クロック1MHzで動作しているのにクロック8MHzとしてスケッチをコンパイルして書き込んだために起こる現象です。次のヒューズビット書き換え操作でATtiny85を内蔵クロック8MHzで動作させます。
今一度,IDEのメニュー[ツール]→[Clock:]と進み[8MHz(Internal)]となっていることを確認します。
- IDEのメニュー[ツール]→[Clock:]と進み[8MHz(Internal)]を選択します。
- ヒューズビット書き換え
メニュー[ツール]→[ブートローダの書き込み]と進みます。ダミーのブートローダ書き込みにより,ATtiny85のヒューズビットの書き換えとプログラムの消去が行われます。
もういちど,スケッチをコンパイルして書き込むとLEDは約0.5秒間隔で点消灯するはずです。
Attiny13
- 「3.実験回路」ATtiny13/85(図2)の配線そのままで。ATtiny85をATtiny13に交換します。
- ボード選択 IDEのメニュー[ツール]→[ボード]と進みATtiny13(bitDuino13)を選択します。
- Clockの選択 IDEのメニュー[ツール]→[Clock:]と進み[I.2MHz(Internal)]を選択します。
- スケッチもそのままで,「マイコンボードに書き込む」ボタンをクリックします。
- コンパイルと書き込みが行われ,工場出荷状態のATtiny13であればLEDが約0.5秒間隔で点消灯するはずです。
- クロックを9.6MHz(Internal)に変更
- IDEのメニュー[ツール]→[Clock:]と進み[9.6MHz(Internal)]を選択します。
- 再度「マイコンボードに書き込む」ボタンをクリックします。
LEDが約4秒間隔で点消灯します。これは,ATtiny85のときと同じようにデバイスの動作クロックとスケッチのコンパイル時のクロック設定が合っていないからです。ヒューズビット書き換え操作でATtiny13を内蔵クロック9.6MHzで動作させます
- ヒューズビット書き換え
IDEのメニュー[ツール]→[ブートローダの書き込み]で書き換えた後,「マイコンボードに書き込む」ボタンをクリックしてスケッチをコンパイルして書き込みます。LEDは約0.5秒間隔で点消灯します。
ATtiny10
- 「3.実験回路」のATtiny10を配線します
- [ツール]→[ボード]でATtiny10(bitDuino10)を選択します。
- [ツール]→[Clock:]で[8MHz(Internal)]を選択します。
- スケッチの第1行目を#define PIN 2と変更します。
#define PIN 2 #define DTIME 500 void setup() { pinMode(PIN, OUTPUT); } void loop() { digitalWrite(PIN, HIGH); delay(DTIME); digitalWrite(PIN, LOW); delay(DTIME); }
- 「マイコンボードに書き込む」ボタンをクリックしてATtiny10に書き込みます。 LEDが約0.5秒間隔で点消灯するはずです。
- クロック周波数を変えて書き込みます。
- [ツール]→[Clock:]で[1MHz(Internal)]を選択します。
- ATtiny10に書き込みます。 LEDが約0.5秒間隔で点消灯するはずです。
- ATtiny85/13ではClock:を変更したときはブートローダ書き込み操作でヒューズビットの変更が必要でしたが,
ATtiny10は内部レジスタの設定変更で動作クロックを切り替えるためヒューズビット変更は不要です。
update 2017.01.05 bitDuino_2017に対応した内容に変更
upload 2016.12.28 kimio kosaka