PSoC

PSoC（ピーソック、Programmable System-on-Chip）とは、サイプレス・セミコンダクター（現：インフィニオン・テクノロジーズ）が開発したマイクロコントローラの製品群である。
概要.
製品群はアーキテクチャの違いによって以下のように大きく5種類に分けられる。
他にも、PSoC5LPの前身にあたるPSoC5（CY8C5xxxx）と呼ばれる製品群が存在する。ピン配置や機能はPSoC5LPと互換性があり、メーカーはPSoC5LPへの置き換えを推奨している。
マイクロコントローラに加え、「ユーザーモジュール」と呼ばれるブロック構成機能があり、周辺機能を集積できるのが特徴である。
Bluetooth Low Energy.
サイプレスは、2014年からBluetooth Low Energyモジュールを搭載したPSoC4 BLE(Bluetooth Smart)の提供を開始した。ユーザーはPSoCの開発環境を利用することによりBLEモジュールを追加できる。
PSoC 6シリーズには、Bluetooth 5規格に準拠したBLEモジュールが追加された。
歴史と採用実績.
製品としての出荷は2002年に始まった。サイプレスはPSoCを促進するため2002年と2004年に雑誌・Circuit Cellarにて「PSoC Design Challenge」を掲載した。
2009年9月にPSoCにPSoC3とPSoC5の2ファミリを追加する事を発表した。最大の特徴はCPUコア（コアアーキテクチャ）の一新で、PSoC3は8ビットのIntel 8051を、PSoC5には32ビットのARM Cortex M3を採用し、性能を改良・改善している。なお、当初から存在する初代PSoCは今後もPSoC1として展開される。
2012年12月にPSoC5の消費電力を抑えたPSoC5LPが発表され、2013年3月にはPSoC4のファミリが発表された。
TiVoや、AppleiPodのホイール部分の静電容量センサーの制御などに利用されている。
テクノロジー.
コア（中心部分）とアナログおよびデジタルブロックで構成されており、プログラムと相互に利用できる。
コア.
PSoC1のコアには以下の物が含まれている。
ユーザーモジュール.
PSoCの特徴の1つとして、他のマイクロコントローラ（マイコン）と異なり「ユーザーモジュール」と呼ばれる機能があげられる。様々なアナログおよびデジタルブロックを使用して、マイコンの周辺に必要な一連の機能を集積・内蔵することができる。初期化処理や割り込み処理などのAPIやサブルーチンは開発環境が自動的に作成してくれる。デバイスによって異なるが、最大で16個のデジタルブロックと12個のアナログブロックが利用できる物もある。
デジタルブロックには、デジタルビルディングブロック（DBBxx）とデジタル通信ブロック（DCBxx）の2種類があり、デジタル通信ブロックにはI/Oユーザーモジュール（SPI、I2C、UARTなど）を構成できる。各デジタルブロックは8ビット処理であるが、複数のブロックを組み合わせる事で16・24・32ビットで処理する事ができる。例えば、16ビットのPWMやタイマーはデジタルブロックを2つ接続して処理される。
電源投入時に（ユーザーモジュールを）構成する必要がある点においてはFPGAに似ているが、構成データは内蔵フラッシュメモリーに記憶されており自動的に読み込まれる。PSoC1ではデジタルブロックは既存の物しか使用できず、HDLなどで独自に作成することはできない。ユーザーモジュールの構成は動作中にユーザーモジュールを再構築し、動作・機能を変更することも可能である。
I/Oポート.
I/Oポートの機能が固定されている他のマイクロコントローラと異なり、特にデジタル入出力においてはI/Oポートの制約が少ない。PSoCを搭載する基板に合わせて使用するI/Oポートを選択でき、周辺の配線パターンを最適化しやすい。
M8Cプロセッサ.
M8Cプロセッサとは、サイプレス・セミコンダクター社が開発した8ビットマイクロプロセッサコアである。ハーバード・アーキテクチャで、93.7kHz～24MHzで動作し、最大4MIPSの性能がある。ビッグエンディアンである。
PSoC1のCPUコアとして使用されている。
開発環境.
GUIによる数々の開発環境が無償で提供されている。