1.概要
- AVRISP mkIIとATtiny他の開発環境を組み込んだArduino IDEを連携させた使い方を解説します。
2.用意するもの
- AVRISP mkII
- ATtiny他の開発環境を組み込んだArduino IDE
- 工場出荷状態のATtiny10, ATtiny2313デバイス
- ブレッドボード / ジャンパー線
- LED / 抵抗 330〜1KΩ
3.実験回路
ATtiny2313 ISP書き込みモード | ATtiny10 TPI書き込みモード |
![]() |
![]() |
4.使い方 / 動作テスト
ATtiny2313
- 「3.実験回路」のATtiny2313を配線します。
AVRISPコネクタとATtiny2313の同じ名称のISP信号ピン同士を配線接続します。このピン割付表は「資料 Arduino ATtiny/mega ピン割付表」に収容してあります。 - 重要:AVRISP mkIIのVCCは電源電圧監視用でAVRISP mkII側からは電源供給されませんので外部からブレッドボードに+5Vを供給します
- ボード選択 IDEのメニュー[ツール]→[ボード:]と進み[ATtiny2313/4313]を選択します。
下の図A〜CはATtiny85を選択した例ですがATtiny2313の場合も同様な操作です。 - Chipの選択 IDEのメニュー[ツール]→[Chip:]と進み[ATtiny2313]を選択します。図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); }
- 「マイコンボードに書き込む」ボタンをクリックします。
- コンパイルと書き込みが行われ,工場出荷状態のATtiny2313であればLEDが約0.5秒間隔で点消灯するはずです。
- クロックを8MHz(Internal)に変更
- IDEのメニュー[ツール]→[Clock:]と進み[8MHz(Internal)]を選択します。
注意:ここでクロック選択を誤ると,後ほど行う「ヒューズビット書き換え実験」でATtiny2313が動かなくなります。 - 再度「マイコンボードに書き込む」ボタンをクリックします。
LEDが約4秒間隔で点消灯します。これは,ATtiny2313が内蔵クロック1MHzで動作しているのにクロック8MHzとしてスケッチをコンパイルして書き込んだために起こる現象です。次のヒューズビット書き換え操作でATtiny2313を内蔵クロック8MHzで動作させます。
今一度,IDEのメニュー[ツール]→[Clock:]と進み[8MHz(Internal)]となっていることを確認します。
- IDEのメニュー[ツール]→[Clock:]と進み[8MHz(Internal)]を選択します。
- ヒューズビット書き換え
IDEのメニュー[ツール]→[ブートローダの書き込み]と進みます。ダミーのブートローダ書き込みにより,ATtiny2313のヒューズビットの書き換えとプログラムの消去が行われます。
もういちど,「マイコンボードに書き込む」ボタンをクリックしてスケッチをコンパイルして書き込むとLEDは約0.5秒間隔で点消灯します。
ATtiny10
- 「3.実験回路」のATtiny10を配線します。
- AVRISP mkIIのコネクタのMISOをTPIDATA,SCKをTPICLKと読み替えて同じ名称のTPI信号ピン同士を配線接続します。
- TPIモードではAVRISP mkIIのMOSIは使いません。
- 重要:AVRISP mkIIのVCCは電源電圧監視用でAVRISP mkII側からは電源供給されませんので外部からブレッドボードに+5Vを供給します。
「資料 Arduino ATtiny/mega ピン割付表」
- 書込み装置選択 IDEのメニュー[ツール]→[書込み装置]と進みAVRISP mkIIを選択します。
- [ツール]→[ボード]でATtiny10(bitDuino10)を選択します。
- [ツール]→[Clock:]で[1MHz(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:]で[8MHz(Internal)]を選択します。
- ATtiny10に書き込みます。LEDが約0.5秒間隔で点消灯するはずです。
- ATtiny2313ではClock:を変更したときはブートローダ書き込み操作でヒューズビットの変更が必要でしたが,
ATtiny10は内部レジスタの設定変更で動作クロックを切り替えるためヒューズビット変更は不要です。
「Arduino IDE で ATtiny 他の開発」にもどる
update 2017.01.05 bitDuino_2017に対応した内容に変更
upload 2016.12.29 kimio kosaka