AVRマイコンなページ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
*AVRマイコンなページ [#m702a849]
AVRマイコンなページにようこそ~
ここではAVRマイコン講座での内容をまとめたり,追加情報を...
内容について不備,間違い,不足等あれば指摘,追記,修正...
現在製作中のため画像等がないですが余裕ができたら作って...
**AVRマイコンとは? [#x1320e23]
AVRマイコンとはATMEL社が生産している8bitマイコン(マイク...
CPU、メモリ(RAM、ROM)、I/O、データ記憶用のEEPROM、ク...
1チップに収められており、書き込まれたプログラムにより制...
よく似たものにPICがあげられますが,PICと違い内部に発信...
使い勝手が良かったりします~
**AVRの種類 [#k8819fe1]
昔からある90Sシリーズと、大容量化、I/O拡張のMegaシリー...
高機能化・低消費電力化・低電圧対応のTinyシリーズがある~
・90S***
・ATMega***
・ATTiny***
**開発環境 [#zcf926c0]
開発環境として統合開発環境の「AVR Studio」が無料で配布...
また,C言語用のコンパイラとして「WinAVR」も無料で配布さ...
**何ができるの? [#waa573c4]
アイデア次第でいろんなことができますが,~
今回の講座ではATTiny461を使ったライントレースロボットの...
説明をしていく予定です~
*AVRマイコン講座 [#r7c63578]
**開発環境を作る [#o31ea185]
AVRマイコンを使うにあたって開発環境の準備をします~
コンピュータを使って何かをしたい場合,目的に合ったプロ...
AVRマイコンも同様でマイコンで何かをしたい場合,プログラ...
ただし,マイコン自身でプログラムを作ることはできないの...
~
次のページから最新版の「WinAVR」をダウンロードしてきます~
http://sourceforge.net/project/showfiles.php?group_id=6...
ダウンロードページに"WinAVR-**********-install.exe"(*は...
があるので最新の日付をダウンロードしてください~
ダウンロードが済んだら"WinAVR-**********-install.exe"を...
後はセットアップウィザードに従ってインストールしてくだ...
「WinAVR」はAVRマイコン用のC言語コンパイラでC言語で組ま...
マイコンが理解できる形(マシン語)に変換してくれます~
次にAVRマイコン用の総合開発環境をインストールします~
総合開発環境はいろいろなコンパイラでの開発をサポートす...
今回は「AVR Studio」を使います~
下記のページにある"Software:"コーナーの中から"AVR Studi...
http://www.atmel.com/dyn/products/tools_card.asp?tool_i...
よく似たものに"AVR Studio 4.16 SP1 (build 638) "があり...
こちらは後で使うので一緒にダウンロードしておくと良いです~
"AvrStudio***Setup.exe"(*はバージョン)を実行します~
先ほどと同様にセットアップウィザードに従ってインストー...
***純正ライターでWindows8の場合 [#lcb50b1c]
デジタル証明書をインストールしないとライターを認識してく...
以下の作業をこなしてくだせぇ~
~
証明書いんすこ~
1. C:\Windows\Inf\AtmelInf.catのプロパティを開く~
2. デジタル署名のタブをクリック~
3. 署名一覧のAtmel Norwayをクリックして詳細を開く~
4. 証明書の表示を開く~
5. 証明書のインストールをクリック~
6. 保存場所⇒ローカルコンピュータを選択~
7. 自動的に証明書ストアを配置を選択~
8. 完了~
~
ドライバ更新~
1. デバイスマネージャーを実行~
2. ライタ挿したら「Jungo」に「AVRISP mkii」が~
3. そいつのドライバを更新~
~
まだAtmelStudioは認識してくれなかった(筆者win8 x64)~
2013/1/6現在あんま情報なくて、めんどいけどこれで取り敢え...
dllファイルを移動させる方法もあって、C:\Program Files (x8...
~
結局できた方法は例のC:\Program Files (x86)\Atmel\Atmel St...
やってみるとわかるけどavrdbg.exeが消えないから鬱陶しいよ。~
以下その2つを起動するバッチファイル~
avrdbg.exeのプロパティで「管理者としてこのプログラムを〜...
~
@echo off
start "" "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\...
cd "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\avrdbg"
start avrdbg.exe
***純正ライターではなく usbaspを使用する場合 [#x14500d3]
これに加えてライティングソフトであるavrdudeとライターのUS...
avrdude http://yuki-lab.jp/hw/avrdude-GUI/ ~
このページでavrdude.exeとavrdude-GUIをダウンロードしてく...
~
USBドライバー http://www.wortelsoft.nl/english/usbasp.htm...
~
更に加えてOSがWindowsXPよりも上位の場合はavraspライターの...
ファームウェアはusbaspの本家サイトよりダウンロードできま...
~
これで開発環境が整いました~
**ライタって何ですか? [#f6ef0f28]
さて,開発環境が整ったところで,どうやってマイコンにプ...
という問題が出てきます~
~
マイコンにプログラムを入れることを"書き込み","焼き込み...
マイコンのROMにデータを書きもむことから来てるのですが,...
ROMを変質させることによって書き込んだため"焼き込む"とい...
~
話が脱線してきたので元に戻しますが~
この書き込みには"ライタ"と呼ばれるものを利用します~
ライタにはパラレル,シリアル,USBに接続するものがありそ...
開発環境の構築で「AVR Studio」をインストールしましたが...
「AVR Studio」からライタを操作してマイコンにプログラム...
今回はATMEL社純正のライタである「AVRISP mk?」を使うので...
自分でライタを自作することも可能ですので興味がある人は...
**プログラムを組んでみよう [#b2a3a77b]
では実際にプログラムを組んで見ましょう~
「スタート」→「プログラム」→「Atmel AVR Tools」から「AV...
次に「project」→「New Project」を選択します~
ウィンドウが開くので,AVR GCCを選択して「Project name」...
今回は例として「sample」というプロジェクトを作ってみます
ここでCreate folderのチェックを入れるとプロジェクトごと...
保存先の指定もここで行います(デフォルトはマイドキュメン...
設定したら「Next」で次にいきます~
次の画面ではデバッグを行うためのシミュレータと使用する...
今回はATTiny461を使うので「Debug plogram」は「AVR Simulat...
「Device」は「ATTiny461」を選びます~
選び終わったら「Finish」を押します~
~
「Finish」を押した後,「sample.c」というファイルが開い...
この「sample.c」の中にプログラムを書いていきます~
次にサンプルプログラムを書いておきます
#include <avr\io.h>
int main(void)
{
while(1){
}
return (0);
}
まず,
#include <avr\io.h>
ですがこれはAVRマイコンの各種設定等を持っているヘッダー...
while(1){
}
ここで無限ループが発生します~
この中に処理を記述します~
今回は何も記述されていないので,何もしません~
~
ということで今回のプログラムは起動した後何もしないプロ...
**ポートとは何ですか? [#ec1f5250]
さて,このままでは面白くもなんともないので次に行ってみ...
先ほどのプログラムを改造していくのですが,ここで一つ重...
AVRマイコンには数本から数十本のピンが出ています~
このピンは何に使うかというと~
1,電源及びグランド(0V)~
2,入出力(H,L)~
3,A/D変換入力~
4,アナログ出力~
5,シリアル通信~
6,クロック入力~
7,プログラム書き込み~
他いろいろな入出力に使われます~
今回使用しているATTiny461はDIPパッケージで20本のピンを...
内16本が入出力をサポートしています~
但し,一本のピンが複数の機能を持っているのでどの機能を...
前置きが長くなってしまいましたが~
ポートとはHightやLowの信号を出したり受けたりするピンの...
ATTiny461ではポートA,Bの2つがありそれぞれ0〜7の8ポート...
**LEDを光らせてみよう [#ub5ea3f9]
では実際にハードを制御してみましょう~
まずは簡単にLEDを点滅させるプログラムを作ってみましょう~
上にある何もしないプログラムを改造していきます
#include <avr\io.h>
int main(void)
{
long i;
while(1){
//処理の実行を待つ
for(i=0;i<20000;i++){
}
//ポートAの1番を出力に設定する
DDRA = 1;
//ポートAの1番の出力を反転する
PORTA ^= 1;
}
return (0);
}
これで後は実際に配線を行いマイコンにプログラムを書き込...
まず,~
for(i=0;i<20000;i++){
}
のループですが,今回使用するATTiny461は20MHzのクロック...
大体1秒間に200万回命令が実行されます(実際は処理内容によ...
そのため,簡単な機能しか持たないプログラムでは処理が高...
を認識することができなくなります.~
そこで,何もしない処理(といっても比較処理、加算処理を行...
にさせることで目的とする命令をゆっくり実行することが可...
次に,~
DDRA = 1;
とありますが,この書き方ではポートAの0〜7に対して0b0000...
これはポートAの0は出力,1〜7は入力として使いますという...
これによってポートの入力,出力を設定することが可能にな...
また,次のように書くことも可能です.~
DDRA = 0b0000001; //2進数表記~
DDRA = 0x01; //16進数表記~
~
そして,~
PORTA ^= 1;
これも同様にポートAの0〜7に対して0b0000001という指示を...
しかしながら ^= となっているので排他的論理輪(XOR:AとB...
となっています.この場合ですと,PORTAの現状に対し0b0000...
違うなら1を返すため,出力が反転したようになります.~
これが,~
PORTA ~= 1;~
となると,ポートAの0はHを,1〜7はLを出力しなさいという...
但し,DDRAで0番のみ出力になっているので実際に出力される...
**A/D変換とは [#ke10cf45]
まずはA/D変換とはなんぞや?という人のために簡単に説明~
A/D変換とはアナログな入力(0〜5Vの電圧変化といったも...
逆にD/A変換というのもあり、こちらはマイコン内部の値を0...
**センサを使ってみよう [#kc2818a0]
終了行:
*AVRマイコンなページ [#m702a849]
AVRマイコンなページにようこそ~
ここではAVRマイコン講座での内容をまとめたり,追加情報を...
内容について不備,間違い,不足等あれば指摘,追記,修正...
現在製作中のため画像等がないですが余裕ができたら作って...
**AVRマイコンとは? [#x1320e23]
AVRマイコンとはATMEL社が生産している8bitマイコン(マイク...
CPU、メモリ(RAM、ROM)、I/O、データ記憶用のEEPROM、ク...
1チップに収められており、書き込まれたプログラムにより制...
よく似たものにPICがあげられますが,PICと違い内部に発信...
使い勝手が良かったりします~
**AVRの種類 [#k8819fe1]
昔からある90Sシリーズと、大容量化、I/O拡張のMegaシリー...
高機能化・低消費電力化・低電圧対応のTinyシリーズがある~
・90S***
・ATMega***
・ATTiny***
**開発環境 [#zcf926c0]
開発環境として統合開発環境の「AVR Studio」が無料で配布...
また,C言語用のコンパイラとして「WinAVR」も無料で配布さ...
**何ができるの? [#waa573c4]
アイデア次第でいろんなことができますが,~
今回の講座ではATTiny461を使ったライントレースロボットの...
説明をしていく予定です~
*AVRマイコン講座 [#r7c63578]
**開発環境を作る [#o31ea185]
AVRマイコンを使うにあたって開発環境の準備をします~
コンピュータを使って何かをしたい場合,目的に合ったプロ...
AVRマイコンも同様でマイコンで何かをしたい場合,プログラ...
ただし,マイコン自身でプログラムを作ることはできないの...
~
次のページから最新版の「WinAVR」をダウンロードしてきます~
http://sourceforge.net/project/showfiles.php?group_id=6...
ダウンロードページに"WinAVR-**********-install.exe"(*は...
があるので最新の日付をダウンロードしてください~
ダウンロードが済んだら"WinAVR-**********-install.exe"を...
後はセットアップウィザードに従ってインストールしてくだ...
「WinAVR」はAVRマイコン用のC言語コンパイラでC言語で組ま...
マイコンが理解できる形(マシン語)に変換してくれます~
次にAVRマイコン用の総合開発環境をインストールします~
総合開発環境はいろいろなコンパイラでの開発をサポートす...
今回は「AVR Studio」を使います~
下記のページにある"Software:"コーナーの中から"AVR Studi...
http://www.atmel.com/dyn/products/tools_card.asp?tool_i...
よく似たものに"AVR Studio 4.16 SP1 (build 638) "があり...
こちらは後で使うので一緒にダウンロードしておくと良いです~
"AvrStudio***Setup.exe"(*はバージョン)を実行します~
先ほどと同様にセットアップウィザードに従ってインストー...
***純正ライターでWindows8の場合 [#lcb50b1c]
デジタル証明書をインストールしないとライターを認識してく...
以下の作業をこなしてくだせぇ~
~
証明書いんすこ~
1. C:\Windows\Inf\AtmelInf.catのプロパティを開く~
2. デジタル署名のタブをクリック~
3. 署名一覧のAtmel Norwayをクリックして詳細を開く~
4. 証明書の表示を開く~
5. 証明書のインストールをクリック~
6. 保存場所⇒ローカルコンピュータを選択~
7. 自動的に証明書ストアを配置を選択~
8. 完了~
~
ドライバ更新~
1. デバイスマネージャーを実行~
2. ライタ挿したら「Jungo」に「AVRISP mkii」が~
3. そいつのドライバを更新~
~
まだAtmelStudioは認識してくれなかった(筆者win8 x64)~
2013/1/6現在あんま情報なくて、めんどいけどこれで取り敢え...
dllファイルを移動させる方法もあって、C:\Program Files (x8...
~
結局できた方法は例のC:\Program Files (x86)\Atmel\Atmel St...
やってみるとわかるけどavrdbg.exeが消えないから鬱陶しいよ。~
以下その2つを起動するバッチファイル~
avrdbg.exeのプロパティで「管理者としてこのプログラムを〜...
~
@echo off
start "" "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\...
cd "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\avrdbg"
start avrdbg.exe
***純正ライターではなく usbaspを使用する場合 [#x14500d3]
これに加えてライティングソフトであるavrdudeとライターのUS...
avrdude http://yuki-lab.jp/hw/avrdude-GUI/ ~
このページでavrdude.exeとavrdude-GUIをダウンロードしてく...
~
USBドライバー http://www.wortelsoft.nl/english/usbasp.htm...
~
更に加えてOSがWindowsXPよりも上位の場合はavraspライターの...
ファームウェアはusbaspの本家サイトよりダウンロードできま...
~
これで開発環境が整いました~
**ライタって何ですか? [#f6ef0f28]
さて,開発環境が整ったところで,どうやってマイコンにプ...
という問題が出てきます~
~
マイコンにプログラムを入れることを"書き込み","焼き込み...
マイコンのROMにデータを書きもむことから来てるのですが,...
ROMを変質させることによって書き込んだため"焼き込む"とい...
~
話が脱線してきたので元に戻しますが~
この書き込みには"ライタ"と呼ばれるものを利用します~
ライタにはパラレル,シリアル,USBに接続するものがありそ...
開発環境の構築で「AVR Studio」をインストールしましたが...
「AVR Studio」からライタを操作してマイコンにプログラム...
今回はATMEL社純正のライタである「AVRISP mk?」を使うので...
自分でライタを自作することも可能ですので興味がある人は...
**プログラムを組んでみよう [#b2a3a77b]
では実際にプログラムを組んで見ましょう~
「スタート」→「プログラム」→「Atmel AVR Tools」から「AV...
次に「project」→「New Project」を選択します~
ウィンドウが開くので,AVR GCCを選択して「Project name」...
今回は例として「sample」というプロジェクトを作ってみます
ここでCreate folderのチェックを入れるとプロジェクトごと...
保存先の指定もここで行います(デフォルトはマイドキュメン...
設定したら「Next」で次にいきます~
次の画面ではデバッグを行うためのシミュレータと使用する...
今回はATTiny461を使うので「Debug plogram」は「AVR Simulat...
「Device」は「ATTiny461」を選びます~
選び終わったら「Finish」を押します~
~
「Finish」を押した後,「sample.c」というファイルが開い...
この「sample.c」の中にプログラムを書いていきます~
次にサンプルプログラムを書いておきます
#include <avr\io.h>
int main(void)
{
while(1){
}
return (0);
}
まず,
#include <avr\io.h>
ですがこれはAVRマイコンの各種設定等を持っているヘッダー...
while(1){
}
ここで無限ループが発生します~
この中に処理を記述します~
今回は何も記述されていないので,何もしません~
~
ということで今回のプログラムは起動した後何もしないプロ...
**ポートとは何ですか? [#ec1f5250]
さて,このままでは面白くもなんともないので次に行ってみ...
先ほどのプログラムを改造していくのですが,ここで一つ重...
AVRマイコンには数本から数十本のピンが出ています~
このピンは何に使うかというと~
1,電源及びグランド(0V)~
2,入出力(H,L)~
3,A/D変換入力~
4,アナログ出力~
5,シリアル通信~
6,クロック入力~
7,プログラム書き込み~
他いろいろな入出力に使われます~
今回使用しているATTiny461はDIPパッケージで20本のピンを...
内16本が入出力をサポートしています~
但し,一本のピンが複数の機能を持っているのでどの機能を...
前置きが長くなってしまいましたが~
ポートとはHightやLowの信号を出したり受けたりするピンの...
ATTiny461ではポートA,Bの2つがありそれぞれ0〜7の8ポート...
**LEDを光らせてみよう [#ub5ea3f9]
では実際にハードを制御してみましょう~
まずは簡単にLEDを点滅させるプログラムを作ってみましょう~
上にある何もしないプログラムを改造していきます
#include <avr\io.h>
int main(void)
{
long i;
while(1){
//処理の実行を待つ
for(i=0;i<20000;i++){
}
//ポートAの1番を出力に設定する
DDRA = 1;
//ポートAの1番の出力を反転する
PORTA ^= 1;
}
return (0);
}
これで後は実際に配線を行いマイコンにプログラムを書き込...
まず,~
for(i=0;i<20000;i++){
}
のループですが,今回使用するATTiny461は20MHzのクロック...
大体1秒間に200万回命令が実行されます(実際は処理内容によ...
そのため,簡単な機能しか持たないプログラムでは処理が高...
を認識することができなくなります.~
そこで,何もしない処理(といっても比較処理、加算処理を行...
にさせることで目的とする命令をゆっくり実行することが可...
次に,~
DDRA = 1;
とありますが,この書き方ではポートAの0〜7に対して0b0000...
これはポートAの0は出力,1〜7は入力として使いますという...
これによってポートの入力,出力を設定することが可能にな...
また,次のように書くことも可能です.~
DDRA = 0b0000001; //2進数表記~
DDRA = 0x01; //16進数表記~
~
そして,~
PORTA ^= 1;
これも同様にポートAの0〜7に対して0b0000001という指示を...
しかしながら ^= となっているので排他的論理輪(XOR:AとB...
となっています.この場合ですと,PORTAの現状に対し0b0000...
違うなら1を返すため,出力が反転したようになります.~
これが,~
PORTA ~= 1;~
となると,ポートAの0はHを,1〜7はLを出力しなさいという...
但し,DDRAで0番のみ出力になっているので実際に出力される...
**A/D変換とは [#ke10cf45]
まずはA/D変換とはなんぞや?という人のために簡単に説明~
A/D変換とはアナログな入力(0〜5Vの電圧変化といったも...
逆にD/A変換というのもあり、こちらはマイコン内部の値を0...
**センサを使ってみよう [#kc2818a0]
ページ名: