差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
i2c [2019/05/05 15:30] gongyu [I2C波形] |
i2c [2023/05/30 11:13] (当前版本) gongyu |
||
---|---|---|---|
行 1: | 行 1: | ||
- | {{ :eetreewechat.jpeg?600 |}} <WRAP centeralign>**扫描二维码,关注微信公众号“电子森林”,可以在手机上查看本网站的所有文章** </WRAP> | + | #### I2C - 集成电路之间的同步、半双工数据传输 |
+ | |||
+ | --- | ||
I2C是一种简单地连接多个芯片的总线方式,尤其是在[[FPGA]]s/[[CPLD]]s中. | I2C是一种简单地连接多个芯片的总线方式,尤其是在[[FPGA]]s/[[CPLD]]s中. | ||
{{ ::i2cslave.gif |}} | {{ ::i2cslave.gif |}} | ||
- | ===== I2C总线特性 ===== | + | ### I2C总线特性 |
* 除了“电源”和“地”之外,只用了"SDA"和"SCL"两根信号线 | * 除了“电源”和“地”之外,只用了"SDA"和"SCL"两根信号线 | ||
行 20: | 行 22: | ||
I2C“主”即可以向“从”写也可以从“从”设备中读取 | I2C“主”即可以向“从”写也可以从“从”设备中读取 | ||
- | ===== I2C波形 ===== | + | #### I2C波形 |
+ | {{ :i2c_timing.png |}} | ||
这个图示为向地址为0x51的EEPROM进行写2个字节的数据0x50和0x0F. | 这个图示为向地址为0x51的EEPROM进行写2个字节的数据0x50和0x0F. | ||
行 156: | 行 158: | ||
如果你能够容忍这些缺点,这应该是I2C从模式非常简洁的设计,否则你只能用外部时钟对SDA和SCL进行过取样,通过数字滤波器将毛刺给滤除掉,“起始”和“终止”的检测也变得比较容易,当然代价就是设计变得更复杂。 | 如果你能够容忍这些缺点,这应该是I2C从模式非常简洁的设计,否则你只能用外部时钟对SDA和SCL进行过取样,通过数字滤波器将毛刺给滤除掉,“起始”和“终止”的检测也变得比较容易,当然代价就是设计变得更复杂。 | ||
- | + | ||
### 相关设计资源参考 | ### 相关设计资源参考 | ||
行 164: | 行 166: | ||
* [关于I2C和SMBus区别的文章](http://www.totalphase.com/support/kb/10040/)(SMBus是由Intel公司开发的,基本跟I2C兼容) | * [关于I2C和SMBus区别的文章](http://www.totalphase.com/support/kb/10040/)(SMBus是由Intel公司开发的,基本跟I2C兼容) | ||
* 苏老师公众号文章 - [几种最常用的串行数据传输总线(2)-I2C](https://mp.weixin.qq.com/s/UVlecH-zBVG5Ug4Bx6TVeQ) | * 苏老师公众号文章 - [几种最常用的串行数据传输总线(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|完整的代码]] |