PIC32CX1025MTSH128 MCSPI registers

The 31 registers of MCSPI (Multi Channel Serial Peripheral Interface), from 0x48018000, with their reset value and every field. The PIC32CX1025MTSH128 has 2920 registers in 63 peripherals, one page each.

MCSPI Multi Channel Serial Peripheral Interface

MCSPI_CRControl Register

Address
0x48018000
Reset
0x00000000
Access
write only
Size
32-bit
9 fields
FieldBitsWhat it does
FIFOEN30FIFO Enable
LASTXFER24Last Transfer
RXFCLR17Receive FIFO Clear
TXFCLR16Transmit FIFO Clear
REQCLR12Request to Clear the Comparison Trigger
SWRST7MCSPI Software Reset
SPIDIS1MCSPI Disable
SPIEN0MCSPI Enable
FIFODIS31FIFO Disable

MCSPI_MRMode Register

Address
0x48018004
Reset
0x00000000
Access
read/write
Size
32-bit
16 fields
FieldBitsWhat it does
PCS19:16Peripheral Chip Select
MOSIIE15MOSI Inversion Enable
CSIE14Chip Select Inversion Enable
TPMEN13Two-Pin Mode Enable
CMPMODE12Comparison Mode
  • 0 Any character is received and comparison function drives CMP flag.
  • 1 Comparison condition must be met to start reception of all incoming characters until REQCLR is set.
TMCSMUX9Two-pin MOSI Chip Select External Multiplexing Mode
  • 0 External MOSI lines multiplexing is not required via Chip Select lines. When MCSPI_MR.TPMEN=0, MCSPI_TWMR.MIL=1 or MCSPI_TWMR.CSM=0, TMCSMUX must be written to 0.
  • 1 Enables external multiplexing of MOSI lines via Chip Select lines. When MCSPI_MR.TPMEN=1, TMCSMUX must be written to 1 if MCSPI_TWMR.MIL=0 and MCSPI_TWMR.CSM=1.
LSBHALF8LSB Timing Selection
LLB7Local Loopback Enable
CRCEN6CRC Enable
WDRBT5Wait for Data Read Before Transfer
MODFDIS4Mode Fault Detection
BRSRCCLK3Bit Rate Source Clock
  • 0 The peripheral clock is the source clock for the bit rate generation.
  • 1 PMC GCLK is the source clock for the bit rate generation, thus the bit rate can be independent of the core/peripheral clock.
PCSDEC2Chip Select Decode
PS1Peripheral Select
MSTR0Host/Client Mode
DLYBCS31:24Delay Between Chip Selects

MCSPI_RDRReceive Data Register

Address
0x48018008
Reset
0x00000000
Access
read only
Size
32-bit
8 fields
FieldBitsWhat it does
RD223:16Receive Data
PCS19:16Peripheral Chip Select
RD15:0Receive Data
RD015:0Receive Data
RD115:8Receive Data
RD07:0Receive Data
RD131:16Receive Data
RD331:24Receive Data

MCSPI_TDRTransmit Data Register

Address
0x4801800C
Reset
0x00000000
Access
write only
Size
32-bit
5 fields
FieldBitsWhat it does
LASTXFER24Last Transfer
PCS19:16Peripheral Chip Select
TD15:0Transmit Data
TD015:0Transmit Data
TD131:16Transmit Data

MCSPI_SRStatus Register

