0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何更好地去掌握I2C通信?

FPGA之家 来源:最后一个bug 作者:bug菌 2021-06-26 10:13 次阅读

1

I2C通信理解

很多朋友在进行IIC通信协议开发的时候比较迷茫,可能长时间没有用了,就有所忘却,也算正常,不过如果重新围着通信时序图看来看去,那还是比较麻烦的,比如IIC的起始电平条件、停止电平条件、以及数据保持即更新条件等等:

pYYBAGDWjiqAS32cAACEH8DUvpI273.jpg

虽然每个器件对IIC通信的波形要求不是太相同,但IIC的通信时序容忍度非常高,基本上相关参数和驱动都是通用的。 IIC数据的传输过程,在SCL通信同步时钟节拍的控制下,主机发送数据主动使得总线电平发生变化,供从机检测接收,而当从机接收到数据以后接着主动的拉低SDA来作为应答信号通知主机,如果没有拉低则表示非应答。

之前很多朋友都不太理解IIC的主机是怎么检测到从机应答的,似乎从SDA线上的波形看都好像是主机发送出来的,所以在进行通信波形解析的时候注意一下。

2

IIC数据帧

对于通信的应用,重要的并不是所谓的电平变化,而更多的是要了解如何传递数据帧,掌握好数据帧的传递过程和方式。

而不同厂商的数据帧稍微有所差异,比如7位地址、8位地址和10位地址,但总体上大同小异,大家可以参考对应的芯片手册进行学习,这里以最常用的7地址位跟大家介绍:

IIC是一种主从通信方式,通信发起者为主机,主要熟悉三种数据帧传递过程:

1、单次或连续向从机写数据

poYBAGDWjjGAb8TFAACepW_ZgAI156.jpg

至于通信数据域内的数据含义,由通信双方共同约定即可,也就是协议的制定。

2、单次或连续向从机读数据

pYYBAGDWjjiAfe1cAACfPqtDGa8051.jpg

读数据的过程主机发送的读写标志位发生变化,在数据部分从机主动控制总线发送数据给主机,然后主机来进行应答,刚好与IIC写数据相反。

3、通讯过程读写切换

poYBAGDWjj6ASQCPAADART5ualo608.jpg

在通信过程中需要进行读写切换时不需要发送停止,而是应答以后重新发一次起始和从机地址及读写状态,接着进行下面的数据处理即可。

最后再啰嗦一下 : 对于IIC总线不要忘记通信IO上拉,同时注意电平上的匹配,不然可能会损坏芯片~

责任编辑:lq6

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • I2C通信
    +关注

    关注

    0

    文章

    22

    浏览量

    8841

