The 7 registers of I2C4 (I²C 4), from 0xBF805100, with their reset value and every field. The PIC32MX775F256H has 774 registers in 64 peripherals, one page each.
Most PIC32 SFRs have three more registers right after them: CLR at +4, SET at +8 and INV at +C (T1CONCLR, T1CONSET, T1CONINV), which clear, set or flip just the bits written as 1, in one write.
I2C4 I²C 4
I2C4CONI2C Control Register
Address
0xBF805100
Reset
0x00001000
Access
read/write
Size
32-bit
15 fields
Field
Bits
What it does
ON
15
I2C Enable bit
0 Disables the I2C module; all I2C pins are controlled by PORT functions
1 Enables the I2C module and configures the SDA and SCL pins as serial port pins
SIDL
13
Stop in Idle Mode bit
0 Continue module operation in Idle mode
1 Discontinue module operation when device enters Idle mode
SCLREL
12
SCLx Release Control bit (when operating as I2C slave)
0 Hold SCLx clock low (clock stretch)
1 Release SCLx clock
STRICT
11
Strict I 2 C Reserved Address Rule Enable bit
0 Strict I2C Reserved Address Rule is not enabled
1 Strict reserved addressing is enforced. Device does not respond to reserved address space or generate addresses in reserved address space.
A10M
10
10-bit Slave Address bit
0 I2CxADD is a 7-bit slave address
1 I2CxADD is a 10-bit slave address
DISSLW
9
Disable Slew Rate Control bit
0 Slew rate control is enabled
1 Slew rate control is disabled
SMEN
8
SMBus Input Levels bit
0 Disable SMBus input thresholds
1 Enable I/O pin thresholds compliant with SMBus specification
GCEN
7
General Call Enable bit (when operating as I2C slave)
0 General call address disabled
1 Enable interrupt when a general call address is received in the I2CxRSR(module is enabled for reception)
STREN
6
SCLx Clock Stretch Enable bit (when operating as I2C slave)
0 Disable software or receive clock stretching
1 Enable software or receive clock stretching
ACKDT
5
Acknowledge Data bit (when operating as I2C master, applicable during master receive)
0 Send ACK during Acknowledge
1 Send NACK during Acknowledge
ACKEN
4
Acknowledge Sequence Enable bit
0 Acknowledge sequence not in progress
1 Initiate Acknowledge sequence on SDAx and SCLx pins and transmit ACKDT data bit. Hardware clear at end of master Acknowledge sequence.
RCEN
3
Receive Enable bit (when operating as I2C master)
0 Receive sequence not in progress
1 Enables Receive mode for I2C. Hardware clear at end of eighth bit of master receive data byte.
PEN
2
Stop Condition Enable bit (when operating as I2C master)
0 Stop condition not in progress
1 Initiate Stop condition on SDAx and SCLx pins. Hardware clear at end of master Stop sequence.
RSEN
1
Repeated Start Condition Enable bit (when operating as I2C master)
0 Repeated Start condition not in progress
1 Initiate Repeated Start condition on SDAx and SCLx pins. Hardware clear at end of master Repeated Start sequence.
SEN
0
Start Condition Enable bit (when operating as I2C master)
0 Start condition not in progress
1 Initiate Start condition on SDAx and SCLx pins. Hardware clear at end of master Start sequence.
I2C4STATI2C Status Register
Address
0xBF805110
Reset
0x00000000
Access
read/write
Size
32-bit
13 fields
Field
Bits
What it does
ACKSTAT
15
Acknowledge Status bit (when operating as I2C master, applicable to master transmit operation)
0 Acknowledge was received from slave
1 Acknowledge was not received from slave
TRSTAT
14
Transmit Status bit (when operating as I2C master, applicable to master transmit operation)
0 Master transmit is not in progress
1 Master transmit is in progress (8 bits + ACK)
BCL
10
Master Bus Collision Detect bit
0 No collision
1 A bus collision has been detected during a master operation
GCSTAT
9
General Call Status bit
0 General call address was not received
1 General call address was received
ADD10
8
10-bit Address Status bit
0 10-bit address was not matched
1 10-bit address was matched
IWCOL
7
Write Collision Detect bit
0 No collision
1 An attempt to write the I2CxTRN register failed because the I2C module is busy
I2COV
6
Receive Overflow Flag bit
0 No overflow
1 A byte was received while the I2CxRCV register is still holding the previous byte
DA
5
P
4
Stop bit
0 Stop bit was not detected last
1 Indicates that a Stop bit has been detected last
S
3
Start bit
0 Start bit was not detected last
1 Indicates that a Start (or Repeated Start) bit has been detected last