概要
dsPIC33Cシリーズには色々なペリフェラルが搭載されていますが、その中でもデジタルモジュールはリマッパブルピンを経由して入出力を行うため、この機能の理解が必要です。ちなみにアナログモジュールやI2Cモジュールなどはリマッパブル機能は使えません。
ピン設定はプログラムの初期化ルーチンで1度だけ行う事が普通ですが、プログラムの処理によっては動的に割り当てる事も可能です。
リマッパブルピン出力
様々なペリフェラル出力を「RP」とついている任意のピンへ割り当てる事が可能です。
(fig.1)ではU1TX(Uartの送信),U1RTS(UartのRTS)などが選択入力側に繋がれており、選択出力側にピンが接続されています。この「RPORxx」レジスタに値を設定することで、どれか一つのペリフェラル出力をピンに接続可能です。出力同士衝突するので複数の機能を一つのピンに割り当てる事はできません。
ピンに出力一つという制限は有りますが、例えば「RP32ピン」と「RP33ピン」に同じペリフェラル出力を接続するといった使い方は可能です。また内部仮想出力可能です。
RP170~181は内部仮想出力となっており、外部へ出力は行いません。この仮想出力を通じリマッパブルピン入力へ接続することが可能です

◆設定例
RPOR18bits.RP69R = 15u; //RP69ピンにSCCP1を出力
リマッパブルピン出力
出力とは反対に 「RP」とついている任意のピンから様々なペリフェラル入力へ接続させる事が可能です。
(fig.2)ではCMP1やRP32ピンなどが選択入力側に繋がれており、選択出力側にペリフェラルが接続されています。この「U1RXR」レジスタに値を設定することで、どれか一つのRPピンもしくはコンパレータ出力をペリフェラル入力に接続可能です。

◆例
RPINR4bits.ICM2R = 69u; //RP69番ピンをICM2入力とする
接続例
極端ですが(fig.3)の様に、ペリフェラル出力をピンに出力しつつ、複数のモジュールが入力として使う構成も設定可能です。

- 基板アートワークの自由度向上
- 複雑な機能構成可能
- 基板完成後の物理的な手直しが(仕様によりますが)不要になる事もある
レジスタ
リマッパブルピンのレジスタは以下の3種類です。
| レジスタ名 (xは数字) | 機能 | 説明 |
| RPCON.IOLOCK | Peripheral Remapping Register Lock bit | リマッパブルピンの変更が1度きりか何回も可能かを設定します。 |
| RPINRx | PERIPHERAL PIN SELECT INPUT REGISTER | 入力ピン設定 |
| RPORx | PERIPHERAL PIN SELECT OUTPUT REGISTER | 出力ピン設定 |


コメント