マイコンに関するあれこれ

関連


マイコンって何さ?

とりあえず用語集に行って見て、それでもわからなかったら残念でした。
と終わらせるわけにもいかないので説明しよう。

マイクロコンピュータ及び、マイクロコントローラ。
マイクロは小さい。
コンピュータは演算機、つまり四則演算が可能な機械。
コントローラはそれを何かの制御に用いる目的で作られたもの。PICのCはコントローラ(Controler)のC。
メモリやI/Oピン(入出力ピンのこと)から入力、そして演算結果を出力する、これを繰り返す。
マイコンはパソコンなどとは違って大きな計算機能やメモリは持たないので、簡単なことしかできない。
それでも、メモリに書き込める量のプログラムなら問題なく実行してくれるわけ。

することがわかったら、次はできること。

I/Oピンで入出力ができる。これを増幅すれば、スイッチにもできる。
ほぼ正確なクロックで動いているため、タイマーとして動かせる。
センサからの出力をA/D変換できるものがある。(A/D変換については違う記事を読んでください。)

ロボコンで使われているマイコンは、スイッチから入力、ロボットへのデータの送受信、そしてモータのドライブ信号を送ることがメイン。
先ほどの3つの機能があれば、ほぼ全て実現可能というわけだ。
足りない所は、他のICなどで補うことで何でも対応できる。

マイコンの扱い方


マイコンだって電子機器、扱い方がありますよ。

まず触り方や保存の仕方。

電子部品はすべて静電気に弱い。
電気が流れるのは金属。(正確には違うけど)
人は帯電する。
金属は酸化しやすいものが多い。

これだけ読めばわかると思うが、金属部分、つまり足は素手で触らないこと。
これはマイコンに限らずFETなどにもいえる。
パッケージや基盤の非金属部分を触ること。

保存時は導電スポンジの使用をお勧めする。
空気中にも電荷がふよふよしてるかもしれないので。
導電スポンジがわからなかったら、秋月などでPICを買うと裏についてくる黒いスポンジがそれだ。
先輩なり、店の人に聞けば必ず答えてくれるはずだ。


次に情報だ。

市販されているマイコンならばデータシートもすべてネット上で公開されている。
特にPICはmicrochip社ですべて公開されている。(自社製品だしね)
しかしそれらは英語であることが多い。
H8は日本語での解説が多いため初心者でも読みやすく、秋月ではH8ボードも売っている。
いくら値段対性能が悪くても、そこは長所だ、きっと。

LEDを点灯させたい場合の注意。
データシートで見ておくのはI/Oピンの定格。
マイコンはちっちゃいので出力にも限界がある。
よって注目するのは電流限界。
ひとつのI/Oピンの出力限界、すべてあわせた出力限界を見ておくように。
英語で読めなかったら電気的特性を英訳してデータシートから検索してみるといいかも知れない。
単位で探せ、I/Oピンの電流はmAだ。


マイコンの選定基準

実はかなり難しい.
現在入手できるマイコンは非常に多く,ものによっては100円未満,ものによっては2000円以上と非常に幅広い.
基本的には性能と価格は比例する.
しかし古いマイコンでは製造コストが高く,新しいマイコンでは安いということがあり,一概に安いマイコンの性能が低いとは言えない.

加えてPICやAVR,SHなど様々な種類のマイコンが発売されているが,一応それぞれに長所,短所がある.

PICとAVRどちらが優れているかという疑問はいらない.
結局どちらもマイコンであり,性能が高ければ価格も高い.

現在では導入が簡単なマイコンが好まれる傾向にあり,mbedやArduinoがよく使われている.ただし単価は高め.
導入が簡単なマイコンには,初心者に優しいライブラリが充実しているという長所もある.

よく問題になるのは,どうやってプログラムをマイコンに送るか.

PIC,AVRには基本的に専用の書き込み回路が要求される,
そのためマイコン本体に加えライタと呼ばれる装置を買わなくてはならない.

一方でSH,H8は専用のモードに切り替えることによりRS-232Cで書き込みすることが可能である.

またmbedやArduinoなどはUSBで直接プログラムを転送することが可能である.
単価が高いマイコンにはプログラムを送りやすいというのは事実である.

つまり,
一度だけマイコンが使えればいい人には,単価が高いが他に何もいらないタイプ.
何種類も回路を作りたい人には,単価は安いがライタが必要になるタイプ.

をお勧めする.
ロボコンでは数年間特定の人がマイコンを使っていくことを考えると,PICやAVRが人気となるのもわかるはず.

次に問題になるのが,どの型番を使うか.

実は最新のマイコンになればなるほど性能が高くなる代わりに誰かが使ったという情報が減っていく.
そのため最新のマイコンを使うとプログラムを動かすことすら難しくなることもある.
また新しさが型番から判断しにくいというのもある.

よっておすすめするのは,いろいろ書いてありそうなサイトで使っているマイコンを使うこと.


マイコンの専門用語

マイコンはパソコンと性能が大きく違うのでパソコンで使われない専門用語もそれなりにある.

レジスタ
マイコンが外部との関わりを持つ記憶領域.
パソコンと違い大きなメモリを持たないマイコンは,空いているメモリに対して外部の機能にメモリを割り当てるのではなく,すでにメモリに外部の機能が割り当てられている.
そのため一部のレジスタは演算器から書き換えることができないというものもある.
また揮発性を持ち,リセット時には一定の値に戻るレジスタもある.

ワーキングレジスタ
レジスタの中でも演算器が直接処理できる領域.8bitのPICでは1byteしかない.
計算のために一時的に値を保持する領域で,代入,四則演算(割り算は難しい),他のどんな処理でも基本的に使用する.C言語で書く場合はあまり気にする必要はないが,アセンブリでは必ず考えなくてはならないもの.

プログラムメモリ
レジスタと違い,不揮発性で記憶領域もそれなりに大きいメモリ.
パソコンで書いたプログラムを格納する場所であり,実行後に書き換えることの多いレジスタと違い,プログラム中で書き換えることはあまりしない.
ビット数も違うことが多く,結構書き換える処理は大変.

ヒューズビット・コンフィグレーションビット
プログラムを書きこむときに書き換えるビット.
プログラムではなく,プログラムを実行するために必要な設定を書いておく場所であり,プログラムからではなく,マクロや開発環境の一部として設定することが多い.


EEPROM
レジスタと違い,こちらは不揮発性のメモリ.マイコンから比較的簡単に書き換えられて不揮発性な記憶領域であり,リセット後もデータを保持しておきたいときに使われることが多い.
ただし読み書きの速度は控えめである.
書き換え可能回数が少なめであり,何度も書き換えていると書き換えることができなくなるらしい.
本体にプログラムメモリを持たない過去のマイコンでは,EEPROMをプログラムメモリとして使用していた例もある.

割り込み
一定の条件が揃うと,現在動かしているプログラムを中断し,別のプログラムを実行する機能.
優先度の高い処理がある場合に使われる.
割り込み処理終了後は元のプログラムの実行に戻るため,下手なプログラムでは途中でレジスタが書き換わるなどの問題もある.



わからないことや間違っていることがあったらコメントでも書き込んでくれ、多分回答する。

名前:
コメント:

タグ:

マイコン H8 PIC
最終更新:2012年01月19日 11:02