资料介绍
Verilog IIC 通信实验笔记 Verilog IIC 通信实验笔记
Write by Gianttank
我实验的是 AT24C08的单字节读,单字节写,页读和页写,在高于3.3V系统中他的通信速
率最高400KHZ的,我实验里用的是100KHZ的速率。图1是硬件原理图
图1
图2
图2是器件地址,我的原理图是A2接高。
IIC通信协议中要注意的地方:
1. 当时钟线SCL 高电平时,如果把数据线SDA 从高电平拉到低电平,则表示通信开始
(START);如果把数据线SDA 从低电平拉到高电平,则表示通信结束(STOP)。SDA
数据不变,视为数据采样。
2. 前一个STOP 结束后。与下一个START开始要保证5ms的间隔。
3. 页写有字节限制,而页读没有,可以一次读出所有的数据。
4. SDA信号在FPGA为接受方时要设置为高阻态。
5. 应答信号永远是接收方发送的,这个很重要,我就是卡在这里几天没找到原因。FPGA
在读数据的时候,第9个周期是FPGA发低电平给EEPROM的。
图3为RTL视图
图3
引脚定义
信号名称 方向 描述
clk input 50M的主时钟
rst_n input 复位信号
sw1 i