❝https://www.i2c-bus.org/
I2C 总线规范是由飞利浦半导体编写的。这家公司后来成为 NXP Semiconductors,现在它是 I2C 总线规范的维护相关者。
不幸的是,最近的 I²C 总线规范,NXP 文档版本 6.0,2014 年 4 月 4 日不再在 NXP 站点上公开。
❝https://www.esacademy.com/en/library/technical-articles-and-documents/miscellaneous/i2c-bus/general-introduction/history-of-the-i2c-bus.html
❝https://www.fpga4fun.com/I2C_2.html
详细的设计过程:
完善的仿真程序:
❝https://github.com/alexforencich/verilog-i2c
alex的项目无需多说,他的网络和PCIe都是完成度等方面首屈一指。
我们先看下这个项目包含哪些文件:
axis_fifo.v : AXI stream FIFO
i2c_init.v : Template I2C bus init state machine module
i2c_master.v : I2C master module
i2c_master_axil.v : I2C master module (32-bit AXI lite slave)
i2c_master_wbs_8.v : I2C master module (8-bit Wishbone slave)
i2c_master_wbs_16.v : I2C master module (16-bit Wishbone slave)
i2c_slave.v : I2C slave module
i2c_slave_axil_master.v : I2C slave module (parametrizable AXI lite master)
i2c_slave_wbm.v : I2C slave module (parametrizable Wishbone master)
通过 I2C 进行外设初始化的模板模块。当一个或多个外围设备(即 PLL chips, jitter attenuators, clock muxes,PLL 芯片、抖动衰减器、时钟多路复用器等)需要在上电时初始化而不使用通用处理器时使用。
带有 AXI 接口的 I2C 主模块。
具有 32 位 AXI lite 从接口的 I2C 主模块。
带有 8 位 Wishbone 从接口的 I2C 主模块。
带有 16 位 Wishbone 从接口的 I2C 主模块。
带有 AXI 接口的 I2C 从模块。
带有参数化 AXI lite 接口的 I2C 从模块。
带有可参数化 Wishbone 主接口的 I2C 从模块。
❝https://opencores.org/projects/i2c
❝https://opencores.org/projects/i2c_master_slave_core
❝https://opencores.org/projects/i2cslave
❝https://github.com/trondd/oc-i2c
各种目标的按钮合成结果。
A54SX16ATQ100-std:352Modules@58MHz
FLEX : EPF10K50ETC144-3: 294LCELLs@82MHz
ACEX : EPF20K30ETC144-3: 257ATOMs@74MHz
Spartan-II:2S15CS144-5:229LUTs@82MHz
Virtex-E:XCV50ECS144-8:230LUTs@118MHz
❝https://github.com/freecores/i2c
❝https://github.com/freecores/i2cslave
虽然没有详细的 文档,但是整个项目还是很完整的,I2C整个逻辑也不复杂即使没有文档,使用这个项目也不是难事。
❝https://github.com/hhping/i2c_code
这套I2C代码已经经过板上验证。在九州探测器版验证过通过。
❝https://github.com/BNUGYX/Verilog_i2c_eeprom
❝https://github.com/mcgodfrey/i2c-eeprom
I2C通信实现eeprom读写
先写入固定字符,再读出此字符,显示在数码管上
❝https://github.com/splinedrive/i2c_sdd1306_framebuffer
这是一个基于 fpga 的 i2c ssd1306 oled 设计!它包含一个 i2c 主控、帧缓冲区、字体渲染单元、rx 单元......
只需将 115200 波特的数据通过串口发送到 fpga,这些字符就会显示在 oled 上!
❝https://github.com/tmatsuya/i2c_edid
/boards/ 顶层设计文件、约束文件和 Makefiles /cores/ 核心库 /software/ 软件和数据文件
I2C相关的开源项目很多很多,很多大佬独立写个I2C总线应该是很容易,头两个项目是使用最常见的项目,无需过多介绍。后面几个项目针对EDID、EEPROM特殊场景的项目,经过上面一些项目的介绍,相信大家对于FPGA实现I2C应该更有信心吧。
最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。
优秀的 Verilog/FPGA开源项目介绍(九)- DP(增改版)
优秀的 Verilog/FPGA开源项目介绍(八)- HDMI
优秀的 Verilog/FPGA开源项目介绍(七)- CAN通信
优秀的 Verilog/FPGA开源项目介绍(六)- MIPI
优秀的 Verilog/FPGA开源项目介绍(五)- USB通信
优秀的 Verilog/FPGA开源项目介绍(四)- Ethernet
优秀的 Verilog/FPGA开源项目介绍(三)- 大厂的项目
串行总线技术(二)-串行总线中的先进设计理念及SerDes/PMA介绍