Microchip PICのピン割り当ての柔軟性


APDahlen Applications Engineer

MicrochipのPICはI/Oピンの割り当てにおいて柔軟性を備えていますが、ハードウェア上の制約が存在します。本記事では、マイクロコントローラのPeripheral Pin Select(PPS)モジュールに重点を置きながら、SPIペリフェラルに関連する具体例について取り上げます。

この記事では、すべてのピンがすべてのペリフェラルに接続できるという誤解を解消します。これは、マイクロコントローラの選定やPCB設計において極めて重要なステップです。ここを間違えると、配線パターンを切断したり、その場しのぎの配線を追加したり、さらには次のPCBにリビジョン番号を追加したりする苦労を味わうことになります。

PICのピン割り当ての概要

MicrochipのPICのI/Oピン割り当ては、特殊機能レジスタ(SFR)に手動で書き込むか、MCC(MPLAB Code Configurator)を介して設定することができます。図1は、QFN40パッケージの PIC16F17576 におけるSPIペリフェラルのMCCピン割り当てを示しています。

  • MSSP1は、ポートBおよびCへの接続が可能です

  • MSSP2は、ポートBおよびDへの接続が可能です

図1: PIC16F17576 のSPIペリフェラルにおけるMCCのピン割り当て

データシートに記載されているI/Oピン割り当て

ピンの割り当ては、PPS入力選択表(PPS Input Selection Table)およびPPS出力選択表(PPS Output Selection Table)に記載されています。その一例を図2に示します。SDO2の出力ソースが強調表示されています。40ピンデバイスでは、この表からSDO2はPort BおよびPort Dへルーティングできます。同様に、SDO1信号はPort BおよびPort Cへルーティングできます。これは、図1に示されたMCCの表示内容と一致しています。

図2: SDO2が強調表示されている PIC16F17576 のPPS出力選択表

ペリフェラルのピン選択(PPS)モジュールの概要

図3は、マイクロコントローラのPPSのブロック図を示しています。最も単純な構成では、PPSは2つの部分から成っています。

  • 入力側: マルチプレクサは、複数のI/Oピンの入力を受け付けます。PPS SFRによって、どの物理入力信号がペリフェラルへルーティングされるかが決定されます。

  • 出力側: 各I/Oピンにはそれぞれマルチプレクサが対応付けられています。PPS SFRによって、どのペリフェラル信号が物理出力ピンへルーティングされるかが決定されます。

マスターとして構成されたSPIハードウェアには、MISO信号用の入力マルチプレクサ1つと、MOSIおよびSCK信号用の出力マルチプレクサ2つが必要です。アクティブローのCS_NOT信号は、GPIOピンへの割り当てによって処理されます。

図3: PPSのブロック図

マルチプレクサの制限事項

PPS入力選択表およびPPS出力選択表を用いて、マルチプレクサの数や規模を推測することができます。PIC16F17576 を例にとると、以下のようになります。

  • すべての入力ピンを外部から利用可能にすると仮定した場合、36入力のマルチプレクサが必要になります。マルチプレクサの数は、ペリフェラルの数によって決まります。

  • すべての出力ピンを外部から利用可能にすると仮定した場合、合計で36個のマルチプレクサが必要になります。各マルチプレクサの入力数は、ペリフェラルの出力信号の総数によって決まります。

これらを総合すると、かなりのシリコン面積を消費することになります。タイミング制約やレイアウトの複雑さも増大するでしょう。例として、PCB設計を考えてみてください。ネットの数を2倍にしても、作業量は2倍にはなりません。むしろ、各配線について、ほかのすべての配線との関係を考慮する必要があります。マイクロコントローラの設計者たちも、同様の非線形な配線問題に直面することになるでしょう。以上のことから、設計者たちがコストと柔軟性のバランスを取ったと推測しても差し支えないでしょう。

おわりに

PICのエンジニアたちが制約条件について議論しているのをこっそり聞くことができたら、面白いと思いませんか? もっとも、PIC用のPCBを設計する際には、皆さんも同じような議論をすることになるでしょう。

APDahlen

:japanese_symbol_for_beginner: 関連する基本的な記事

著者について

Aaron Dahlen氏、元米国沿岸警備隊(USCG)少佐(LCDR)は、シーフリバーフォールズにあるDigiKeyのシニアアプリケーションエンジニアを務めています。エレクトロニクスおよび産業オートメーションに関する彼の知識と経験は、技術者およびエンジニアとして従事した27年間の軍歴と、その後10年以上にわたる教育経験を通じて培われました。

Dahlen氏は、ミネソタ州立大学マンケート校で電気工学修士号(MSEE)を取得しています。また、ABET認定を受けた電気工学プログラムで教鞭を執ったほか、電子工学技術プログラムのコーディネーターを務め、軍の技術者に対して部品レベルの修理技術を指導してきました。

現在は、ミネソタ州北部の故郷へ戻り、コンデンサ探しから始まった数十年にわたる旅を終えました。彼の物語はこちらからお読みください。




オリジナル・ソース(English)