打印
[Quartus]

SPARTAN6 LX9系列FPGA的SPI模式下载遇到麻烦,请大家指点

[复制链接]
9547|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenqinte|  楼主 | 2010-11-11 18:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
SPARTAN6 LX9系列的FPGA ,我用SPI方式加载FPGA代码,我用的SPI flash是W25X80但是我用impact生成的MCS文件通过JTAG管脚无法加载; xilinx的技术支持提到说跟SPI flash的类型有关系(我看他也不确定),我实在想不通,请斑竹帮忙。

以上三张图是我下载MCS文件时的提示信息,还请大家指教,如果真是芯片问题,我要马上去通知采购了

相关帖子

沙发
SuperX-man| | 2010-11-11 20:28 | 只看该作者
俄.这个小版我没接触过.

不过从你的报错信息分析来看,ISE自带的drives好像和你的FLASH不匹配.
'1': SPI access core not detected. SPI access core will be downloaded to the device to enable operations. INFO:iMPACT - Downloading core file F:/Xilinx/12.2/ISE_DS/ISE/spartan6/data/xc6slx9_spi.cor.
这里提示说下载xc6slx9_spi相关drives.

完成了以后检测你的FLASH.得到的是
'1': IDCODE is 'FF' (in hex).
'1': ID Check failed.
应该是没匹配,根据PDF,建议你看一下你MISO,MOSI,CSO和CCLK情况.

使用特权

评论回复
板凳
SuperX-man| | 2010-11-11 20:38 | 只看该作者
这里我上传一个W25Q80BV的PDF
我想你和你的W25X80,在时序上比较下,看看是否一致.

W25Q80BV.pdf

2.22 MB

使用特权

评论回复
地板
SuperX-man| | 2010-11-11 20:48 | 只看该作者
Device ID        (ID7-ID0)               (ID15-ID0)

Instruction       ABh, 90h                   9Fh
W25X80             13h                       3014h

Instruction   ABh, 90h,92h,94h         9Fh
W25Q80BV         13h                      4014h

使用特权

评论回复
5
chenqinte|  楼主 | 2010-11-11 20:53 | 只看该作者
本帖最后由 chenqinte 于 2010-11-11 20:59 编辑

非常感谢提点,我会研究下这两个器件的区别,难道fpga的spi方式下载只对其中几种flash开放,这种设计也太不合理了吧

使用特权

评论回复
6
SuperX-man| | 2010-11-11 21:24 | 只看该作者
本帖最后由 SuperX-man 于 2010-11-11 21:47 编辑

小版我帮你找到一个相关的配置SPI的**.
转载自Tony的博客http://hi.baidu.com/bosscrying/b ... 934814a8d31151.html 还下了一篇相关PDF文档给你参考下.

其中有一个很地方很值得注意:

首先,关闭开发板电源,将下载电缆连接到SPI下载端口。此时,下载电缆将直接连接到SPI FLASH PROM的管脚上,为了保证FPGA相关管脚从下载链路上断开,必须用跳线将PROG_B短路,强迫PROG_B为低,从而在配置SPI FLASH PROM期间使FPGA的所有管脚保持高阻态。


SPI方式FPGA配置和SPI FLASH编程.rar

455.03 KB

使用特权

评论回复
7
SuperX-man| | 2010-11-11 22:32 | 只看该作者
小版想,如果IMPACT中不支持的话,是否可以自己编写驱动呢?
只要符合芯片的时序,就应该能成功吧. 网上有一些人就是用C代码来实现的.

小版我上传的这篇**有2个好处.第一,这是中文的,呵呵.第二,对于SPI的配置流程非常清楚.你可以参照下,然后写个你自己FLASH的驱动.

用 SPI Flash 存储器配置 Spartan-3E FPGA.rar

362.75 KB

使用特权

评论回复
8
SuperX-man| | 2010-11-11 22:35 | 只看该作者
这是一个网友配置SPI的部分C代码
你也可以参考下:
int i;
int iiii;
unsigned long *gpgcon;
unsigned long GPGCON;
u8 *spicon;
u8 *sppre;
unsigned long *clkslow;
unsigned long CLKSLOW;

clkslow = ioremap(0x4c00000c,0x8);
spicon = ioremap(0x59000020,0x1);
gpgcon = ioremap(0x59000060,0x8);
sppre = ioremap(0x5900002c,0x1);

