首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

IIC

下图是一个嵌入式系统中处理器仅通过2根线的IIC总线控制多个IIC外设的典型应用图 ?...IIC 通信协议 IIC 串行总线一般有两根信号线,一根是双向的数据线 SDA ,另一根是时钟线 SCL ,其时钟信号是由主控器件产生。...所有接到 IIC 总线设备上的串行数据 SDA 都接到总线的 SDA 上,各设备的时钟线 SCL 接到总线的 SCL 上。对于并联在一条总线上的每个 IIC 都有唯一的地址。...IIC 总线操作IIC 总线的操作实际就是主从设备之间的读写操作。大致可分为以下三种操作情况: 主设备往从设备中写数据 数据包括从机寄存器地址和需要写入寄存器的数据data ?...第三种操作在单个主设备系统中,重复的开启起始条件机制要比用STOP终止传输后又再次开启总线更有效率 FPGA 程序实现 物理层源码 -----------------------------------

98911

IIC协议

c.IIC是真正的多主机总线,(而这个SPI在每次通信前都需要把主机定死,而IIC可以在通讯过程中,改变主机),如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏。...一个典型的IIC接口如下图(1)所示 ? 图(1) (3)IIC的协议层 IIC的协议层才是掌握IIC的关键。...设备里写东西,然后再紧接着写入IIC设备里的寄存器地址,而我直接写入了0x68,导致出错},每次数据传送总是由主机产生的终止信号结束。...即使是含有IIC硬件的单片机(如stm32 103系列)也有一定的缺陷,所以一般也会模拟IIC的时序。现将具体时间截图如下: ?...I2C_SDA_H; //主机释放数据总线,等待从机产生应答信号 delay_us(1); I2C_SCL_H; delay_us(1); //等待从机对数据总线的操作

1.1K10

IIC实测波形入手,搞懂IIC通信

本文将从实测的IIC波形入手,带你看到真实的IIC样子,进而去理解IIC的通信原理。...但主设备也可以产生重复的开始信号去操作另一台从设备,而不发出结束标志。...所有的SDA 信号变化都要在SCL 时钟为低电平时进行,除了开始和结束标志 1.4 常用的数据收发方式(时序) 上面1.3小节是IIC的基础时序,在实际使用中,一般是对某个IIC器件的某个寄存器进行读写操作...,因此,对于寄存器的读写操作,还要遵循下面的组合时序逻辑。...4.3 配置从机寄存器(单字节写与多字节写) 对于寄存器的配置,也就是IIC的写寄存器操作,我就不放图了,参考上面的“常用的数据收发方式(时序)”以及上面的IIC读寄存器的真实波形,IIC的写寄存器的真实波形

1.8K41

Linux驱动开发的IIC设备驱动的投机取巧

前言 LinuxIIC驱动想必大家都耳熟能详,网上也有很多相关的教程。 网上的教程总结,比如: 方法问题描述Linux 3.X.X版本之后,设备树+驱动此方法是比较符合linux驱动的写法的。...他将会操作多个文件 上面的做法都有些困难及弊端存在,经过摸索了一遍Linux的I2C驱动框架,我发现可以很精简的写一个I2C设备的设备驱动。...分析I2C总线驱动说明 I2C总线驱动的代码在linux的源码中--i2c-dev.c中。 在代码中可以看到他提供一套文件操作接口,open,read,write,close接口。...i2cdev_ioctl_rdwr()接口是i2c总线驱动对从设备操作的进一步封装,我们进一步看一下这个函数。...,如果为读操作,将i2c_transfer接口接收回来的数据拷贝到用户态。

1.8K20

2.1 IIC协议的FPGA实现(一)IIC 总线规范简介

图2 10 24LC04 的写操作(主机视角)   IIC 总线的时序,感觉上一组完成的操作宛如是一堆拼图。...如图2 10所示,那是 24LC04的写操作,时序先填上为起始位,再来是设备地址,余下是应答位,随之是数据地址,然后又是应答位,接着是写如数据,再一次应答位,最后挂上结束位以示一次性的写操作已经完成。...由于此刻是写操作,所以设备地址的访问方向是“写”,所以访问方向位设置为 0。 ?                     ...图2 11 24LC04 的读操作(主机视角)   图2 11是 24LC04 的读时序,同样它也是由一堆“拼图”组合而成。相较写操作,读操作不仅多了许多“拼图”,而且途中也改变访问方向。...那么,读操作的经过如下所示: (一) 主机发送起始位; (二) 主机发送设备地址(写); (三) 等待从机应答; (四) 主机发送数据地址; (五) 主机发送起始位; (六) 主机发送设备地址(读);

1.4K10

2.1 IIC协议的FPGA实现(二)IIC协议的FPGA实现

2.1 IIC协议的FPGA实现 2.1.2 IIC协议的FPGA实现               图2 13 IIC模块的建模图   图2 13是 IIC 储存模块的建模图,左边是顶层信号,右边则是沟通用的问答信号...IIC 总线的起始位也就类似串口或者 PS/2 等传输协议的起始位,然而不同的是, IIC 总线的起始位是 SCL 拉高 TR + TSU_STA + THD_STA + TF 之久,换之 SDA 则是拉高...图2 15 结束位   图2 15是结束位的时序图, IIC 设备的操作好坏一般都取决结束位。...主机发送结束位以示结束操作,然而主机持续拉高 SCL 信号与SDA 信号 TBUF 以示总线释放。...图2 21 第二次起始位   知道主机向从机读取数据的时候,它必须改变设备地址的方向,因此读操作又第二次起始位。

1.3K40
领券