12.1. I2C 协议简介
I 2 C ( Inter-Integrated Circuit )协议是由 Phiilps 公司开发的,由于它具引脚少,硬件实现简单,可扩展性强,不需要如 USART、CAN 的外部收发设备,现在被
广泛地使用在系统内多个集成电路(IC)间的通讯。根据《I 2 C 总线协议版本 2.1-2000》的说明,我们可以更详细地了解 I 2 C 协议。

12.1.1. 物理层
(1) 它只使用两条总线线路,一条双向串行数据线(SDA) ,一条串行时钟线 (SCL)。

(2) 每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问

(3) 多主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用总线。

(4) 具有三种传输模式:标准模式传输速率为 100kbit/s ,快速模式为 400kbit/s ,高速模式下可达 3.4Mbit/s,但目前大多 I 2 C 设备尚不支持高速模式。

(5) 片上的滤波器可以滤去总线数据线上的毛刺波 保证数据完整 。

(6) 连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制 。

                            图 12-1 常见的 I2C 通讯系统

12.1.2. 协议层
I 2 C 的协议包括起始和停止条件、数据有效性、响应、仲裁、时钟同步和地址广播等环节,由于我们使用的是 STM32 集成的硬件 I 2 C 接口,并不需要用软件去模拟 SDA 和 SCL 线的时序,所以野火直接以 I 2 C 通讯的流程为大家讲解。

见图 12-2 主机写数据到从机。

12. I2C-EEPROM的更多相关文章

  1. AM335x kernel 4.4.12 i2c eeprom AT24c02驱动移植

    kernel 4.4.12 i2c eeprom AT24c02驱动移植 在kernel make menuconfig ARCH=ARM 中打开: Device Drivers ---> Mi ...

  2. AT24 I2C EEPROM解析及测试

    关键词:AT24.I2C.nvmem.EEPROM. 1. AT24C介绍 AT24C是一款采用I2C通信的EEPROM,相关驱动涉及到I2C和nvmem. I2C是读写数据的通道,nvmem将AT2 ...

  3. stm32 i2c eeprom 24C02

    电路图 相关文章:http://blog.csdn.net/zhangxuechao_/article/details/74936798 举例 #define i2c_scl PBout(10) #d ...

  4. 第23章 I2C—读写EEPROM—零死角玩转STM32-F429系列

    第23章     I2C—读写EEPROM 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...

  5. Arduino I2C + AC24C32 EEPROM

    主要特性 AC24C32是Atmel的两线制串行EEPROM芯片,根据工作电压的不同,有-2.7.-1.8两种类型.主要特性有: 工作范围:-2.7类型范围4.5~5.5V,-1.8类型1.8~5.5 ...

  6. STM32F10x_模拟I2C读写EEPROM

    Ⅰ.写在前面 说到IIC,大家都应该不会陌生,我们初学单片机的时候或多或少都知道或了解过,甚至使用I2C控制过器件.但是,有多少人真正去深入理解,或者深入研究过I2C通信协议呢? 1.我们有必要学习I ...

  7. STM32F10x_硬件I2C读写EEPROM(标准外设库版本)

    Ⅰ.写在前面 上一篇文章是“STM32F10x_模拟I2C读写EEPROM”,讲述使用IO口模拟I2C总线通信,对EEPROM(AT24Xxx)进行读写操作的过程. 上一篇文章主要内容:I2C协议.模 ...

  8. 转载:关于STM32硬件I2C读写EEPROM代码实现原理的理解与总结

    http://home.eeworld.com.cn/my/space-uid-716241-blogid-655190.html 一.I2C协议简介 I2C是两线式串行总线,用于连接微控制器及其外围 ...

  9. 第23章 I2C—读写EEPR

    本章参考资料:<STM32F76xxx参考手册>.<STM32F7xx规格书>.库帮助文档<STM32F779xx_User_Manual.chm>及<I2C ...

  10. I.MX6 AT24Cxx eeprom Linux i2c-gpio

    /************************************************************************** * I.MX6 AT24Cxx eeprom L ...

随机推荐

  1. JAVA泛型知识(二)--> <? extends T>和<? super T>

    <? extends T> 和 <? super T> 是Java泛型中的“通配符(Wildcards)” 和 “边界(Bounds)”的概念 <? extends T& ...

  2. Struts2之上传

    单文件上传 上传页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...

  3. Spring cloud 注册服务小结

    服务注册中心:Eureka.Zookeeper.Cousul.Nacos 使用RestTemplate.openFeign做服务调用,底层使用的是Ribbon. Ribbon做了负载均衡,也可以做一个 ...

  4. 61-python基础-python3-格式化浮点数方法-%e、%f、%g

    1-%e是用科学记数法计数: %f是按指定精确格式化浮点数(默认保留6位): %g是根据数值的大小采用e或%f. 2-%f可以按长度和精度格式化浮点数,如%a.bf,a表示浮点数的长度,b表示浮点数小 ...

  5. Codeforces - 1189B - Number Circle - 贪心

    https://codeforc.es/contest/1189/problem/B 优先考虑最大的元素怎么构造.拿两个次大的围着他就很好,但是其他的怎么安排呢?就直接降序排列就可以了. a数组还开错 ...

  6. ASP.NET MVC5 +Abp 模板(Startup Templates)

    官网:https://aspnetboilerplate.com/Templates 系统登陆初始账号:admin 密码:123qwe 调试错误: 1.在多语句事务内不允许使用 CREATE DATA ...

  7. C语言接口

    struct i_foo * foobar_foo(void); //返回接口指针struct foo_object * foo_create(struct i_foo *iface, void *d ...

  8. Codeforces Round #393 (Div. 2) - C

    题目链接:http://codeforces.com/contest/760/problem/C 题意:有n个烤串,并且每个烤串起初都放在一个火盆上并且烤串都正面朝上,现在定义p序列,p[i]表示在i ...

  9. 2019CCPC网络预选赛 1004 path 最短路

    题意:给你一张n个点m条边的有向图,问这张有向图的所有路径中第k短的路径长度是多少?n, m, k均为5e4级别. 思路:前些日子有一场div3的F和这个题有点像,但是那个题要求的是最短路,并且k最大 ...

  10. 二、Angular项目创建、安装、启动

    1.项目创建,进入预先存放项目的路径,命令行执行 ng new ProjectName 创建成功后的项目 2.项目安装,进行项目中执行命令 npm install  3. 项目运行,执行命令 ng s ...