烧坏了两块FLASH
下面准备调试CPLD部分电路,用VHDL硬件语言写了一段小程序,很简单,就是点亮一盏灯,因为我在电路设计的时间就考虑到将来的测试问题,特意加了一个发光LED,程序如下:
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY figotest IS
PORT( LED : OUT STD_LOGIC);
END figotest;
ARCHITECTURE example OF figotest IS
BEGIN
LED <= '0' ;
END example;
刚开始由于Quartus 安装问题,程序编译不了,JTAG也连接不上,后来在石局和小满的指导下,终于安装成功(安装Quartus时主要有两个要地方要注意,一个是DLL文件的替换,另一个是DAT文件中的硬件ID)。编译VHDL,成功,连接JTAG,成功,烧入程序,运行,灯被点亮,所以CPLD这部分的电路也应该没有问题。
不过,第二天,我再想去调调ARM部分的时候,程序不管怎么搞都烧不进去了,Flash ID 号也读不到了,电压转换芯片LM1117-3.3也发热的厉害,我再摸了一下其它的芯片,发现Flash MX29LV320热的更加厉害,我立即断了电源,检查到底是什么原因,测了Flash的引脚,并没有发现有地方短路的,其它的芯片也没有短路,开通电源,还是发热,而且一通就热,所以初步断定是Flash芯片的问题,可能是芯片内部短路,由是,我把买的另外一块Flash请赵老师帮我换上。可是回来一通电源,傻了,还是发热,这应该不是Flash芯片的原因了吧?!这时想到这个现像是发生在调试CPLD之后才发生的,不会是CPLD的原因吧,后来想想,终于找到了原因,原来我CPLD和Flash都是连到ARM的数据总线上的,CPLD的测量中我只用了其中的一个引脚 ,没有用的我没有设置成三态门,所以数据线DATA0~DATA15都被短接了,后来改了一下程序,重新写到CPLD中面,Flash芯片果真不发热了。
用FlashPGM软件把u—boot程序烧到Flash中,复位,u—boot启动成功,那个蜂鸣器又响个不停,擦除,同样,在擦到最后一个扇区的时候又定在那边,只能手动停止,用另外一个程序重新写入,这时U—boot又不能启动了,Flash 的ID也读不到了,好像Flash又烧坏了吧。
就买了两块Flash,都烧了,只能重买了。。。。。。。。。。。。
浙公网安备 33010602011771号