Please clarify above question that i was being asked in interview in one company.
And How slave device will communicate to master if at the same time slave device receives request from two or multiple master?
如果我们有I2C设备(Master和Slave连接,那么主机和从机之间的数据传输速度将如何决定天气使用100kbps正常模式还是400kbps快速模式)?
答案 0 :(得分:1)
i2c从设备(从小型传感器到移动设备中的摄像头(在cmos摄像头中,用于控制接口,而不是数据是i2c接口))附带数据表中提到的支持的i2c时钟速率。同样,主设备也带有i2c max。支持的时钟频率。慢速(来自主站和从站)的速度将是i2c通信的速度。
如果您尝试在运行时检测频率(即不知道从设备支持的速率),则不建议嵌入式设备使用。 (因为在大多数情况下它们不是热插拔的。)
因此,例如i2c速率配置为400kHz,主机和从机支持到100kHz,那么就会出现问题。 Master需要配置< = 100kHz。
如果slave支持到400kHz并且master配置为100kHz(虽然它能够支持400kHz),那么没有问题。在这种情况下,速度根据您的速度要求决定。如果您需要更高的速度(4倍速),则将主机配置为400kHz,如果您对100kHz的性能感到满意,则配置为100kHz以节省功耗。在这种情况下,您还可以在100kHz至400kHz之间的自定义频率下配置主设备。
如果具有不同i2c速率的多个设备在同一总线上接口,那么最低的应该是速度。由于在大多数情况下很难改变i2c时钟速率运行时间。 (例如,在Linux内核中,时钟速率及其设置由设备树提供。)
对于多个主通信和一个从通信,请阅读this