一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 5307|回复: 0

AlteraFPGA使用通用SPIFlash

[复制链接]
发表于 2010-7-21 09:09 | 显示全部楼层 |阅读模式
Altera器件有EPCS系列配置器件,其实,这些配置器件就是我们平时通用的SPIFlash,据AlteraFAE描述:“EPCS器件也是选用某家公司的SPIFlash,只是中间经过Altera公司的严格测试,所以稳定性及耐用性都超过通用的SPIFlash”。就本人看来,半导体的稳定性问题绝大部分都是由本身设计缺陷造成的,而成熟的制造工艺不会造成产品的不稳定;并且,现在Altera的器件在读入配置数据发生错误时,可以重新读取SPIFlash里面的数据,所以在工艺的稳定性以及设计的可靠性双重保证下,通过选用通用的SPIFlash来减少产品的成本压力。3 \" d2 Q3 {" s8 D! S
, M9 [$ U2 O9 t, @+ d' o
        假设我们正在使用一个普通SPIFlash,打开nios II command shell窗口,使用nios2-flash-programmer命令下载***.flash文件时,会发生如下错误:
! p- G( x/ ?1 P2 F        No EPCS layout data --- looking for section [EPCS-1C2017]
) Z' a2 y; B" h- I. |8 Y
, m9 [; g; ^. M( ~" ?" B& ~5 }. n        以为不同公司的SPIFlash有不同的ID,并且不同大小的Flash的Sector大小及个数都不一样,所以需要新建一个文档去说明这些数据:
% l4 D9 M+ g! t0 r
1 A4 R) `! K2 p+ ]) c        1、首先在<nios2_install>/bin文件夹下面新建nios2-flash-override.txt文件;# o' r. \1 D, c6 v

* v" Y: H& v' k3 A# v        2、输入下述代码,下面描述的器件都是Altera的EPCS器件,sector_size表示sector大小,sector_count表示sector个数;8 K$ O# P+ D) l4 [
        [EPCS-202011]  # EPCS1N (lead-free)
$ L9 h9 e# g8 n4 c6 U5 J4 z9 `$ @, q        sector_size = 32768+ M: F/ F& T- b
        sector_count = 4( W5 _+ [( J# H$ N. u! R
        [EPCS-202013]  # EPCS4N (lead-free)  d6 K# a, `7 J. q; Y6 [
        sector_size = 65536, v, h! i/ s  p. V8 \8 k( `' y
        sector_count = 8% `/ e6 x0 h, Z  P
        [EPCS-202015]  # EPCS16N (lead-free)
2 C; u6 \+ x; Z3 P3 Q6 S        sector_size = 655366 B% b) ^8 P+ k( u7 p
        sector_count = 32
* ?7 `0 Z4 j" L5 W8 b        [EPCS-202017]  # EPCS64N (lead-free)
2 Q: s8 Y: c2 Q4 X! q1 Q        sector_size = 65536& `; B. C7 G% H3 X4 \/ x
        sector_count = 128" V) X$ ^' p5 }* o7 V
$ G/ d9 C8 j% _: H- e/ g+ }  {
        3、在上述代码中添加自己选择的通用SPIFlash,例如:6 E7 K: T4 E: D/ i
        [EPCS-1C2017]  # EPCS64N (Eon-lead-free)" [; N# ?/ u, ?
        sector_size = 65536
6 Y, j& M; W! N6 J! i        sector_count = 128$ ~, ]3 I' ~5 u6 H9 ~' }
- {2 a* W& N8 j
        然后再使用nios2-flash-programmer命令下载***.flash文件,就可以对SPIFlash进行下载了。
# n3 F  K+ x8 |. U9 X8 h* z  w7 C. A0 y2 U4 L' b6 }4 K
        需要注意的是,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 ...查询。
" T8 l+ w9 m- P; \. V( r/ }1 v, M5 Q
        以上我选了一种器件进行做说明,大家可以根据自己的器件修改nios2-flash-override.txt文件,只需要更改ID号就行了,保证sector_size,sector_count与EPCS器件一致。

本版积分规则

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

GMT+8, 2025-8-20 12:04 , Processed in 0.042771 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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