また、PCBの複雑さを緩和し、場合によっては基板上の信号トレースに関する歪みを解 消する事で、ビアの使用を解消または軽減します。さらに、基板の層数を減らしてコストを 削減できます。
ピン配置の最適化とは、何よりも「ノイズの多い」(高速転流)信号と敏感な(ハイ インピーダ ンス アナログ)入力を離して配置する事であり、寄生容量を減らしトレース長を揃える事で す。
さらに、PPSを使うと複数のピンでリソースを共有できます。例えば、交互に使われる2つ のポート間でシリアル インターフェイスを共有できます。また、同じ UARTを特定のアプリ ケーション フェイズ中はプリンタコネクタに、それ以外の時はディスプレイまたはデバッグ コンソールを駆動する別のコネクタに使えます。
最後に、PPSを使って同一出力を複数のピンに供給できます。このため、複数のCMOS 出力ドライバを同時に接続する事で、(パッケージ/デバイスの絶対定格内で)自然かつ緩 やかに負荷を共有し、事実上ファンアウトが増加します。
制限事項
デバイスのピンと周辺モジュールの数が増えると、PPSの設定が複雑化します。コストを抑 制するため、8ビットPICマイクロコントローラでは通常、PPSを20ピン以下に制限してい ます。つまり、少ピンデバイス(8/14/20ピン)では、全ての有効な機能をどのデジタルピン に割り当てる事もできます。しかし、28ピンおよび40ピンデバイスでは、ピンを2つのグ ループに分割する事ができます。無限の力等というものは存在しないのです。
I2Cインターフェイス(MSSPモジュール)の出力では、SDAおよびSCLにピンを選ぶ時に は注意が必要です。元々のバス仕様により、標準CMOSポート仕様とは異なる特別な I/Oドライバが決まっており、特定の2本のピンのみ使えます。シリアルEEPROMや小型 センサ等のほとんどのアプリケーションは通常この影響を受けず、PPSの機能を活用した 柔軟な選択が可能です。
PPSが使えるのはデジタル周辺モジュール/入力だけです。アナログ モジュールには別 のマルチプレクサが必要であり、ノイズとコストを抑制するために選択肢は限られています。
MCC が生成する API
MPLAB Code Configuratorでは、[Pin Manager]ウィンドウから簡単にPPSの設定が可能 です。
設 定 が 完 了 す る と 、 MCC は pin_manager.c ソ ー ス フ ァ イ ル 内 の PIN_MANAGER_Initialize()関数に適切なPPSコマンドを追加(およびロック)します。
ピン配置
PPSの威力は、図3.2に示したMCCのPin Managerの例を見ると一目瞭然です。この例
ではPIC16F1619でCWGモジュールを選択しています。電源ピン以外なら制約なく入出
力ピンを割り当てる事ができます。
ホームワーク
• I/Oポートピンの割り当てを変更してみましょう。
• PPSがどの周辺モジュールで使えるか、また使えないかを調べてみましょう。
• PWM出力ステアリングとPPSの違いを調べてみましょう。二重ステアリングにつ いて調べてみましょう。
• ZCD入力ピンの割り当てが変更できるか調べてみましょう。
図
3.2 : MCC の Pin Manager での PIC16F1619 の例
• 複数のピンを1つの周辺モジュールへの出力として並列に接続する場合、最大 ファンアウト(駆動電流)を制限する要因は何か調べてみましょう。
オンライン リソース
http://microchip.com/PPS – CIP – PPSの概要
『TB3096 - Pulse Code Modulated (PCM) Infrared Remote Control』
『TB3098 - PIC16F170X Peripheral Pin Select (PPS) Technical Brief』