原创 单片机的扩展RAM读写时序(示波器图)

2010-8-18 23:19 4212 5 5 分类: MCU/ 嵌入式



单片机的扩展RAM读写时序(示波器图)


作者:shisifeiya 日期:2010-8-1


吴厚航同学在他的一篇博文提到了其测得单片机(11.0592MHz的STC89C52)的扩展RAM读写时序如下图:


169fe5f0-2cc0-48bb-aaf7-d7b73d3bab6c.jpg



使用了如下程序:


#include <reg52.h>


#define     uchar        unsigned char


#define  uint    unsigned int


uchar       xdata        LD _at_ 0x7fff;


void delay(uint cnt)


{ uint i;


 for(i=0;i<cnt;i++);


}


 void main(void)


{ uchar i;


 delay(1000);


 while(1)


        {LD = 0x00;


        LD = 0xf0;


        LD = 0x73;


        // i = LD;


        delay(1000);


        LD = 0xff;


        delay(1000);                   


        }


}


他还总结了:“第一次LD读操作需要5个指令周期外(1.085us*5),以后每次LD读操作都只要3个指令周期(1.085*3)。这也是从汇编的代码里仿真后得出来的结论。而从上图也可以知道CS有效时间其实是一个指令周期(1.085us)。”可是依据我测得的图形,和他所说的第一次“第一次LD读操作需要5个指令周期外”不一样,我测得的还是3个指令周期。


以下我将使用Winbond的PLCC封装的 W78LE516和22.1184Mhz晶振的电路,工具为4通道的Tektronix DPO4104数字荧光示波器作说明。


为了方便观察4个写脉冲,程序修改为:


#include <reg52.h>


#define     uchar        unsigned char


#define  uint    unsigned int


uchar       xdata        LD _at_ 0x7fff;


void delay(uint cnt)


{ uint i;


 for(i=0;i<cnt;i++);


}


 void main(void)


{ delay(1000);


 while(1)


        {LD = 0x00;


        LD = 0xf0;


        LD = 0x73;


        LD = 0xff;


        delay(3);                   


        }


}


探针设置为1为D0,2为WR,3为ALE,4为CS,波形如下图。在CS低电平时间,ALE低电平时间和吴厚航同学测得数据是一致的。下图探针1的波形在第一个上升沿很陡,但到后边有两个怪异的缓慢的上升沿。


db295f25-9db6-48ca-8a90-a9db1665bf6e.jpg



为了观察地址和数据复用的现象,我把写外部存储器的地址改成uchar  xdata  LD _at_ 0x7ffe。探针设置为1为D0,2为WR,3改为D2,4为CS,波形如下图。


c477533f-a0fd-4d5c-a75b-5c8760dbc4a2.jpg



探针设置为1为D0,2为WR,3改为ALE,4为CS,波形如下图。脉冲宽度的大概情况:ALE为86ns, CS为534ns,CS的下降沿到WR的下降沿为 176ns, WR为 274ns,WR的上升沿到CS的上升沿为 86ns,第一个CS上升沿到第一个CS下降沿的为1.09us。可以得到写一个外部寄存器的周期为3个CS低电平的时间。


898c1a3a-2ada-473c-ad33-389340ecc17d.jpg



吴同学的实践图纠正了我以前的被一款PMOLED驱动芯片时序图引导的认识错误,误认为单片机数据信号是在WR变为低之后才给出的。此芯片是业界PMOLED显示屏大量使用的驱动芯片,时序图如下。


36d3bddc-04c3-46d4-8274-eda007fdb7a4.jpg



附三张W78LE516的时序图。


8fc63766-405b-4c65-b52e-7e74fdbfcb10.jpg3efe916d-2b02-43b5-a7ab-5a1e217e27b8.jpgcc5091a9-0e8c-4b5d-afe1-ccc67b5aab0b.jpg





再附两张S3C2440A RISC MICROPROCESSOR的读写外部SRAM时序图,主要是为了认清片选、数据、地址相对的有效边沿时间,以扩展知识。


f393b574-2593-47e3-9a3d-9b66625c5170.jpg09ebcf83-6392-4f83-9a5a-5dce91fee82f.jpg



PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条