Address
0x48018010
Reset
0x00000000
Access
read only
Size
32-bit
23 fields
FieldBitsWhat it does
TXFPTEF30Transmit FIFO Pointer Error Flag
RXFTHF29Receive FIFO Threshold Flag
RXFFF28Receive FIFO Full Flag
RXFEF27Receive FIFO Empty Flag
TXFTHF26Transmit FIFO Threshold Flag (cleared on read)
TXFFF25Transmit FIFO Full Flag (cleared on read)
TXFEF24Transmit FIFO Empty Flag (cleared on read)
SPIENS16MCSPI Enable Status
CRCERR13CRC Error (cleared on read)
SFERR12Client Frame Error (cleared on read)
CMP11Comparison Status (cleared on read)
UNDES10Underrun Error Status (Client mode only) (cleared on read)
TXEMPTY9Transmission Registers Empty (cleared by writing MCSPI_TDR)
NSSR8NSS Rising (cleared on read)
TXBUFE7TX Buffer Empty (cleared by writing MCSPI_TCR or MCSPI_TNCR)
RXBUFF6RX Buffer Full (cleared by writing MCSPI_RCR or MCSPI_RNCR)
ENDTX5End of TX Buffer (cleared by writing MCSPI_TCR or MCSPI_TNCR)
ENDRX4End of RX Buffer (cleared by writing MCSPI_RCR or MCSPI_RNCR)
OVRES3Overrun Error Status (cleared on read)
MODF2Mode Fault Error (cleared on read)
TDRE1Transmit Data Register Empty (cleared by writing MCSPI_TDR)
RDRF0Receive Data Register Full (cleared by reading MCSPI_RDR)
RXFPTEF31Receive FIFO Pointer Error Flag

MCSPI_IERInterrupt Enable Register

Address
0x48018014
Reset
0x00000000
Access
write only
Size
32-bit
21 fields
FieldBitsWhat it does
TXFPTEF30TXFPTEF Interrupt Enable
RXFTHF29RXFTHF Interrupt Enable
RXFFF28RXFFF Interrupt Enable
RXFEF27RXFEF Interrupt Enable
TXFTHF26TXFTHF Interrupt Enable
TXFFF25TXFFF Interrupt Enable
TXFEF24TXFEF Interrupt Enable
CRCERR13CRC Error Interrupt Enable
CMP11Comparison Interrupt Enable
UNDES10Underrun Error Interrupt Enable
TXEMPTY9Transmission Registers Empty Enable
NSSR8NSS Rising Interrupt Enable
TXBUFE7Transmit Buffer Empty Interrupt Enable
RXBUFF6Receive Buffer Full Interrupt Enable
ENDTX5End of Transmit Buffer Interrupt Enable
ENDRX4End of Receive Buffer Interrupt Enable
OVRES3Overrun Error Interrupt Enable
MODF2Mode Fault Error Interrupt Enable
TDRE1MCSPI Transmit Data Register Empty Interrupt Enable
RDRF0Receive Data Register Full Interrupt Enable
RXFPTEF31RXFPTEF Interrupt Enable

MCSPI_IDRInterrupt Disable Register

Address
0x48018018
Reset
0x00000000
Access
write only
Size
32-bit
21 fields
FieldBitsWhat it does
TXFPTEF30TXFPTEF Interrupt Disable
RXFTHF29RXFTHF Interrupt Disable
RXFFF28RXFFF Interrupt Disable
RXFEF27RXFEF Interrupt Disable
TXFTHF26TXFTHF Interrupt Disable
TXFFF25TXFFF Interrupt Disable
TXFEF24TXFEF Interrupt Disable
CRCERR13CRC Error Interrupt Disable
CMP11Comparison Interrupt Disable
UNDES10Underrun Error Interrupt Disable
TXEMPTY9Transmission Registers Empty Disable
NSSR8NSS Rising Interrupt Disable
TXBUFE7Transmit Buffer Empty Interrupt Disable
RXBUFF6Receive Buffer Full Interrupt Disable
ENDTX5End of Transmit Buffer Interrupt Disable
ENDRX4End of Receive Buffer Interrupt Disable
OVRES3Overrun Error Interrupt Disable
MODF2Mode Fault Error Interrupt Disable
TDRE1MCSPI Transmit Data Register Empty Interrupt Disable
RDRF0Receive Data Register Full Interrupt Disable
RXFPTEF31RXFPTEF Interrupt Disable

MCSPI_IMRInterrupt Mask Register

