The I2C Config lets you configure the I2C unit.
Address Mode: In 7-bit address mode (normal address mode), indicates the I2C module transmits 7-bit slave addresses.
Bit Rate: Indicates the bit rate.
Clock Source: Chooses the hardware source for the system clock.
Data Bits: Indicates the number of bits (1 to 8) in the next data byte that is to be received or transmitted by the I2C module.
High Time: Indicates the ICCH- Clock high-time divide-down value. To produce the high-time duration of the master clock, the period of the module clock is multiplied by (ICCH + d), where d is 5, 6, or7.
These bits must be set to a non-zero value for proper I2C clock operation.
Low Time: Indicates the ICCL- Clock low-time divide-down value. To produce the low-time duration of the master clock, the period of the module clock is multiplied by (ICCL + d). d is 5, 6, or 7.
These bits must be set to a non-zero value for proper I2C clock operation.
Own Address: Indicates the address of this unit on the I2C bus. This is important in slave mode: messages that do not match Own Address will be discarded. This parameter is not available for ARM Linux targets.
Port: Specifies the port. For ARM Linux targets, 1 is the default device available for use; 0 is reserved for VideoCore and HAT EEPROM; and 2 is available for use, but it is dedicated to HDMI interface and should not be used. For Arduino pin mapping, click here.
Prescale: Specifies the value to divide the low speed clock to determine the I2C clock. This parameter is not available for ARM Linux targets.
Rx Queue Length: Specifies the length of the receive queue.
SCL Pin: Specifies the pin on the device for the serial clock line.
SDA Pin: Specifies the pin on the device for the serial data line.
Tx Queue Length: Specifies the length of the transmit queue.
Use Freeform Mode: Indicates that the transfer has no address field. This parameter is not available for Arduino, ARM Linux, and Cortex M3 targets.