|
最近调CPLD+SRAM+TFT,板子还是ppa2001送的那块,各器件型号,电压范围为:
CPLD---EMP570T144C5 :2.5V/3.3V内核电压;1.5V/1.8V/2.5/3.3V的IO电压;
SRAM---ISSI61LV25616 :3.3V(+10%;-5%);
TFT----LQ043T3DX02 :2.5V(2.3-3.3V);
因为不想用多电源系统,结合手上的LDO把工作电压选在了3V
(当时看错一个地方就是以为SRAM的工作电源是3.3V +/-10%,当时还计算过3V刚刚好...)
为了尽可能提供显存访问速度,对SRAM的操作均是单周期(即读和写1周期可完成),这样可以减少CPLD主频率和电源消耗;
结果调试起来就出问题了,症状为MCU(或ARM)通过总线写SRAM的时候不相干的地址总会出现雪花.
比如我写这个地址结果另外一些地方的数据同时也随机的发生了变化,读出SRAM发现那个地方的数据确实被异常改写了...
因为正常写的地方是写入了数据的,所以怀疑:
1.WR上升沿的时候地址线不稳;
2.单周器时序不能满足对SRAM的访问;
3.CPLD主频太高了,54MHZ的,其实27MHZ就够了;
以上都做了验证,还是一样.
总线接口也改了好多种方式,地址增量也那掉过,主要是尽能缩小故障的范围.无论怎样都还是解决不了.但问题缩小到CPLD写SRAM这一块了.
想来想去只可能是硬件问题了,于时在所有IC的电源脚附近又加了n多滤波电容,还是不行.
今天突然想到会不会是SRAM自身问题,但SRAM不象EEPROM身的,坏的可能性非常小的.
于时细看datasheet便发现了SRAM最低工作电压为3.3-5%(3.135V),立马从ARM开发板上飞个3.3V给系统......
呵呵,OK了.
真得为自己的粗心买单...
当时瞄了一眼以为是SRAM电源范围是+/-10%的,把主要重点都放在时序上了.
结果就出了这么个问题,还弄得把CPLD程序都改了个底朝天. |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|