I2C 从站是否有内部振荡器或外部时钟



所以我很困惑从设备/外设是否由SCL或其他时钟计时。

场景 该 clk 根据预分频器进行划分,让获得的时钟(Mhz 频率)为 i2cclk,i2cclk 是 i2c 主站运行的频率,然后 i2cclk 进一步降低到 Khz 以生成 SCL。

但是从站端呢,哪个时钟被馈送到i2c从站,是scl,还是i2cclk或其他什么。

我为什么困惑?

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

现在 Led 是单向交易,所以我想在 scl 工作时打卡

2.)这是我的理论 但是,如果从站也可以将数据发送到主站呢?峦啦啦 那么如果从机时钟在SCL,如何在时钟的低周期设置数据,如果它将SCL拉低,它如何释放它?

据我说 1) 在I2C协议中,时钟(在SCL引脚上)将始终由主设备生成。SLAVE 将根据它工作,要么接收数据(在 SDA 引脚上),要么发送数据。SLAVE 无法生成时钟。

2)所有过程均由主管理。如果MASTER想要发送数据,它将在SCL引脚上生成时钟,并在SDA引脚上生成数据。如果MASTER需要一些数据,它将在SCL引脚上生成时钟,现在SLAVE将在SDA引脚上生成数据。

3)时钟拉伸,即当SLAVE繁忙时,它将SCL引脚(仅用于理解)连接到地面。这样师父就会知道,SLAVE现在很忙。在SCL引脚变为高电平之前,MASTER不会产生进一步的时钟。所以时钟拉伸总是由SLAVE设备完成。

我不是工程师,而是一位经验丰富的技术人员。我自己只是在学习I2C,以建立一个高端立体声系统,我正试图让它起死回生。

所以这是我的2美分价值 - 如果你有一个示波器,你可以查看主站和从站之间的SCL线,你可以了解它们的运行速度和波形的样子。 如果它是一个方波,那么根据定义,它不是你正在查看的参考振荡器。我的是外部的,由分立元件制成 - 两个电容,两个电阻器和一个晶体振荡器,在这种情况下以27MHz运行 这是一个不错的正弦波。 总线时钟比这慢得多,可能在50 Khz左右甚至更低,具体取决于SCL和SDA线路上使用的上拉电阻的值以及整个器件使用的电压。推荐电压与电阻值之间存在关系。我的接收器使用带有 1.8K 上拉电阻的 3.3 伏 HDMI 切换器。我不确定总线时钟频率,但我知道它比晶体参考频率小得多,而且也是数字频率。 如果您的设备由 3.3 伏供电,它将从 3.3 伏以下引用。高,活动时脉冲变低。 您应该能够获得数据表,它会告诉您使用什么电压。

无论如何,I2C 使用"低电平有效"进行写入,使用高电平(上拉)表示读取命令。

主站开始和结束地址和数据流并控制总线,除非从站没有完成最后一个操作,在这种情况下,只要它需要完成它正在做的事情,它就可以保持SDA线低电平(假设它是正常工作的) 您可以在线了解有关 I2C 的所有信息, 但是,您肯定需要访问所有器件的数据表,并希望至少需要示波器。

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

最新更新