37.2.7.1 Broadcast vs Direct CCC

There are three categories of CCCs:

  1. Broadcast Write – A Broadcast Write CCC is seen by all I3C targets on the bus. The Target module inspects every received Broadcast command, even if it then chooses to ignore the CCC (for example, an unsupported CCC is ignored). ENEC is an example of a Broadcast Write CCC.
  2. Direct Write – A Direct Write CCC writes data to a specific target on the bus directly by selecting its Dynamic Address. Other targets on the bus can also be addressed by the Controller in the same transaction by selecting the appropriate Dynamic Addresses. SETMRL is an example of a Direct Write CCC.
  3. Direct Read – A Direct Read CCC reads data from a specific target on the bus directly by selecting its Dynamic Address. Other targets on the bus can also be addressed by the Controller in the same transaction by selecting the appropriate Dynamic Addresses. GETPID is an example of a Direct Read CCC.

Each CCC has its own unique 8-bit command code. The command code space is divided into Broadcast CCC and Direct CCC codes. Broadcast CCCs have command codes 0x00 through 0x7F. Direct CCCs have command codes 0x80 through 0xFE. Consequently, the targets can inspect the Most Significant bit (bit 7) of the command code to differentiate between the two types of CCCs. Table 37-11 lists the command codes for all the CCCs that are supported by this Target module.

The frame format for Broadcast CCCs is shown in Figure 37-20. All of the Broadcast CCCs share the same general frame format and have the following sequence:

  1. Start or Restart, followed by the Broadcast Address.
  2. Broadcast CCC value, followed by any required defining byte or data.
  3. End of command.
Figure 37-20. Broadcast CCC General Frame Format

The frame format for Direct CCCs is shown in Figure 37-21. All of the Direct CCCs share the same general frame format and have the following sequence:

  1. Start or Restart, followed by the Broadcast Address.
  2. Direct CCC value, followed by any required defining byte or data.
  3. Restart, followed by the address of the targeted Target, followed by any required defining byte or data.
  4. Repeat step 3 if the Controller wants to address multiple targets in the same CCC transaction.
  5. End of command.
Figure 37-21. Direct CCC General Frame Format

The frame field definitions are explained in Table 37-10.

Table 37-10. CCC Frame Field Definitions
Field Definition
S or Sr A CCC always begins with either Start or Restart condition
Broadcast Address/ W/ACK This field has three parts:
  • Broadcast Address – The CCC Frame starts with Controller transmitting the global I3C Broadcast Address (7’h7E) so that all the I3C targets on the bus will see the CCC code that follows.
  • W – The R/W bit is always clear (0 = Write) indicating that the Controller is writing a message to the targets.
  • ACK – The collective ACK by at least one I3C target on the bus. If there are no I3C targets on the bus, this will be a passive NACK and the Controller will terminate the transaction.
Broadcast or Direct CCC/T The Controller then sends an 8-bit code corresponding to the CCC being sent. All supported CCC codes are defined in Table 37-11. This is followed by a Parity T-bit.
Defining Byte (Optional)/T Some CCCs require an additional defining byte to be sent. Refer to the individual CCC definition for more information. This is followed by a Parity T-bit.
Data (Optional)/T Some CCCs require additional data (one or more bytes) to be sent. Refer to the individual CCC definition for more information. This is followed by a Parity T-bit.
Target Address/

R/W
/ACK

This field is used by Direct CCCs to address an individual target on the bus. This field has three parts:
  • Target Address – The 7-bit Dynamic Address of the target being addressed.
  • R/W – The R/W is set appropriately depending on whether the Controller is performing a read or a write operation. Refer to the individual CCC definition for more information.
  • ACK – The addressed target ACKs the request. If the addressed target is not available on the bus (passive NACK) or if it NACKs for any reason, the Controller terminates the transaction and retries one more time.

Sr/Broadcast Address

or

P
A CCC always ends with either a Stop condition or a Restart condition followed by the 7’h7E Broadcast Address (which can follow into another CCC).