一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 4562|回复: 0
收起左侧

AlteraFPGA使用通用SPIFlash

[复制链接]
发表于 2010-7-21 09:09 | 显示全部楼层 |阅读模式
Altera器件有EPCS系列配置器件,其实,这些配置器件就是我们平时通用的SPIFlash,据AlteraFAE描述:“EPCS器件也是选用某家公司的SPIFlash,只是中间经过Altera公司的严格测试,所以稳定性及耐用性都超过通用的SPIFlash”。就本人看来,半导体的稳定性问题绝大部分都是由本身设计缺陷造成的,而成熟的制造工艺不会造成产品的不稳定;并且,现在Altera的器件在读入配置数据发生错误时,可以重新读取SPIFlash里面的数据,所以在工艺的稳定性以及设计的可靠性双重保证下,通过选用通用的SPIFlash来减少产品的成本压力。
) T3 `2 d8 e: a+ |7 f" L+ C- Z/ L! }  n- E4 R/ |
        假设我们正在使用一个普通SPIFlash,打开nios II command shell窗口,使用nios2-flash-programmer命令下载***.flash文件时,会发生如下错误:6 z, V: C7 v; c$ e3 o/ f
        No EPCS layout data --- looking for section [EPCS-1C2017]
5 q6 j; h% b/ F! y' l5 N2 o8 B! J+ x* X7 k( _; H8 o1 C
        以为不同公司的SPIFlash有不同的ID,并且不同大小的Flash的Sector大小及个数都不一样,所以需要新建一个文档去说明这些数据:' W; |/ b+ ?+ K$ [( e1 n

" ?2 q) m4 K  M% N' \5 e5 @        1、首先在<nios2_install>/bin文件夹下面新建nios2-flash-override.txt文件;
4 x! J6 j8 N& v0 D* s( I" n7 v5 \/ p9 b; |* J. N
        2、输入下述代码,下面描述的器件都是Altera的EPCS器件,sector_size表示sector大小,sector_count表示sector个数;
1 s0 h# g+ G7 Q* J( O4 N: E! \/ R        [EPCS-202011]  # EPCS1N (lead-free)
1 k( f2 o0 Q/ R: t# I! \$ ~        sector_size = 32768
- L9 g( U# T  U9 g        sector_count = 4
( x# g) Y' |  U& L  B        [EPCS-202013]  # EPCS4N (lead-free): q) X9 _6 I- b% ~+ t# L4 }
        sector_size = 655367 d" z; @" ?' x& m% O9 c& h
        sector_count = 8) S3 O4 [% i# B" @7 k
        [EPCS-202015]  # EPCS16N (lead-free)8 I# L" v8 C( ?- g+ A& `# E
        sector_size = 65536+ W' q4 m- Z8 n2 {
        sector_count = 32
$ \; e  y+ b' f, V: a- X        [EPCS-202017]  # EPCS64N (lead-free)
) C7 ~4 p! l" k- Z. w        sector_size = 65536
. Q" p" l4 V1 _) W. o        sector_count = 128
- M; k8 P9 c* n  l3 x
. ?. s8 D3 b5 Z8 Z6 `* V9 M        3、在上述代码中添加自己选择的通用SPIFlash,例如:: \' i0 R9 U6 T) Q6 e2 V4 c
        [EPCS-1C2017]  # EPCS64N (Eon-lead-free)
% z  ]( Y- b9 D. Y2 x8 ^        sector_size = 65536
) D  [( m! U5 c" b) N* v& r' q& u        sector_count = 128
1 N2 B; F* }' ~
) N& @" L. a- i4 y& i+ R6 V% s        然后再使用nios2-flash-programmer命令下载***.flash文件,就可以对SPIFlash进行下载了。6 z4 d* b2 U) {2 p7 z

$ T5 K& f# Z) b% q, m+ l" |        需要注意的是,FPGA使用的配置芯片的每个Sector大小都是定的,现在有些器件专门对Boot那部分代码进行了优化,及最开始的部分Sector会比较一般的Sector要小,从而达到提高Sector利用率的目的,比如Eon 64M的SPIFlash就分为两种,一种是每个Sector大小都是64K*128(EN25P64),还有一种就是(4+4+8+16)K+64K*127(EN25B64),而我们选用的是前面那类器件,器件ID为1C2017,器件ID可以通过nios2-flash-programmer --debug ...查询。
- ]. J1 A5 q2 K9 Q. X9 D; c" G6 N6 Y+ j1 W
        以上我选了一种器件进行做说明,大家可以根据自己的器件修改nios2-flash-override.txt文件,只需要更改ID号就行了,保证sector_size,sector_count与EPCS器件一致。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-19 02:22 , Processed in 0.049207 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表