iic 即inter-integrated circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的一种简单、双向、二线制、同步串行总线,主要是用来连接整体电路(ics) ,iic是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线接口。
i2c串行总线一般有两根信号线,一根是双向的数据线sda,另一根是时钟线scl。所有接到i2c总线设备上的串行数据sda都接到总线的sda上,各设备的时钟线scl接到总线的scl上。
为了避免总线信号的混乱,要求各设备连接到总线的输出端时必须是漏极开路(od)输出或集电极开路(oc)输出。设备上的串行数据线sda接口电路应该是双向的,输出电路用于向总线上发送数据,输入电路用于接收总线上的数据。而串行时钟线也应是双向的,作为控制总线数据传送的主机,一方面要通过scl输出电路发送时钟信号,另一方面还要检测总线上的scl电平,以决定什么时候发送下一个时钟脉冲电平;
作为接受主机命令的从机,要按总线上的scl信号发出或接收sda上的信号,也可以向scl线发出低电平信号以延长总线时钟信号周期。总线空闲时,因各设备都是开漏输出,上拉电阻rp使sda和scl线都保持高电平。任一设备输出的低电平都将使相应的总线信号线变低,也就是说:各设备的sda是“与”关系,scl也是“与”关系。
总线对设备接口电路的制造工艺和电平都没有特殊的要求(nmos、cmos都可以兼容)。在i2c总线上的数据传送率可高达每秒十万位,高速方式时在每秒四十万位以上。另外,总线上允许连接的设备数以其电容量不超过400pf为限。
总线的运行(数据传输)由主机控制。所谓主机是指启动数据的传送(发出启动信号)、发出时钟信号以及传送结束时发出停止信号的设备,通常主机都是微处理器。被主机寻访的设备称为从机。为了进行通讯,每个接到i2c总线的设备都有一个唯一的地址,以便于主机寻访。主机和从机的数据传送,可以由主机发送数据到从机,也可以由从机发到主机。凡是发送数据到总线的设备称为发送器,从总线上接收数据的设备被称为接受器。
stm32硬件iic操作方法解析
用io模拟的话,keil 的优化等级要设为 level 0,这样的话代码量势必要变大,而且也不能用中断、dma 等方式,操作方式单一。
在此,本人基于 stm32cubemx 生成初始化代码工程,参考 st 官方列程 和 正点原子的列程 ,以及 at24c02 的 datasheet ,编写本 iic_at24cxx 列程。
首先,说一下,hal库的外设驱动是比较完整和封装比较彻底的,使用它,我们不用再写一些如iic读写过程等过程操作函数,直接调用hal库函数即可。
下面,开始介绍 用 iic 读写 at24c02 的教程。
一、cubemx 工程配置。
i2c总线上允许连接多个微处理器以及各种外围设备,如存储器、led及lcd驱动器、a/d及d/a转换器等。为了保证数据可靠地传送,任一时刻总线只能由某一台主机控制,各微处理器应该在总线空闲时发送启动数据,为了妥善解决多台微处理器同时发送启动数据的传送(总线控制权)冲突,以及决定由哪一台微处理器控制总线的问题,i2c总线允许连接不同传送速率的设备。多台设备之间时钟信号的同步过程称为同步化。
全新第三代荣威RX5开启预售,搭载3颗地平线征程3芯片
S3C44B0的初始化程序的理解
三星Galaxy S20曝光采用了方正的设计在背部加入了一枚ToF镜头
借助NVIDIA CloudXR重新构想增强现实和虚拟现实
MWC2019:OPPO携重磅成果亮相MWC Nubia展出骁龙855小屏旗舰机
STM32硬件IIC操作解析
AMD Sempron处理器
第三代自适应模块化智造产线!
大众全新T-Roc最新消息:有望搭载全新的48V轻度混合动力系统重磅来袭!新车将于9月正式发布
SF6智能微水仪的特点及应用领域
IBM Think 2019探讨企业数字化转型旅程
封装设计解惑:如何使用数据表中的稳态热特性参数
Java版智慧工地云平台源码(微服务+Java+Springboot+Vue+MySQL),支持私有化部署,SAAS模式
光电耦合器鉴别电路图
苹果发布新一代MacBookAir轻薄本 确认搭载双核心8代酷睿i5处理器
数字万用表测量误差分析
关于五轴数控机床的铣削加工过程
螺旋节能灯的选购方法及注意事项
瑞萨电子最新推出可提高工业物联网应用生产力和安全性的解决方案
融合通信+金融,点燃ISV行业创新热情