AT Tiny13Aで遊ぶ

電子工作

以前秋月で50円で売られていたATMELの激安マイコンのAT Tiny13Aを安いからと使うあてもないのに6個も買っていました。せっかくなので何かに使うあてはありませんがこれで遊んでみたいと思います。
ちなみにいつ買ったか思い出せませんが買った当時は50円で話題になっていました。ですがいま秋月のサイトを確認すると140円となっています。約3倍ですね。140円になるとこのマイコンの魅力もちょっと下がってしまいますね。

Tiny13Aのスペックを簡単にまとめると、DIP8のパッケージでマイコンながら8ピンとほぼ最小構成のピン数となっています。そしてプログラムメモリが1KBでEEPROMが64Bとメモリ量も最小限といった構成です。一応GPIOとして使用できるピンが電源を除いた6ピンあり、A/Dコンバータが4チャンネル使用できます。また、電圧にもよりますが最大で20MHzで動作します。このような感じで小さく安いマイコンながら簡単な処理なら十分こなせそうなスペックをもっています。

まずは動作確認ということでLチカを行うことを目指します。動作させるにあたり、ATMELのAVRマイコンにプログラムを書き込むライターを持っていないのでライターとしてArduinoを使用したいと思います。Arduinoを使用してTiny13Aを動かすやり方をこちらのブログを参考にして作業しました。

ブログで紹介されている通りに作業したのでその方法を書きます。手元の環境はWindows7とArduinoのバージョン1.6.5を使用しています。

まずArduino IDEでターゲットのマイコンにTiny13Aを指定できるようにします。ターゲットとは「ツール」->「ボード」と進んで指定できる種別のことです。デフォルトでは選択肢はArduino UNOやArduino MEGAなどがありますがTiny13Aは指定できません。
追加の方法として対応するマイコンの設定ファイルを指定して読み込みさせるというやり方をします。IDEで「ファイル」->「環境設定」と進み「Additional Boards Manager URLs」と書かれた欄にネット上の設定ファイルのURLを記入します。今回は https://kimio-kosaka.github.io/bitDuino13/package_bitDuino13_index.json を使用するのでコピペで記入してください。そして「OK」を押します。

設定を確実にするため一度Arduino IDEを再起動します。再起動したらメニューの「ツール」->「ボード」->「Boards Manager…」と進みます。

そして「bitDuino13」という項目をみつけ「Install」します。私の環境では一番下にスクロールした場所にありました。インストールするとbitDuinoの名称の横に緑の文字で「Installed」という表記が出るようになります。これでツール」->「ボード」と進んだ先の選択肢にTiny13Aが現れます。

次に実際にTiny13Aにプログラムを書き込むための結線をします。今回はArduinoをライターとして使うのでPC-Arduino-Tiny13Aという配線になります。まずは素のArduinoをPCに使用してライターとして使うためのプログラムを先に書き込みます。「ファイル」->「スケッチの例」と進み「ArduinoISP」を選択します。

そしてArduino UNOをPCと接続し、ターゲットのボードがArduino UNOになっていることを確認しサンプル例のまま書き込みを行います。
これでArduinoがTiny13A用のライターとして使用できるようになったので、次に配線を行います。配線にはブレッドボードを使用します。
ここでTiny13Aのピンアサインを調べます。データシートをみると次のようになっています。

このTiny13AのピンとArduino UNOのピンを下の表の通りに接続します。

Arduino UNOのピン名Tiny13Aのピン名
11PB0
12PB1
13PB2
10PB5

VCC, GNDをそれぞれ接続することを忘れずに行います。また、Arduino UNOのResetピンとGNDの間に10uFの電解コンデンサを入れます。
ここまで説明した通りに配線すると下の図のようになります。これで配線は完了です。

これからはまたArduino IDEでの作業です。
「ツール」->「ボード」を「ATtiny13」にします。
「ツール」->「Clock」を9.6MHzにします。デフォルトでこの値になっているはずです。
「ツール」->「書込装置」を「Arduino as ISP」にします。
これでプログラムを書き込む準備ができました。

ここでプログラムを書き込むより先にブートローダーの書込みをします。「ツール」->「ブートローダーを書き込む」を行ってください。画面の下の方に「ブートローダーの書き込みが完了しました。」と出れば成功です。

これでやっとプログラムが書き込めるようになりました。まずは空っぽの何もしないプログラムを書き込んでみることにします。setup関数とloop関数とも中身を空っぽにしてプログラムの書き込みを行います。

ところがプログラムをビルドしようとすると avr-gcc: error: ......tmp/core.a: No such file or directory とエラーが出てしまいます。ターゲットのマイコンをArduino UNOにするとエラーなくビルドできるのにATtiny13Aを指定するとエラーになります。パソコンを再起動しても変化なしでした。

これ以上解決の方法を思いつかなかったのでArduino IDEのバージョンアップを行うことにしました。長くなりましたのでその記録は別の投稿で書きます。

コメント