liudingding 发表于 2018-5-12 14:24:00

单片机对EMP240连接的储存器读写错误太多,为什么?

用SRAM25616和EPM240做了个液晶控制器,快完工了,现在碰上了几乎最后的钉子,就是CPU(MEGA64)对SRAM读写有许多错误,不知如何解决。摄像头自动写入储存器的数据看上去似乎正确。
用CPU对SRAM写入每行从小到大周期变化的数据,液晶显示出从暗到亮的图形,图形中有许多暗的斑点,再次对SRAM写入数据,斑点有所减少,甚至全无,单片机对储存器读写的部分CPLD程序如下,说明PCK为系统时钟,这里作为摄像头写入时钟,OU为摄像头写入过程保持高电平,FWR为CPU的WR的反相信号,可视为写有效信号,RWR、ROE为CPLD读写储存器信号,这里当单片机写信号有效或摄像头自动写信号有效时,储存器的写信号有效,并且这两个信号有效时储存器的读控制信号为高电平,输出高阻状态。
assign RWR = WR&&(PCK||!OU);
assign ROE = OU||FWR;
wire DX;
assign DA = ((FWR||ALE) ? 8'bzzzzzzzz : DR);
assign DX = ((FWR) ? DA : S);
assign DX= ((FWR) ? DA : S);
assign DR = ((FWR||OU)? DX : 16'bzzzzzzzzzzzzzzzz );
程序中DA为CPLD链接CPU的数据线的三态端口,当单片机的写有效或ALE有效时,三态门高阻,否则输出DR信号,DR信号为链接储存器I/O口的16跟数据线,当单片机写有效或摄像头写有效时该信号有输出,输出为DX,否则输出高阻,DX当单片机写有效时信号为链接单片机数据线信号的信号,否则为摄像头数据。

上面说了这么多,不知您明白没明白。现在是单片机对储存器的部分数据写入不对,我想写入不对无非储存器的地址不对,数据不对,读写信号有问题,现在不知那部分出了问题,液晶显示基本没问题,地址应该是对的,储存器是10nS的单片机时钟才7.4728M,改变写时钟宽度,问题没变化,我曾想CPLD驱动不够,查了查手册储存器输入高电平大于2伏,输入低电平小于0.8伏即可,驱动应该没问题,

这问题出在哪里呢?

htjgdw 发表于 2018-9-20 12:40:27

CPLD的逻辑没仿真过吧?
不要说“应该没问题“。。。这种话,先保证逻辑仿真正确再上板子,这是正确的CPLD/FPGA开发流程。
页: [1]
查看完整版本: 单片机对EMP240连接的储存器读写错误太多,为什么?