リマッパブルピン機能の使い方

リマッパブルピンの使い方

概要

dsPIC33Cシリーズには色々なペリフェラルが搭載されていますが、その中でもデジタルモジュールはリマッパブルピンを経由して入出力を行うため、この機能の理解が必要です。ちなみにアナログモジュールやI2Cモジュールなどはリマッパブル機能は使えません。

ピン設定はプログラムの初期化ルーチンで1度だけ行う事が普通ですが、プログラムの処理によっては動的に割り当てる事も可能です。

リマッパブルピン出力

様々なペリフェラル出力を「RP」とついている任意のピンへ割り当てる事が可能です。

(fig.1)ではU1TX(Uartの送信),U1RTS(UartのRTS)などが選択入力側に繋がれており、選択出力側にピンが接続されています。この「RPORxx」レジスタに値を設定することで、どれか一つのペリフェラル出力をピンに接続可能です。出力同士衝突するので複数の機能を一つのピンに割り当てる事はできません。

ピンに出力一つという制限は有りますが、例えば「RP32ピン」と「RP33ピン」に同じペリフェラル出力を接続するといった使い方は可能です。また内部仮想出力可能です。

内部仮想出力とは

RP170~181は内部仮想出力となっており、外部へ出力は行いません。この仮想出力を通じリマッパブルピン入力へ接続することが可能です

(fig.1)リマッパブルピン出力 DS70005319D-page 131より引用

◆設定例

RPOR18bits.RP69R = 15u; //RP69ピンにSCCP1を出力

リマッパブルピン出力

出力とは反対に 「RP」とついている任意のピンから様々なペリフェラル入力へ接続させる事が可能です。

(fig.2)ではCMP1やRP32ピンなどが選択入力側に繋がれており、選択出力側にペリフェラルが接続されています。この「U1RXR」レジスタに値を設定することで、どれか一つのRPピンもしくはコンパレータ出力をペリフェラル入力に接続可能です。

(fig.2)リマッパブルピン入力 DS70005319D-page 125より引用

◆例

RPINR4bits.ICM2R = 69u; //RP69番ピンをICM2入力とする

接続例

極端ですが(fig.3)の様に、ペリフェラル出力をピンに出力しつつ、複数のモジュールが入力として使う構成も設定可能です。

(fig.3)こんな内部接続も可
リマッパブルピンのメリット
  • 基板アートワークの自由度向上
  • 複雑な機能構成可能
  • 基板完成後の物理的な手直しが(仕様によりますが)不要になる事もある

レジスタ

リマッパブルピンのレジスタは以下の3種類です。

レジスタ名
(xは数字)
機能説明
RPCON.IOLOCKPeripheral Remapping
Register Lock bit
リマッパブルピンの変更が1度きりか何回も可能かを設定します。
RPINRxPERIPHERAL PIN SELECT
INPUT REGISTER
入力ピン設定
RPORxPERIPHERAL PIN SELECT
OUTPUT REGISTER
出力ピン設定
(fig.4)リマッパブルピン関連レジスタ

コメント

タイトルとURLをコピーしました