Address
0x4801801C
Reset
0x00000000
Access
read only
Size
32-bit
21 fields
FieldBitsWhat it does
TXFPTEF30TXFPTEF Interrupt Mask
RXFTHF29RXFTHF Interrupt Mask
RXFFF28RXFFF Interrupt Mask
RXFEF27RXFEF Interrupt Mask
TXFTHF26TXFTHF Interrupt Mask
TXFFF25TXFFF Interrupt Mask
TXFEF24TXFEF Interrupt Mask
CRCERR13CRC Error Interrupt Mask
CMP11Comparison Interrupt Mask
UNDES10Underrun Error Interrupt Mask
TXEMPTY9Transmission Registers Empty Mask
NSSR8NSS Rising Interrupt Mask
TXBUFE7Transmit Buffer Empty Interrupt Mask
RXBUFF6Receive Buffer Full Interrupt Mask
ENDTX5End of Transmit Buffer Interrupt Mask
ENDRX4End of Receive Buffer Interrupt Mask
OVRES3Overrun Error Interrupt Mask
MODF2Mode Fault Error Interrupt Mask
TDRE1MCSPI Transmit Data Register Empty Interrupt Mask
RDRF0Receive Data Register Full Interrupt Mask
RXFPTEF31RXFPTEF Interrupt Mask

MCSPI_CSR0Chip Select Register (CS_number = 0)

Address
0x48018030
Reset
0x00000000
Access
read/write
Size
32-bit
8 fields
FieldBitsWhat it does
DLYBS23:16Delay Before SPCK
SCBR15:8Serial Clock Bit Rate
BITS7:4Bits Per Transfer
  • 0 8 bits for transfer
  • 1 9 bits for transfer
  • 2 10 bits for transfer
  • 3 11 bits for transfer
  • 4 12 bits for transfer
  • 5 13 bits for transfer
  • 6 14 bits for transfer
  • 7 15 bits for transfer
  • 8 16 bits for transfer
CSAAT3Chip Select Active After Transfer
CSNAAT2Chip Select Not Active After Transfer (ignored if CSAAT = 1)
NCPHA1Clock Phase
CPOL0Clock Polarity
DLYBCT31:24Delay Between Consecutive Transfers

MCSPI_CSR1Chip Select Register (CS_number = 0)

Address
0x48018034
Reset
0x00000000
Access
read/write
Size
32-bit
8 fields
FieldBitsWhat it does
DLYBS23:16Delay Before SPCK
SCBR15:8Serial Clock Bit Rate
BITS7:4Bits Per Transfer
  • 0 8 bits for transfer
  • 1 9 bits for transfer
  • 2 10 bits for transfer
  • 3 11 bits for transfer
  • 4 12 bits for transfer
  • 5 13 bits for transfer
  • 6 14 bits for transfer
  • 7 15 bits for transfer
  • 8 16 bits for transfer
CSAAT3Chip Select Active After Transfer
CSNAAT2Chip Select Not Active After Transfer (ignored if CSAAT = 1)
NCPHA1Clock Phase
CPOL0Clock Polarity
DLYBCT31:24Delay Between Consecutive Transfers

MCSPI_CSR2Chip Select Register (CS_number = 0)

Address
0x48018038
Reset
0x00000000
Access
read/write
Size
32-bit
8 fields
FieldBitsWhat it does
DLYBS23:16Delay Before SPCK
SCBR15:8Serial Clock Bit Rate
BITS7:4Bits Per Transfer
  • 0 8 bits for transfer
  • 1 9 bits for transfer
  • 2 10 bits for transfer
  • 3 11 bits for transfer
  • 4 12 bits for transfer
  • 5 13 bits for transfer
  • 6 14 bits for transfer
  • 7 15 bits for transfer
  • 8 16 bits for transfer
CSAAT3Chip Select Active After Transfer
CSNAAT2Chip Select Not Active After Transfer (ignored if CSAAT = 1)
NCPHA1Clock Phase
CPOL0Clock Polarity
DLYBCT31:24Delay Between Consecutive Transfers

