21.3 PPS Outputs
Each digital peripheral has a dedicated Pin Rxy Output Source Selection (RxyPPS) register with which the pin output source is selected. With few exceptions, the port TRIS control associated with that pin retains control over the pin output driver. Peripherals that control the pin output driver as part of the peripheral operation will override the TRIS control as needed. The I2C module is an example of such a peripheral.
Important: The notation ‘Rxy’ is a placeholder for the pin
identifier. The ‘x’ holds the place of the PORT letter and the ‘y’ holds the place of the
bit number. For example, Rxy = RA0 for the RA0PPS register.
The table below shows the output codes for each peripheral, as well as the available Port selections.
RxyPPS | Output Source | Available Output Ports | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
28-Pin Devices | 40-Pin Devices | 48-Pin Devices | |||||||||||||
0x46 | CANTX | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x45 | ADGRDB | A | — | C | A | — | C | — | — | A | — | — | — | — | F |
0x44 | ADGRDA | A | — | C | A | — | C | — | — | A | — | — | — | — | F |
0x43 | DSM1 | A | — | C | A | — | — | D | — | A | — | — | D | — | — |
0x42 | CLKR | — | B | C | — | B | C | — | — | — | B | — | — | E | — |
0x41 | NCO3 | — | B | C | — | B | — | — | E | — | B | — | — | E | — |
0x40 | NCO2 | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x3F | NCO1 | A | — | C | A | — | — | D | — | A | — | — | D | — | — |
0x3E - 0x3C | Reserved | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
0x3B | TU16B | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x3A | TU16A | — | B | C | — | B | C | — | — | — | — | C | — | — | F |
0x39 | TMR0 | — | B | C | — | B | C | — | — | — | — | C | — | — | F |
0x38 | I2C1 SDA(1) | — | B | C | — | B | C | — | — | — | B | C | — | — | — |
0x37 | I2C1 SCL(1) | — | B | C | — | B | C | — | — | — | B | C | — | — | — |
0x36 | SPI2 SS | A | — | C | A | — | — | D | — | A | — | — | D | — | — |
0x35 | SPI2 SDO | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x34 | SPI2 SCK | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x33 | SPI1 SS | A | — | C | A | — | — | D | — | A | — | — | D | — | — |
0x32 | SPI1 SDO | — | B | C | — | B | C | — | — | — | B | C | — | — | — |
0x31 | SPI1 SCK | — | B | C | — | B | C | — | — | — | B | C | — | — | — |
0x30 | C2OUT | A | — | C | A | — | — | — | E | A | — | — | — | E | — |
0x2F | C1OUT | A | — | C | A | — | — | D | — | A | — | — | D | — | — |
0x2E | UART5 RTS | — | B | C | — | B | C | — | — | — | — | C | — | — | F |
0x2D | UART5 TXDE | — | B | C | — | B | C | — | — | — | — | C | — | — | F |
0x2C | UART5 TX | — | B | C | — | B | C | — | — | — | — | C | — | — | F |
0x2B | UART4 RTS | A | B | — | A | — | — | D | — | A | — | — | D | — | — |
0x2A | UART4 TXDE | A | B | — | A | — | — | D | — | A | — | — | D | — | — |
0x29 | UART4 TX | A | B | — | A | — | — | D | — | A | — | — | D | — | — |
0x28 | UART3 RTS | A | B | — | A | B | — | — | — | A | — | — | — | — | F |
0x27 | UART3 TXDE | A | B | — | A | B | — | — | — | A | — | — | — | — | F |
0x26 | UART3 TX | A | B | — | A | B | — | — | — | A | — | — | — | — | F |
0x25 | UART2 RTS | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x24 | UART2 TXDE | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x23 | UART2 TX | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x22 | UART1 RTS | — | B | C | — | B | C | — | — | — | — | C | — | — | F |
0x21 | UART1 TXDE | — | B | C | — | B | C | — | — | — | — | C | — | — | F |
0x20 | UART1 TX | — | B | C | — | B | C | — | — | — | — | C | — | — | F |
0x1F | PWM4S1P2_OUT | A | — | C | A | — | — | D | — | A | — | — | D | — | — |
0x1E | PWM4S1P1_OUT | A | — | C | A | — | C | — | — | — | — | C | — | — | F |
0x1D | PWM3S1P2_OUT | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x1C | PWM3S1P1_OUT | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x1B | PWM2S1P2_OUT | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x1A | PWM2S1P1_OUT | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x19 | PWM1S1P2_OUT | — | B | C | — | B | C | — | — | — | — | C | — | — | F |
0x18 | PWM1S1P1_OUT | — | B | C | — | B | C | — | — | — | — | C | — | — | F |
0x17 | CCP3 | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x16 | CCP2 | — | B | C | — | B | C | — | — | — | — | C | — | — | F |
0x15 | CCP1 | — | B | C | — | B | C | — | — | — | — | C | — | — | F |
0x14 | CWG3D | A | — | C | A | — | — | D | — | A | — | — | D | — | — |
0x13 | CWG3C | A | — | C | A | — | — | D | — | A | — | — | D | — | — |
0x12 | CWG3B | A | — | C | A | — | — | — | E | A | — | — | — | E | — |
0x11 | CWG3A | — | B | C | — | B | C | — | — | — | B | C | — | — | — |
0x10 | CWG2D | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x0F | CWG2C | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x0E | CWG2B | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x0D | CWG2A | — | B | C | — | B | C | — | — | — | B | C | — | — | — |
0x0C | CWG1D | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x0B | CWG1C | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x0A | CWG1B | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x09 | CWG1A | — | B | C | — | B | C | — | — | — | B | C | — | — | — |
0x08 | CLC8OUT | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x07 | CLC7OUT | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x06 | CLC6OUT | A | — | C | A | — | C | — | — | A | — | — | — | — | F |
0x05 | CLC5OUT | A | — | C | A | — | C | — | — | A | — | — | — | — | F |
0x04 | CLC4OUT | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x03 | CLC3OUT | — | B | C | — | B | — | D | — | — | B | — | D | — | — |
0x02 | CLC2OUT | A | — | C | A | — | C | — | — | A | — | — | — | — | F |
0x01 | CLC1OUT | A | — | C | A | — | C | — | — | A | — | — | — | — | F |
0x00 | LATxy | A | B | C | A | B | C | D | E | A | B | C | D | E | F |
Note:
- Bidirectional pin. The corresponding input must select the same pin.