I2C详细介绍
I2C时序
说明:
开始:在SCL的高电平的时候SDA线的从高电平到低电平的跳变定义为开始
停止:在SCL的高电平的时候SDA线的从低电平到高电平的跳变定义为停止
2.有效数据的位置:
说明:在SCL的上升沿读取数据,这就告诉我们,在SCL为高电平的时候SDA线必须是稳定的,在进一步说,在SCL的低电平SDA线变数据,或者说在SCL变成高电平之前,将要发送的数据(至于读,读SCL为高电平时间段上SDA线上的数据)放到SDA线上去
3.应答:
当一个字节(8bits)的数据都传输完成的时候继续进行第9位的发送或者判断,SDA线上的低电平定义为应答ACK信号
应答信号的作用是当你向目标机写数据的时候,写完一个字节后,目标机会返回一个应答信号,告诉你是不是写成功,当有应答信号的时候,表示写成功。
4.写周期的时序:
从这里可以看到,数据的传输是先高位再低位再加一个应答位的顺序
这里的Twr限制的是最大值。
Note: 1. The write cycle time t is the time from a valid stop condition of a write sequence to the end of the internal clear/write cycle
翻译是这个时间表示的是写序列中从一次8位数据的写完到整个写周期的结束的时间,比如,要对芯片写数据。那写地址,到将要写数据之间的延时不能超过这个值,否则,芯片认为这个写周期结束,在写进的数据将是被认为是地址。
5.总线时序:
具体的时间要看具体的芯片,下边表格是AT24C01A,AT24C02,AT24C04,AT24C08AT24C16的时间
需要解释的几个时间:
Tsu.sta:SCL变高电平的时刻到开始发送开始信号的时间
Thd.sta:开始信号发送完到SCL允许变低的时间
Tbuf:一组数据发送完,下一组可以开始的时间
6.其他注意的事项:
总线上应该加上拉电阻,因为I2C协议的芯片的内部是OC门(开漏输出的),外部上拉的电阻阻值4.7K或10K。
电压的不同,对时间有影响,因此要想得到不出错的时序,需要验证不同电压下的通信。
版权声明:本文为博主原创文章,未经博主允许不得转载。
I2C详细介绍的更多相关文章
- kvm详细介绍
KVM详解,太详细太深入了,经典 2016-07-18 19:56:38 分类: 虚拟化 原文地址:KVM详解,太详细太深入了,经典 作者:zzjlzx KVM 介绍(1):简介及安装 http:// ...
- [No0000A7]批处理经常用到的变量及批处理>NUL详细介绍
绝对路径是指调用绝对的程序位置的路径,例如: start C:\Windows\test.exe 相对路径是文件改变路径以后还会按照变量的路径所在位置去调用,例如: start %WINDIR%\te ...
- linux配置网卡IP地址命令详细介绍及一些常用网络配置命令
linux配置网卡IP地址命令详细介绍及一些常用网络配置命令2010-- 个评论 收藏 我要投稿 Linux命令行下配置IP地址不像图形界面下那么方 便,完全需要我们手动配置,下面就给大家介绍几种配置 ...
- _MSC_VER详细介绍
_MSC_VER详细介绍 转自:http://www.cnblogs.com/braver/articles/2064817.html _MSC_VER是微软的预编译控制. _MSC_VER可以分解为 ...
- php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系
以下PHP CGI.Fastcgi.PHP-FPM的一些信息归纳和汇总----->详细介绍与之间的关系 一:CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的 web ...
- RabbitMQ消息队列(一): Detailed Introduction 详细介绍
http://blog.csdn.net/anzhsoft/article/details/19563091 RabbitMQ消息队列(一): Detailed Introduction 详细介绍 ...
- doT.js详细介绍
doT.js详细介绍 doT.js特点是快,小,无依赖其他插件. 官网:http://olado.github.iodoT.js详细使用介绍 使用方法:{{= }} for interpolati ...
- Linux截屏工具scrot用法详细介绍
Scrot是Linux命令行中使用的截图工具,能够进行全屏.选取等操作,下面小编将针对Scrot截图工具的用法给大家做个详细介绍,通过操作实例来学习Scrot的使用. 在Linux中安装Scrot ...
- Oracle Merge into 详细介绍
Oracle Merge into 详细介绍 /*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查 ...
随机推荐
- Python测试工具——nose
1.nose 特点: a) 自动发现测试用例(包含[Tt]est文件以及文件包中包含test的函数) b) 以test开头的文件 c) 以test开头的 ...
- Qt - 锁屏界面加虚拟小键盘
一.实现效果 鼠标点击"密码输入栏",弹出虚拟键盘,输入锁屏密码后,点击虚拟键盘外部区域,则会隐藏虚拟键盘,再点击登录,成功进入主界面. 二.虚拟键盘-程序设计 2.1 frmNu ...
- 贪心 Codeforces Round #236 (Div. 2) A. Nuts
题目传送门 /* 贪心:每一次选取最多的线段,最大能放置nuts,直到放完为止,很贪婪! 题目读不懂多读几遍:) */ #include <cstdio> #include <alg ...
- 题解报告:hdu 4704 Sum(扩展欧拉定理)
Problem Description Sample Input 2 Sample Output 2 Hint 1. For N = 2, S(1) = S(2) = 1. 2. The input ...
- Oracle10g修改数据库字符集
Oracle10g修改字符集记录: 版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production 参考 ...
- ASP.NET MVC数据库初始化
public class DBInitializer:DropCreateDatabaseAlways<BookDBContext> { protected override void S ...
- [备忘]Notification的实用
Intent resultIntent = null; if (!TextUtils.isEmpty(tid)){ resultIntent = new Intent("com.shijie ...
- ubuntu个人初始配置记录
1.安装vim编辑器 sudo apt-get install vim vim-gnome. vim有vim(vim-basic),vim-tiny,vim-gnome(gvim)等多个版本,安装ub ...
- 文档兼容性定义,使ie按指定的版本解析
作为开发人员,特别是作为Web的前端开发人员 ,最悲催的莫过于要不断的,不断的去调试各种浏览器的显示效果,而这其中最让人头痛的莫过于MS下的IE系列浏览器,在IE系列中的调试我们将会发现没有一个是好伺 ...
- 对象输入输出流ObjectInputStream、ObjectOutputStream(对象序列化与反序列化)
对象的输入输出流 : 主要的作用是用于写入对象信息与读取对象信息. 对象信息一旦写到文件上那么对象的信息就可以做到持久化了 对象的输出流: ObjectOutputStream 对象的输入流: Ob ...