MCSPI_CSR3Chip Select Register (CS_number = 0)

Address
0x4801803C
Reset
0x00000000
Access
read/write
Size
32-bit
8 fields
FieldBitsWhat it does
DLYBS23:16Delay Before SPCK
SCBR15:8Serial Clock Bit Rate
BITS7:4Bits Per Transfer
  • 0 8 bits for transfer
  • 1 9 bits for transfer
  • 2 10 bits for transfer
  • 3 11 bits for transfer
  • 4 12 bits for transfer
  • 5 13 bits for transfer
  • 6 14 bits for transfer
  • 7 15 bits for transfer
  • 8 16 bits for transfer
CSAAT3Chip Select Active After Transfer
CSNAAT2Chip Select Not Active After Transfer (ignored if CSAAT = 1)
NCPHA1Clock Phase
CPOL0Clock Polarity
DLYBCT31:24Delay Between Consecutive Transfers

MCSPI_FMRFIFO Mode Register

Address
0x48018040
Reset
0x00000000
Access
read/write
Size
32-bit
4 fields
FieldBitsWhat it does
RXFTHRES29:24Receive FIFO Threshold
TXFTHRES21:16Transmit FIFO Threshold
RXRDYM5:4Receive Data Register Full Mode
  • 0 RDRF will be at level '1' when at least one unread data is in the Receive FIFO.
  • 1 RDRF will be at level '1' when at least two unread data are in the Receive FIFO. Cannot be used when MCSPI_MR.MSTR =1, or if MCSPI_MR.PS =1.
  • 2 RDRF will be at level '1' when at least four unread data are in the Receive FIFO. Cannot be used when MCSPI_CSRx.BITS is greater than 0, or if MCSPI_MR.MSTR = 1, or if MCSPI_MR.PS = 1.
TXRDYM1:0Transmit Data Register Empty Mode
  • 0 TDRE will be at level '1' when at least one data can be written in the Transmit FIFO.
  • 1 TDRE will be at level '1' when at least two data can be written in the Transmit FIFO. Cannot be used if MCSPI_MR.PS =1.

MCSPI_FLRFIFO Level Register

Address
0x48018044
Reset
0x00000000
Access
read only
Size
32-bit
2 fields
FieldBitsWhat it does
RXFL21:16Receive FIFO Level
TXFL5:0Transmit FIFO Level

MCSPI_CMPRComparison Register

Address
0x48018048
Reset
0x00000000
Access
read/write
Size
32-bit
2 fields
FieldBitsWhat it does
VAL115:0First Comparison Value for Received Character
VAL231:16Second Comparison Value for Received Character

MCSPI_CRCRCRC Register

Address
0x4801804C
Reset
0x00000000
Access
read/write
Size
32-bit
7 fields
FieldBitsWhat it does
DHRX27Disable Header Receiving
DCRX26Disable CRC Receiving
FHE25Frame Header Excluded
CRM24Continuous Read Mode
FRHL23:20Frame Header Length
CRCS16CRC Size
  • 0 CRC size is 16 bits.
  • 1 CRC size is 32 bits.
FRL7:0Frame Length

MCSPI_TPMRTwo-Pin Mode Register

Address
0x48018050
Reset
0x00000000
Access
read/write
Size
32-bit
3 fields
FieldBitsWhat it does
OSR3:2OverSampling Rate
MIL1Multiple Input Lines
CSM0Chip Select Mode

MCSPI_TPHRTwo-Pin Header Register

Address
0x48018054
Reset
0x00000000
Access
read only
Size
32-bit
4 fields
FieldBitsWhat it does
OSR6:5OverSampling Rate
GAIN4:3Gain
BOOST2Current Boost
CNT1:0Frame Counter

MCSPI_WPMRWrite Protection Mode Register

