实验概述:从FPGA通过BYTE WRITE模式写0xAA到24LC04B芯片的地址为0x00的空间里,然后通过RANDOM READ模式读出地址0x00的数据,然后第四位通过4位LED显示。 用到的EEPROM芯片是24LC04B /08B,这里的04指的是容量位4K,08也就是8K。至于芯片资料在哪里可以找到,Alpha会把相关资料放在一个网盘里面,当然了这些芯片手册都是英文的,以后从事工科职业了,英文的数据手册是必不可少得了,谁让我们国家不发明一些高级点的芯片呢。Alpha决定在以后的程序中多加点注释。 1.芯片部分特征: 24LC04B/08B支持双向2线数据传输协议(SCL和SDA)。数据传输重置必须在总线不忙的状态下,在传输过程中,数据总线必须保持稳定,传输是一个字节一个字节的传输,而且传输完成会有一个应答信号,应答信号是一个低电平。 设备地址:对于24LC04B/08B高四位是1010,接下的三位块地址选择信号,最后一位是读写控制位,1表示读操作。
写操作:分成两种模式,字节写和页写。在页写时,要注意地址计数器的循环计数,不然就会覆盖掉原先的数据。下面是数据手册上的写操作时序图:
读操作:分成三种模式,现地址读,随机地址读,串行读;分别如下:
SDA:串行地址/数据输入输出,双向,只有在SCL为低的时候才能改变该引脚的数据。 SCL:串行时钟信号,输入,用来同步设备的同步传输。 WP:写保护输入,我们这里用到的是接地。 A0,A1,A2:保留引脚。 关于芯片的内容Alpha只能查阅到这么多了。 2.IIC总线 3实现代码
1)IIC_WR模块 写步骤:
a.
b.
c.
d.
e. 读步骤:
a.
b.
c.
d.
e.
f.
g.
h. |
|
来自: 昵称55703252 > 《待分类》