11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【ATtiny】各種ATtinyチップにブートローダーやスケッチを書き込む際に使えるArduinoシールド基板の製作!

各種ATtinyチップにブートローダーやスケッチを書き込む際に使えるArduinoシールド基板を作ってみました。

ATtinyチップでよく使われているのを見かけるものでは8ピンタイプのATtiny45やATtiny85、14ピンタイプではATtiny44やATtiny84、また20ピンタイプのものではATtiny2313やATtiny4313などがありますが、これ以外にも多くのチップがリリースされています。

ATtinyシリーズのチップは、Arduinoでも使われているAtmel(現Microchip)の8ビットAVRマイコンとなります。
開発環境にArduino IDEを使うことができ、ブートローダーやスケッチを書き込むことによりArduinoとして動かすことが出来ます。

ATtiny85という小さなチップを使ってこのようなミニゲーム機を作ることも出来ました。

【電子工作】ミニAVRマイコンATtiny85で動かすミニゲーム機『Tiny Joypad』互換ボードを作ってみました!【JLCPCB】

また使えるI/O端子の数が増えた14ピンチップのATtiny44やATtiny84を使い、このようなミニ無線コントローラーの製作も考えています。

さらに使えるI/O端子の数が増えたATtiny2313やATtiny4313では20ピンタイプのチップとなっています。

ATtinyシリーズのチップはこれ以外にもまだ多数あるわけですが、これらメジャーな(よく使われる)各種ATtinyチップにブートローダーやスケッチを書き込む際に使えるArduinoシールド基板を作ってみました。

ATtinyチップの書き込みに使えるArduinoシールド基板の製作

冒頭でお話したようにATtinyはその開発環境にArduino IDEを使うことができ、スケッチを書き込みArduinoとして動かすことが出来ます。

Arduinoの扱いに慣れてくると使ってみるのは面白く、ArduinoやAVRマイコンの学習用としても最適です!

ATtinyチップへのブートローダーやスケッチの書き込みにはAVRライタやプログラマといった書き込み装置が必要となってきますが、ISPでの書き込みに対応しているためArduinoが1台あればこのArduinoボードを経由して書き込む事も出来ます。
ArduinoをAVRライタとして機能させるということですね!

ATtinyへのスケッチ書き込み方法などの詳細はこちらの記事も参考にして下さい!

ミニAVRマイコン『ATtiny85』にブートローダーを書き込みArduinoとして使えるようにしてみる!ATtiny85の基本的な使い方!
ATtiny24/ATtiny44/ATtiny84をArduinoとして動かす基本的な方法!
ATtiny2313/ATtiny4313をArduinoとして動かしてみる!

そしてArduinoボードを使った書き込みではArduinoとの接続自体は簡単ですが、テストや開発段階ではスケッチを書き込む際に毎回配線するのは非常に面倒な作業となります。

そこで書き込み用のボードやこのようなArduinoシールドを作っておくと便利となります!

ATtiny書き込みシールド基板の概要

各種ATtinyチップの書き込みの際に使えるこのようなArduinoシールド基板を作りました!

8ピンタイプのATtiny13やATtiny45/85、14ピンタイプのATtiny24/44/84、また20ピンタイプのATtiny2313/4313など各種ATtinyチップにスケッチやブートローダーを書き込む際に使えるArduinoシールド基板です。

ピン数の多いチップではICソケットでの抜き差しは大変なので、ゼロプレッシャーソケットを使っています。

また書き込みの際に使う端子(MOSI/MISO/SCK)およびRESET/VCC/GND端子はATtinyチップのピン数により位置が異なってくるので、2つのICソケットを使い分ける構成にしています。
8ピンおよび20ピンタイプは共用とし1台のソケットを使い、14ピンタイプのチップはもう1台のソケットを使うという感じです。

ソケットを1台にまとめることも可能でしたが、切り替えスイッチやジャンパー端子が必要となり使い勝手が悪くなるため、2台に分けて書き込むチップにより乗せるソケットを変えるという構成にしました。

参考までに、回路構成はこのようになっています。
非常に簡単なものです。

3つのステータスLED(緑・赤・青)とテストLED(黄)を1つ取り付けています。

テストLEDは各ATtinyチップの3番ピンに接続しているので、スケッチを書き込みLチカによる簡単な動作確認も出来るようになっています。

また、ArduinoとATtinyチップを個別でリセットできるように2つのリセットスイッチも取り付けています。

Arduino Uno用の書き込みシールドとして作っていますが、ISP端子も取り付けているのでUSBaspなどのAVRライタと直接接続して書き込むことも出来ます。

【電子工作】Arduino(AVRマイコン)のブートローダー書き込みにUSBaspを使ってみる!

以上がこのシールド基板の概要となります。

ATtinyチップを扱う際に書き込み基板やこのようなArduinoシールドを自作しておくと非常に便利となります!

ステータスLEDについて

Arduinoを書込装置(AVRライタ)として使う場合、ArduinoISPというスケッチを書き込みます。
ArduinoISPを書き込んだArduinoボードはAVRライタとして機能し、各種ATtinyチップにブートローダーやスケッチを書き込む事が出来ます。

少しArduinoISPについても見ておきます。
Arduino IDEの[ファイル]→[スケッチ例]→[11.ArduinoISP]]→[ArduinoISP]を開きます。

このスケッチをArduinoボードに書き込むことにより、ArduinoをAVRライタとして機能させることが出来ます。(詳しくは上記記事を参考にして下さい。)

ArduinoISPスケッチのコメント部分を見てみると、ステータスLEDについて書かれています。
この部分ですね!

