硬盘无法读取取sRAm是什么意思

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
根据视频教程写的Verilog程序
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Verilog程序9、SRAM读写实验
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口后使用快捷导航没有帐号?
请完成以下验证码
查看: 3428|回复: 4
急,急,急! 2812外扩SRAM不能正常读写!!
在线时间2 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
2812外扩SRAM不能正常读写,不知是什么原因?
几天前SRAM都已经正常调通了,但这几天,不知什么原因,SRAM就是不能正常读写,现象如下:
(1)写一个数据,相邻随机地址的数据也发生变化;
(2)仅读数据,相邻随机地址的数据也会发生变化;
(3)写0xFFFF,完全正确;写0x0000,则数据变为0x2F0F, 0x0F0F, 0x2F1F;写0x5A5A,数据则为0xFFFF。
(4)看了一下DSP数据线上写0x0000的输出,均为如下波形,即初始为‘1’;当该数据线上应该输出‘0’时,下降沿很抖,但上升沿却是类似于充放电波形,极其缓慢(整个波形时间大约为2us左右)。
----- -& && && && && && &&&-- -----------------
& && & |& && && &&&--
& && & |& && &--
& && & |-----
(5)将SRAM某一根数据线与DSP断开后,查DSP的输出(仅DSP输出,断开后,该数据线没有外连任何器件),也是上述波形(该数据线输出为‘0’时)。
(6)查了一下CLKOUT线上,输出频率与要设的一致(如都是30MHz)。但波形不好。查晶体输出,波形完好,正常起振。查电源,幅值为3.34V,纹波为400mv左右(有些大)。
现在估计原因:
(1)DSP2812的XINF模块寄存器或其它部分的寄存器没有初始化完备;—— 但CLKOUT上频率是对的;
(2)DSP数据线上的驱动能力不够,—— 但目前将某数据线断开后,情况仍然是波形上升缓慢。
(3)电源纹波影响。
请各位帮忙一起分析一下,会是什么原因引起的这种情况?
为什么数据线上会是那样一个波形?以前读写时,都是很干净的方波脉冲。不知为什么,就成这样了。郁闷中………………
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
检查看看有没有虚焊或者短路的情况。
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
您的问题解决了吗?
我的也是!不知道什么原因
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
把RAM取下来,然后换个新的看行不行
我的板子也出现过这种现象,熬了一个月,最后发现是RAM坏了!!
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
很有可能是虚焊或短路 造成sram管脚读写数据干扰
EEWORLD 官方微信
Powered by基于PSoC3 UDB的异步SRAM读写控制
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
摘要:本文介绍使用Cypress的PSoC3 UDB实现对异步SRAM的读写控制,并以CY7C1069AV33 SRAM为例介绍其软硬件设计过程。1, 概述Cypress PSoC3使用基于单循环流水线的高性能8051内核 (67MHz/33MIPS),提供业界广泛采用的5.5V至0.5V电压范围和低至200nA的休眠电流,可以满足极低功耗的应用场合。PSoC3的高性能模拟子系统和数字系统都拥有可编程通路,允许将任何模拟或数字信号(包括可编程时钟)分配到任何通用I/O引脚,这为使用者提供了真正的“系统级”可编程能力。PSoC3中SRAM的容量最大为12KB(3个4KB块),8051 CPU和DMA控制器均可访问SRAM。如果访问不同的4KB块,8051和DMA控制器可同时访问SRAM。图1为PSoC3访问片上SRAM框图。图1,PSoC3访问片上SRAM PSoC3同时也提供了外部(External Memory Interface, EMIF)用来连接外部的存储器设备。它与UDB、I/O端口和其他硬件产生外部存储器地址和控制信号。EMIF支持同步和异步存储器,但在同一时刻只支持一种存储器类型。其结构如图2所示。图2,EMIF结构框图 从图2可以看出,CPU和DMAC都可访问SRAM。若数据来源于其他外设比如ADC或者UDB,则数据传输到SRAM的速度将受到CPU或DMAC的限制。因此,在这些数据来源于外设并有传输速度要求的应用中,若采用EMIF可能无法满足其要求。这时可用PSoC3的UDB实现SRAM的读写控制,以实现与外设数据直连。详细全文请见pdf文挡:作者:田江学主任应用工程师 赛普锐思半导体(上海)有限公司
您的昵称:
美国的游客
(您将以游客身份发表,请 | )
什么是SoC?
SoC(System on a Chip )中文名是系统级芯片。20世纪90年代中期,因使用ASIC实现芯片组受到启发,萌生应该将完整计算机所有不同的功能块一次直接集成于一颗硅片上的想法。SoC应由可设计重用的IP核组成,IP核是具有复杂系统功能的能够独立出售的VLSI块;IP核应采用深亚微米以上工艺技术;SoC中可以有多个MPU、DSP、MCU或其复合的IP核。
PSoC3是什么?
PSoC3,PSoC3是什么? 通过电子工程专辑网站专业编辑提供PSoC3的最新相关信息,掌握最新的PSoC3的最新行业动态资讯、技术文萃、电子资料,帮助电子工程师自我提升的电子技术平台.
SOC是什么?
SOC,SOC是什么? 通过电子工程专辑网站专业编辑提供SOC的最新相关信息,掌握最新的SOC的最新行业动态资讯、技术文萃、电子资料,帮助电子工程师自我提升的电子技术平台.
SoC是什么?
SoC,SoC是什么? 通过电子工程专辑网站专业编辑提供SoC的最新相关信息,掌握最新的SoC的最新行业动态资讯、技术文萃、电子资料,帮助电子工程师自我提升的电子技术平台.
Soc是什么?
Soc,Soc是什么? 通过电子工程专辑网站专业编辑提供Soc的最新相关信息,掌握最新的Soc的最新行业动态资讯、技术文萃、电子资料,帮助电子工程师自我提升的电子技术平台.
UDB是什么?
UDB,UDB是什么? 通过电子工程专辑网站专业编辑提供UDB的最新相关信息,掌握最新的UDB的最新行业动态资讯、技术文萃、电子资料,帮助电子工程师自我提升的电子技术平台.
soc是什么?
soc,soc是什么? 通过电子工程专辑网站专业编辑提供soc的最新相关信息,掌握最新的soc的最新行业动态资讯、技术文萃、电子资料,帮助电子工程师自我提升的电子技术平台.
新添订阅功能,提供全面快捷的资讯服务!
关注电子工程专辑微信
扫描以下二维码或添加微信号“eet-china”
访问电子工程专辑手机网站
随时把握电子产业动态,请扫描以下二维码
5G网络在提供1Gbps至10Gbps吞吐量方面具有很好的前途, 并且功耗要求比今天的网络和手机都要低,同时还能为关键应用提供严格的延时性能。本期封面故事将会与您分享5G的关键技术发展,以及在4G网络上有怎样的进步。
推荐到论坛,赢取4积分完美SRAM架构
完美SRAM架构
今天又有人讨教我SRAM。。。话说SRAM我写过很多次,但是一直没觉得完美。。好吧 那就浪费几个小时,完善一下架构。。。哎、、、、、
封装好接口将在最后给出!!!
//---------------------------------
//Sram control signal default
always@(posedge clk or negedge rst_n)
if(!rst_n)
sram_cs_n = 1'b1;
//默认关闭
sram_ub_n = 1'b1;
//默认关闭
sram_lb_n = 1'b1;
//默认关闭
sram_oe_n = 1'b1;
//默认关闭
sram_cs_n = 1'b0;
//sram 片选始终有效
sram_ub_n = 1'b0;
//sram 高8位数据始终有效
sram_lb_n = 1'b0;
//sram 低8为数据始终有效
sram_oe_n = 1'b0;
//sram 输出始终有效
这部分是SRAM读写工作信号的默认状态控制,当然也可以直接置低,这样写只是为了更完美!
注意:由于SRAM前端输入采用同步设计,因此直接判断sram_wr_en或者sram_rd_en信号,而对双向的sram_data,也需要同步了,主要通过一下电路实现:
assign sram_data = (~sram_we_n) ? sram_din_sync : 16'
Sram_din_sync为同步后的写入数据,否则会有一个数据的时间差。具体代码如下所示:
//---------------------------------
reg [15:0] sram_din_
//sram write and read timing
always@(posedge clk or negedge rst_n)
if(!rst_n)
sram_addr &= 18'h0; //default address
sram_we_n &= 1'b1; //default read
sram_din_sync &= 0;
sram_dout &= 0;
else if(sram_wr_en)
//write data
sram_addr &= sram_
sram_we_n &= 1'b0;
sram_din_sync &= sram_
sram_dout &= sram_ //keep the value
else if(sram_rd_en)
//read data
sram_addr &= sram_
sram_we_n &= 1'b1;
sram_din_sync &= 0;
sram_dout &= sram_
sram_addr &= 18'h0;
sram_we_n &= 1'b1; //default read
sram_din_sync = 0;
sram_dout &= sram_ //keep the value
assign sram_data = (~sram_we_n) ? sram_din_sync : 16'
如上图所示,快速写入,慢速读取。在LED显示测试中,50MHz写入,0.5s间隔读取!
以上实现的是Sram的封装后的接口分析,实际工作中,只要对以下几个信号操作即可,如下:
Sram_wr_en :写使能信号,
Sram_wraddr :写地址
Sram_din :写数据
这三者保持完全同步!
Sram_rd_en : 读使能信号
Sram_rdaddr : 读地址
Sram_dout : 读数据
这三者保持完全同步
Sram_dout 便是读出的数据!
其实,sram_dout的读取,最后实在sram_addr中间,才是稳态。。。。呵呵,只是速度低的话,不用考虑了。。。。
最后,还是给个读写的例子吧:data_generate如下:
/*-------------------------------------------------------------------------
CONFIDENTIAL IN CONFIDENCE
This confidential and proprietary software may be only used as authorized
by a licensing agreement from CrazyBingo (Thereturnofbingo).
In the event of publication, the following notice is applicable:
Copyright (C) x CrazyBingo Corporation
The entire notice above must be reproduced on all authorized copies.
CrazyBingo
Technology blogs
http://blog.chinaaet.com/crazybingo
http://www.cnblogs.com/crazybingo
Eamil Address
data_generate.v
Description
Simulate data read or write sram.
Modification History :
Change Description
===========================================================================
CrazyBingo 1.0
--------------------------------------------------------------------------*/
`timescale 1ns/1ns
module data_generate
//sram 控制器接口
output reg [17:0] sram_wraddr, //sram 写地址寄存器
output reg [15:0] sram_din,
//sram 输入数据暂存器
sram_wr_en,
//sram 写请求,高有效,优先级高
output reg [17:0] sram_rdaddr, //sram 读地址寄存器
[15:0] sram_dout,
//sram 数据输出暂存器
sram_rd_en
//sram 读请求,低有效
//------------------------------------------
//读取计数模块
reg [23:0]
localparam [23:0] DELAY_TOP = 24'h1
//localparam [23:0] DELAY_TOP = 24'h7;
always@(posedge clk or negedge rst_n)
if(!rst_n)
else if(state == 3'd2 || state == 3'd3)
if(cnt & DELAY_TOP)
cnt &= cnt + 1'b1;
wire delay_05s = (cnt == DELAY_TOP) ? 1'b1 : 1'b0;
//-----------------------------------------
//读写测试模块状态机
parameter DATA_LEDGTH = 8'd255; //读写长度
always@(posedge clk or negedge rst_n)
if(!rst_n)
sram_wraddr &= 0;
sram_din &= 0;
sram_rdaddr &= 0;
state &= 0;
case(state)
3'd0: state &= 3'd1; //初始化
3'd1: begin //写入DATA_LEDGTH个数据
if(sram_wraddr & DATA_LEDGTH)
sram_wraddr &= sram_wraddr + 1'b1;
sram_din &= sram_din + 1'b1;
state &= 3'd1;
else //写入完毕
sram_wraddr &= 0;
sram_din &= 0;
state &= 3'd2;
3'd2: begin
if(delay_05s)
state &= 3'd3; //Delay
state &= 3'd2;
3'd3: begin //读取入DATA_LEDGTH个数据,0.5s Delay
if(delay_05s)
if(sram_rdaddr & DATA_LEDGTH)
sram_rdaddr &= sram_rdaddr + 1'b1;
state &= 3'd3;
else //写入完毕
sram_rdaddr &= 0;
state &= 3'd4;
sram_rdaddr &= sram_
assign sram_wr_en = (state == 3'd1) ? 1'b1 : 1'b0;
assign sram_rd_en = (state == 3'd3) ? 1'b1 : 1'b0;
谨记有个东西叫做modelsim!!!
不要轻易相信自己的眼睛—黄继业!!!!!
关注微信公众号SRAM&的基本原理
&SRAM 芯片的引脚定义
早期的 SRAM 芯片采用了 20 线双列直插(DIP:Dual Inline Package)封装技术,它们
之所以具有这么多的针脚,是因为它们必须:
& 每个地址信号都需要一根信号线
& 一根数据输入线和一根数据输出线
& 部分控制线(Write Enable, Chip Select)
& 地线和电源线
下面的是一个16K x 1-bit SRAM 芯片的针脚功能示意图:&
A0-A13 是地址输入信号引脚
& /CS 是芯片选择引脚,在一个实际的系统中,一定具有很多片 SRAM 芯片,所以需要选择
究竟从那一片SRAM 芯片中写入或者读取数据
& /WE 是写入启用引脚,当SRAM 得到一个地址之后,它需要知道进行什么操作,究竟是写
入还是读取,/WE 就是告诉SRAM 要写入数据
& Vcc 是供电引脚
& Din 是数据输入引脚
& Dout 是数据输出引脚
& GND 是接地引脚
& Output Enable(/OE) :有的 SRAM 芯片中也有这个引脚,但是上面的图中并没有。这个
引脚同/WE 引脚的功能是相对的,它是让SRAM 知道要进行读取操作而不是写入操作。
&SRAM 芯片的读写操作概述
从 Dout 引脚读取 1bit 数据需要以下的步骤:
▲ SRAM 读取操作 1)通过地址总线把要读取的 bit
的地址传送到相应的读取地址引脚(这个时候/WE 引脚应
该没有激活,所以SRAM 知道它不应该执行写入操作)
2)激活/CS 选择该 SRAM 芯片
3)激活/OE 引脚让 SRAM 知道是读取操作
第三步之后,要读取的数据就会从DOut 引脚传输到数据总线。怎么过程非常的简单吧?
同样,写入1bit 数据的过程也是非常的简单的。
▲ SRAM 写入操作 1)通过地址总线确定要写入信息的位置(确定/OE
引脚没有被激活)
2)通过数据总线将要写入的数据传输到Dout 引脚
3)激活/CS 引脚选择SRAM 芯片
4)激活/WE 引脚通知SRAM 知道要尽心写入操作
经过上面的四个步骤之后,需要写入的数据就已经放在了需要写入的地方。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 移动硬盘无法读取 的文章

 

随机推荐