spartan3系列FPGA需要配置M2、M1、M0,绝大多数应用中,一般配置001也就是MASTER SPI MODE。今天在烧录的过程中遇到M25P16的flash无法烧录,在IMPACK中可以正常擦除(ERASE)但是无法烧写,总是报DONE did not go high,但是检查硬件SPI连接都没有问题,折腾了一番,查看原理图,发现M2,M1,M0配置电阻电路图上标注1K,但是实际10K的电阻,果断换了电阻就可以正常烧录。
出现DONE did not go high,另外的一种情况是FPGA生成的mcs文件与FPGA型号不对应,也会出现这个问题。
为什么M2,M1,M0配置不能用10K的电阻?
重新焊接回去三个10K电阻,通过万用表测量发现M2,M1,M0引脚上均为高电平,也就是10K电阻并未成功将其配置端口M2,M1下拉到0导致配置模式错误。