Rus*_*mov 13
对我来说似乎是的,这就够了.这是一个背景:
时钟生成
SCL时钟始终由I2C主器件生成.该规范要求时钟信号的低相位和高相位的最小周期.因此,实际时钟速率可能低于标称时钟速率,例如在由于高电容而具有大的上升时间的I2C总线中.
时钟拉伸
I2C器件可以通过拉伸SCL来降低通信速度:在SCL低电平阶段,总线上的任何I2C器件都可以另外按住SCL以防止它再次上升,使它们能够降低SCL时钟速率或停止I2C通信一会儿.这也称为时钟同步.
注意:I2C规范没有为时钟延长指定任何超时条件,即任何设备都可以根据需要按住SCL.
在I2C通信中,主设备确定时钟速度.与RS232不同,I2C总线提供显式时钟信号,使主机和从机无法精确同步到预定义的波特率.
但是,有些情况下I2C从器件无法与主器件提供的时钟速度协作,需要稍微减速.这是通过称为时钟拉伸的机制完成的.
如果需要降低总线速度,则允许I2C从器件按住时钟.另一方面,主机需要在将时钟信号释放到高电平状态后读回时钟信号,并等到线路实际变为高电平.
I2C时钟速度如何影响I2C从器件引入的时钟延长持续时间?
时钟延长是I2C从器件在每次I2C数据传输的第9个时钟(在ACK阶段之前)将SCL线拉低的现象.当CPU处理I2C中断时,时钟被拉低,以评估地址或处理从主机接收的数据,或在主机从从机读取数据时准备下一个数据.
时钟拉低的时间取决于CPU处理中断所用的时间,因此取决于CPU速度而不是I2C时钟速度.
| 归档时间: |
|
| 查看次数: |
21979 次 |
| 最近记录: |