ペリフェラルピンセレクト
(PPS)
モジュールは周辺モ ジュールの入出力をデバイスのI/Oピンに接続します。割り当てを変更できるのはデジタル信号のみです。ア ナログ入出力の割り当ては変更できません。概略ブ ロック図図12-1に示すように、入力と出力は別々に選 択します。
12.1 PPS 入力
各周辺モジュールには、入力を選択するために使う
PPS
レジスタがあります。入力にはデバイスピンが含 まれます。複数の周辺モジュールが同じ入力源で同時に動作でき ます。ポート読み出しは、周辺モジュールの
PPS
選択 には関係なく、常にピンレベルを返します。ピンがア ナログ機能にも対応している場合、デジタル入力バッ ファを有効にするには、そのピンのANSEL
ビットを クリアする必要があります。各周辺モジュールには専用の
PPS
入力選択レジスタが ありますが、PIC16(L)F1703 の場合はレジスタ 12-1 に、PIC16(L)F1707
の場合はレジスタ 12-2 に示すよ うに、選択方法は全モジュールで同じです。12.2 PPS 出力
各I/Oピンには、ピンの出力源を選択するのに使うPPS レジスタがあります。ほぼ例外なく、ピンに関連付け られたポートの
TRIS
制御がピンの出力ドライバを制 御します。機能の一部としてピンの出力ドライバを制 御する周辺モジュールは、必要に応じてTRIS
制御よ り優先されます。そのような周辺モジュールには以下 のものがあります。• EUSART (
同期モード)
• MSSP (I
2C)
• COG (
自動シャットダウン)
全てのピンに別々のPPS周辺モジュール選択レジスタ があっても、レジスタ 12-3 に示すように、選択方法 は全ピンで同じです。
図
12-1: PPS
の概略ブロック図Note:
レジスタ名の「xxx
」という表記は、周辺モジュール識別子のプレースホルダです。
例
: CCP1PPS
Note:
「Rxy」という表記は、ピン識別子のプレースホルダです。例
: RA0PPS
RA0
Rxy RA0PPS
RxyPPS
RC7 RC7PPS
PPS Outputs PPS Inputs
Peripheral abc
Peripheral xyz abcPPS
xyzPPS RA0
RC7
PIC16(L)F1703/7
12.3 双方向ピン
同じピンで双方向通信を行う周辺モジュールの場合、
PPS
入力とPPS
出力で同じピンを選択する必要があ ります。双方向通信を行う周辺モジュールには以下の ものがあります。• EUSART (
同期モード)
• MSSP (I
2C)
12.4 PPS ロック
PPS
には、意図しない変更を防ぐために全入出力を ロックできるモードがあります。PPS
の設定をロック するには、PPSLOCKレジスタのPPSLOCKED
ビッ トをセットします。このビットをセットまたはクリア するには、意図しない変更を防ぐために特別なシーケ ンスが必要です。例12-1に、PPSLOCKEDビットの セットとクリアの例を示します。例 12-1:
PPS
ロック/
解除シーケンス12.5 PPS の永久ロック
PPS1WAYコンフィグレーション ビットをセットする
と、PPS
を恒久的にロックできます。このビットを セットすると、PPSLOCKED
ビットはデバイスリセッ ト後に1
回しかクリアまたはセットできません。これにより、
PPSLOCKED
ビットをクリアして初期化中に入出力を選択できます。全ての入出力を設定した後で
PPSLOCKED
ビットをセットすると、このビットはセットされたままとなり、次回デバイスをリセットす るまでクリアできません。
12.6 スリープ中の動作
PPSによる入出力設定はスリープの影響を受けません。
12.7 リセットの影響
デバイスのパワーオン リセット
(POR)
はPPS
の全 入出力設定をクリアし、既定値に戻します。その他の 全てのリセットでは、PPS の設定は変更されません。表1と表2のピン割り当て表に、入力選択の既定値を 示します。
Note: I
2C
既定値入力ピンは、I
2C
およびSMBus
と互換であり、デバイスでこの互換性を 備える唯一のピンです。; suspend interrupts bcf INTCON,GIE
; BANKSEL PPSLOCK ; set bank
; required sequence, next 5 instructions movlw 0x55
movwf PPSLOCK movlw 0xAA movwf PPSLOCK
; Set PPSLOCKED bit to disable writes or
; Clear PPSLOCKED bit to enable writes bsf PPSLOCK,PPSLOCKED
; restore interrupts bsf INTCON,GIE
PIC16(L)F1703/7
12.8 レジスタ定義 : PPS 入力の選択
レジスタ 12-1:
xxxPPS: 周辺モジュール xxx
の入力選択(PIC16(L)F1703)
U-0 U-0 U-0 R/W-q/u R/W-q/u R/W-q/u R/W-q/u R/W-q/u
- - - xxxPPS<4:0>
bit 7 bit 0
凡例
:
R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し
u = ビットは不変 x = ビットは未知 -n/n = POR時とBOR時の値/その他の全てのリセット時の値
「1」 = ビットはセット 「0」 = ビットはクリア q = 周辺モジュールにより異なる
bit 7-5
未実装:「 0
」として読み出しbit 4-0 xxxPPS<4:0>: 周辺モジュール xxx
の入力選択ビット11xxx = 予約済み。使用不可
1011x =
予約済み。使用不可10101 = 周辺モジュールの入力は RC5 10100 =
周辺モジュールの入力はRC4 10011 = 周辺モジュールの入力は RC3 10010 = 周辺モジュールの入力は RC2 10001 = 周辺モジュールの入力は RC1 10000 =
周辺モジュールの入力はRC0 01xxx = 予約済み。使用不可
0011X = 予約済み。使用不可
00101 = 周辺モジュールの入力は RA5
00100 = 周辺モジュールの入力は RA4
00011 = 周辺モジュールの入力は RA3
00010 = 周辺モジュールの入力は RA2
00001 = 周辺モジュールの入力は RA1
00000 = 周辺モジュールの入力は RA0
PIC16(L)F1703/7
レジスタ 12-2:
xxxPPS: 周辺モジュール xxx
の入力選択(PIC16(L)F1707)
U-0 U-0 U-0 R/W-q/u R/W-q/u R/W-q/u R/W-q/u R/W-q/u
- - - xxxPPS<4:0>
bit 7 bit 0
凡例
:
R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し
u = ビットは不変 x = ビットは未知 -n/n = POR時とBOR時の値/その他の全てのリセット時の値
「1」 = ビットはセット 「0」 = ビットはクリア q = 周辺モジュールにより異なる
bit 7-5
未実装:
「0
」として読み出しbit 4-0 xxxPPS<4:0>:
周辺モジュールxxx
の入力選択ビット11xxx =
予約済み。使用不可10111 = 周辺モジュールの入力は RC7 10110 =
周辺モジュールの入力はRC6 10101 = 周辺モジュールの入力は RC5 10100 = 周辺モジュールの入力は RC4 10011 = 周辺モジュールの入力は RC3 10010 =
周辺モジュールの入力はRC2 10001 = 周辺モジュールの入力は RC1 10000 = 周辺モジュールの入力は RC0 01111 = 周辺モジュールの入力は RB7 01110 = 周辺モジュールの入力は RB6 01101 = 周辺モジュールの入力は RB5 01100 = 周辺モジュールの入力は RB4 010xx = 予約済み。使用不可
0011X = 予約済み。使用不可
00101 = 周辺モジュールの入力は RA5
00100 = 周辺モジュールの入力は RA4
00011 = 周辺モジュールの入力は RA3
00010 = 周辺モジュールの入力は RA2
00001 = 周辺モジュールの入力は RA1
00000 =
周辺モジュールの入力はRA0
PIC16(L)F1703/7
レジスタ 12-3:
RxyPPS: Rxy
ピン出力源選択レジスタU-0 U-0 U-0 R/W-0/u R/W-0/u R/W-0/u R/W-0/u R/W-0/u
- - - RxyPPS<4:0>
bit 7 bit 0
凡例
:
R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し
u = ビットは不変 x = ビットは未知 -n/n = POR時とBOR時の値/その他の全てのリセット時の値
「1」 = ビットはセット 「0」 = ビットはクリア
bit 7-5
未実装:
「0
」として読み出しbit 4-0 RxyPPS<4:0>: Rxy
ピン出力源選択ビット11xxx =
予約済み10111 = Rxy
源はC2OUT 10110 = Rxy
源はC1OUT 10101 = Rxy
源はDT
(1)10100 = Rxy
源はTX/CK
(1)10011 = 予約済み
10010 = Rxy
源はSDO 10001 = Rxy
源はSDA
(1)10000 = Rxy
源はSCK/SCL
(1)01111 = Rxy
源はPWM4OUT 01110 = Rxy
源はPWM3OUT 01101 = Rxy
源はCCP2 01100 = Rxy
源はCCP1 01011 = Rxy
源はCOG1D
(1)01010 = Rxy
源はCOG1C
(1)01001 = Rxy
源はCOG1B
(1)01000 = Rxy
源はCOG1A
(1)00111 = 予約済み
00110 = 予約済み 00101 = 予約済み 00100 = 予約済み 00011 = 予約済み 00010 = 予約済み 00001 = 予約済み 00000 = Rxy
源はLATxy
Note 1:
必要に応じてTRIS
制御より周辺モジュールが優先されます。PIC16(L)F1703/7
レジスタ 12-4:
PPSLOCK: PPS
ロックレジスタU-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-0/0
- - - - - - - PPSLOCKED
bit 7 bit 0
凡例
:
R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し
u = ビットは不変 x = ビットは未知 -n/n = POR時とBOR時の値/その他の全てのリセット時の値
「1」 = ビットはセット 「0」 = ビットはクリア
bit 7-1
未実装:
「0
」として読み出しbit 0 PPSLOCKED: PPS
ロックビット1 = PPS
をロックする。PPS
の選択は変更できない0 = PPS
をロックしない。PPS
の選択は変更できるPIC16(L)F1703/7
表 12-1:
PPS
モジュール関連レジスタのまとめ名前 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
レジスタ 内容記載 ページ
PPSLOCK - - - PPSLOCKED 141
INTPPS - - - INTPPS<4:0> 139
T0CKIPPS - - - T0CKIPPS<4:0> 139
T1CKIPPS - - - T1CKIPPS<4:0> 139
T1GPPS - - - T1GPPS<4:0> 139
CCP1PPS - - - CCP1PPS<4:0> 139
CCP2PPS - - - CCP2PPS<4:0> 139
SSPCLKPPS - - - SSPCLKPPS<4:0> 139
SSPDATPPS - - - SSPDATPPS<4:0> 139
SSPSSPPS - - - SSPSSPPS<4:0> 139
RA0PPS - - - RA0PPS<4:0> 140
RA1PPS - - - RA1PPS<4:0> 140
RA2PPS - - - RA2PPS<4:0> 140
RA4PPS - - - RA4PPS<4:0> 140
RA5PPS - - - RA5PPS<4:0> 140
RB4PPS(1) - - - RB4PPS<4:0> 140
RB5PPS(1) - - - RB5PPS<4:0> 140
RB6PPS(1) - - - RB6PPS<4:0> 140
RB7PPS(1) - - - RB7PPS<4:0> 140
RC0PPS - - - RC0PPS<4:0> 140
RC1PPS - - - RC1PPS<4:0> 140
RC2PPS - - - RC2PPS<4:0> 140
RC3PPS - - - RC3PPS<4:0> 140
RC4PPS - - - RC4PPS<4:0> 140
RC5PPS - - - RC5PPS<4:0> 140
RC6PPS(1) - - - RC6PPS<4:0> 140
RC7PPS(1) - - - RC7PPS<4:0> 140
凡例: — = 未実装、「0」として読み出し Note 1: PIC16(L)F1707のみ