うしこlog
公開: 2013/06/27

AVRの環境構築と使い方

今回の内容

 AVRの統合開発環境であるAVRStudioをインストールして、その使い方を説明していきます。使い方を説明するために、AVRでLEDをチカチカさせてみます。

次回以降の内容

 次回は、LEDを点灯させるプログラムをAVRに書き込んで動作を確認していきます。

[追記] AVRに関する記事を以下の記事にまとめましたので、ぜひご覧ください。

AVRに関する記事

AVRとは…

AVRとは、Atmel社が製造しているマイコンのことです。 開発環境はAVR Studioという開発環境(無料)を用います。ArduinoのCPUにも使われています。AVRにプログラムを書き込むライターとしては、Atmel純正のAVRISPmkIIを用います。

AVR
AVR
AVRStudioの画面
AVRStudioの画面
AVRライターの画面
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のような画面が開きます。

スタート画面
ArduinoIDE

開いたらまず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)

AVRの設定
AVRの設定

すると、以下の画面が表示されると思います。"Frequency:" と書かれたところに "1000000" と書いてOKを押します。ATmega88は、初期設定で1MHzになっているため、1000000(1M)と書きます。

ATmega88の周波数設定
ATmega88の周波数設定

これから、プログラムを書く作業に入ります。 以下が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点灯させるへ >>