#define GPGCON  (*(volatile unsigned long *)gpgcon)
#define CLKSLOW (*(volatile unsigned long *)clkslow)


         CLKSLOW |=(1<<18);
          printk("%u\n",CLKSLOW );
         iiii=ioread32(clkslow);
         printk("%u\n",iiii); //配置pclk

         GPGCON |=0xfc00;
          printk("%u\n",GPGCON);
         iiii=ioread32(gpgcon);
         printk("%u\n",iiii);//配置gpg5/6/7口为spi口

          iowrite8( (*spicon |0x18),spicon);
          printk("%d\n",*spicon);//配置spi的控制寄存器

          iowrite8( 0x0b,sppre);
          printk("%d\n",*sppre);//配置spi波特率

使用特权

评论回复
9
laurajiang| | 2010-11-11 23:19 | 只看该作者
超人同志好热心啊~~呵呵~~
顺带学习了一下SPI配置,以后会经常光顾,支持FPGA赛灵思世界!

使用特权

评论回复
10
钻研的鱼| | 2010-11-12 08:41 | 只看该作者
感觉这点x和a公司的有很大区别。 xilinx的配置对于芯片还有选择,为何不内部集成jtag烧写电路,直接对这种flash擦除?这种方法浪费一些fpga引脚,但对用户来讲方便很多
以前用过spartan3e系列,也是在烧写配置芯片时出现过很多莫名其妙的问题,版主有没很好的建议?

使用特权

评论回复
11
chenqinte|  楼主 | 2010-11-12 13:41 | 只看该作者
今天换了一片fpga支持的spi flash at45db161D;结果还是无法通过jtag脚烧写flash
相当的纠结啊

使用特权

评论回复
12
SuperX-man| | 2010-11-12 13:56 | 只看该作者
请问有没有完全按照SPI的下载配置流程来,特别是要确保PROG_B为低
你换了一个FLASH应该需要重新从头来配置的吧.

做技术就是这样,别着急,保持个平稳心态很重要,需要的就是一步步查找.
呵呵,从来迈向真理的道路都不平坦的

使用特权

评论回复
13
SuperX-man| | 2010-11-12 13:57 | 只看该作者
借用最近目前一句流行的话就是:

你不是一个人在做FPGA

使用特权

评论回复
14
telantan| | 2010-11-12 14:57 | 只看该作者
从impact信息上看,楼主应该用的是in-direct配置方式。
硬件方面注意一些检查,
1. 数据和时钟连线是否正确,可检查一下时钟管脚是否有信号。
2. VS/M设置是否正确
3. Flash的供电是否正常。

使用特权

评论回复
15
chenqinte|  楼主 | 2010-11-12 15:07 | 只看该作者
要将PROG_B一直拉低吗?我刚看到SuperX-man的回帖,将PROG_B拉低后,还是不行

使用特权

评论回复
16
chenqinte|  楼主 | 2010-11-12 15:16 | 只看该作者
本帖最后由 chenqinte 于 2010-11-12 15:22 编辑

我是直接将PROG_B用跳线短接到gnd,这么做以后,在下载SPI flash代码时,fpga无时钟输出,无数据输出
没有将PROG_B短接到gnd时,配置过程中有时钟输出。
我是通过FPGA的JTAG管脚将代码下到spi flash里的,时钟SCLK和数据输出MOSI都为高电平

使用特权

评论回复
17
chenqinte|  楼主 | 2010-11-12 15:31 | 只看该作者
我用的是SPARTAN6 lx9系列的FPGA,配置模式选择管脚只有M0,M1两个管脚

使用特权

评论回复
18
chenqinte|  楼主 | 2010-11-12 19:46 | 只看该作者
我是个笨蛋,那么多的问题都查了,竟然最后发现时因为一个电阻没有焊接;还是非常感谢superman的帮忙。
我也是接触fpga没多长时间,当不懂得东西遇到问题时显得有点手忙脚乱。
不过芯片确实得换,下午找个颗公司现有的,spartan6支持的spi flash,飞了8根线,终于还是下进去了。
谢谢大家的帮忙

使用特权

评论回复
19
SuperX-man| | 2010-11-12 21:59 | 只看该作者
下午有事出去了,抱歉没有及时跟进.
开发电子类的产品都是这样的,容错率很低,所以需要一点点的慢慢查,一般先从硬到软.
最后恭喜你将问题解决了,肯定也对SPI有了更深的了解了,以后就可以做为专家,回答其他论坛里的相似问题了,呵呵

使用特权

评论回复
20
fanfanme| | 2011-4-21 00:58 | 只看该作者
请问楼主,怎样查找spartan6能够支持下载的spi模式的flash呢?哪篇文档上讲了的啊?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

165

帖子

0

粉丝