Top / 備忘録 / 電子工作 / マイコン / AVR最初の一歩

  • 追加された行はこの色です。
  • 削除された行はこの色です。
*AVR最初の一歩 [#m9efb429]
&tag(電子工作,AVR,プログラミング);~

ちょっと昔に秋月のパラレルAVRライタを買って作ってはいたのだが、定番の
&256x(42){ナイトライダー};
作って放置プレイ。~
それから何年かしてリベンジして、最近それなりの結果を出しつつあります。~
マイコンド初心者がそこに至るまでのちょっとしたお話。

**最初に用意すべきもの [#z08a77df]
電子工作はある程度やってるのを前提で、AVRを始めるにあたって最低限必要なのはこんな所でしょうか

-AVRマイコン~
これが無いと何も始まりませんので、とりあえず買いましょう。~
最初はATTiny2313がオススメ。~
Webで探してると90S1200とか90S2313を使用してる事が結構多いですが、今((2007/4/19現在))では使用は推奨されていませんし、機能的にも価格的にも、わざわざ選ぶ理由はありません。~
そして、どうせ買うなら10コくらい買っておきましょう。~
色々イジくり倒してて、ヒューズビット((使えば理解出来る))を変にイジって書き込み出来なくなったり、設計した回路の都合でデータを書き損じて((tiny26を4コオシャカにしますた))再起不能にするなんて失敗を必ずやらかすハズですので。~
余裕があればMega88かMega168なんかもあればA/Dも使えるし、ピンもソコソコあるので大抵の事が出来るでしょう。~
あと、使うマイコンに合わせてICソケットも買っておきましょう。~
いやまあ価格が価格ですので、使い捨てでも構わない((ソケット代ケチってるとも言う))んですが、つまらん事でマイコン壊したり、実験済んで石だけ別に流用する時に、わざわざスポイトで半田吸って取るのも面倒なんで、僕は試作orまだ仕様変更が起こり得る場合は原則ソケットを使います。

-6ピンのMILプラグ~
AVRにプログラムを書き込む為に書込機(以下ライター)を接続するのですが、このライターを繋ぐのにコネクタが必要になります。~
一般的なライターは2.54mmの6ピンMILソケット(メス)ですので、これに適合するMILプラグを買い溜めしておきましょう。~
一応MILピンヘッダでも良いのですが、逆接続する可能性がありますので6ピンMILプラグにしておいた方が安心です。~
余談ですが、秋月には6ピンMILプラグを置いてないんですよねぇ。~
僕は共立で買ってます。

-安物LEDとスイッチ~
秋月で100本350円とかの安いLEDと、100個700円とかのタクトスイッチ、1KΩと10KΩの抵抗100本パックなんかも買っておきましょう。~
マイコンにはPCのようにディスプレイが無いので、何か試してみるのにこれらが無いと動作チェックが出来ません。~
あと僕は安物LEDをデバッグ時に使い捨て感覚で使ってたりします。(笑

-ISPライター~
AVR関係をWebで調べてると、何かとライターばかり熱心に作ってはる方多い気がするのは気のせいでしょうか?(笑~
確かに簡単で自作もアリなんですが、必要なパーツがジャンク箱に転がってるなんてな理由でも無い限り、ヘタに部品揃えてたら高く付いたなんて事になりかねませんし、自作ったライターが上手く動いているかどうかを確認するのに、実際にプログラム書き込んで動作確認出来なければ意味が無い=プログラムが悪いのかライターが悪いのか判らなくちゃダメだと思うんですよ。~
そういうワケで、僕はデジットのUSB-AVRライターを使っております。~
完成品が2,100円で手に入りますし、運悪く不良品でも掴まない限り、コレで書けなけりゃ回路の設計がおかしいという基準になります。~
自作でつまらぬ墓穴増やすより、2000円ケチらずに墓穴1つでも埋めとく方が賢いと思いますよ。

これくらい揃っていれば、Webにあるような入門記事には大抵対応出来るかと思います。

**アセンブラ?C言語? [#k845ef14]
僕は現在アセンブラで頑張っています。~
元々ハードの方が先な人なので、アセンブラの方が理解し易かったというのが理由でしょうか。~
あとズバリC言語知らないんですよ。(笑)~
っていうかアセンブラ出来てC出来ないって事ぁ多分無いでしょう。wwww~
~
ちなみに初めてパソコンなるモノを触り始めた頃は、BASICかマシン語しかありませんでした。~
そりゃCも有ったんでしょうが、そんなのは雲の上のお話でしたねぇ。~
で、X68000でアセンブラを勉強しかけて挫折し、最近マイコンでリベンジってなモンでして、アセンブラから入る方が自然でしたね。~
結局得意と感じる方から入れば良いと思いますよ。~
ただし、PCならいざ知らず、「マイコン」というジャンルではアセンブラは避けて通れないと思います。~
今から始めるって方は、最初のLEDチカチカくらいはアセンブラでやってみた方が後々の理解も早いんじゃないか?と思いますがねぇ。~
とりあえず僕はAVRに関しては、もう無理!ってトコまでアセンブラで頑張るつもりで居ます・・・が、そろそろCも覚えんとなぁ。(^^;

**っていうかPICじゃねぇの? [#g09c242e]
正直僕はPIC触った事無いですが、少なくとも僕はアセンブラでなんとかしてみたいと思ってる人間ですので、世間様の話を聞く限りではPICに全く魅力を感じません。~
あとハード的な最初の座敷の低さ((ライターが安い))と、使ってみて実感してる事ですが、ISPだからこそ可能な、トライ&エラーの簡単さ((ライター繋いだままでいくらでも書いて試せる&殆んど一生モノの書込み回数))が魅力かな?~
でもPICの石の豊富さと、文献の多さは正直羨ましいんですけどねぇ。(笑

てなモンで、その他思いついた事あれば都度書き足して行きます。

**コメント [#a39df1be]
- はいはいナイトライダーつくって放置プレイしてる俺様が通りますよ(笑) うん、AVRいいですねー -- [[たけちよ]] &new{2008-04-19 07:59:58 (土)};
-- 初めてAVR触った時にとりあえず作りました。当時はもう1つ理解出来なかったけど、しつこくやって今何とかなってます。あんちゃん色々教えてもうて産休なんじゃ。  -- [[しらいまさや]] &new{2008-04-19 16:25:53 (土)};
- 同じく本に載ってたLED点滅でとまっているおいらも通ります。やはりライター買ったほうが良いですかね。ライターのデバッグのためにPCロジアナ組んだんだけどそれも動かず・・・ -- [[コー]] &new{2008-04-19 09:09:23 (土)};
-- AVRの良いトコは、まあ速いとか素直な命令とか色々ありますが、一番オイシイのはISPでパカパカいくらでもソッコーで書込み出来るトコじゃないかななんて思ってます。僕のようなド初心者なんかだとトライ&エラーで即結果出るのが楽でした。昔みたいにEPROM焼いてバグって消して・・・なんてやってたら絶対に挫折したと思います。wwww -- [[しらいまさや]] &new{2008-04-19 16:25:53 (土)};
- AVRはさわったことないですねぇ。H-8と6501とi8085はアセンブルしたなぁ。今はたまぁにgccのインラインアセンブラを書くぐらい。結局Cって高級アセンブラでっから、メモリの少ないマイコンだとアセンブラのほーが小回りきくよね(^^) -- [[よ]] &new{2008-04-19 12:43:24 (土)};
-- 次はH8触ってみたいです。一応インジェクションのフルスクラッチなんて野望もあるんですが、AVRだと処理速度的には楽勝でしょうが、16ビットタイマーの数が少ないのがねぇ。今回タコメーター&スピードメーター作ってて結構頭抱えたんですよw Cについてはまあ、触りくらいはわかってる&人様が書いた簡単なソースならなんとか読めます。けど現状アセンブラでクロック数数えて・・・なんてやってると、なんか全部アセンブラでエエやんけとなるんですよねww ただ先日キャラクタLCDなんかを触ってて、ここらだとCでprintf使えたらもっと楽やろなぁとか、もっと大規模だとアセンブラでデバッグも大変だろうなぁとか。 -- [[しらいまさや]] &new{2008-04-19 16:25:53 (土)};
- >AVR関係をWebで調べてると、何かとライターばかり熱心に作ってはる方多い気がするのは気のせいでしょうか?(笑 -- [[gyabin]] &new{2009-05-23 00:52:00 (土)};
- ↑激しく同感。 -- [[gyabin]] &new{2009-05-23 00:53:03 (土)};
-- いやぁ、僕はそう思っただけの事なんでww -- [[しらいまさや]] &new{2009-08-06 22:13:47 (木)};
- PICもターゲットボード上でいくらでも書き込みできますです。ISPではなくて、ICSPです。ライター選ぶかも。 -- [[peri]] &new{2009-06-15 11:51:10 (月)};
-- 僕がマイコンを始めようと思った時期は、AVRの方が最初の敷居が低かったんですね。というか、フルの開発環境で・・・という部分では、今でもAVRので敷居低いと思います。 -- [[しらいまさや]] &new{2009-08-06 22:13:47 (木)};
- はじめまして。      私もアセンブラできてCできないです。 っていうか、勉強してないだけ?(ォ -- [[はっとむるのM]] &new{2009-08-06 16:38:51 (木)};
-- 僕はPHPなら簡単なモノぐらいは書こうと思えば書けるんです。でもCは出来ませんwww というか、構文自体大差無いのでCでも簡単なモノなら書けて当然なんでしょうが、どうもライブラリがなんとかふんだららが面倒っちゅーか、僕がマイコンなんて触ってるとIOポートでモノ考えてますので、アセンブラで直接ポート触る方が簡単に思えてしまうんです。まあ高度なモノを作ろうとすれば、Cに頼らざるを得なくなる=まだ必要に迫られてないから覚える気にならないってなモンでして。w  -- [[しらいまさや]] &new{2009-08-06 22:13:47 (木)};
- CができるのでPHPは簡単にできるんですが・・・、その逆は真ではないということですねぇ〜。PHPは構文もそうですけど関数もCのwrapperなことが多いのでやってみると案外簡単ですよ?というわけでlinuxあたりで書いてみると入りやすいかもです。ぜひぜひしらいさんもCやってみてほしいです。 -- [[も]] &new{2009-08-12 15:15:02 (水)};


#geso((C)でズッコンバッコンじゃ!.でもライブラリの生出しリンクで腹ボテじゃ!,たけちよ,gen2.gif)
&new{2009-08-13 00:25:24 (木)};
#commentx

----
#back

Top / 備忘録 / 電子工作 / マイコン / AVR最初の一歩
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS