I2C从器件有内部振荡器还是外部时钟

时间:2017-06-15 16:07:23

标签: i2c master-slave

如果从设备/外设由SCL或其他时钟提供时钟,我很困惑。

方案,  芯片正在运行,比如说时钟clk。这个clk根据预分频器进行划分,让得到的时钟(Mhz freq)为i2cclk,i2cclk为i2c主机工作在的频率,然后i2cclk进一步降低到Khz以产生SCL。

但是奴隶方面,哪个时钟被馈送到i2c slave,是scl,还是i2cclk或其他。

为什么我感到困惑?

1。)我看到了一些I2C外设的图片和规格,他们使用scl本身作为寄存器的输入时钟。

现在Led是单向交易所以我想在scl上工作

2。)这是我的理论 但是如果奴隶也可以向主人发送数据,例如。 EEPROM 然后,如果从机在scl时钟,如何在时钟的低周期设置数据,如果它拉伸scl低,它怎么能释放它呢?

2 个答案:

答案 0 :(得分:1)

据我说 1)在I2C协议中,CLOCK(在SCL引脚上)将始终由MASTER设备生成。 SLAVE会根据它的工作方式(它在SDA引脚上接收到DATA)或发送DATA。 SLAVE无法生成时钟。

2)所有过程均由MASTER负责。如果MASTER想要发送数据给它,它将在SCL引脚上产生CLOCK并在SDA引脚上产生DATA。如果MASTER需要一些数据,它将在SCL引脚上生成CLOCK,现在SLAVE将在SDA引脚上生成DATA。

3)时钟伸展,即当SLAVE忙时,它将SCL引脚(仅出于理解目的)连接到地。这样MASTER就会知道SLAVE现在很忙。在SCL引脚变为高电平之前,MASTER不会再产生时钟。因此,时钟拉伸始终由SLAVE设备完成。

答案 1 :(得分:0)

我不是工程师,而是经验丰富的技术人员。只是我自己学习了I2C,以获取一种高端立体声系统,以使我重获新生。

因此,这是我的2美分价值-如果您有一个示波器,并且可以查看主从设备之间的SCL线,则可以了解它们的运行速度以及波形外观。如果是方波,那么根据定义,它不是您要查看的参考振荡器。地雷是外部的,由分立元件组成-在这种情况下,两个电容,两个电阻和一个晶体振荡器以27MHz的频率运行。那是一个很好的正弦波。总线时钟比这慢得多,可能取决于SCL和SDA线路上使用的上拉电阻的值以及整个设备所用的电压,约为50 Khz或更小。推荐电压和电阻值之间存在关系。我的接收器正在使用带有1.8K上拉电阻的3.3V HDMI切换器。我不确定总线时钟频率,但是我知道它远低于晶振参考频率,并且也是数字的。如果您的设备由3.3伏特供电,则将从3.3伏特向下参考。高电平有效时脉冲变低。 您应该能够得到一个数据表,它会告诉您要使用的电压。

无论如何,I2C对写入命令使用“低电平有效”,对读取命令使用“高电平”(上拉)。

除非从站没有完成最后的操作,否则主站将开始并结束地址和数据流并控制总线,在这种情况下,只要需要完成它的工作,它就可以将SDA线保持为低电平(假设它可以正常运行)。您可以在线学习有关I2C的所有知识,但是您必须首先访问所有设备的数据表,并希望至少有一个示波器。

祝你好运,我希望我回答了你的问题