差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
i2c [2017/03/26 21:45]
gongyu
i2c [2023/05/30 11:13] (当前版本)
gongyu
行 1: 行 1:
 +#### I2C - 集成电路之间的同步、半双工数据传输
 +
 +---
 +
 I2C是一种简单地连接多个芯片的总线方式,尤其是在[[FPGA]]s/​[[CPLD]]s中. I2C是一种简单地连接多个芯片的总线方式,尤其是在[[FPGA]]s/​[[CPLD]]s中.
 {{ ::​i2cslave.gif |}} {{ ::​i2cslave.gif |}}
  
-===== I2C总线特性 ​=====+### I2C总线特性
  
   * 除了“电源”和“地”之外,只用了"​SDA"​和"​SCL"​两根信号线   * 除了“电源”和“地”之外,只用了"​SDA"​和"​SCL"​两根信号线
   * 在同一个总线上最多可以支持到100个器件,每个挂在总线的器件都有一个地址用于寻址   * 在同一个总线上最多可以支持到100个器件,每个挂在总线的器件都有一个地址用于寻址
-  * 多个“主”设备(例如,​两个CPU可以简单地共用同一个I2C器件)+  * 多个“主”设备(例如,​两个[[CPU]]可以简单地共用同一个I2C器件)
   * 为业界标准,由Philips开发,​ 被很多其它厂商采用   * 为业界标准,由Philips开发,​ 被很多其它厂商采用
   * 用途非常广泛,比如电视机、PCs   * 用途非常广泛,比如电视机、PCs
行 18: 行 22:
 I2C“主”即可以向“从”写也可以从“从”设备中读取 I2C“主”即可以向“从”写也可以从“从”设备中读取
  
-===== I2C波形 ​===== +#### I2C波形  
 +{{ :​i2c_timing.png |}}
 这个图示为向地址为0x51的EEPROM进行写2个字节的数据0x50和0x0F. 这个图示为向地址为0x51的EEPROM进行写2个字节的数据0x50和0x0F.
  
行 153: 行 157:
  
 如果你能够容忍这些缺点,这应该是I2C从模式非常简洁的设计,否则你只能用外部时钟对SDA和SCL进行过取样,通过数字滤波器将毛刺给滤除掉,“起始”和“终止”的检测也变得比较容易,当然代价就是设计变得更复杂。 如果你能够容忍这些缺点,这应该是I2C从模式非常简洁的设计,否则你只能用外部时钟对SDA和SCL进行过取样,通过数字滤波器将毛刺给滤除掉,“起始”和“终止”的检测也变得比较容易,当然代价就是设计变得更复杂。
-  
-====== 资源链接 ====== 
-  * [[http://​www.nxp.com/​documents/​user_manual/​UM10204.pdf|I2C规范]]. 
-  * Philips多方面深度讨论I2C的[[http://​www.nxp.com/​documents/​application_note/​AN10216.pdf|应用指南]] 
-  * [[http://​www.esacademy.com/​faq/​i2c/​|I2C常见问题]] 
-  * [[http://​www.totalphase.com/​support/​kb/​10040/​|关于I2C和SMBus区别的文章]](SMBus是由Intel公司开发的,基本跟I2C兼容) 
  
-更多信息参见[[wikipedia上关于i2c的介绍]]+ 
 +### 相关设计资源考 
 + 
 +  * [I2C规范](http://​www.nxp.com/​documents/​user_manual/​UM10204.pdf). 
 +  * Philips多方面深度讨论I2C的[应用指南](http://​www.nxp.com/​documents/​application_note/​AN10216.pdf) 
 +  * [I2C常问题](http://​www.esacademy.com/​faq/​i2c/​) 
 +  * [关于I2C和SMBus区别的文章](http://​www.totalphase.com/​support/​kb/​10040/​)(SMBus是由Intel公司开发的,基本跟I2C兼容) 
 +  * 苏老师公众号文章 - [几种最常用的串行数据传输总线(2)-I2C](https://​mp.weixin.qq.com/​s/​UVlecH-zBVG5Ug4Bx6TVeQ) 
 +  * Lattice Semi的[I2C Master](http://​www.latticesemi.com/​en/​Products/​DesignSoftwareAndIP/​IntellectualProperty/​ReferenceDesigns/​ReferenceDesigns02/​I2CBusMaster)使用说明,及IP参考代码下载 
 +  * Lattice Semi的[支持Wisbone总线的I2C Master](http://​www.latticesemi.com/​en/​Products/​DesignSoftwareAndIP/​IntellectualProperty/​ReferenceDesigns/​ReferenceDesigns02/​I2CMasterWISHBONECompatible)使用说明,及IP参考代码下载 
 +  * Lattice Semi的[I2C总线控制器](http://​www.latticesemi.com/​en/​Products/​DesignSoftwareAndIP/​IntellectualProperty/​ReferenceDesigns/​ReferenceDesigns02/​I2CBusControllerforSerialEEPROM)使用说明,及IP参考代码下载 
 +  * Lattice Semi的[I2C主控制器](http://​www.latticesemi.com/​en/​Products/​DesignSoftwareAndIP/​IntellectualProperty/​ReferenceDesigns/​ReferenceDesigns02/​I2CMasterController)使用说明,及IP参考代码下载 
 +  * Lattice Semi的[用于嵌入式功能块中的I2C从设备](http://​www.latticesemi.com/​en/​Products/​DesignSoftwareAndIP/​IntellectualProperty/​ReferenceDesigns/​ReferenceDesigns02/​I2CSlavePeripheralusingEmbeddedFunctionBlock)使用说明,及IP参考代码下载 
 +  * Lattice Semi的[I2C从到SPI主的桥接](http://​www.latticesemi.com/​en/​Products/​DesignSoftwareAndIP/​IntellectualProperty/​ReferenceDesigns/​ReferenceDesigns02/​I2CSlavetoSPIMasterBridge)使用说明,及IP参考代码下载 
 +  * FPGA4FUN的[关于I2C的介绍及相应的Verilog代码资源](https://​www.fpga4fun.com/​I2C.html) 
 +  * FPGA4FUN上的I2C从设备的[[http://​www.fpga4fun.com/​files/​I2Cslave1.zip|完整的代码]]