I recently gave interview for a role as an embedded software developer where I was asked to explain I2C communication. I provided an explanation but am unsure about its accuracy.
I described I2C as a protocol for data exchange between multiple master and slave devices using SDA and clock signals. Its unidirectional protocol, allowing data to be sent or received at one time but not simultaneously.
I2C write operations
If we want to write a slave device. We generate the start condition than send the slave address with write bit. Once slave acknowledge address. We send address of internal register. If slave acknowledged address then master send data to address if slave acknowledged data then master can continue to send more byte or terminate communication by generating stop conditions.
Could someone review this explanation and suggest any improvements or corrections? I want to ensure I'm providing a relevant and accurate explanation during interview
Note : I haven't mentioned read operation here
I described I2C as a protocol for data exchange between multiple master and slave devices using SDA and clock signals. Its unidirectional protocol, allowing data to be sent or received at one time but not simultaneously.
I2C write operations
If we want to write a slave device. We generate the start condition than send the slave address with write bit. Once slave acknowledge address. We send address of internal register. If slave acknowledged address then master send data to address if slave acknowledged data then master can continue to send more byte or terminate communication by generating stop conditions.
Could someone review this explanation and suggest any improvements or corrections? I want to ensure I'm providing a relevant and accurate explanation during interview
Note : I haven't mentioned read operation here