原文标题:玩转I2C通信把握好这两点~

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RISC V的I2C操作

     双向IO,需设置为弱上拉。I2C对应的三态门的OE信号:需要赋值为I2C SDA/SCL的write信号;rtl中的表述如下:主要原因在于:i2c通信过程中,当总线空闲时,两根线均
    的头像 发表于 11-01 11:06 206次阅读

    I2C协议的基础知识

    本文从I2C协议的概述开始,描述协议的历史、不同速度模式、物理层和数据帧结构,最后介绍I2C混合电压系统中电平兼容性以及上拉电阻大小计算。
    的头像 发表于 10-22 15:51 508次阅读
    <b class='flag-5'>I2C</b>协议的基础知识

    详解I2C总线与SPI总线的区别

    I2C(Inter-Integrated Circuit)表示集成电路互连,是一种用于线路板内部芯片之间通信的总线。
    的头像 发表于 10-16 15:16 4455次阅读
    详解<b class='flag-5'>I2C</b>总线与SPI总线的区别

    了解I2C总线

    电子发烧友网站提供《了解I2C总线.pdf》资料免费下载
    发表于 10-08 11:13 2次下载
    了解<b class='flag-5'>I2C</b>总线

    I2C基本指南

    电子发烧友网站提供《I2C基本指南.pdf》资料免费下载
    发表于 09-10 09:40 0次下载
    <b class='flag-5'>I2C</b>基本指南

    利用具备I2C通信接口的降压转换器获益

    电子发烧友网站提供《利用具备I2C通信接口的降压转换器获益.pdf》资料免费下载
    发表于 08-29 10:36 0次下载
    利用具备<b class='flag-5'>I2C</b><b class='flag-5'>通信</b>接口的降压转换器获益

    获益于具备I2C通信接口的降压转换器

    电子发烧友网站提供《获益于具备I2C通信接口的降压转换器.pdf》资料免费下载
    发表于 08-26 10:00 0次下载
    获益于具备<b class='flag-5'>I2C</b><b class='flag-5'>通信</b>接口的降压转换器

    简单认识I2C通信协议

    I2C(Inter-Integrated Circuit)通信协议是由飞利浦公司(现为恩智浦半导体)开发的一种简单、双向二线制同步串行总线协议。自1982年发布以来,I2C协议因其高效、灵活和易于实现的特点,在电子设备间的数据交
    的头像 发表于 07-25 18:06 1472次阅读

    I2C通讯为什么要用开漏输出和上拉电阻?

    一、I2C总线简介I2C(Inter-IntegratedCircuit)总线是一种双向串行通信总线,由两根线组成:SDA(数据线)和SCL(时钟线)。这两根线都是双向的,并且是开漏输出的,这意味着
    的头像 发表于 05-16 08:10 6610次阅读
    <b class='flag-5'>I2C</b>通讯为什么要用开漏输出和上拉电阻?

    SPI和I2C通信协议:应用与区别

    本文深入解析了SPI和I2C这两种通信协议的特点、工作原理和应用场景。SPI适用于高速数据传输,常用于存储器芯片和显示器驱动等领域;I2C适用于低速控制和传感器数据传输,常用于温度传感器和ADC
    的头像 发表于 04-22 16:45 1836次阅读

    逼真动画展示I2C、SPI、UART的通信过程

    到目前为止,I2C、SPI和UART等仍然是电子嵌入式设备中最常用的通信协议,本文,我们将剖析这三种协议,让大家清楚、直观的了解它们的功能、优点和局限性,并辅以GIF动图展示。I2C协议I2C
    的头像 发表于 04-12 08:27 989次阅读
    逼真动画展示<b class='flag-5'>I2C</b>、SPI、UART的<b class='flag-5'>通信</b>过程

    什么是I2C协议 I2C总线的控制逻辑

    在实际使用过程中,I2C比较容易出现的一个问题就是死锁 ,死锁在I2C中主要表现为:I2C死锁时表现为SCL为高,SDA一直为低。
    发表于 03-12 09:17 1073次阅读
    什么是<b class='flag-5'>I2C</b>协议 <b class='flag-5'>I2C</b>总线的控制逻辑

    GD32 MCU硬件I2C不可靠不如软件I2C?来看看红枫派开发版的硬件I2C驱动如何做到稳得一批

    在一个评论中,看到网友对硬件I2C的讨论,硬件I2C Busy找不到原因、软件I2C稳得一批。
    的头像 发表于 02-23 09:37 2793次阅读
    GD32 MCU硬件<b class='flag-5'>I2C</b>不可靠不如软件<b class='flag-5'>I2C</b>?来看看红枫派开发版的硬件<b class='flag-5'>I2C</b>驱动如何做到稳得一批

    什么是I2C接口?什么是I3C接口?I2CI3C的区别

    I2C接口是一种串行通信协议,全称为Inter-Integrated Circuit,即集成电路间总线。它是一种双向、两线制(SCL和SDA)的串行通信接口,主要用于连接微控制器和其他外围设备,如传感器、存储器、显示器等。
    的头像 发表于 02-17 14:39 6376次阅读
    什么是<b class='flag-5'>I2C</b>接口?什么是<b class='flag-5'>I3C</b>接口?<b class='flag-5'>I2C</b>与<b class='flag-5'>I3C</b>的区别

    蓝牙串口通讯总线——I2C/SPI/UART

    嵌入式工程师在做串口通信调试工作的时候,会经常用到I2C、SPI、UART这3条总线,I2C、SPI、UART这三种通信总线在嵌入式领域很常见,目前主流的SOC芯片都内置了这三种总线的
    的头像 发表于 01-22 09:41 1661次阅读
    蓝牙串口通讯总线——<b class='flag-5'>I2C</b>/SPI/UART