找回密码
 注册
关于网站域名变更的通知
查看: 672|回复: 1
打印 上一主题 下一主题

Altera FPGA通用SPI Flash

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-7-20 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

Altera器件有EPCS系列配置器件,其实,这些配置器件就是我们平时通用的SPIFlash,据AlteraFAE描述:“EPCS器件也是选用某家公司的SPIFlash,只是中间经过Altera公司的严格测试,所以稳定性及耐用性都超过通用的SPIFlash”。就本人看来,半导体的稳定性问题绝大部分都是由本身设计缺陷造成的,而成熟的制造工艺不会造成产品的不稳定;并且,现在Altera的器件在读入配置数据发生错误时,可以重新读取SPIFlash里面的数据,所以在工艺的稳定性以及设计的可靠性双重保证下,通过选用通用的SPIFlash来减少产品的成本压力。


" V/ |1 X- M  E5 t% Q/ ^7 o

        假设我们正在使用一个普通SPIFlash,打开nios II command shell窗口,使用nios2-flash-programmer命令下载***.flash文件时,会发生如下错误:

' G3 e' [$ s8 f# f. E* [% R
        No EPCS layout data --- looking for section [EPCS-1C2017]

; D  @& c2 |8 f' n+ {5 ?

        以为不同公司的SPIFlash有不同的ID,并且不同大小的Flash的Sector大小及个数都不一样,所以需要新建一个文档去说明这些数据:

$ |$ }* z6 M# i! D

        1、首先在<nios2_install>/bin文件夹下面新建nios2-flash-override.txt文件;


+ G& {6 J3 b, Z2 R

        2、输入下述代码,下面描述的器件都是Altera的EPCS器件,sector_size表示sector大小,sector_count表示sector个数;


. M! z. y; t- v: q) C# o5 ]3 c) X        [EPCS-202011]  # EPCS1N (lead-free)
. m- B+ L2 L2 z+ b, w3 t8 u3 V        sector_size = 32768
$ B4 _: x  \* b# D2 z        sector_count = 4
% |4 l+ i3 Q# A1 T/ Q7 \        [EPCS-202013]  # EPCS4N (lead-free)
% @  X) l, _% O  [  E$ g        sector_size = 65536; U+ Q: S. W% n2 k8 p
        sector_count = 8& D* Z3 w# c1 ~# {1 w
        [EPCS-202015]  # EPCS16N (lead-free)" n: o: `0 U/ \( |) ]
        sector_size = 65536
; E6 ?& m1 W8 M        sector_count = 32
' {( I/ N8 C! t/ Z2 n        [EPCS-202017]  # EPCS64N (lead-free)( p  S% h: T) O
        sector_size = 65536: R* t  K" j3 r, Z8 r3 |( z- j
        sector_count = 128

0 m, R$ |+ g2 L6 C1 u

        3、在上述代码中添加自己选择的通用SPIFlash,例如:


/ U7 `, k; x7 v2 D) r& \/ B7 u8 o        [EPCS-1C2017]  # EPCS64N (Eon-lead-free)  I' t6 I5 o, ]* c5 T: H  W3 R
        sector_size = 65536
1 A* G6 p+ P, t: t) s) E4 f* ?        sector_count = 128

" K4 G" c" Q+ U/ [! v( v. e, `/ f

        然后再使用nios2-flash-programmer命令下载***.flash文件,就可以对SPIFlash进行下载了。


6 f+ B0 [- M6 [% y1 E/ Z# n6 _! P' V

        需要注意的是,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 ...查询。

3 e, L3 ?' j0 z( V

        以上我选了一种器件进行做说明,大家可以根据自己的器件修改nios2-flash-override.txt文件,只需要更改ID号就行了,保证sector_size,sector_count与EPCS器件一致

" u9 v" _8 V' |* f; u

1 L7 e4 J* c2 D: f4 S. T

( J) A! b. s- p% Y0 ?8 X; m" R


4 P' [- g1 L' i& q$ w- {- l3 M) @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-12 04:01 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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