
BL602/604 Reference Manual
• Slave address
• Slave device address
• Slave device address length
• Data (when sending, configure the data to be sent; when receiving, store the received data)
• Data length
• Enable signal
11.5.2 Read and write flags
I2C supports two working states: sending and receiving. Register I2C_CR_I2C_PKT_DIR indicates the sending or
receiving status. When it is set to 0, it indicates the sending state, and when it is set to 1, it indicates the receiving
state.
11.5.3 Slave address
Each slave device connected to I2C will have a unique address. Usually the address length is 7 bits. The slave device
address will be written into the register I2C_CR_I2C_SLV_ADDR. I2C will automatically shift left by 1 bit before sending
it from the device address. Transmit/receive direction bit on the low-order complement.
11.5.4 Slave device address
Slave device register address indicates the register address that I2C needs to read and write to a certain register of
the slave device. The slave device address will be written to the register I2C_SUB_ADDR, and the register SAEN
needs to be set.
If the register SAEN is set to 0, the I2C master will skip the slave register address segment when transmitting.
11.5.5 Slave device address length
The slave device address length is decremented by one and written to the register SABC.
11.5.6 Data
The data part represents the data that needs to be sent to the slave device, or the data that needs to be received from
the slave device.
When I2C sends data, the data needs to be written into the I2C FIFO in word units in turn, and the data is written to
the register address I2C_FIFO_WDATA of the FIFO.
When the I2C receives data, it needs to read the data from the I2C FIFO in units of words in order, and the received
data reads the register address I2C_FIFO_RDATA of the FIFO.
BL602/604 Reference Manual
146/ 195
@2020 Bouffalo Lab