Main Content

C28x I2C Receive

Configure inter-integrated circuit (I2C) module to receive data from I2C bus

  • C28x I2C Receive block

C2000 Microcontroller Blockset / C2802x
C2000 Microcontroller Blockset / C2803x
C2000 Microcontroller Blockset / C2805x
C2000 Microcontroller Blockset / C2806x
C2000 Microcontroller Blockset / C280x
C2000 Microcontroller Blockset / C2833x
C2000 Microcontroller Blockset / C2834x
C2000 Microcontroller Blockset / F280013x
C2000 Microcontroller Blockset / F280015x
C2000 Microcontroller Blockset / F28002x
C2000 Microcontroller Blockset / F28003x
C2000 Microcontroller Blockset / F28004x
C2000 Microcontroller Blockset / F2807x
C2000 Microcontroller Blockset / F2837xD
C2000 Microcontroller Blockset / F2837xS
C2000 Microcontroller Blockset / F2838x / C28x
C2000 Microcontroller Blockset / F28M35x / C28x
C2000 Microcontroller Blockset / F28M36x / C28x
C2000 Microcontroller Blockset / F28p65x


The I2C Receive block configures the inter-integrated circuit (I2C) module to receive data from the two-wire I2C serial bus. The I2C Receive block supports I2C bus communication between the processor and external peripherals or other controllers. The block can run in either peripheral or controller mode.

When the I2C module is configured as controller, the module receives data from a peripheral. When the I2C module is configured as a peripheral, the module receives data from the controller. Configure the I2C module by navigating to Configuration Parameters > Hardware Implementation > Target hardware resources.

To read data from a peripheral, send the address of the register to be read using the I2C Transmit block to the peripheral. Ensure that the data is sent from the Tx FIFO to the peripheral before the data is read from the peripheral using the I2C Receive block. For more information, see Using the I2C Bus to Access Sensors.



expand all

The peripheral address register value.


This port appears only when Peripheral address source is set to Input port.

Data Types: int8 | uint8 | int16 | uint16 | int32 | uint32 | single | double | Boolean


expand all

The data read from the I2C bus.

Data Types: int8 | uint8 | int16 | uint16 | int32 | uint32

Status values from the I2C status register (I2CSTR).


This port appears only when Output receiving status is selected.

Data Types: uint16


expand all

The I2C module to be used for communication. The number of I2C modules supported varies across different C2000™ processors.

The address format for communication. The diagram shows the format for each option. The I2C Receive block sets the R/W bit to 0.

S — Start bit

R/W — Read/Write

ACK — Acknowledge

P — Stop bit

MSB — Most significant bit

LSB — Least significant bit

The method for setting the peripheral address register of the I2C peripheral.

Enter a 7- or 10-bit peripheral address according to the addressing format selected.


This parameter appears only when Peripheral address source is set to Specify via dialog.

The number of bits in the data byte received by the I2C module.

The number of Data type the block receives (not bytes). If this parameter is set to more than 1, the output will be a vector.

The value the I2C node outputs to the model before it has received data. By default, the block outputs 0 if the I2C value is not received.

Generates a no-acknowledge bit (NACK) during the I2C acknowledge cycle and ignores new bits from the transmitting I2C node.

Enables the I2C Receive block (controller) to send a stop message to the I2C Transmit block (peripheral).

Enables the status output port, which indicates when the I2C Receive block receives a message.

Sample time for the block in seconds. To execute this block asynchronously, set this parameter to -1.

Sets the data type of the data received. If the size of the received data is less than 8 bits, then the data is right-justified.