Embedded 为什么I2C中需要时钟拉伸

Embedded 为什么I2C中需要时钟拉伸,embedded,i2c,Embedded,I2c,时钟拉伸用于降低I2C中的主控速度。。如果从设备基于I2C,则意味着根据标准,它可以在100KHZ下工作 我的困惑是,当主时钟和从时钟已经达到100KHz时,时钟拉伸的必要性是什么 请提供一个例子。由于从机可能无法从主机接收到数据,或者从机需要额外的时间来处理接收到的数据,因此需要进行时钟拉伸 许多从设备是低成本设备,没有良好的缓冲系统,需要长时间读取慢内存,并使用时钟拉伸来防止溢出 它是一种廉价的速度控制系统(与更复杂的异步连接相比),安全简单 这也是因为一些低成本设备在执行繁忙任务时CPU无

时钟拉伸用于降低I2C中的主控速度。。如果从设备基于I2C,则意味着根据标准,它可以在100KHZ下工作

我的困惑是,当主时钟和从时钟已经达到100KHz时,时钟拉伸的必要性是什么


请提供一个例子。

由于从机可能无法从主机接收到数据,或者从机需要额外的时间来处理接收到的数据,因此需要进行时钟拉伸

许多从设备是低成本设备,没有良好的缓冲系统,需要长时间读取慢内存,并使用时钟拉伸来防止溢出

它是一种廉价的速度控制系统(与更复杂的异步连接相比),安全简单

这也是因为一些低成本设备在执行繁忙任务时CPU无法在I2C上工作,例如传感器可能需要中断并保持低时钟线,传感器内部作业完成后,传感器将变高并以正常速度发送数据


参考:p.12

由于从机可能无法从主机接收到数据,或者从机需要额外的时间来处理接收到的数据,因此需要进行时钟拉伸

许多从设备是低成本设备,没有良好的缓冲系统,需要长时间读取慢内存,并使用时钟拉伸来防止溢出

它是一种廉价的速度控制系统(与更复杂的异步连接相比),安全简单

这也是因为一些低成本设备在执行繁忙任务时CPU无法在I2C上工作,例如传感器可能需要中断并保持低时钟线,传感器内部作业完成后,传感器将变高并以正常速度发送数据


参考文献:第12页

优秀参考文献。。你能帮我解决从机如何将SCL拉低的困惑吗,因为GPIO是在从机中输入的。当SCL通过上拉电阻器连接到GPIO时,将GPIO设置为高使SCL低,主机将检测到SCL线低并挂起并等待。你的意思是将GPIO设置为低将GPIO设置为高使SCL变为低吗(推至地)@md.jamal开漏输出与上拉电阻器一起使用,而不是代替上拉电阻器。使用开漏输出“代替”的是“推拉”输出或各种其他术语,表明它们在低和高方向上都有效驱动,并且不仅像开漏输出那样低。非常好的参考。您能帮助我解决从机如何将SCL拉低的困惑吗,因为GPIO是从机中输入的。当SCL通过上拉电阻器连接到GPIO时,将GPIO设置为High使SCL变低,主机将检测到SCL线路变低并挂起并等待。您的意思是将GPIO设置为低将GPIO设置为高将SCL设置为低(推至地)@md.jamal开路漏极输出与上拉电阻器一起使用,而不是代替它们。使用开路漏极输出的“而不是”是“推挽”输出或各种其他术语,表明它们在低和高方向上都积极驱动,而不仅仅像开漏输出那样低。