微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > spartan6的flash固化问题

spartan6的flash固化问题

时间:10-02 整理:3721RD 点击:

各位坛友们,最近在做一个FPGA的项目,用的是spartan6的芯片,可以直接把代码下到FPGA中,但是不能把代码固化在FLASH里面,提示错误见图,FLASH用的是M25P128,主串模式,参考手册设计的电路。以前没有用过SPI FLASH,所以不知道问题出在哪里,我用示波器抓了下CLK和CE的波形,上面的是CLK,下面的是CE,波形是在我给FLASH下代码的时候抓出来的,可是为什么连出现的时钟都是不连续的?困扰我两天了,各位坛友们能不能说说是哪里出了问题,谢谢了~










CLK(绿色)的毛刺是因为 示波器的探针引起的

SPI时序不太对吧,你把SI、SO, CS, SCLK,都抓出来看看
你的CLK更像是数据信号



   

绿色的是时钟,黄色的是MOSI,也就是FPGA给FLASH写的数据。MISO引脚抓不到数据,示波器不触发。
很奇怪,为什么这个图上 时钟还没出现的时候数据就出来了。
我感觉就是这个时钟不对,可是我用的是主串模式,这个时钟是FPGA提供出来的才对 呀,为什么会这样呢?

你的spi master 是 FPGA 实现的 还是外面的烧录器?
在你没有烧写FPGA时,应该不存在FPGA里面有SPI MASTER啊
还是说你先烧写了FPGA,然后再通过FPGA里的spi mater去写 flash ?
不管怎样,电阻拿掉,确定master的设备(烧写器 or FPGA) 点在上面 看没有负载时,master命令发的对不对。

你的报错信息中说检验ID失败了,读到的ID都是0,说没有发现spi flash,但是从输出的时钟波形看,像是下载进fpga的那个jtag转flash烧写的小软核出问题了。你抓到的波形应该是小软核在读flash的ID,你可以对照m25p64的手册看看RDID指令,应该要输出32个clk才对,这里只有8个,对不上。

先确认配置这块的电路设计没有连接错误,生成mcs文件的步骤没有错误,实在不行再换个版本的ise试试。


可以高兴一下,把ISE14.2换成了13.2,果然可以烧进FLASH了,但是烧写的速度太慢了,基本上15分钟左右才能烧完,但是真的烧进去了。
我在烧FLASH的时候,用示波器抓了一下FLASH的时钟,发现还是和上面的时钟一样的, 然后我同时抓JTAG的时钟,我发现烧FLASH的时钟和JTAG的时钟是同一个时钟,都是那样一段一段的。



   这两个时钟应该是连接在一起的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top