|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Zedd 于 2019-3-28 11:33 编辑
7 b% V; e! n# |/ ?9 i, X# E/ M; R1 p# U( ~1 z& T
十五、串口发送图片数据到SRAM在TFT屏上显示
" Q9 e, V L8 Y4 a0 J5 @+ Y! V I" g
之前分享过rom存储图片数据在TFT屏上显示,该方法只能显示小点的图片,如果想显示TFT屏幕大小的图片上述方法rom内存大小不够。小梅哥给了个方案,利用串口将图片数据传给SRAM,传完后在从SRAM中读取图片数据进行显示。有了梅哥的提示后就开始动工了,首先是设计SRAM的控制程序。
$ g7 z$ u- e) T4 u4 JSRAM(静态随机访问存储器)是一种半导体存储器。“静态”一词表明只要有电源供电,数据就会保存,而不会“动态”改变。 - n4 r( ?! r: i5 [$ {7 ?( ]! d2 f# j
本实验平台是基于小梅哥出品的芯航线FPGA开发平台,该平台的SRAM芯片采用的是ISSI的IS61LV25616,它是一个256K*16位字长的高速率静态随机存取存储器。 b- a0 ]' q* _# q8 J: k
通过查阅手册得知,除了地址总线和数据总线外,该芯片还包含五个控制信号(手册上的符号与这个有差别,手册是符号上一横线代表低电平有效)。
$ z9 ~! @. \3 M) F6 L- ce_n(芯片使能或芯片选择):禁止或使能芯片。
- we_n(写使能):禁止或使能写操作。
- oe_n(输出使能):禁止或使能输出。
- lb_n(低字节使能):禁止或使能数据总线的低字节。
- ub_n(高字节使能):禁止或使能数据总线的高字节。# }6 _( W7 t2 \
* K) m' _" X1 i0 {+ w" ^ 所有这些信号都是低电平有效,后缀_n用于强调这一特性。功能表如表1所示:信号ce_n用于存储器扩展,信号we_n和oe_n用于写操作和读操作,lb_n和ub_n用于字节配置。 , g% t3 B( Z1 c
2 g; r/ ^; X: f3 y+ b; i, |表1 SRAM控制信号的真值表 ![]() ![]()
( G8 }- z1 ?% ]+ A3 o6 B0 q5 S. s$ K8 T. c3 P5 p" H7 B3 b
接下来分析SRAM的读写时序图,两种类型的读操作时序如图1(a)和图1(b)所示
7 _3 m2 C# F8 y/ b( [1 B. F' A9 Z& c: C9 {! h7 G- S4 x
0 H. i. o6 K9 r8 M(a)地址控制的读周期时序图(ce_n=0,we_n=1,oe_n=0)
& n0 y4 ]0 J& x2 L" j 7 b' u4 C! g9 j8 U3 T! t+ ~
(b)oe_n控制的读周期时序图
) a0 e }4 {2 i n: l: |(c)部分时序参数的介绍 图1 读操作的时序图和部分参数 本实验数据用的是16位,所以lb_n和ub_n控制位我们一直给低电平即可。关于ce_n控制位在复位后一直给低电平即可。 - D- l6 q: |. U" m, j' @* W
芯片手册上关于写操作时序有四种类型,这里就简单介绍其中一种,其他的类似,写操作时序如图2所示:
0 F( A O7 p' ?" C' d1 J0 p% N' B8 k5 y& O
* a, d% S! d: C: X5 K) \0 P7 W(a)写操作时序图
: d. \' {7 y1 s$ V1 i$ y! B
n! Q8 g- S- @7 R: T% K: d. i$ @! b |
|