I2C通信

2023-05-16

        I2 C( 芯片间 ) 总线接口连接微控制器和串行 I 2 C 总线。它提供多主机功能,控制所有 I 2 C 总线特定的 时序、协议、仲裁和定时。
    1,物理层
        1》IIC是一种两线串行的通信方式,SCL(时钟线),SDA(数据线)
        2》IIC是一种高位先行的通信方式
        3》IIC可以实现多主机多从机通信,IIC总线上每一个设备都有唯一的ID
        4》IIC总线是飞利浦公司研发的总线协议
        5》IIC总线上必须接两个上拉电阻,用于总线空闲时,将总线拉高
        6》IIC总线上当两个设备同时发起IIC通信时,由总线仲裁决定谁掌握总线控制权
        7》IIC总线的通信速率  标准100kbit/s     快速400kbit/s    高速3.4Mbit/s
        8》IIC总线SCL的作用:当SCL为低电平时,SDA线上的数据无效,当SCL为高电平时,SDA线上的数据有效!
        9》IIC总线的时钟线一般由主机控制,并且IIC通信必须由起始信号开始,由停止信号结束
        10》IIC总线通信具有应答机制,接收方应答,发送方等待应答
        
    2,协议层
    起始信号:SCL为高电平期间,SDA由高电平跳变到低电平,产生一个有效的下降沿
    停止信号:SCL为高电平期间,SDA由低电平跳变到高电平,产生一个有效的上升沿
    应答信号:SCL为高电平期间,SDA产生一个有效的低电平
    非应答信号:SCL为高电平期间,SDA产生一个有效的高电平
    等待应答信号:拉高SCL,等待SDA线上的高电平或低电平
    发送数据信号:SCL为高电平期间,数据稳定,SCL为低电平期间,运行SDA数据发生改变
    接收数据信号:拉高SCL,读取SDA线上的数据,拉低SCL,让从机准备有效数据
    
    
    3,IIC信号产生的途径:
        1》片上外设
        2》利用GPIO口模拟IIC协议!
        
    4,总线仲裁
        “低电平优先原则”------谁的低电平时间长,谁掌握总线控制,谁先发出低电平,谁掌握总线控制 
        
    5,EEPROM----电可擦除可改写存储器-----掉电保护功能
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