Address
0x480180E4
Reset
0x00000000
Access
read/write
Size
32-bit
4 fields
FieldBitsWhat it does
WPCREN2Write Protection Control Register Enable
WPITEN1Write Protection Interrupt Enable
WPEN0Write Protection Enable
WPKEY31:8Write Protection Key
  • 5460041 Writing any other value in this field aborts the write operation of WPEN. Always reads as 0.

MCSPI_WPSRWrite Protection Status Register

Address
0x480180E8
Reset
0x00000000
Access
read only
Size
32-bit
2 fields
FieldBitsWhat it does
WPVSRC15:8Write Protection Violation Source
WPVS0Write Protection Violation Status

MCSPI_RPRReceive Pointer Register

Address
0x48018100
Reset
0x00000000
Access
read/write
Size
32-bit
1 field
FieldBitsWhat it does
RXPTR31:0Receive Pointer Register

MCSPI_RCRReceive Counter Register

Address
0x48018104
Reset
0x00000000
Access
read/write
Size
32-bit
1 field
FieldBitsWhat it does
RXCTR15:0Receive Counter Register

MCSPI_TPRTransmit Pointer Register

Address
0x48018108
Reset
0x00000000
Access
read/write
Size
32-bit
1 field
FieldBitsWhat it does
TXPTR31:0Transmit Counter Register

MCSPI_TCRTransmit Counter Register

Address
0x4801810C
Reset
0x00000000
Access
read/write
Size
32-bit
1 field
FieldBitsWhat it does
TXCTR15:0Transmit Counter Register

MCSPI_RNPRReceive Next Pointer Register

Address
0x48018110
Reset
0x00000000
Access
read/write
Size
32-bit
1 field
FieldBitsWhat it does
RXNPTR31:0Receive Next Pointer

MCSPI_RNCRReceive Next Counter Register

Address
0x48018114
Reset
0x00000000
Access
read/write
Size
32-bit
1 field
FieldBitsWhat it does
RXNCTR15:0Receive Next Counter

MCSPI_TNPRTransmit Next Pointer Register

Address
0x48018118
Reset
0x00000000
Access
read/write
Size
32-bit
1 field
FieldBitsWhat it does
TXNPTR31:0Transmit Next Pointer

MCSPI_TNCRTransmit Next Counter Register

Address
0x4801811C
Reset
0x00000000
Access
read/write
Size
32-bit
1 field
FieldBitsWhat it does
TXNCTR15:0Transmit Counter Next

MCSPI_PTCRTransfer Control Register

Address
0x48018120
Reset
0x00000000
Access
write only
Size
32-bit
9 fields
FieldBitsWhat it does
ERRCLR24Transfer Bus Error Clear
TXCBDIS19Transmitter Circular Buffer Disable
TXCBEN18Transmitter Circular Buffer Enable
RXCBDIS17Receiver Circular Buffer Disable
RXCBEN16Receiver Circular Buffer Enable
TXTDIS9Transmitter Transfer Disable
TXTEN8Transmitter Transfer Enable
RXTDIS1Receiver Transfer Disable
RXTEN0Receiver Transfer Enable

MCSPI_PTSRTransfer Status Register

Address
0x48018124
Reset
0x00000000
Access
read only
Size
32-bit
5 fields
FieldBitsWhat it does
ERR24Transfer Bus Error
TXCBEN18Transmitter Circular Buffer Enable
RXCBEN16Receiver Circular Buffer Enable
TXTEN8Transmitter Transfer Enable
RXTEN0Receiver Transfer Enable

MCSPI_PWPMRWrite Protection Mode Register

Address
0x48018128
Reset
0x00000000
Access
read/write
Size
32-bit
4 fields
FieldBitsWhat it does
WPCREN2Write Protection Control Register Enable
WPCTREN1Write Protection Counter Registers Enable
WPPTREN0Write Protection Pointer Registers Enable
WPKEY31:8Write Protection Key
  • 5260355 Writing any other value in this field aborts the write operation. Always reads as 0.