I2C通讯一次性看明白!

更多电路设计,PCB设计分享及分析,可关注本人微信公众号“核桃设计分享”!

今天就来聊一聊常用常见的通讯方式I2C,网上对于I2C的讲解也非常的多,在此呢核桃也不想再重复一些概念性的知识点了,着重对通讯的过程做一个小的总结。

看下图1所示:

图1

图1是完整的写与读操作过程,看不懂图1是什么意思也没关系,我们接下来拆开了讲。

先看一下SDA和SCL如何表示逻辑状态的,如下:

SCL在高电平期间,SDA也为高电平时,表示逻辑1。

SCL在高电平期间,SDA为低电平时,表示逻辑0。 

SCL在高电平期间,SDA出现下降沿时,表示起始信号。

SCL在高电平期间,SDA出现上升沿时,表示停止信号。

SCL和SDA同时为高电平时,表示总线处于空闲状态。

要想看明白I2C的波形,上面的这些波形图表示的状态得先记住。

我们再看回图2

图2

假如要写入地址1010000,波形是怎么样的?

注意:要进行写操作的话,读/写位必须是0才能有效,要读数据的话需要置1(也就是0表示写,1表示读)

波形如下:

图3

可以看的出来图2和图3的写操作就对应上了。

那是不是这样就通讯成功了呢?

当然不是,主机发地址过去之后,还需要丛机应答,也就是应答位必须为0,如果为1就表示没有收到或者读取完成了。

接着再把8位寄存器地址传过去,同样也需要丛机应答

丛机应答之后,最后再需要写入对应寄存器的数据传过去,然后再收到丛机应答,即可收到停止位了。

以上就是写操作的整个完整的过程,其实理解起来也相对简单,那读操作也是类似,主要和写操作的区别在于:

(1)需要核实两次的地址

(2)读/写位必须置1

好了,今天就先写到这吧!

如果本文对你有所帮助,欢迎点赞关注

图片

你们的支持就是我创作最大的动力

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值