I2C接口及时序

2023-05-16

1. I2C学习要点

1.有2条双向串行线,一条数据线SDA,一条时钟线SCL

如果只做master SCL可以只是输出

SDA在PAD上一定是inout pin,当然转为数字信号时可以分为两组

inout    SDA;

input    sda_i;

output  sda_o;

wire sda_oen;

assign SDA = (sda_oen == 0) ? sda_o : 1'bz;

assign sda_i = SDA;

在GPIO的OD模式,输出三态缓冲输出高阻态时,SDA总线上是高电平,所以GPIO的oen可直接接sda_o,输出三态缓冲门输入tie0

实际与GPIO的连接可参考:

I2S和I2C分别如何连接pad_cy413026的博客-CSDN博客典型的pad及其接口如下图所示:一般情况下IE信号直接tie 1.因为大部分都不会做输入控制。https://blog.csdn.net/cy413026/article/details/128413260?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128413260%22%2C%22source%22%3A%22cy413026%22%7D

2.以1byte为数据传输单位,如果需要继续传输,需要数据接收端(可能是slave,也可能是master)在SDA上返回ACK

也就是说在发送8bit数据后 发送数据端会释放总线,oen=1输出高阻,等待接收端在第9个SCL高电平时返回SDA=0,否则进入stop

3.输出SCL的是master

4.slave有地址,master要和某个slave通信时 先发送地址,广播地址为0,地址的bit0 表示读还是写

5.I2C采样数据在SCL高电平,而不是边沿,所以SDA数据在SCL低电平时可以变化,在高电平保持

6.一旦在SCL的高电平期间 SDA发生变化,要么时start状态要么是stop状态

7.可以使用普通GPIO口模拟I2C,但要需要将GPIO配置成OD模式(开漏模式)

2.接口时序

具体时序参考以下:

【科普贴】I2C接口详解——偏硬件解析_湉湉家的小虎子的博客-CSDN博客_i2c接口一、 I2C接口简介I2C最早是Philips公司开发的一款简单的双向总线,实现有效的IC控制。把这个总线写成Inter IC 简称IIC或I2C(PS:说白了2就是两个“I”的意思。)I2C总线一些特征:1、只有两根线分别是串行数据线(SDA),串行时钟线(SCL)。2、每个连接到总线的器件有唯一一个地址。3、总线中可以存在一个主机多个从机的模式,也存在多个主机的模式(实际应用非常少,本文不做累述)。4、使用串行8位双向数据传输方式。有标准模式(Standard mode)传输速度达1https://blog.csdn.net/zangqihu/article/details/123247532

I2C接口__Charles_Chen的博客-CSDN博客_i2c接口1.I2C协议 2条双向串行线,一条数据线SDA,一条时钟线SCL。 SDA传输数据是大端传输,每次传输8bit,即一字节。 支持多主控(multimastering),任何时间点只能有一个主控。 总线上每个设备都有自己的一个addr,共7个bit,广播地址全0. 系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,具体由原理图和芯片手册共同定义! 例如: 以AT24C02存储器为例: 通过查阅芯片手册发现 设备地址=01010A2A1...https://blog.csdn.net/chenhuanqiangnihao/article/details/112556391

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

