基于FPGA读写AT24C256 EEPROM芯片

在FPGA上面根据IIC接口协议用verilog语言读写AT24C256 EEPROM芯片

目录

前言

一、EEPROM简介

二、管脚信息

三、IIC协议

四、读写模式

五、字节写

六、随机地址读

七、参考资料

总结


前言

        EEPROM (E2PROM,Electrically Erasable Progammable Read Only Memory)即电可擦除可编程只读存储器, 是一种常用的非易失性存储器(掉电后,数据不丢失)。本文将在介绍IIC协议和EEPROM有关的基础知识后,说明如何配置AT24C256 EEPROM这块芯片,包含对相关指令的解析和读写操作需要注意的点,当然,仿真图必不可少了,文中也有给出相应的仿真图。


提示:以下是本篇文章正文内容,希望能帮助到各位,转载请附上链接。

一、EEPROM简介

        EEPROM(带电可擦可编程只读存储器)是用户可更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程(重写)。不像EPROM芯片,EEPROM不需从计算机中取出即可修改。在一个EEPROM中,当计算机在使用的时候可频繁地反复编程,因此EEPROM的寿命是一个很重要的设计考虑参数。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。

二、管脚信息

        芯片架构如下图所示

        该芯片一共有8个引脚。其中E0、E1、E2是地址位,GND为地,Vcc为电源,wp为写保护引脚,为低可写,SCL是时钟线,SDA是数据线(双向端口)。

三、IIC协议

        IIC (I2C,Inter-Integrated Circuit)即集成电路总线,是一种两线式串行总线。I2C总线由数据线SDA和时钟线SCL构成通信线路,既可用于发送数据,也可接收数据。IIC是半双工通信方式。

1)空闲状态

        I2C总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。 

2)起始信号与停止信号

        起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。

        停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。

3)数据有效性

        I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。

4)应答信号ACK

        发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。 应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。

5)数据的传送

        在I2C总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),即在SCL串行时钟的配合下,在SDA上逐位地串行传送每一位数据。数据位的传输是边沿触发。

四、读写模式

        AT24C256中256表示其容量为256kbit,即32768*8bit,在芯片内部被划分为512页,每页有64个字节。32768对应15bit地址位。

        对于写,AT24C256支持字节写和页写。

        对于读,AT24C256支持当前地址读,随机地址读和连续读(读到最后一页的最后一个地址时跳转到第一页的第一个地址)。

        读写操作通过读写控制位区分。如下图所示。

        本文主要介绍字节写和随机地址读。

注意字节写时,要等待当前数据写完再写入下一个数据,有一个延时等待操作,对于AT24C256,需要等待5ms。

五、字节写

        写操作的时候,先要确定写的地址和数据,然后依次写器件地址->写地址->写data

 其中E2、E1、E0由硬件决定,像如下这张图,地址全被设为0。

        下面是往地址1写入数据1的仿真图。

六、随机地址读

        读操作的时候,先要确定读的地址,所以:写模式->写读的地址->读模式->读数据

        要执行随机读取,设备地址字节和字地址字节将作为虚拟写入序列的一部分传输到 AT24C256C。一旦设备地址字节和字地址字节被 AT24C256C 计时并确认,主机必须生成另一个启动条件。​​

        主机通过再发送一个设备地址字节(读写控制位设置为逻辑 1)来启动当前地址读取。AT24C256C 以 ACK 响应设备地址字节,并串行计时第一个数据字并递增其内部地址计数器。只要主机继续确认每个数据字,设备将继续传输连续的数据字。要结束序列,主机以 NACK 响应,然后是停止条件。

         下面是从地址1读出数据1的仿真图。

七、参考资料

https://download.csdn.net/download/m0_66360845/89580067icon-default.png?t=N7T8https://download.csdn.net/download/m0_66360845/89580067


总结

         以上就是今天要分享的全部内容,本文说明了如何使用AT24C256这块EEPROM芯片,包含对相关操作的解析和读写操作需要注意的点,也给出了仿真图,当然,对于该EEPROM的读写程序在实际中也已经验证通过了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1488525.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

基于PSO粒子群优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 粒子群优化算法(PSO) 4.2 分组卷积神经网络(GroupCNN) 4.3 PSO优化GroupCNN 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行…

Golang实现Word模板内容填充导出

这里我们使用一个广泛使用且免费处理 .docx 文件的库,github.com/nguyenthenguyen/docx. 安装 github.com/nguyenthenguyen/docx 库 首先,确保你已经安装了 docx 库: go get github.com/nguyenthenguyen/docx使用 docx 库处理 Word 模板 …

【odoo17 | Owl】前端js钩子调用列表选择视图

概要 在我们选择多对一或者多对多字段的时候,经常看到可以弹出列表弹窗让人一目了然的效果,效果如下: 那么,这种效果是odoo本身封装好的组件,我们在平时的前端界面开发的时候,既不是后端视图的情况下&#…

收银系统对零售连锁门店有什么作用?

随着人们生活水平的提高,各类零售门店也越来越多,对于零售连锁门店来说,如何提高客流量和客户忠诚度,提高会员的单次消费能力是一个重大的问题,能够决定性影响门店盈利额;从收银软件出发,一款好…

在服务器上同时训练多个深度学习模型【nohup、后台、重定向】

在服务器上同时训练多个深度学习模型 在服务器上跑深度学习或其他程序时,如果程序没有提供命令行参数设置,我们常常需要多次修改代码后重新部署。本文将介绍如何通过命令行工具和编辑器查看代码特定行的方法,并展示如何同时训练多个基于不同…