I2C通信 的相关文章

  • I2C读取IST8310

    文章目录 I2C简介I2C传输过程I2C仲裁IST8310磁力计Cube配置相关函数HAL I2C Mem Read函数HAL I2C Mem Write函数IST8310的初始化 程序流程代码编写 I2C简介 2C是一种半双工双向二线制的
  • 模拟I2C

    I2C具体内容参考资料 https blog csdn net sternlycore article details 85600668 https blog csdn net qq 43460068 article details 122
  • 【STM32】入门(六):I2C协议

    STM32 STM32单片机总目录 1 常见I2C设备 EEPROM 温湿度传感器 xff0c 例如 xff1a AHT10 电量计 xff0c 例如 xff1a TI的BQ34Z100 日历时钟 模数或数模转换器 2 I2C总线结构 I2
  • I2C的 SCL和SDA为什么要上拉

    因为允许把多个I2C总线器件连接到总线上 xff0c 连接到I2C总线上的器件是漏极开路或集电极开路的 xff0c 可以实现线与功能 同时 xff0c 因为接了上拉电阻 xff0c 在总线空闲期间 xff0c SDA和SCL都是高电平 xf
  • PX4通过I2C方式添加自定义传感器(2)

    PX4 I2C通信方式传感器驱动分析 xff08 以ets airspeed为例 xff09 1 说明 这篇文章我们就来看看I2C传感器的驱动过程 xff0c 当然里面也有很多东西我不是很理解 xff0c 所以仅谈我领悟的一些东西 我就以e
  • I2C驱动体系结构一:驱动软件概念与对应硬件的关系

    一 概念 xff1a 1 设备 xff1a struct device xff1a 该数据结构是对物理设备的软件抽象 xff0c 比如I2C slave xff08 对应i2c client xff09 和I2C 适配器 xff08 对应i
  • 通信方式梳理:GPIO,I2C,SPI,UART,USART,USB的区别

    GPIO xff0c I2C xff0c SPI xff0c UART xff0c USART xff0c USB的区别 1 简单区别 xff1a 1 xff09 GPIO xff08 General Purpose Input Outpu
  • I2C 简介

    1 I2C 简介 这里的内容参考的是 2014 4 4 的 V 6 版本的官方 I2C Bus 规格书 xff0c 第六章有给出相应的链接 1 1 引脚 I2C 一般而言是一种同步半双工的通信方式 xff0c 所以除了电源引脚之外 xff0
  • 基于I2C/SPI的温湿度采集与OLED显示

    基于I2C SPI的温湿度采集与OLED显示 一 AHT20温湿度采集1 I2C2 温湿度采集代码效果 二 OLED显示1 显示学号姓名2 诗句显示 三 总结四 参考 一 AHT20温湿度采集 1 I2C 解释什么是 软件I2C 和 硬件I
  • STM32 I2C_OLED显示汉字及屏幕滚动

    STM32 I2C OLED显示汉字及屏幕滚动 文章目录 STM32 I2C OLED显示汉字及屏幕滚动一 I2C以及AHT20温湿度传感器介绍二 用0 96寸OLED屏幕显示数据1 OLED介绍2 样例测试 三 汉字编码原理编码排序A0A
  • Linux控制I2C/SMBus设备

    平台 xff1a 树莓派 bcm2835 Raspberry Pi 3 Model B Rev 1 2 I2C是Philips开发的一种两线通信协议 xff0c 常用于一些对速度要求不高的小型器件上 SMBus是系统管理总线 xff0c 基
  • stm32的HAL库i2c从机实现

    stm32的i2c默认就是slave模式 xff0c 本文基于HAL库实现中断方式的接收和发送 xff0c 首先是初始化gpio和i2c xff0c 代码如下 xff1a I2C HandleTypeDef I2cHandle void H
  • STM32设置为I2C从机模式

    STM32设置为I2C从机模式 目录 STM32设置为I2C从机模式 前言 1 硬件连接 2 软件编程 3 运行测试 3 1 I2C连续写入 3 2 I2C连续读取 3 3 I2C单次读写测试 4 总结 前言 STM32的I2C作为主机的情
  • BH1750 传感器实战教学 —— 驱动移植篇

    前言 上一篇 BH1750 的实战教学我们说明的实际应用中传感器的硬件设计 BH1750 传感器实战教学 硬件设计篇 我们提到过在本次使用的芯片为 51 内核 I2C 通讯驱动实现与 STM32 上还是有很大区别的 对于我们来说 已经掌握了
  • CORE-ESP32C3

    目录 参考博文 源于网友oled eink aht10项目 源代码修改及复现说明 主要修改 显示效果 编辑硬件准备 软件版本 日志及soc下载工具 软件使用 接线说明 天气显示屏 硬件接线 温度采集 日期温度显示屏 正常初始化LOG 示例代
  • 为什么我只收到第一个地址字节? (I2C协议)

    期望从机确认并返回数据 但它没有 这是我的协议 这是我的数据表 数据表提到 从机将通过首先发送 MSB 字节来应答 Byte0 和 byte1 包含 预测值 所有字节均由主机确认 Edit 源库 另外仅供参考 我使用的是 Arduino F
  • 在 U-Boot 中使用 I2C 读取多个字节

    我的 Freescale p1022tw 板的 I2C 驱动程序有问题 U Boot 的控制台上有一个从 I2C 设备读取的命令 i2c md chip address 0 1 2 of objects 当我从 id 为 0x60 地址为
  • ADXL345 与 ESP32 I2C 垃圾值问题

    我已根据以下教程使用 I2C 接口将 ESP32 与 ADXL345 连接起来Tutorial http www esp32learning com code esp32 and adxl345 sensor example php 但是
  • 如何将 I2C 地址传递给 Adafruit CircuitPython 代码? (运行 ADS1115)

    我正在尝试使用两个 I2C 地址 0x48 0x49 在一个 Raspberry Pi 上运行两个 Adafruit ADS1115 每个设备的地址可以通过将 ADDR 引脚连接为高电平 0x49 或使其悬空 默认为 0x48 来设置 我已
  • Linux、ARM:为什么仅当启动时存在 I2C GPIO 扩展器时才创建 gpiochip

    在 imx6sx 硬件平台 NXP 嵌入式 ARM 上使用 Linux 3 14 52 问题是设备树中指定的 PCF8575 I2C GPIO 扩展器不会实例化为 sys class gpio 结构中的设备 除非它们在内核启动期间存在 这些