I2C接口及时序 的相关文章

  • i2c总线最多可以挂多少个ic

    i2c总线最多可以挂多少个ic 有哪些因素决定 xff1f 1 由IIC地址决定 xff0c 8位地址 xff0c 减去1位广播地址 xff0c 是7位地址 xff0c 2 7 61 128 xff0c 但是地址0x00不用 xff0c 那
  • i2c信号的ACK与NACK

    nbsp nbsp nbsp nbsp nbsp nbsp nbsp 我们平时在调试I2C的时候可能很少去关注NACK信号 只知道如果Master发送数据 MSB先发 LSB后发 连续发送一个字节 8个bit 之后Slave会回复一个ACK
  • I2C读取IST8310

    文章目录 I2C简介I2C传输过程I2C仲裁IST8310磁力计Cube配置相关函数HAL I2C Mem Read函数HAL I2C Mem Write函数IST8310的初始化 程序流程代码编写 I2C简介 2C是一种半双工双向二线制的
  • 树莓派 I2C通信,控制多个I2C从设备

    1 需要安装 i2c tools工具 在黑框输入 xff1a sudo apt get install i2c tools 2 后续编程使用python库 在黑框输入 xff1a sudo apt get install python sm
  • 【STM32】入门(六):I2C协议

    STM32 STM32单片机总目录 1 常见I2C设备 EEPROM 温湿度传感器 xff0c 例如 xff1a AHT10 电量计 xff0c 例如 xff1a TI的BQ34Z100 日历时钟 模数或数模转换器 2 I2C总线结构 I2
  • DHT12温湿度传感器IIC,I2C接口调试心得和代码说明

    来源 xff1a http www fuhome net bbs forum php mod 61 viewthread amp tid 61 2141 DHT11那个单总线的温湿度传感器用的很多了 xff0c aosong推出了DHT12
  • I2C的 SCL和SDA为什么要上拉

    因为允许把多个I2C总线器件连接到总线上 xff0c 连接到I2C总线上的器件是漏极开路或集电极开路的 xff0c 可以实现线与功能 同时 xff0c 因为接了上拉电阻 xff0c 在总线空闲期间 xff0c SDA和SCL都是高电平 xf
  • UART、I2C、SPI接口常见面试问题总结

    UART 定义 xff1a Universal Asynchronous Receiver Transmitter 通用异步收发传输器 特点 xff1a 速率不快 可全双工 结构上一般由波特率产生器 UART发送器 UART接收器组成 xf
  • AM2322温湿度传感器(地址0XB8)---I2C总结(I2C_ModBus协议)

  • 什么是I2C通信

    ARM体系 I2C通信 一 什么是I2C 1 I2C总线是由Philips公司开发的一种简单 双向二线制同步串行总线 它只需要两根线即可在连接于总线上的设备之间传送信息 2 主设备用于启动总线传送数据 xff0c 并产生时钟以开放传送的设备
  • i2c那些坑

    origin http bbs ntpcb com simple t126695 html I2C 的那些坑 一般情况下 xff0c i2c 设备焊接没什么问题 xff0c 按照设备手册一步步来 xff0c 基本上就顺风顺水能够用起来 如果
  • stm32的HAL库i2c从机实现

    stm32的i2c默认就是slave模式 xff0c 本文基于HAL库实现中断方式的接收和发送 xff0c 首先是初始化gpio和i2c xff0c 代码如下 xff1a I2C HandleTypeDef I2cHandle void H
  • 海思文件系统缺少文件himm 、i2c_read 、i2c_write 、ssp_read 、ssp_write

    原因 xff1a 海思根文件默认没有把himm i2c read i2c write ssp read ssp write工具集成在bin里 xff0c 但是在sdk中 解决办法 xff1a cd osdrv tools board reg
  • I2C驱动App

    1 查看eeprog c源代码 copyright C by 2009 Guangzhou FriendlyaRM in China email capbily 64 163 com website arm9 net include lt
  • 串口通信协议 UART+I2C+SPI

    UART 异步 串行 全双工 I2C SPI 不同通信协议比较 UART UART协议详解 UART通信 xff0c 接收与发送 xff08 详细版 xff0c 附代码 xff09 UART串行通信详解 待整理 UART是Universal
  • linux内核I2C子系统详解——看这一篇就够了

    1 I2C通信协议 参考博客 I2C通信协议详解和通信流程分析 2 通过KXTF9 2050芯片分析I2C协议 参考博客 通过KXTF9 2050芯片分析I2C协议 3 I2C子系统框架 1 I2C子系统分为三层 I2C核心层 I2C适配器
  • I2C接口

    I2C的结构和特点 他是一具有两条总线线路 即一条串行数据线SDA和一条串行时钟线SCL 每个连接到总线上的器件都可以通过唯一的地址联系主机 它是一个真正的多主机总线 数据传输通过冲突检测和仲裁防止数据被破坏 串行的8位双向数据传输位速率更
  • Windows IoT 和 DS3231 RTC 时钟

    对于我的项目 我需要当前时间和日期 不幸的是 当 RP2 关闭时 它就会失去一切 接下来的事情是 我将没有互联网连接来使用 NTP 为此 我需要实现 DS3231 RTC 模块 所有设备的通信都通过 I2C 运行 Raspberry Ard
  • 如何将 I2C 地址传递给 Adafruit CircuitPython 代码? (运行 ADS1115)

    我正在尝试使用两个 I2C 地址 0x48 0x49 在一个 Raspberry Pi 上运行两个 Adafruit ADS1115 每个设备的地址可以通过将 ADDR 引脚连接为高电平 0x49 或使其悬空 默认为 0x48 来设置 我已
  • 是否有通用 I2C 命令来查看设备是否仍然存在于总线上?

    是否有通用的 I2C 命令来查看设备在初始化一次后是否仍然存在于总线上 例如 OLED 显示器 我问这个的原因是为了避免主程序由于库代码中存在无限循环而冻结 当设备断开连接时 例如 Wire 库 在 MCU 启动时 我想检查设备是否可用 并

