Vol.546 10.Jul.2008
P
久しぶりのPICマイコン
by fjk
PICを使わなくなってから10年以上たったが、模型の制御にと思って、久しぶりにワンチップマイコンについて調べてみた。昔よく使っていたPIC16F84は既に店頭には無く、後継のPIC16F84Aももっと安価で高機能なものに移り変わっていた。ということで、現状のPICを整理してみる。
まず、8ビットシリーズとしては、ベースライン、ミッドレンジ、ハイエンドの3種に分かれている。16ビットシリーズはPIC24があるが、さらにDSP機能を内蔵しているdsPICシリーズもある。このほかにも32ビットシリーズなどがあるがアマチュア向きでは無さそうである。
|
|
シリーズ名 |
ピン数 |
RAM/ROM |
MIPS |
命令数 |
C言語 |
8ビット |
ベースライン |
PIC10F |
6〜8 |
0.75/0.5k |
2 |
33 |
CCS-Cなど |
ミッドレンジ |
PIC12F |
8 |
3.5/8k |
5 |
35 |
PIC16F |
14〜64 |
14/8k |
10 |
ハイエンド |
PIC18F |
18〜100 |
128/1M |
12 |
75 |
C-18 |
16ビット |
汎用 |
PIC24F |
28〜100 |
96k/4M |
16 |
76 |
C-30 |
高速 |
PIC24H |
256k/4M |
40 |
DSP機能 |
dsPIC30F |
18〜100 |
144k/4M |
30 |
84 |
dsPIC33F |
256k/4M |
40 |
PIC10〜18の一覧表
これらのPICでハードウェア上での上位互換性はある程度はあるが(ピン互換でそのまま使えるものもある)、シリーズが異なるとソフトウェア上では互換性が悪くアセンブラでは注意が必要である。ただ、Cなどの高級言語を使えばある程度は吸収できそうである。
PICシリーズの特徴は、一つにチップの中に沢山の機能を内蔵しており、少ないピンのものではプログラムによってピンの機能を選ぶことが出来る(2x3mmと指の上に載る小さなものもある)。PICではプログラムメモリとデータメモリが別になっているハーバードアーキテクチャーを採用することにより、内部構造の簡単化と実行速度の高速化を図っている。シリーズはメモリ構成やIOの組み合わせによって多数のチップが存在する。価格も安いものでは70円/チップのものもある。
|
PICKIT2 Debug Express |
主なIOとしては、プログラマブル入出力(エッジ割り込み、プルアップの有無やLED駆動も可能)、タイマー、コンパレータ、CCP、PWM、A/D変換、USART、MSSP、SPI、I2C、CAN、USB、TCP/IPなどが使用可能である。内蔵クロックを持つなど、周辺部品を少なくすることができる。
開発言語としては、アセンブラ(命令数は少なく、ソフトと開発環境であるMP-LABは無料)のほかC言語(MC社では無料のstudent版が提供されているほか、CCS社やHiTech社の無料で使える簡易Cコンパイラもある)も使うことが出来る。
システムの開発にはPICにプログラムを書き込むツールが必要で、1000円程度で自作する方法もあるが、手間がかかりそうなのでPICkit2(キットの付属品により\5000〜\9000、簡易Cコンパイラなどが付属)が安価で便利である(PICが実装済みの状態でプログラムの書き込みが行えるICSP方式)。
PICに関する情報は五閑哲也さんの”電子工作の実験室”が詳しい。