Easyi3C is a leading supplier of embedded system tools that simplify the development and debugging of various communication protocols. The company offers a range of products designed to help engineers and developers use I3C/I2C , USB and MIPI, JEDEC, MCTP and other protocols more efficiently.
Easyi3C API provides a message concept to allow user can control the bus freely. With this concept, users can combine any message and send them out by I2C or I3C protocol.
Message A bus message is a segment of bus waveform start with START/REPEAT_START or end with REPEAT_START/STOP, 7-bit slave addressing, and combined format transactions. The figures below demonstrate it.

As the above figures, we support two types of messages: WriteMsg(), ReadMsg(). In each message type, there are 3 factors
1. slave Address – The 7-bit Slave address
2. data
a) For a write message (RW_BIT = 0), the data shall be a byte list.
b) For a read message (RW_BIT = 1), the data is an integer value indicating how many bytes will be read in.
3. stop – Whether to generate a STOP condition after this message, it can be the following value:
a) True - End with I2C/I3C STOP signal.
b) False – No action at the end. Default value is True.
For debug I3C/I2C messages transfer, we add a special message: IdleMsg(), IdleMsg() can add idle time between message transfer.
With many messages combined with a packet, Easyi3C provides the following APIs for packet operate:
1. ez_send_i2c_msgs()
2. ez_send_i3c_msgs()