Odoo 17 仪表盘开发指南:打造高效的数据可视化中心

在现代企业管理中,数据驱动的决策至关重要。Odoo 17 提供了强大的平台来构建自定义仪表板, 适用于数据统计、工作台、驾驶舱、数据可视化等场景,以便用户能够一目了然地监控关键指标并做出及时反应。本文将介绍如何在 Odoo 17 中开发一个灵活且高度定制化的仪表盘系统,包括…

opencv - py_calib3d - py_depthmap 来自立体图像的深度图

Depth Map from Stereo Images 来自立体图像的深度图 目标 在本课程中, 我们将学习从立体图像创建深度图。 基础知识 在上一节中,我们了解了极线约束和其他相关术语等基本概念。我们还看到,如果我们有两张相同场景的图像,我们…

从零开始:在linux系统安装MongoDB数据完整指南 新手常用命令

1 前言 MongoDB 是为快速开发互联网应用而设计的数据库系统。MongoDB 的设计目标是极简、灵活、作为 Web 应用栈的一部分。MongoDB 的数据模型是面向文档的,所谓文档是一种类似于json的结构。 官网教程:https://www.mongodb.com/docs/manual/ 2 安装部…

开源AI智能名片商城小程序:重塑中国市场智能化营销的新篇章

摘要 在数字化转型的加速推进下,中国市场的营销领域正经历着前所未有的变革。开源AI智能名片商城小程序作为一种创新的商业模式,融合了精准营销、智能搜索、语音识别、图像识别及创意内容生成等前沿技术,旨在为企业提供一个高效、个性化且用…

IOS微软语音转文本,lame压缩音频

在IOS开发中,用微软进行语音转文本操作,并将录音文件压缩后返回 项目中遇到了利用微软SDK进行实时录音转文本操作,如果操作失败,那么就利用原始音频文件通过网络请求操作,最终这份文件上传到阿里云保存,考…

学习测试14-实战2-介绍CANoe工具

功能: 1,半仿真测试(台架测试):台架上做测试 2,全仿真测试:无实体测试,全模拟 3,截取实车日志:故障报告,对照诊断说明 4,诊断测试组成…

机器学习笔记-01-初识基础(问题-解答自查版)

前言 以下问题以Q&A形式记录,基本上都是笔者在初学一轮后,掌握不牢或者频繁忘记的点 Q&A的形式有助于学习过程中时刻关注自己的输入与输出关系,也适合做查漏补缺和复盘。 本文对读者可以用作自查,答案在后面&#xff0…

使用 Visual Studio 2022 自带的 cl.exe 编译 tensorRT自带测试样例 sampleOnnxMNIST

1. 新建任意文件夹,将 D:\install\tensorRT\TensorRT-8.6.1.6\samples\sampleOnnxMNIST 下面的 sampleOnnxMNIST.cpp 文件复制进来,同时 D:\install\tensorRT\TensorRT-8.6.1.6\samples\sampleOnnxMNIST 下面的 sample_onnx_mnist.vcxproj 中的内容&…

江科大/江协科技 STM32学习笔记P13

文章目录 TIM定时中断1、TIM简介计数器预分频器自动重装寄存器 2、定时器类型基本定时器主模式触发DAC 通用定时器高级定时器 3、定时器原理定时中断基本结构预分频器时序计数器时序RCC时钟树 TIM定时中断 1、TIM简介 定时器的基准时钟一般都是主频72MHz,如果对72M…

IPD推行成功的核心要素(十五)项目管理提升IPD相关项目交付效率和用户体验

研发项目往往包含很多复杂的流程和具体的细节。因此,一套完整且标准的研发项目管理制度和流程对项目的推进至关重要。研发项目管理是成功推动创新和技术发展的关键因素。然而在实际管理中,研发项目管理常常面临着需求不确定、技术风险、人员素质、成本和…

分享一个好用的音频解码工具——音乐解锁

在酷狗、网易云、虾米、酷我等平台下载的音乐只能在各自平台的播放上播放。比如,kgm转MP3的方法想必大家在网上也寻找了各种解决方法,方法也不少,但大多数都是不好用或者需要充米。有没有白嫖的工具呢?当然有了,白嫖是…

如何使用 DSPy 构建多步骤推理的 RAG 系统

一、前言 检索增强生成 (RAG) 系统已经成为构建基于大语言模型 (LLM) 应用的强大方法。RAG 系统的工作原理是:首先使用检索模型从外部知识源检索相关信息,然后使用这些信息来提示 LLM 生成最终的响应。 然而,基本的 RAG 系统(也…

河南萌新联赛2024第(二)场:南阳理工学院(部分题解)

题目D&#xff1a; A*BBBB 题目链接 题意描述&#xff1a; t组输入&#xff0c;每组输入两个整数a&#xff0c;b&#xff0c;其中b的每位数字都相等&#xff0c;a&#xff0c;b非常大&#xff0c;0<a,b<101000000 ,并且a&#xff0c;b都不含前导0. 解题思路&#xff…

[Spring] MyBatis操作数据库(基础)

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

LINUX -exec函数族

1、功能&#xff1a; *让父子进程来执行不相干的操作 *能够替换进程地址空间的代码.text段 *执行另外的程序&#xff0c;不需要创建额外的的地址空间 *当前程序中调用另外一个应用程序 2、执行目录下的程序&#xff1a; *指定执行目录下的程序 int execl(const char *path,…