Announcements
IMPORTANT: Cypress Developer Community currently doesn’t allow sign-in to prepare for the upcoming transition. To learn more, check out our announcement.
cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

HuYa_4249091
Contributor

Dear All:

Our FX3 connects to a lot of slave devices by I2C, and I found the general call address from the I2C spec as the following figure:

I2C spec - general call.jpg

I don't realize the meaning exactly.

It means I can get ALL slave devices ID by the general call address with (0x00, 0x04)?

ex: FX3 connects to 3 devices which slave address is 0x0A, 0x0B & 0x0C respectively.

      After writing (0x00, 0x04), FX3 will receive (0x0A, 0x0B, 0x0C)?

Hope guys could provide me some suggestions,

Thank you!

Hughes

0 Likes
1 Solution
YashwantK_46
Moderator
Moderator

Hey Hughes,

General Call Address is not intended to get the slave device ID's connected to the bus.


General Call Address is just used to address or communicate with all the device connected to the I2C bus at the same time. But, the catch is that the devices need to be intelligent enough to be able to process the bytes of data from the general call address.
The master is not aware of the number of devices connected to the bus. If a device wants the data or can process every byte of the call, it will act as a slave-receiver and if not, the device ignores the call entirely and doesn't send an acknowledgement.


Regards,
Yashwant

View solution in original post

1 Reply
YashwantK_46
Moderator
Moderator

Hey Hughes,

General Call Address is not intended to get the slave device ID's connected to the bus.


General Call Address is just used to address or communicate with all the device connected to the I2C bus at the same time. But, the catch is that the devices need to be intelligent enough to be able to process the bytes of data from the general call address.
The master is not aware of the number of devices connected to the bus. If a device wants the data or can process every byte of the call, it will act as a slave-receiver and if not, the device ignores the call entirely and doesn't send an acknowledgement.


Regards,
Yashwant

View solution in original post