CPU/MPU選択
CPU/MPU選択
昨日の記事(id:Chuck:20060227#p1)を書いているうちに、CPU/MPUの選択について、大雑把に書いてみようと思った*1 *2。
趣味の電子工作で話題にのぼるワンチップマイコンはまずは PIC, H8, AVR といったところだろうか。いずれも秋葉原では、秋月電子通商での取り扱いがある(少なくともある品種に関しては)ところが大きいのかもしれない。
これらのマイコンに対する経緯と雑感は以下のようなところ。
- PIC
- 秋月のwriterキットとMicroChip社提供の無料開発環境にてアセンブリ言語で使用し始めた。入門者向けの書籍も多く、使っている人も多そうで掲示板も盛り上がっているようだが、C言語で開発しようとするとコンパイラを購入しなくてはいけなかった。また動作速度が遅い、レジスタ群がページになっていてアクセスが面倒くさい。小規模なものであれば現在もときどき弄っている。
- H8
- 15年ぐらい前に仕事で弄ったことがある。シンセ・エフェクタ向けには当初リッチ過ぎたのでパスして今に至る。チップが若干高めだったのと海外で入手なかったので筆者製作コンテンツの海外展開にケチ(笑)がつきそうだった点が大きい。ロボットとかデータロガーを作る人はよく使っているように見受けられる。後継のR8は海外でも購入できるようだがH8をパスった延長上でチェックしていない。
- AVR
- ATMEL社提供の無料開発環境(AVR Studio)でアセンブリ言語が使え、この環境でELM-ChaNさんの簡単writerで使用し始めた。後にフリーで提供されているavr-gcc(現WinAVR)に移行して、最近の版ではAVR Studioの中からWinAVRが使える。現在筆者がメインで使っているCPUである。結局のめりこんでしまい、STK500評価ボードやJTAG ICE mkII まで買う始末(意外と安価)。フリーでC言語までの基本的な開発環境が整ってしまう点は大きい。AT90Sシリーズからmega/tinyシリーズ移行に伴って秋月での取り扱いが貧弱であるが、マルツ電波で取り扱うようになりひと安心。でもPICよりは買いづらいかな。ネット上でのリソースは多いが書籍で有用なものは見当たらない。
いわゆるPIC→AVRの移行組だが、乗り換えた理由は以下のPICの弱点にある。
- 同一クロック周波数でAVRの方が4倍速い
- 演算がWレジスタのみで効率が悪い*3
- アセンブリ言語ではレジスタのページアクセスが面倒くさい*4
- フリーのC言語開発環境が見当たらなかった
- (PICでの製作物を公開したら何人もの変な人の質問をいっぱいもらった)
AVRはAVRで、どこで買ったらいいのか、載っているペリフェラルの一貫性がない、人に薦められる書籍が無いといった悩ましいことも無くはないが、しばらくはこれを使っていこうと思う。