おはようございます。ローバンドの調子は良さそうですが、思ったように飛んでいかないので、別の事に時間を割り振りました。
また何か作ってみようかと言う工作欲が出だしたので、とりあえずベースになる組込用のAVRを使えるように準備をしました。
自分は皆さんがよく使っているPICマイコンコントローラーは使えないので、もっぱらArduinoを使用しています。ArduinoはAtmel AVRと言うマイクロコントローラーを使用しており、Arduino IDEを使って簡単にプログラムできるのですが、Arduinoを組み込むと場所も余分に必要ですし、チップ単体に比べるとかなり高価になるので、もっと小さく組込用のものを自分で作ろうと思いました。
まあそれでもPICと比較するとAVR単体でもかなり高いですけどね。使えなければ話にならないので、当局はAVRを使用することにしました。
使用するAVRはATMEGA328P-PUと言う28ピンのマイコンです。1箇280円もしますが、これでいろいろ制御ができるので、こいつを使ったメインボードを作ろうと思っています。
購入したATMEGA328P-PUはブートローダーが書き込まれていないので、内部にプログラムを書き込んでも動きません。最低限、最初にブートローダーを書き込まなければいけません。
書き込むにはAVR用のライターがArduinoのシールドとして販売されてたりしますが、自分の持っているArduino UNOとArduino nanoを使用して書き込むように配線しました。
自分の場合は、書き込み制御がnanoでライターの部分をUNOが行います。従って配線はこんな感じにブレッドボードにサクッと空中配線で行いました。
左のnanoが書き込み制御で右のUNOがICソケットを利用してライターにします。
まずは、nanoを書き込み用に設定します。
まずは書き込み用のスケッチを内蔵スケッチから選択します。この場合、ArduinoISPと言うスケッチを使用します。
そうしたら、まずはコンパイルしてnanoに書き込みします。
次に、ライターの設定を行います。
ライターで使用するボードはUNOですので、ボードはArduino Unoを選択し、書き込み装置をAVRISP mkIIからArduino as ISPに変更します。これはnanoをISPとして使用すると言う宣言みたいなものです。
そしてブートローダを書き込むをクリックすると、先のArduinoISPのスケッチが動きUnoに差し込んだAVRにブートローダを書き込みします。
スケッチの下部に、「ブートローダの書き込みが完了しました。」という表示が出れば無事AVRにブートローダが書き込まれたことになります。
本当に書き込まれているかを確認するために、簡単な内蔵LEDを点滅させるスケッチを描き込んでみます。
コンパイルしてボードへ書き込みを実施します。エラーが無ければ、無事プログラムが書き込まれたことになります。
それでは確認してみましょう。
nanoと接続していた電源とRESETケーブルを外し、Unoが単独で動くようにします。
USBケーブルの横にあるリセットSWを押してUnoを再起動します。画像なので分からないと思いますが、Lと表示されたLEDがブートローダーが無いと点灯のままで、プログラムも書き込みが完了できませんでした。
しかし、ブートローダが書き込まれているAVRはプログラムの書き込みも完了し、このLが点滅していますので、ちゃんとAVRにプログラムが書き込まれたことが分かります。
これで無事AVRが使えるようになりました。
次は、最低限のI/Fに絞ったメイン基板の作成に入ります。汎用的に組み込み目的の小型化を目指します。
まだまだ作業は続きます。ECADやったり、こういうたわいもない作業しているときが楽しいですね。