「PIC (コントローラ)」の版間の差分
Tomotomo2015 (会話 | 投稿記録) 編集の要約なし |
en:PIC microcontroller18:42, 13 January 2016 より翻訳 |
||
123行目: | 123行目: | ||
#* dsPIC33E系 最大70MIPS |
#* dsPIC33E系 最大70MIPS |
||
===PIC32MX=== |
|||
=== データメモリ32ビット === |
|||
2007年11月、マイクロチップ社は新しい32ビットマイクロコントローラである[[PIC32MX]]ファミリーを発表した。 |
|||
最初のラインナップは業界標準である[[MIPSアーキテクチャ]]を採用している<ref>http://www.mips.com/products/processors/32-64-bit-cores/mips32-m4k/</ref>。 |
|||
この製品は[http://microchip.com/c32 Microchip MPLAB C Compiler for PIC32 MCUs]によってプログラムを作成できる。このコンパイラは[[gcc|GNUコンパイラコレクション]]の派生である。 |
|||
最初の18モデル(PIC32MX3xxおよびPIC32MX3xx)は既存の16ビット製品であるPIC24FxxGA0xxファミリーとピン配置および周辺サポートに互換性があり、同じソフトウェアライブラリやハードウェアの装置が使用できる |
|||
今日では28ピンのより小さなQFNパッケージが出荷されており、ハイパフォーマンス向けに[[イーサネット]]、CAN、[[USB On-The-Go]]のサポートが含まれる製品もある。ミッドレンジの32ビットマイクロコントローラのすべてのファミリーが利用可能である。 |
|||
PIC32アーキテクチャはマイクロチップ社のポートフォリオにいくつかの新しい特長をもたらしている: |
|||
* PIC32 このシリーズには[[MIPSアーキテクチャ|MIPS]] 32-bit M4Kコアを内蔵。 |
|||
* 最大512KBの[[フラッシュメモリ]] |
|||
* 1つのインストラクションは1クロックで実行される |
|||
* キャッシュメモリのある初めてのプロセッサ |
|||
* RAMから実行可能になった |
|||
* フルスピード対応のUSBデバイスまたはOTGホストとなれる二役のサポート |
|||
* [[JTAG]]にフル対応および2ワイヤーによるROM書き換えおよびデバッグ |
|||
* リアルタイムトレース |
|||
===PIC32MZ=== |
|||
2013年11月、マイクロチップ社はMIPS M14KコアをベースとしたPIC32MZシリーズのマイクロプロセッサを発表した。 |
|||
PIC32MZシリーズの特長:<ref>http://www.microchip.com/pagehandler/en-us/press-release/microchips-pic32mz-32-bit-mcus.html</ref> |
|||
* 200 MHz動作、および330 DMIPS、3.28 CoreMark/MHzのパフォーマンス |
|||
* 2MBのフラッシュメモリおよび512KBのRAM |
|||
* 新しい周辺サポート。ハイスピードUSBおよび暗号化エンジン、SQI |
|||
== PIC互換 == |
== PIC互換 == |
2016年1月26日 (火) 00:30時点における版
PIC(ピック)とは、Peripheral Interface Controller(ペリフェラル インターフェイス コントローラ)の略称であり、マイクロチップ・テクノロジー社(Microchip Technology Inc.)が製造しているマイクロコントローラ(制御用IC)製品群の総称である。コンピュータの周辺機器接続の制御用として1975年にゼネラル・インスツルメント(General Instrument Corporation)社により開発された。1985年にPICの事業部門が独立してマイクロチップ社となり現在に至る。
PICにはCPU、メモリ(RAM、ROM)、I/Oなどが1チップに収められており、ROMに書き込まれたプログラムにより制御される。回路構成が容易かつ安価で、他のマイクロコントローラと比べて圧倒的にインターネット上で情報を得やすく、関連書籍も豊富で、PICそのものの入手性も良いため電子工作愛好家の間で人気がある。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/f0/Pic32mz2048ecm100-ipt.jpg/220px-Pic32mz2048ecm100-ipt.jpg)
特徴
命令語長を揃え命令数を抑えたRISCライクな構造になっているほか、コードエリアとデータエリアが分離されたハーバード・アーキテクチャになっているのが特徴。「ビットコア」とはコードメモリの1命令のビット数をさす。
パッケージは長方形のDIPタイプから小型の表面実装タイプのものまでさまざま豊富な形態で供給されている。ピン数のバリエーションも豊富で、下は6ピンのもの(米粒PIC)から存在する。汎用パラレルポートのほか、タイマやA/Dコンバータなどを内蔵するもの、動作用のクロック回路を内蔵するもの、プログラムコード用にフラッシュROMを備えたものもある。なお、バスは一切出力されていない。シリアルコントローラ (USART, IIC) やUSBコントローラを内蔵している製品もある。
汎用パラレルポートには1ピンあたり25mAまで流せる出力回路が採用されており、LED等を直接駆動することができる。ただし1ポート及び1素子当たりの合計の出力電流には制限がある。
なおPICの開発元であるMicrochip社は、ディスコン(廃盤、生産停止)にしない事を会社の方針としており、古いチップも入手可能である。 そのため、設計の古いものや機能の劣るものも存在し、そのことが他社との比較において誤解され、性能的に不利であるという誤った解釈をされる理由ともなっている。 一方で、存在する過去の使用例や作例の蓄積が時間を経た現在でも有効に活用できるというメリットは大きく、チップが入手できないために見つけた作例が実際には生かせないというケースはまれである。
開発環境は、MPLAB XというC言語ベースの統合開発環境がチップ製造元のMicrochipから無償で配布されているほか、アセンブリ言語も利用可能であり、サードパーティー製の開発環境も何種類か発売されている。
日本では、電子工作雑誌で紹介されたり、秋葉原などにある電子パーツ店ではライタなどのキットが販売され、PICチップやライタ、開発環境が入手しやすいため普及した。 現在では開発元から純正ライタが発売されていて、こちらを用いるのが一般的である。 PICマイクロコンピュータの入手性は他のマイクロコンピュータと比べて格段に良く、特にDIPパッケージと呼ばれる扱いやすいパッケージの豊富さから、日本でのアマチュア電子工作においてはゆるぎない人気を維持している。
PICは電子部品を扱う複数の会社がキットで提供しているため、電子工作でよく使われている。今まで専用のLSIやICなどで構成されていた回路をPICに置き換えている電子工作キットなどもある。
機能
すべてのPICに搭載されている機能(*の付いた副機能のみ非搭載機種もある)
- 発振回路
- リセット(プログラムの先頭に戻る)
- RESET端子によるもの
- ウォッチドッグタイマ(WDT)*によるもの
- 割り込み
- 外部割込み
- ピン変化*
- I NTピン
- 内部割込み
- AD変換完了*
- EEPROMにライト完了*
- タイマのオーバーフロー(桁あふれ)
- 外部割込み
- スリープ(動作を停止し低消費電力となる)
一部機種に搭載されている機能
- CCP機能(キャプチャ、コンペア、PWMの頭文字)
- キャプチャ
- コンペア
- PWM(オンとオフの割合でモーターの速度制御やLEDの明るさ制御ができる)
- タイマー(カウントアップ)
- AD変換(アナログ->デジタル変換)
- DA変換(デジタル->アナログ変換)
- コンパレータ(比較)
- シリアル通信
- パラレル通信
- ウォッチドッグタイマ(WDT) フリーズ・暴走を回避する為の監視タイマ
- JTAGプログラミング(24FとdsPIC33Fシリーズのみ)
- USB On-The-Go機能
PICの種類
データメモリ8ビット
12、14ビットコアのシリーズは下記のような独特な特徴を持つ。
- 一定サイズ以上のプログラムはページ切り替えを必要とする
- 定数テーブルは作れないので値を返すリターン命令で代用する
- 汎用レジスタが一つしかない代わりにデータメモリを「ファイルレジスタ」として使用できる
- 分岐には内部でスキップ命令を組み合わせる
- スタックが8(12ビットコアでは2)段階に抑えられている、など
16ビットコアのシリーズはアーキテクチャが高級言語向きになるなど、より汎用マイコンらしく拡張されている。
- ベースラインシリーズ(命令12ビット長コア)
- PIC10系 このシリーズは8PinのDIPか米粒サイズの表面実装
- 10F200
- 10F202
- 10F204
- 10F206
- 10F220
- 10F222
- PIC12系
- 12F509
- PIC10系 このシリーズは8PinのDIPか米粒サイズの表面実装
- ミッドレンジシリーズ(命令14ビット長コア)
- PIC12系
- 12F629 発振回路(4MHz)を内蔵し単独動作可能な8PinのPIC
- 12F675 12F629にA/Dコンバータを追加
- 12F683 CCPを搭載・内部クロックが8MHz
- PIC16系
- 16F84A 多数のPIC入門書で取り上げられた定番機種
- 16F648A 16F84Aに多彩な機能を追加搭載、発振回路(4MHz)内蔵したため単独動作で実験できるため扱いやすい、CCP・USARTを搭載
- 16F88 18PinのPICでは最も多機能な機種、A/Dコンバータ搭載、内蔵クロック8MHz搭載
- 16F877A 40pinとI/Oの数も多く機能も16F88以上、プログラムメモリも8Kワードで大容量
- 16F887 16F877Aの改良版。発振回路を内蔵し、A/Dコンバータのピン数が増えている。
- 16F876A 16F877Aの28pin版
- 16F886 16F887の28pin版
- PIC12系
- Enhancedミッドレンジシリーズ(命令14ビット長コア)
- PIC12系
- PIC16系
- PIC16F19xx
- ハイエンドシリーズ(命令16ビット長コア)
データメモリ16ビット
- PIC24 このシリーズにはプログラムメモリ256KB、RAM32KBといった大容量なものもある
- PIC24F系 最大16MIPS
- PIC24H系 最大40MIPS
- PIC24E系 最大70MIPS
- dsPIC 命令24ビット長・データ長16ビットのCPUコアと、DSPを内蔵
- dsPIC30F系 最大30MIPS
- dsPIC33F系 最大40MIPS
- dsPIC33E系 最大70MIPS
PIC32MX
2007年11月、マイクロチップ社は新しい32ビットマイクロコントローラであるPIC32MXファミリーを発表した。 最初のラインナップは業界標準であるMIPSアーキテクチャを採用している[1]。 この製品はMicrochip MPLAB C Compiler for PIC32 MCUsによってプログラムを作成できる。このコンパイラはGNUコンパイラコレクションの派生である。 最初の18モデル(PIC32MX3xxおよびPIC32MX3xx)は既存の16ビット製品であるPIC24FxxGA0xxファミリーとピン配置および周辺サポートに互換性があり、同じソフトウェアライブラリやハードウェアの装置が使用できる 今日では28ピンのより小さなQFNパッケージが出荷されており、ハイパフォーマンス向けにイーサネット、CAN、USB On-The-Goのサポートが含まれる製品もある。ミッドレンジの32ビットマイクロコントローラのすべてのファミリーが利用可能である。
PIC32アーキテクチャはマイクロチップ社のポートフォリオにいくつかの新しい特長をもたらしている:
- 最大512KBのフラッシュメモリ
- 1つのインストラクションは1クロックで実行される
- キャッシュメモリのある初めてのプロセッサ
- RAMから実行可能になった
- フルスピード対応のUSBデバイスまたはOTGホストとなれる二役のサポート
- JTAGにフル対応および2ワイヤーによるROM書き換えおよびデバッグ
- リアルタイムトレース
PIC32MZ
2013年11月、マイクロチップ社はMIPS M14KコアをベースとしたPIC32MZシリーズのマイクロプロセッサを発表した。
PIC32MZシリーズの特長:[2]
- 200 MHz動作、および330 DMIPS、3.28 CoreMark/MHzのパフォーマンス
- 2MBのフラッシュメモリおよび512KBのRAM
- 新しい周辺サポート。ハイスピードUSBおよび暗号化エンジン、SQI
PIC互換
- SCENIX SXシリーズ - SCENIX(現在はUbicom)のCPUで、ミップス・テクノロジーズをスピンオフしたチームが開発した。PICとバイナリ互換で命令を4倍速にし、さらに50MHzや75MHzと高クロック化されている。PIC12相当のものとPIC16相当のものがある。
使用可能なC言語コンパイラ
- Windows版 (x86/x64)、Linux版 32-Bit and Linux 64-Bit (Requires 32-Bit Compatibility Libraries)、Mac版 (10.X)のコンパイラが無料で提供されており、それぞれ、MPLAB XC8 Compiler、MPLAB XC16 Compiler、MPLAB XC32 Compilerの3種のコンパイラで、発売中のすべてのPICマイクロコンピュータに対応している。統合開発環境であるMPLAB Xに統合して使用される。マイクロチップ・テクノロジー社が公開しているライブラリやサンプルコードをそのまま利用できる利点がある。最適化機能に制限のないPRO版と、最適化機能が制限されたFree版、Standard版があるが、個人レベルでの使用ではFree版で必要・十分な機能を得られる。Free版は、PRO版と全く同じデバイスとコマンドをサポートし、使用時間とメモリ使用量にも制限はない。ほとんどの用途で十分なコード最適化機能を備えた、機能に制限のないライセンスで使うことができる。
- CCS PIC C Compiler
- 対象となるPICの種類(ビット数)および開発環境のオペレーティングシステムにより製品が分かれている。初期のバージョンは専用のIDEが付属していたが、最近のバージョンではMPLABに統合して使用するようになっている。
- HI-TECH PIC C Compiler
- mikroElektronika mikroC for PIC
- SDカードやキャラクタLCDを含む多くのライブラリが標準でついている。独自のIDEになっている。対応するシリーズは12,16,18シリーズのほぼ全て。PIC24やdsPICシリーズは別製品になっている。無償バージョンでは出力が2Kワードに制限されるが、その範囲内であれば有償版と同じライブラリがつかえる。また、Basic版とPascal版も販売されている。HI-TECHのコンパイラと違い、include文が不要だったり、大文字と小文字は区別しないなどの違いがある。
- SDCC (Small Device C Compiler)
- 小型デバイス向けのフリーのCコンパイラ。PICを含む複数のデバイスに対応しており、マルチプラットフォームで動作する。