首页 > 其他分享 >PMIC I2C操作

PMIC I2C操作

时间:2023-07-11 18:02:39浏览次数:42  
标签:总线 低电平 节点 发送 仲裁 操作 I2C PMIC

SPMI与I2C的区别

SPMI基于I2C,对I2C做更多的升级和优化,是MIPI行业SoC与外设的标准通信接口。

  • SPMI支持multiple master/multiple slave,支持总线的硬件公平仲裁
  • SPMI速率最高到26MHz,I2C最高3.4MHz

I2C的总线仲裁

  • SCL线的同步(时钟同步)
    SCL同步是由于总线具有线“与”的逻辑功能,即只要有一个节点发送低电平时,总线上就表现为低电平。当所有的节点都发送高电平时,总线才能表现为高电平。正是由于线“与”逻辑功能的原理,当多个节点同时发送时钟信号时,在总线上表现的是统一的时钟信号。这就是SCL的同步原理

  • SDA仲裁
    SDA线的仲裁也是建立在总线具有线“与”逻辑功能的原理上的。节点在发送1位数据后,比较总线上所呈现的数据与自己发送的是否一致。是,继续发送;否则,退出竞争。SDA线的仲裁可以保证I2C总线系统在多个主节点同时企图控制总线时通信正常进行并且数据不丢失。总线系统通过仲裁只允许一个主节点可以继续占据总线

  • 仲裁过程
    以两个节点为例的仲裁过程。DATA1和DATA2分别是主节点向总线所发送的数据信号,SDA为总线上所呈现的数据信号,SCL是总线上所呈现的时钟信号。当主节点1、2同时发送起始信号时,两个主节点都发送了高电平信号。这时总线上呈现的信号为高电平,两个主节点都检测到总线上的信号与自己发送的信号相同,继续发送数据。第2个时钟周期,2个主节点都发送低电平信号,在总线上呈现的信号为低电平,仍继续发送数据。在第3个时钟周期,主节点1发送高电平信号,而主节点2发送低电平信号。根据总线的线“与”的逻辑功能,总线上的信号为低电平,这时主节点1检测到总线上的数据和自己所发送的数据不一样,就断开数据的输出级,转为从机接收状态。这样主节点2就赢得了总线,而且数据没有丢失,即总线的数据与主节点2所发送的数据一样,而主节点1在转为从节点后继续接收数据,同样也没有丢掉SDA线上的数据。因此在仲裁过程中数据没有丢失。

总结:SDA仲裁和SCL时钟同步处理过程没有先后关系,而是同时进行的。

Ref

https://www.eeweb.com/wp-content/uploads/articles-app-notes-files-max77714-i2c-compatible-serial-interface-implementation-guide.pdf

标签:总线,低电平,节点,发送,仲裁,操作,I2C,PMIC
From: https://www.cnblogs.com/lvzh/p/17545526.html

相关文章

  • 修改密码和忘记密码后如何操作
    登录MySQL1.游客模式登录MySQL功能很少,权限低2.管理员登录输入mysql-uroot-p密码3.如果要连接别人电脑上的数据库需要指定的ip和port输入:mysql-h127.0.0.1-P3306-uroot-p123设置管理员密码1.输入mysql-uroot-ppassword2.在提示下依次输入旧密码、......
  • 反射操作泛型
    1、Java采用泛型擦除的机制来引入泛型。Java中的泛型仅仅是给编译器javac使用的,确保数据的安全性和免去强制类型转换的麻烦。但是,一旦编译完成,所有的和泛型有关的类型将全部擦除。2、为了通过反射操作这些类型以迎合实际开发的需要,Java新增ParameterizedType,GenericArrayType、Type......
  • 群晖降级操作
    进入配置选项 进入高级设置 选择运行降级 这个操作会删除版本标记 删除后的版本标记就可以降级安装了 哪怕你不是arpl模式引导的方式也支持降级,就是需要手动找文件操作完成时候就可以正常按照安装流程安装自己喜欢的系统了 ......
  • WEB自动化-键盘操作
    实际工作中,按照用户操作习惯,进行的是模拟键盘和鼠标操作WEB。首先,导入键盘操作需要的服务#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2023/6/2617:32#@File:P01-test-selenium.py#@Software:PyCharmfromselenium.webdriverimportKeysdefP......
  • LabVIEW调用第三方exe软件或操作操作控制第三方软件界面的控件,如操控烧录软件等
    LabVIEW调用第三方exe软件或操作操作控制第三方软件界面的控件,如操控烧录软件等除了模拟鼠标和键盘来实现之后,还可以考虑另外一种方式,使用窗口句柄来直接操作程序如下面图片实例,操作串口助手,修改串口和波特率,并写入数据和读取数据这种方式可以避免电脑的分辨率变化和位置移动等问......
  • 解决Python 画图 默认字体大小的具体操作步骤
    Python画图默认字体大小概述在Python中画图时,默认使用的字体大小可能不符合我们的需求,因此需要对字体大小进行调整。本文将介绍如何使用Python来实现画图时的默认字体大小,并提供详细的代码示例和解释。步骤下面是实现“Python画图默认字体大小”的步骤:步骤操作......
  • 如何实现Python 函数的参数的具体操作步骤
    Python函数的参数在Python中,函数是一种可重复使用的代码块,用于执行特定的任务。函数可以接受参数,参数是函数中用于接受输入值的变量。Python中的函数参数非常灵活,可以有多种形式。本文将介绍Python函数参数的不同类型以及它们的使用方法。位置参数位置参数是指根据参数的......
  • 解决Python 轨迹纠偏算法的具体操作步骤
    Python轨迹纠偏算法实现指南简介在实际应用中,我们经常需要处理采集到的轨迹数据,例如GPS定位数据。由于各种原因,采集到的轨迹数据可能存在噪声、漂移或其他异常情况,因此需要进行轨迹纠偏算法的处理。本文将介绍如何使用Python实现轨迹纠偏算法。整体流程下面是实现Python轨迹纠......
  • 如何实现Python 定时结束程序的具体操作步骤
    Python定时结束程序介绍在编写程序时,有时我们希望程序在经过一段时间后自动结束,而不是一直运行下去。Python提供了一种简单的方法来实现定时结束程序的功能。本文将介绍如何使用Python中的time模块和signal模块来实现定时结束程序的功能,并提供相应的代码示例。使用time......
  • 如何实现Python 的 tsfresh的具体操作步骤
    使用tsfresh库进行Python特征提取介绍在数据处理和机器学习中,特征提取是一个重要的步骤。它涉及从原始数据中提取有用信息并转换为可用于训练模型的特征。Python的tsfresh库是一个功能强大的工具,用于自动化时间序列数据的特征提取。本文将向你介绍如何使用tsfresh库来实现Python......