随机推荐

  • STM32_串口中断接收数据_空闲中断

    STM32 串口中断接收数据 空闲中断 引言 xff1a 1 串口中断接收数据首先要保证完整性 xff08 设置串口中断优先级 xff09 2 串口中断接收数据要保证实时性 xff08 打开串口空闲中断 空闲时间是2个字节的时间 xff09
  • STM32调试方式JTAG&SWD的区别

    在学习STM32时 xff0c 我们经常会遇到JTAG和SWD的调试方法 xff0c 还涉及到Jlink Ulink Stlink等 xff0c JTAG和SWD是ARM板一种调试模式 后面三种都是实现这种模式的一种工具 xff0c 他们之
  • 大端序、小端序和MSB、LSB的区别和举例

    大端序 小端序和MSB LSB的区别和举例 1 字节序序 不同平台上数据存储方式 xff1a 大端字节序 小端字节序 字节序就是一个多字节数据的低位置 一般是低8位 放置在存储单元的高有效位 高地址 还是 低有效位 低地址 的概念 xff1
  • 将word文件中的文本转成字符串

    将word文件中的文本转成字符串 需要用到apache poi 下面的一些jar包 下面是pom文件 xff0c 因为我也是在网上找的 xff0c 所以可能有多余的jar包 xff1a lt dependency gt lt groupId
  • spring boot线程里bean注入失败

    在多线程处理问题时 xff0c 无法通过 64 Autowired注入bean xff0c 报空指针异常 xff0c 在线程中为了线程安全 xff0c 是防注入的 xff0c 如果要用到这个类 xff0c 只能从bean工厂里拿个实例 sp
  • python生成Excel

    import xlwt import random lonlat 61 wb 61 xlwt Workbook ws 61 wb add sheet point for i in range 1000 lon 61 random unifo
  • python爬虫商品信息,并生成Excel

    刚开始学习爬虫 xff0c 记录一下 我爬了一页的数据 xff0c 想要爬取多页的 xff0c 只需要遍历 xff0c 改变url中最后的数字 xff0c 44是一页显示的条数 xff0c 第二页就是2 44 xff0c 以此类推 url中
  • Qt中的类

    一 xff0e 信号与槽 1 QT元对象系统 QT元对象系统提供三件事情 xff1a 1 QObject类 2 Q OBJECT 宏 xff0c 声明在类私有段中 3 moc编译器 xff1a 为每个Qobject子类对象生成实现元对象特性
  • 解析HTTP请求报文(GET、POST)

    目的 xff1a 一个WEB服务器需要解析客户端 xff08 浏览器 xff09 发来的请求 xff0c 两种常见的请求方式是GET和POST GET的请求格式 xff1a GET请求没有请求体只有请求头GET请求的请求参数放在URL后加上
  • 数字电视的格式(BT.601 BT.709 BT.2020)和接口(BT.656 BT.1120 BT.2077)

    规格和格式接口特性 标清数字电视 xff08 SDTV xff09 BT 601BT 656 高清数字电视 xff08 HDTV xff09 BT 709BT 1120 超高清数字电视 xff08 UHDTV xff09 BT 2020BT
  • Linux下TCP协议客户端和服务器之间的通信

    tcp 传输控制协议 1 TCP 是 种可靠的传输服务 xff08 不会出现传输差错 丢失 重复等各种现象 xff09 2 是 向连接的服务 3 个 tcp 连接只有两个端点 xff0c 是 对 通信 4 是可靠传输 拥塞控制 流量控制 超
  • DSO/LDSO 等直接法相关资料整理

    直接法视觉里程计 SLAM的学习门槛较特征法高 xff0c 我将DSO LDSO 等直接法相关资料尽量按作者分类整理如下 xff0c 毕竟沿着一个人的思路学习跨度不会太大 xff1b 此外 xff0c 将一些涉及的其他知识也一并整理 xff
  • SLAM和里程计评估工具——evo使用方法全解

    前言 本帖的主要内容是整理evo的使用方法及各种命令 xff0c 不含安装步骤及过程 xff0c 还未安装的请移步其他博主 evo目前支持的公开数据集格式有 xff1a TUM KITTI EuRoC以及ROS bagfile 如果使用的数
  • 陀螺仪加速度计MPU6050程序与校准方法

    文章目录 前言一 陀螺仪与加速度计简介二 程序使用1 初始化2 读取数据 三 误差校准1 陀螺仪校准2 加速度计校准3 校准后的输出 四 源码获取 前言 本文将介绍陀螺仪和加速度计的使用程序和校准方法 xff0c STM32的程序代码可从文
  • 物联网网关有效解决供水管网监测方案难题

    一 系统概述 管网在线监测系统解决方案设计目的在于 xff1a 解决管道爆管问题 管网水质二次污染影响饮用水质量 管网漏损导致严重的资源浪费等 xff0c 及时发现管网故障 xff0c 提高维护效率 降低损失 xff0c 保障输水 供水质量
  • 基于环保数采仪的有毒性气体监控系统

    在我们的日常生活中 如使用天然气 液化气的厨房 和工业环境中有发生有毒气体泄露的情况 xff0c 同时在工业的生产部门中存在将有毒气体直接排放进空中的情况 xff0c 不仅直接影响作业者的安全与健康 xff0c 而且污染周边的环境 因此 x
  • 智慧路灯远程智能控制

    智慧路灯远程智能控制在智慧城市建设中意义重大 传统配电柜灯控只能实现路灯群简单的定时开关 xff0c 且需要人力巡查故障 xff0c 无法对单灯进行控制 xff0c 效率低且电力浪费 5G智慧路灯杆 xff0c 43 路灯云平台 xff0c
  • 污水站监测解决方案

    污水站对不达标废水通过各种物理法 化学法和生物法进行强化加工处理 xff0c 以排入水体或城市管道旨在减少对环境的污染循环再利用 xff0c 以达到理想的环境效益 经济效益和社会效益 污水处理不当而排除 xff0c 严重破坏城市谁环境 生态
  • 5G智慧路灯杆 赋能物联网智慧城市

    计讯物联5G智慧路灯杆的高集成度逐步成为物联网时代新型智慧城市建设中市政 交通 安防 环境等信息化接入口 多功能智慧灯杆集智能灯控 视频监控 wifi覆盖 新能源充电桩 安防报警 环境监测 交通管制 led屏 音视频广播等多功能于一体 xf
  • I2C接口及时序

    1 I2C学习要点 1 有2条双向串行线 xff0c 一条数据线SDA xff0c 一条时钟线SCL 如果只做master SCL可以只是输出 SDA在PAD上一定是inout pin xff0c 当然转为数字信号时可以分为两组 inout