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.

Table 21-2. PPS Output Selection Table
RxyPPSOutput SourceAvailable Output Ports
28-Pin Devices40-Pin Devices48-Pin Devices
0x46CANTX—BC—B—D——B—D——
0x45ADGRDBA—CA—C——A————F
0x44ADGRDAA—CA—C——A————F
0x43DSM1A—CA——D—A——D——
0x42CLKR—BC—BC———B——E—
0x41NCO3—BC—B——E—B——E—
0x40NCO2—BC—B—D——B—D——
0x3FNCO1A—CA——D—A——D——
0x3E - 0x3CReserved——————————————
0x3BTU16B—BC—B—D——B—D——
0x3ATU16A—BC—BC————C——F
0x39TMR0—BC—BC————C——F
0x38I2C1 SDA(1)—BC—BC———BC———
0x37I2C1 SCL(1)—BC—BC———BC———
0x36SPI2 SSA—CA——D—A——D——
0x35SPI2 SDO—BC—B—D——B—D——
0x34SPI2 SCK—BC—B—D——B—D——
0x33SPI1 SSA—CA——D—A——D——
0x32SPI1 SDO—BC—BC———BC———
0x31SPI1 SCK —BC—BC———BC———
0x30C2OUTA—CA———EA———E—
0x2FC1OUTA—CA——D—A——D——
0x2EUART5 RTS—BC—BC————C——F
0x2DUART5 TXDE—BC—BC————C——F
0x2CUART5 TX—BC—BC————C——F
0x2BUART4 RTSAB—A——D—A——D——
0x2AUART4 TXDEAB—A——D—A——D——
0x29UART4 TXAB—A——D—A——D——
0x28UART3 RTSAB—AB———A————F
0x27UART3 TXDEAB—AB———A————F
0x26UART3 TXAB—AB———A————F
0x25UART2 RTS—BC—B—D——B—D——
0x24UART2 TXDE—BC—B—D——B—D——
0x23UART2 TX—BC—B—D——B—D——
0x22UART1 RTS—BC—BC————C——F
0x21UART1 TXDE—BC—BC————C——F
0x20UART1 TX—BC—BC————C——F
0x1FPWM4S1P2_OUTA—CA——D—A——D——
0x1EPWM4S1P1_OUTA—CA—C————C——F
0x1DPWM3S1P2_OUT—BC—B—D——B—D——
0x1CPWM3S1P1_OUT—BC—B—D——B—D——
0x1BPWM2S1P2_OUT—BC—B—D——B—D——
0x1APWM2S1P1_OUT—BC—B—D——B—D——
0x19PWM1S1P2_OUT—BC—BC————C——F
0x18PWM1S1P1_OUT—BC—BC————C——F
0x17CCP3—BC—B—D——B—D——
0x16CCP2—BC—BC————C——F
0x15CCP1—BC—BC————C——F
0x14CWG3DA—CA——D—A——D——
0x13CWG3CA—CA——D—A——D——
0x12CWG3BA—CA———EA———E—
0x11CWG3A—BC—BC———BC———
0x10CWG2D—BC—B—D——B—D——
0x0FCWG2C—BC—B—D——B—D——
0x0ECWG2B—BC—B—D——B—D——
0x0DCWG2A—BC—BC———BC———
0x0CCWG1D—BC—B—D——B—D——
0x0BCWG1C—BC—B—D——B—D——
0x0ACWG1B—BC—B—D——B—D——
0x09CWG1A—BC—BC———BC———
0x08CLC8OUT—BC—B—D——B—D——
0x07CLC7OUT—BC—B—D——B—D——
0x06CLC6OUTA—CA—C——A————F
0x05CLC5OUTA—CA—C——A————F
0x04CLC4OUT—BC—B—D——B—D——
0x03CLC3OUT—BC—B—D——B—D——
0x02CLC2OUTA—CA—C——A————F
0x01CLC1OUTA—CA—C——A————F
0x00LATxyABCABCDEABCDEF
Note:
  1. Bidirectional pin. The corresponding input must select the same pin.