ArduinoのD9/D8/D7端子に接続したLEDの点灯や点滅により、書き込み実行中やエラー等のステータスを確認できるというものです。

  • D9(Heatbeat) ArduinoISPが正常に動作しているか
  • D8(Error) 書き込みエラーが出た場合に点灯
  • D7(Programming) 書き込み中に点滅

書き込みの際のステータスを表示するLEDとなり取り付けしなくても動作させることが出来ますが、自作書き込み基板を製作される際にはこのLEDを付けておいた方が便利かもしれませんね!

書き込みの際にArduino側の端子に繋いだLEDが点灯するので、書き込みが成功したのか失敗したのかなどその状態をLEDの点灯で確認する事ができます。

ATtinyチップに書き込み中にはArduinoのD7端子(Programming)に繋いだLEDが点滅し、書き込みエラーが発生した場合はD8端子(Error)に繋いだLEDが点灯します。
また、ArduinoISPスケッチが正常に動作している時にはD9端子(Heatbeat)に繋いだLEDが常にゆっくりと明暗を繰り返します。

このステータスLEDはArduinoISPを書き込んだArduinoボードのD7/D8/D9端子にLEDを接続するだけなので、自作書き込みボードを製作される際は付けておくと便利です!

シールド基板の製作【JLCPCB】

簡単なArduinoシールド基板ですが、ATtinyチップを扱う際にはこのような基板を作っておくと非常に便利に使えます。

今回基板製作にはJLCPCBを使いました。
JLCPCBでは基板製作料金と海外からの送料を含めて500円程度でこの基板を作る事が出来ます。(基板5枚の料金です)

JLCPCBさんでは非常にお安く作ることが出来るので、自作する際はユニバーサル基板などを使って製作するよりコスパは高いかもしれませんね!

基板データ(ガーバーファイル)も残しておきます。
興味ある方は参考にして頂ければと思います!

また、JLCPCBでの基板発注方法に関してはこちらの記事で詳しく解説しているので参考にして下さい。

【電子工作】はじめての基板製作!JLCPCBさんに基板を発注してみました。ユーザー登録・データ納品・基板到着までの一連の流れをご紹介!

必要なパーツ一覧

製作に必要なパーツ一覧です。
自作書き込み基板を製作する際に参考にして下さい!

製作に必要なパーツ一覧
・ゼロプレッシャーソケット(14ピン/20ピン)※ICソケットで代用可
・LED×4
・抵抗×4(300Ω前後)
・タクトスイッチ×2(6mm角)
・電解コンデンサ(10μF程度)
・セラミックコンデンサ(0.1μF)
・ピンヘッダー

ゼロプレッシャーソケット

ICソケットを取り付けて使うことも出来ますが、書き込みシールドなので頻繁にチップの取り付け&取り外しをすることを想定してゼロプレッシャーソケットを使いました。

14ピンや20ピンのチップともなると取り外しがしにくく、高い確率で足が曲がってしまうのでゼロプレッシャーソケットが便利です。

取り付け部分は2.54mmピッチ・300milサイズのものとなり、通常のICソケットでも代用できます。

LED & 抵抗

ステータスLEDが3つとテストLEDが1つの計4つのLEDを使っています。
ステータスLEDはプログラムが緑、エラーが赤、Heatbeatが青、そしてテストLEDは黄色のLEDを使いました。
色はお好みで!

また抵抗4本はこれらLEDの電流制限抵抗です。
LEDの色により抵抗値は若干変わってきますが、300Ω~1kΩ程度のものを使えば問題ありません。

抵抗やLEDは電子工作用途で使用頻度が高いものなので、このようなセットものを持っていると便利です!

タクトスイッチ

ArduinoおよびセットしたATtinyチップを個別でリセット出来るように2つのタクトスイッチを使っています。
6mm角(6mm×6mm)のサイズのものを使っています。

コンデンサ

10μFの電解コンデンサと0.1μFのセラミックコンデンサをそれぞれ1つ使っています。
コンデンサは無くても動作しますが、書き込みの際にエラーが出る場合や書き込みが安定しない場合は10μF程度の電解コンデンサを入れて下さい!

ピンヘッダー

ISP端子およびArduinoとの接続部分にピンヘッダーが必要となります。

ユニバーサル基板でも簡単に作れます!

今回基板を製作して作りましたが、回路構成は非常に簡単なのでユニバーサル基板などを使い作っておくと便利だと思います。

今回ご紹介したようなArduinoのシールド形状で作るなら、Arduino Unoの基板サイズになったシールド用のユニバーサル基板も販売されているので簡単に作れると思います。

またArduinoにはプロトタイプシールドという小規模な回路が組める便利なシールドがありますが、これにICソケットを取り付けて作ってみるのもいいかと思います。

今回、8ピン/14ピン/20ピンタイプのATtinyチップに書き込めるArduinoシールド形状の基板を製作しましたが、よく使うチップのみに限定したものを作っておくのもいいかと思います。

はじめはATtiny45やATtiny85など8ピンチップのみのこのような簡単な書き込み基板を作っていましたが・・・
使うチップが増えてきたことから、今回のようなArduinoシールド形状で作り直しました。

最後に!

ATtinyはその開発環境にArduino IDEを使うことができArduinoスケッチを書き込み動かすことが出来るので、Arduinoの扱いに慣れてきたら使ってみるのは面白く、製作の幅も広がると思います。

ATtinyは非常に多くのプロジェクトで使われています。
調べると面白いものがたくさん出てくるので参考になり、そしてArduinoやAVRマイコン学習用としても最適ですね!

コメントを残す