This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28P551SG: I2C general call behaviors for controllers and targets

Part Number: TMS320F28P551SG

Hi champs,

 

I am asking this for our customer.

The user wants to use general call (address 0) and asks TI to clarify its usage and behaviors.

Questions:

  1. From the doc below, what does that mean in red box? Would you please explain it in more detail? When F28P551x controller sends address 0 + W (eight-logic 0 byte). Will F28P551x target ACK it or NACK it? In this case, will this NACK bit of F28P551x controller set or not?
  2. image.png

2. For F28P551x controller to send address 0, it should only need to set the target address I2CTAR as 0. Is it right?

3. Is there any limitation of the number of bytes following the address 0 byte? 

  • Hi Wayne,

    From the doc below, what does that mean in red box? Would you please explain it in more detail? When F28P551x controller sends address 0 + W (eight-logic 0 byte). Will F28P551x target ACK it or NACK it? In this case, will this NACK bit of F28P551x controller set or not?

    In a normal target-controller transmission, the controller would check the NACK bit to know if a specific target responded. However, since the general call is a broadcast to all the devices simultaneously, multiple targets may ACK at the same time. In other words, the controller should not use the NACK bit to determine if a target responded to a general call transfer. Instead, you should check for status bits on the target side as there is no way really to check this on the controller side, which is fine/standard I2C usage. 

    This note is only applicable for controller mode.

    2. For F28P551x controller to send address 0, it should only need to set the target address I2CTAR as 0. Is it right?

    Yes, that is correct. 

    3. Is there any limitation of the number of bytes following the address 0 byte? 

    The I2C spec defines a general call as the first byte = 0x00 (addr + W) and second byte = "command byte". The C2000 HW poses no further restrictions, so you can set the I2CCNT register to the # of bytes the controller wishes to send. 

    Best Regards,

    Aishwarya