1.概要
- ArduinoISPスケッチを書き込んだArduino UNOとATtiny他の開発環境を組み込んだArduino IDEを連携させた使い方を解説します。
2.用意するもの
- Arduino UNO or 互換ボード
ArduinoISPは色々なArduinoボードで動かすことができますが,ここではArduinoボードの最もポピュラーなUNOを用います。 - ATtiny他の開発環境を組み込んだArduino IDE
- 工場出荷状態のATtiny2313デバイス
- ブレッドボード / ジャンパー線
- LED / 抵抗 330〜1KΩ
3.実験回路
ATtiny2313 | ArduinoISPはATtiny10には非対応です |
![]() |
![]() |
4.使い方 / 動作テスト
- 「3.実験回路」のATtiny2313を配線します。
ArduinoISP信号のD13「SCK」とデバイスの「SCK->」,D12「MISO」とデバイスの「MISO->」のように接続。 MOSI,RESETについても同様。このピン割付表は「資料 Arduino ATtiny/mega ピン割付表」に収容してあります。 - Arduino UNO にArduinoISPスケッチを書き込みます。
Arduinoツールバー[開く]ボタン→[11.ArduinoIAP]→[ArduinoISP]→[マイコンボードに書き込む]ボタンをクリック - 書込み装置選択 IDEのメニュー[ツール]→[書込み装置]と進み[Arduino as ISP]を選択します。
- ボード選択 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秒間隔で点消灯します。 - 参考資料 (旧ページに記載していた配線サンプルです)
ATtiny2313 (DO–>LED) ATtiny13,45,85 (D3–>LED) ATtiny88P/168P/328P (DO–>LED) ATmega644P/1284P
「Arduino IDE で ATtiny 他の開発」にもどる
upload 2016.12.29 kimio kosaka