分享

FPGA入门实例

 昵称55703252 2018-05-17

实验概述:从FPGA通过BYTE WRITE模式写0xAA24LC04B芯片的地址为0x00的空间里,然后通过RANDOM READ模式读出地址0x00的数据,然后第四位通过4LED显示。

 

用到的EEPROM芯片是24LC04B /08B,这里的04指的是容量位4K08也就是8K。至于芯片资料在哪里可以找到,Alpha会把相关资料放在一个网盘里面,当然了这些芯片手册都是英文的,以后从事工科职业了,英文的数据手册是必不可少得了,谁让我们国家不发明一些高级点的芯片呢。Alpha决定在以后的程序中多加点注释。

 

1.芯片部分特征:

24LC04B/08B支持双向2线数据传输协议(SCLSDA)。数据传输重置必须在总线不忙的状态下,在传输过程中,数据总线必须保持稳定,传输是一个字节一个字节的传输,而且传输完成会有一个应答信号,应答信号是一个低电平。

设备地址:对于24LC04B/08B高四位是1010,接下的三位块地址选择信号,最后一位是读写控制位,1表示读操作。

FPGA入门实例-EEPROM读写(分析)

写操作:分成两种模式,字节写和页写。在页写时,要注意地址计数器的循环计数,不然就会覆盖掉原先的数据。下面是数据手册上的写操作时序图:

FPGA入门实例-EEPROM读写(分析)

 

读操作:分成三种模式,现地址读,随机地址读,串行读;分别如下:

FPGA入门实例-EEPROM读写(分析)

 

    引脚说明:

SDA:串行地址/数据输入输出,双向,只有在SCL为低的时候才能改变该引脚的数据。

SCL:串行时钟信号,输入,用来同步设备的同步传输。

WP:写保护输入,我们这里用到的是接地。

A0,A1,A2:保留引脚。

关于芯片的内容Alpha只能查阅到这么多了。

 

2.IIC总线

    关于IIC总线协议,和上面的芯片读写操作时序是相似的,这里就不多做介绍了,注意在发送时,先发送数据的最高位。

   

3实现代码

 

    整体框架图:

FPGA入门实例-EEPROM读写(分析)

 

 

1)IIC_WR模块

写步骤:

a.     实现开始信号

b.     发送24LC04B设备地址,从机发送应答信号

c.     发送待存储数据的地址,接受应答信号

d.     发送待写入数据,接受应答信号

e.     实现结束信号

读步骤:

a.     实现开始信号

b.     发送24LC04B设备地址,从机发送应答信号

c.     发送待读取数据的地址,接受应答信号

d.     实现开始信号

e.     发送24LC04B设备地址,从机发送应答信号

f.     读取8位数据

g.     实现非应答信号

h.     实现结束信号

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多