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

Altera FPGA通用SPI Flash

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

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


4 {/ Y8 E2 {7 \/ Z

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


1 i2 T+ q* J% ~' k8 R        No EPCS layout data --- looking for section [EPCS-1C2017]

8 h3 r: E) [1 t; g$ s# P( V8 j. X8 T0 y

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


" B  L0 l( r+ S  F

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


  u7 s8 t6 N' M  v! b

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

9 s1 C* o$ O! l8 I! g4 Y, [
        [EPCS-202011]  # EPCS1N (lead-free)
1 Q6 w; c2 ^  v0 a' w# U) N5 I        sector_size = 32768( A0 }% i- K  ~+ H
        sector_count = 41 p' H* q$ t" [( ?
        [EPCS-202013]  # EPCS4N (lead-free)
. G8 O+ d4 _6 l. ~0 ?: s        sector_size = 65536
7 x. ]0 p/ s7 n4 I/ h2 k) O        sector_count = 8
! d$ ]; t4 ]& U$ h* @- `        [EPCS-202015]  # EPCS16N (lead-free)2 L' o: X! C2 Y  I7 J+ B; Z
        sector_size = 65536
( F( n7 u8 }/ f' |2 w        sector_count = 32
3 {8 R9 t: U4 N; K        [EPCS-202017]  # EPCS64N (lead-free)
' H# [; U! m9 p* ^# y2 {        sector_size = 65536
6 B0 G; E  k: S  A        sector_count = 128

  N! @/ z( C/ f. y- Y

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


, |+ c, G2 D1 T# z        [EPCS-1C2017]  # EPCS64N (Eon-lead-free)
, }# f( `' \  q& G$ H( A        sector_size = 655360 W& E# y% b% c) ^2 {
        sector_count = 128

8 K: J4 e. ]9 C* s

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

! T( f8 {# U- s  Y) `1 U7 ^) Y8 E

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

1 U0 Z! }& i; O5 F5 @- p

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


0 M6 s; e8 s, K5 N, H# Y

. d' E4 S1 I2 `, E+ H  U

: z! i$ J. f! z- U. q& j


- c" }! H  W$ K: `
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-12 11:11 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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