AVRの環境構築と使い方
今回の内容
AVRの統合開発環境であるAVRStudioをインストールして、その使い方を説明していきます。使い方を説明するために、AVRでLEDをチカチカさせてみます。
次回以降の内容
次回は、LEDを点灯させるプログラムをAVRに書き込んで動作を確認していきます。
[追記] AVRに関する記事を以下の記事にまとめましたので、ぜひご覧ください。
AVRに関する記事
AVRとは…
AVRとは、Atmel社が製造しているマイコンのことです。 開発環境はAVR Studioという開発環境(無料)を用います。ArduinoのCPUにも使われています。AVRにプログラムを書き込むライターとしては、Atmel純正のAVRISPmkIIを用います。
今回使うAVR
今回使うAVRは、安価で扱いやすいATmega88を使用します。似たようなものとしてATmega48やATmega168などがあります。よく、数字の横に"P"や"PA"がついているものを見かけますが、これらは低消費電力という意味です。また、Vがついているものは、低電圧という意味で1.8〜5.5Vで駆動します。
ATmega88の特徴をざっくり表にまとめてみました。
CPU | 1MHzか8MHz. 外部発振器を使用で20MHzまで設定可能 |
電源 | 2.7〜5.5V. 低電圧版で1.8〜5.5V |
フラッシュROM | 8Kバイト |
EEPROM | 512バイト |
RAM | 1Kバイト |
digital I/O | 23pin |
A/D | 8pin |
何ができる?
タイマーを使用したり、割込み処理ができたり、シリアル通信ができる!
特に、シリアル通信はUSARTという機能を使い、簡単にできる。
AVRStudioの使い方
今回ダウンロードするソフトは以下の2つです。
- AVRStudio : 統合開発環境
- WinRAR(Toolchain) : AVRStudioでC言語を扱うためのもの
まず、AVRStudioでC言語を扱うためにWinRAR(Toolchain)をダウンロードし、インストールする。この際、登録(個人情報を入力)しなければならない。
次に、Atmelより開発環境(AVRStudio)をパソコンにインストールする。(過去のバージョン) 僕の場合、AVRStudo4をインストールしました。AVRStudio4を起動すると図4のような画面が開きます。
開いたらまずNew Projectボタンを押します。次にProject typeのAVR GCCを選択しProject nameを入力する。locationにより、Projectを作るディレクトリを選べる。nextを押して次へ行きます。
Debug platformのAVR Simulator2を選択し、右の項目のDeviceで、使用するAVRを選びます。今回はATmega88を選択する(図6)。finishを押してプロジェクト作成終了。すると図7のような画面となります。中央の白い画面にプログラムを書きます。
プログラムをAVRStudioに書く前に、AVR(ATmega88)の動作周波数を設定します。メニュのProjectからConfiguration Optionsを選びます。(図8)
すると、以下の画面が表示されると思います。"Frequency:" と書かれたところに "1000000" と書いてOKを押します。ATmega88は、初期設定で1MHzになっているため、1000000(1M)と書きます。
これから、プログラムを書く作業に入ります。 以下がLEDを点灯させるプログラムです。これをコピーして、画面中央に貼り付けてください。 もちろん、自分で書いてもいいですよ。
#include<avr/io.h> int main(void){ DDRD = 0b11111111; //0:入力モード, 1:出力モード //(ポートD全て出力モードに設定) PORTD = 0b100000000; //0:low, 1:high (7ビット目だけhigh) while(1){ //無限ループ } return 0; //プログラム終了 }
上記のプログラムをAVRStudioに書いたのが図10です。
DDRDは、ポートDのモード設定を行うものです。DDRAと書いたら、ポートAの設定になります。 DDRDに0b11111111を指定することにより、ポートD(PD7〜0)は出力モードに設定できます。 最初に0bをつけてあるのは、この後に続く数字は "2進数の表記" にするよという意味です。 そして0bにつづく数字11111111は、左から7,6,5,4,3,2,1,0ビットを意味しています。 このビットは、ポートDの番号(PD7〜0)を意味しています。 例えば、ピンPD2のみを入力モードに、他は出力モードに設定したいときは "DDRD = 0b00000100" と書きます。
PORTDは、PD7〜0のそれぞれにHigh(5V)を出力するかLOW(0V)を出力するかを決めます。 今回は、0b1000000なので、PD7のみHIGHを出力し、その他はLOWを出力します。 これらの指定は、DDRDで出力モードにしたときに、HIGH、LOWを出力できます。 また、DDRDで入力モードにしたピンに対して、PORTDは、1:プルアップ有効、0:プルアップ無効 とできます。 プルアップにしたいとき、抵抗がいらなくて済みますね。
プログラムを書いたらコンパイルを行います。メニューバーのBuildからBuildを選択するか、図11のようなボタンを押すか、キーボードのF7を押してください。コンパイルを行ったときに、プログラムの文法上の間違えがあったらエラーを教えてくれます。セミコロンの付け忘れに注意。
AVRStudio画面下に、Build succeeded with 0 Warnings... と表示されたら成功です。失敗すると図のような表示がされます。赤印にエラーの内容が書かれます。この場合7行目でエラーしてますが、実際は5行目の最後のセミコロンが忘れているだけです。なので、エラー付近を見て確認するといいですね。
無事にコンパイルが終わったら、プロジェクトを作ったディレクトリのdefaultフォルダに"〜.hex"が作られているか確認してください。このhexファイルが実際にAVRに書き込むものです。僕は、Documents/AVRStudio/Testにプロジェクトを作ったので、Documents/AVRStudio/Test/defaultに、hexファイルが作られました。次に回路を作ります。
AVRでLED点灯させるへ >> |