22.4.1 I2Cx Control Register

Note:
  1. Automatically cleared to ‘0’ at the beginning of client transmission; automatically cleared to ‘0’ at the end of client reception.
  2. Automatically cleared to ‘0’ at the beginning of client transmission.
  3. This bit must be set before any I2C operations can be performed. This bit should be set in a separate instruction from any of the other enable bits.
  4. 16 peripheral clock cycles should be waited before performing any operation.

Legend: HC = Hardware Clearable bit

Name: I2CxCON1
Offset: 0x1880, 0x18D0, 0x1920

Bit 3130292827262524 
       SMBEN[1:0] 
Access R/WR/W 
Reset 00 
Bit 2322212019181716 
  PCIESCIEBOENSDAHTSBCDEAHENDHEN 
Access R/WR/WR/WR/WR/WR/WR/W 
Reset 0000000 
Bit 15141312111098 
 ON SIDLSCLRELSTRICTA10MDISSLW  
Access R/WR/WR/W/HCR/WR/WR/W 
Reset 001000 
Bit 76543210 
 GCENSTRENACKDTACKENRCENPENRSENSEN 
Access R/WR/WR/WR/W/HC/HSR/W/HC/HSR/W/HCR/W/HCR/W/HC 
Reset 00000000 

Bits 25:24 – SMBEN[1:0] SMBus Input Levels Enable bits

ValueDescription
11 Reserved
10 Enable SMBus 3.0 input threshold voltage specification.
01

Enable SMBus 2.0 input threshold voltage specification.

00

Enable I2C input threshold voltage specification (disable SMBus specific input).

Bit 22 – PCIE  Stop Condition Interrupt Enable bit (Client mode only)

ValueDescription
1

Enables interrupt on detection of Stop condition.

0

Stop detection interrupts are disabled.

Bit 21 – SCIE Start Condition Interrupt Enable bit (Client mode only)

ValueDescription
1

Enables interrupt on detection of Start or Restart conditions.

0

Start detection interrupts are disabled.

Bit 20 – BOEN Buffer Overwrite Enable bit (Client mode only)

ValueDescription
1

I2CxRCV is updated and an ACK is generated for a received address/data byte, ignoring the state of the I2COV bit only if RBF bit = 0.

0

I2CxRCV is only updated when I2COV is clear.

Bit 19 – SDAHT SDAx Hold Time Selection bit

ValueDescription
1

Minimum of 300 ns hold time on SDAx after the falling edge of SCLx.

0

Minimum of 100 ns hold time on SDAx after the falling edge of SCLx.

Bit 18 – SBCDE Mode Bus Collision Detect Enable bit (Client mode only)

If, on the rising edge of SCLx, SDAx is sampled low when the module is outputting a High state, the BCL bit is set and the bus goes Idle. This Detection mode is only valid during data and ACK transmit sequences.

ValueDescription
1

Enables client bus collision interrupts.

0

Client bus collision interrupts are disabled.

Bit 17 – AHEN Client Address Hold Enable bit

ValueDescription
1

Following the eighth falling edge of SCLx for a matching received address byte, the SCLREL bit (I2CxCON1[12]) will be cleared and the SCLx will be held low.

0

Address holding is disabled.

Bit 16 – DHEN Client Data Hold Enable bit

ValueDescription
1

Following the eighth falling edge of SCLx for a received data byte, client hardware clears the SCLREL bit (I2CxCON1[12]) and SCLx is held low.

0

Data holding is disabled.

Bit 15 – ON  I2Cx Enable bit (writable from software only)(3,4)

ValueDescription
1

Enables the I2Cx module and configures the SDAx and SCLx pins as serial port pins.

0

Disables the I2Cx module; all I2C pins are controlled by port functions.

Bit 13 – SIDL  I2Cx Stop in Idle Mode bit

ValueDescription
1

Discontinues module operation when the device enters Idle mode.

0

Continues module operation in Idle mode.

Bit 12 – SCLREL  SCLx Release Control bit (I2C Client mode only)(1)

If STREN = 1:(2)

User software may write ‘0’ to initiate a clock stretch and write ‘1’ to release the clock. Hardware clears at the beginning of every client data byte transmission. Hardware clears at the end of every client address byte reception. Hardware clears at the end of every client data byte reception.

If STREN = 0:

User software may only write ‘1’ to release the clock. Hardware clears at the beginning of every client data byte transmission. Hardware clears at the end of every client address byte reception.

ValueDescription
1

Releases the SCLx clock.

0

Holds the SCLx clock low (clock stretch).

Bit 11 – STRICT  I2Cx Strict Reserved Address Rule Enable bit

ValueDescription
1

Strict reserved addressing is enforced for reserved addresses.

(In Client mode) – The device doesn’t respond to reserved address space, and addresses falling in that category are NACKed.

(In Host mode) – The device is allowed to generate addresses with reserved address space.

0

Reserved addressing would be Acknowledged.

(In Client mode) – The device will respond to an address falling in the reserved address space. When there is a match with any of the reserved addresses, the device will generate an ACK.

(In Host mode) – Reserved

Bit 10 – A10M 10-Bit Client Address Flag bit

ValueDescription
1

I2CxADD is a 10-bit client address.

0

I2CxADD is a 7-bit client address.

Bit 9 – DISSLW Slew Rate Control Disable bit

ValueDescription
1

Slew rate control is disabled for Standard Speed mode (100 kHz, also disabled for 1 MHz mode).

0

Slew rate control is enabled for High-Speed mode (400 kHz).

Bit 7 – GCEN  General Call Enable bit (in I2C Client mode only)

ValueDescription
1 Enables an interrupt when a general call address is received in I2CxRSR; a module is enabled for reception.
0 The general call address is disabled.

Bit 6 – STREN SCLx Clock Stretch Enable bit

In I2C Client mode only; used in conjunction with the SCLREL bit.

ValueDescription
1

Enables clock stretching.

0

Disables clock stretching.

Bit 5 – ACKDT Acknowledge Data bit

In I2C Host mode during Host Receive mode. The value that will be transmitted when the user initiates an Acknowledge sequence at the end of a receive.

In I2C Client mode when AHEN = 1 or DHEN = 1. The value that the client will transmit when it initiates an Acknowledge sequence at the end of an address or data reception.

ValueDescription
1

NACK is sent,

0

ACK is sent,

Bit 4 – ACKEN Acknowledge Sequence Enable bit

In I2C Host mode only; applicable during Host Receive mode.

ValueDescription
1

Initiates Acknowledge sequence on SDAx and SCLx pins and transmits ACKDT data bit.

0

Acknowledge sequence is Idle.

Bit 3 – RCEN  Receive Enable bit (in I2C Host mode only)

ValueDescription
1

Enables Receive mode for I2C; automatically cleared by hardware at end of 8-bit receive data byte.

0

Receive sequence is not in progress.

Bit 2 – PEN  Stop Condition Enable bit (in I2C Host mode only)

ValueDescription
1

Initiates Stop condition on SDAx and SCLx pins.

0

Stop condition is Idle.

Bit 1 – RSEN  Restart Condition Enable bit (in I2C Host mode only)

ValueDescription
1

Initiates Restart condition on SDAx and SCLx pins.

0

Restart condition is Idle.

Bit 0 – SEN  Start Condition Enable bit (in I2C Host mode only)

ValueDescription
1

Initiates Start condition on SDAx and SCLx pins.

0

Start condition is Idle.