主机模拟i2c检测设备时出现错误死循环_4线I2C比2线I2C多了些什么呢

点击上方公众号名称关注,获得更多内容

edfb32d550431159d1ce1d1d5b0c6a21.gif ✎ 编 者 悟 语

       简单的事有时顾不得长远,却能静心于眼前;纷繁的事,也许能提供长久的支撑,却容易生出诸多纷扰。

文 章 导 读

     我们用得比较多的是2线I2C,随着技术的发展,为了满足更为复杂的通讯需求,增强通信效率,4线I2C出现了,今天我以RT1052中的LPI2C的结构为例,带大家看看它与2线I2C有啥区别,欢迎交流哈,db832409502266a666e59e95ddca74af.png

1先看看LPI2C的主从结构吧

    下图为RT1052低功耗I2C的结构图。

1edc02e90cb43e583a0503e9f3d2901d.png

    可以看到其上放的方框为主机部分,主要由FIFO、配置寄存器、主机逻辑模块、预分频器和错误过滤器组成。

    从机由发送数据、接收数据/地址、配置寄存器、从机逻辑模块、错误过滤器组成。

    时钟有功能时钟、外部时钟、总线时钟。

    ① 功能时钟。

    它是LPI2C的根时钟LPI2C_CLK_ROOT,有PLL分配或外部OSC晶振作为时钟源。

    LPI2C功能时钟与总线时钟异步,在低功耗模式其仍可以处于启用状态,此时LPI2C主机的I2C总线仍可以进行数据传输。

    LPI2C从机也使用功能时钟来支持数字滤波器和数据保持时间配置。

    LPI2C主机通过一个预分频器将功能时钟分开,产生的频率必须至少比I2C总线带宽快8倍。

    ② 外部时钟。

    LPI2C从机逻辑直接从外部引脚SCL和SDA(或SCLS和SDAS,如果主和从在不同的引脚上实现)获取时钟。

    这使得,即使LPI2C功能时钟被禁用,LPI2C从机仍可以处于工作状态。

    注意:如果LPI2C功能时钟被禁用,则必须禁用LPI2C从数字滤波器,这可能会影响对I2C规范中某些定时参数的一致性,例如数据保持时间。

    ③ 总线时钟。

    指RT1052内部外设总线(Internal Soc Peripheral Bus)的时钟。

    总线时钟仅用于总线访问控制和配置寄存器。

    总线时钟频率必须足以支持LPI2C主寄存器和从寄存器的数据带宽要求。

2从引脚对比下4线与2线的差别

     2线I2C与4线I2C引脚功能对比如下。

信号名称2线4线I/O
SCLLPI2C时钟线SCL4线模式的SCL输入I/O
SDALPI2C数据线SDA4线模式的SDA输入I/O
HREQ主机请求如果主机请求有效且I2C总线空闲,将启动一个LPI2C主机传输。同2线I
SCLSI2C辅助时钟线未用4线模式的SCLS输出。如果主机和从机被配置为独立的,此引脚为LPI2C的从机SCL引脚I/O
SDASI2C辅助数据线未用4线模式的SDAS输出。如果主机和从机被配置为独立的,此引脚为LPI2C的从机SDA引脚I/O

    可以看出4线I2C多出了SCLS和SDAS时钟线和数据线。

    当LPI2C被配置为主、从机独立引脚的模式时,SCL和SDA线用于主机模式,而SCLS和SDAS线则用于从机模式,互不干扰。

    HREQ也增加的引脚,它用于外部设备向LPI2C主机申请发起通讯的请求。

    总结一下:

    4线模式:SCL、SDA对应输入,SCLS,SDAS对应输出。

    主从机独立:SCLS,SDAS对应从机。

3从总线结构对比2线I2C与4线I2C

    2线总线结构图如下所示。

0b6d5c7bf267247ea9945548eef34079.png

    可以看出手册中的2线总线图和我们平时见的是一样。

    4线总线结构图如下所示。

cee3e452214402ef8ef1ae268021f8f1.png

    其中虚线即为下图的硬件驱动电路。

    4线模式,硬件中会限制数据线是SDA(输入)还是SDAS(输出)起作用,收发不同时,所谓的4线其实是假的,只是分开走数据,这样的好处是干扰少了。

    有些应用程序可能会在I2C总线上提供大量的负载和噪声,为了确保可靠的I2C操作,可以使用4线接口,将2条线分为输入和输出。

    利用上图所示的晶体管、电阻和二极管,可以制造出自己的廉价线路驱动器。

总结

    今天给大家对比了下LPI2C的4线和2线总线的构成及差异,后面还会有I2C相关的内容,小伙伴们尽情期待哈,e6201f1ac2a755580c14ea59d748df2f.png

    有问题可以进行读者讨论或者后台留言交流,公众号18年后新申请的,文章后不支持留言功能的。

推荐文章:

结合RT1052谈谈访问存储机制——缓冲、缓存、共享、执行、阻塞

在RT1052下使用uC-Probe 监控UCOSIII中的资源

RT1052引导相关概念

RT1052的eDMA(一)——概述

RT1052的eDMA(二)——功能描述

RT1052的eDMA(三)——eDMA的工作流程与DMAMUX的使用

RT1052的eDMA(四)——scatter_gather程序讲解

专辑推荐:

Python技能专辑

C语言专辑

IDE调试专辑

软件推荐专辑

软实力专辑

扫码关注我们

2479180b430265f7e2bed96c23093d59.png

2d19f086dc4074de93cb86168c0cd40b.gif Game Ov e r!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值