随机推荐

  • 零基础制作一个ST-LINK V2 附PCB文件原理图 AD格式

    原文地址 零基础制作一个ST LINK V2 附PCB文件原理图 AD格式 STM32 8 相关文章 1 STLinkV2原理图 STLinkV2原理图 百度文库 2 博文精选 ST LINK V2 DIY 之 原理图 amp PCB 博文
  • VNC实现Windows远程访问Ubuntu 16.04(无需安装第三方桌面,直接使用自带远程工具)----本人亲测可用

    原文地址 VNC实现Windows远程访问Ubuntu 16 04 xff08 无需安装第三方桌面 直接使用自带远程工具 xff09 蒲公英云 相关文章 1 VNC实现Windows远程访问Ubuntu 16 04 xff08 无需安装第三
  • 开源的DirectUI界面开发库DUILIB试用demo (Win32程序)

    原文地址 http blog sina com cn s blog 3f3c8ca50100pvzr html 相关网帖 1 duilib使用注意 http blog csdn net mail cm article details 756
  • “小身材,大智慧”——STM32 NUCLEO-F031K6测评(一)

    原文地址 http bbs eeworld com cn thread 479351 1 1 html 相关文章 1 NUCLEO F031K6 https blog csdn net wowocpp article details 826
  • 使用STM32F103CBT6自制ST LINK V2-1多功能烧录器

    基于STM32的ST LINK V 2 1多功能烧录器制作 前 言根据官方相关文档可知 ST LINK V2 1拥有以下四大功能 xff1a ST LINK V2 1制作教程和资料说明主空部分原理图 xff08 参考 xff09 xff1a
  • 分享几个可用的在线运行Linux 脚本网站

    1 codingground 代码域 访问链接 xff1a https www tutorialspoint com unix terminal online php 直接打开就可以操作了 xff0c 练习非常方便 2 jor1k 访问链接
  • STM32开发记录三: 硬件IIC调试(STHC3温湿度传感器)

    一 STM32 CubeMX配置 I2C4 init function void MX I2C4 Init void hi2c4 Instance 61 I2C4 hi2c4 Init Timing 61 0x20A0C4DF hi2c4
  • openmv中模块解析

    模块解析 1 sensor摄像头模块 xff1a 包含了感光芯片与图像预处理的各项操作 sensor reset 重置并初始化OpenMV sensor set pixformat sensor RGB565 选择颜色空间与像素格式RGB5
  • 视觉SLAM——位姿估计

    看完位姿估计原理过一段时间又忘记了 xff0c 现参考高翔视觉SLAM十四讲做本文笔记 SLAM中的里程计都是基于特征点方式的算法 1 特征匹配 特征匹配是视觉SLAM中极为关键的一步 它解决了数据关联问题 通过图像与图像或图像与地图间描述
  • 工业相机的术语相关

    一 工业相机术语 像素 xff08 pixel xff09 xff1a 图像上的最小组成单元 图像由小方格即像素组成的 xff0c 这些小方块都有一个明确的位置和被分配的色彩数值 xff0c 小方格颜色和位置就决定该图像所呈现出来的样子 像
  • C++学习笔记(二)

    1 C 43 43 简介 参考C 43 43 菜鸟教程 C 43 43 是一种静态的编译式的通用的大小写敏感的不规则的编程语言 xff0c 支持过程编程 对象编程和泛型编程 C 43 43 综合了高级语言和低级语言的特点 xff0c 是一种
  • Ubuntu 16.04 ifconfig输出ens33,不能联网问题的解决

    VM 12 0 ubuntu 16 04 问题 xff1a 在NAT模式下联网的设置见前一个博文 xff0c 又在同一台电脑下安装ubuntun16 04虚拟机 xff0c 不能联网 xff0c 用ifconfig时输出如下 xff1a 并
  • C++:internal compiler error解决

    编绎文件时 xff0c 出现这个问题原因一般就是内存不够 xff0c 若是在虚拟机上 xff0c 关掉虚拟机 xff0c 可直接调节虚拟机内存大小 xff0c 然后重新启动即可
  • Error: Could not find the following Boost libraries:boost_serialization

    Boost 1 59 0 CMake 3 7 2 使用CMake编译时出现以下错误 xff1a 无法找到以下库 xff0c 但是编译好的库中是有libboost serialization libboost system等这些文件的 xff
  • ubuntu下make时对XX未定义的引用

    Q1 库对XX未定义的引用 xff0c 如 xff1a Thirdparty vio g2o lib libvio g2o so xff1a 对 39 IMUErrorModel lt ceres Jet lt double 38 gt g
  • Birch算法介绍

    目录 前言 一 Birch算法基本思想 二 聚类特征CF和CF 树 1 聚类特征CF 2 CF tree 3 CF tree 的生成 三 Birch算法流程 1 birch算法的优化 2 算法优缺点 四 算法实验实例 1 研究不指定簇数的情
  • [转]伪代码的写法

    伪代码的写法 xff08 附 xff1a 12种排序算法详解 xff09 转自 xff1a http blog sina com cn s blog 134451adb0102wfgu html 伪代码 xff08 Pseudocode x
  • linux C++调用python3的程序

    环境 xff1a ubuntu1404 python3 4 3 首先安装对应python不同版本的调用库 sudo apt get install python3 4 dev xff0c python脚本基本不用变 xff0c 在C 43
  • Bug 记录

    Bug记录 CocosCreator打包出现 Error xff1a Program type already present android support v4 os ResultReceiver MyResultReceiver 解决
  • I2C通信

    I2 C 芯片间 总线接口连接微控制器和串行 I 2 C 总线 它提供多主机功能 xff0c 控制所有 I 2 C 总线特定的 时序 协议 仲裁和定时 1 xff0c 物理层 1 IIC是一种两线串行的通信方式 xff0c SCL xff0