|
PIC(ピック)とは、Peripheral Interface Controllerの略称であり、マイクロチップ・テクノロジー社(Microchip Technology Inc.)が製造しているマイクロコントローラ(制御用IC)製品群の総称である。コンピュータの周辺機器接続の制御用として1980年代にゼネラル・インスツルメント(General Instruments Corporation)社により開発された。後にPICの事業部門が独立してマイクロチップ社となり現在に至る。
PICにはCPU、メモリ(RAM、ROM)、I/Oなどが1チップに収められており、ROMに書き込まれたプログラムにより制御される。回路構成が簡単であり、安価なので電子工作を行う人の間で人気がある。
特徴
RISCライクに命令数を抑えた構造になっているほか、コードエリアとデータエリアが分離されたハーバード・アーキテクチャになっているのが特徴。「ビットコア」とはコードメモリの1命令のビット数をさす。
パッケージは主に長方形のDIPタイプで、さらに小型の表面実装タイプのものもある。ピン数の少ない製品が多く、下は6ピンのものから存在する。汎用パラレルポートのほか、タイマやA/Dコンバータなどを内蔵するもの、動作用のクロック回路を内蔵するもの、プログラムコード用にフラッシュROMを備えたものもある。なお、バスは一切出力されていない。シリアルコントローラ (USART, IIC) やUSBコントローラを内蔵している製品もある。
LEDを直接光らせることができる。(1ピン25mA程度まで) ただし1ポート当たりの出力は制限されている。(1ポート100mA程度まで)
開発環境は、MPLABというアセンブリ言語ベースの統合開発環境がメーカーから無償で配布されているほか、C言語コンパイラも何種類か発売されている。
日本では、電子工作雑誌で紹介されたり、秋葉原などにある電子パーツ店ではライタなどのキットが販売されている。PICチップやライタ、開発環境が入手しやすいため普及した。
PICは電子部品を扱う複数の会社がキットで提供しているため、電子工作でよく使われている。秋葉原では最も基本的なモデルである16F84と、I/Oピンと機能が多くプログラムメモリもかなり広い16F877が大量に安価で出回っており、ほとんどの回路ではこれが利用される。今まで専用のLSIやICなどで構成されていた回路をPICに置き換えている電子工作キットなどもある。 また、プレイステーションなどをはじめとした各種ゲーム機を信号的に騙し、コピーガードやリージョンチェックを回避するチップ(通称MODチップ)に利用されたこともある(不正競争防止法の改正により現在の日本では違法)。
機能
すべてのPICに入っている機能(*は無いものもある)
- 発振回路
- 外部発振回路
- 内部発振回路*(RC発振回路・4~8MHz程度)
- リセット(プログラムの最初に戻ること)
- 割り込み
- 外部割込み
- 内部割込み
- AD変換完了*
- EEPROMにライト完了*
- タイマのオーバーフロー(あふれること)
- スリープ(寝る)
すべてには入っていない機能
- CCP(キャプチャ、コンペア、PWM)
- PWM(出力電圧をデューティで制御する。モーターの速度制御等に使われる。)
- キャプチャ
- コンペア
- タイマー(カウントアップ)
- AD変換(アナログ->デジタル変換)
- コンパレータ(比較)
- シリアル通信
- パラレル通信
- ウォッチドッグタイマ・WDT(番犬タイマ)
- JTAGプログラミング(24FとdsPIC33Fシリーズのみ)
PICの種類
データメモリ8ビット
12、14ビットコアのシリーズは下記のような独特な特徴を持つ。
- 一定サイズ以上のプログラムはページ切り替えを必要とする
- 定数テーブルは作れないので値を返すリターン命令で代用する
- 汎用レジスタが一つしかない代わりにデータメモリを「ファイルレジスタ」として使用できる
- 分岐にはスキップ命令を組み合わせる
- スタックが8(12ビットコアでは2)段階に抑えられている、など
16ビットコアのシリーズはアーキテクチャが高級言語向きになるなど、より汎用マイコンらしく拡張されている。
- ベースラインシリーズ(命令12ビット長コア)
- PIC10系 このシリーズは8PinのDIPか米粒サイズの表面実装。
- 10F200
- 10F202
- 10F204
- 10F206
- 10F220
- 10F222
- PIC12系
- ミッドレンジシリーズ(命令14ビット長コア)
- PIC12系
- 12F629 クロック内蔵の8PinのPIC。
- 12F675 A/Dコンバータを搭載。
- 12F683 CCPを搭載・内部クロック8MHz
- PIC16系
- 16F84A PIC入門用として最適。本もたくさん出版されている。ただ、付加機能が少なく昔からあるチップのため少々高価
- 16F648A 16F84Aに付随機能を付けたタイプ、内蔵クロックを搭載したため外付けクロック不要で実験できるため扱いやすい、CCP・SPI・USARTを搭載。
- 16F88 18PinのPICでは最強と言われている、A/Dコンバータ搭載、内蔵クロック8MHz搭載
- 16F877A 機能が豊富。プログラムメモリも8Kで、大容量。使いやすい。
- ハイエンドシリーズ(命令16ビット長コア)
- PIC18系 最大クロックは40MHz、10MHzを入力してPLLで4倍することで最高性能が出せる
-
- 18F4520 40Pinで、プログラムメモリは16Kワード、RAMは約1.5KB。
- 18F2550 28Pin。USBモジュールを内蔵している。
- 18F4550 18F2550の40Pin版。
- 18F2620 28Pin。18Fシリーズの中で最高峰の8722と同じRAM容量をもつ。
- 18F4620 18F2620の40Pin版。
- 18F8722 80PinのTQFPパッケージ。プログラムメモリは64Kワード、RAMも約4KBと大容量。
データメモリ16ビット
- PIC24 このシリーズにはプログラムメモリ256KB、RAM32KBといった大容量なものもある。
- PIC24F系 最大16MIPS。
- PIC24H系 最大40MIPS。
- dsPIC 命令24ビット長・データ長16ビットのCPUコアと、DSPを内蔵。
- dsPIC30F系 最大16MIPS。
- dsPIC33F系 最大40MIPS。
PIC互換
- SCENIX SXシリーズ - SCENIX(現在はUbicom)のCPUで、ミップス・テクノロジーズをスピンオフしたチームが開発した。PICとバイナリ互換で命令を4倍速にし、さらに50MHzや75MHzと高クロック化されている。PIC12相当のものとPIC16相当のものがある。
使用可能なC言語コンパイラ
- 対象となるPICの種類(ビット数)および開発環境のオペレーティングシステムにより製品が分かれている。初期のバージョンは専用のIDEが付属していたが、最近のバージョンではMPLABに統合して使用するようになっている。
- MPLABに統合するほかEclipseをベースとした独自のIDEで使用できる。出力可能な容量が制限された PICC Lite は無償で使用できる。
- mikroElektronika mikroC for PIC
- SDカードやキャラクタLCDを含む多くのライブラリが標準でついている。独自のIDEになっている。対応するシリーズは12,16,18シリーズのほぼ全て。PIC24やdsPICシリーズは別製品になっている。無償バージョンでは出力が2Kワードに制限されるが、その範囲内であれば有償版と同じライブラリがつかえる。また、Basic版とPascal版も販売されている。
関連項目
外部リンク
|