6143|16

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于Flash的问题,请教高人! [复制链接]

我用的是str710f的单片机,FLASH用的是SST39VF6401,现在遇到一个奇怪的问题,就是我
向第8扇区写数据时第1640扇区也有同样的数据,
向第9扇区写数据时第1641扇区也有同样的数据,
向第10扇区写数据时第1642扇区也有同样的数据
如此类推,在扇区号前加N或减N都有一样,N为整数。
为什么同样的数据一次能写两份呢?检查程序没问题,地址线也不存在问题,但就是不知道原因所在。

 
 
此帖出自stm32/stm8论坛

最新回复

                                    EMI_INIT        LDR     r0, =GPIO2_Base_addr              LDR     r2, [r0, #PC0_off_addr]        ORR     r2, r2,#0x000000FF        STR     r2, [r0, #PC0_off_addr]        LDR     r2, [r0, #PC1_off_addr]        ORR     r2, r2,#0x000000FF        STR     r2, [r0, #PC1_off_addr]        LDR     r2, [r0, #PC2_off_addr]        ORR     r2, r2,#0x000000FF        STR     r2, [r0, #PC2_off_addr]        LDR     r0, =EMI_Base_addr        LDR     r1, =0x3C:OR:EMI_ENABLE:OR:EMI_SIZE_16  ///0x3C 0x38 0x34 ...(-4)... 0x04        STR     r1, [r0, #BCON0_off_addr] ;                     LDR     r1, =0x3C:OR:EMI_ENABLE:OR:EMI_SIZE_16  ///0x3C 0x38 0x34 ...(-4)... 0x04        STR     r1, [r0, #BCON1_off_addr]                       LDR     r1, =0x3C:OR:EMI_ENABLE:OR:EMI_SIZE_16  ///0x3C 0x38 0x34 ...(-4)... 0x04        STR     r1, [r0, #BCON2_off_addr] ;                     LDR     r1, =0x3C:OR:EMI_ENABLE:OR:EMI_SIZE_16  ///0x3C 0x38 0x34 ...(-4)... 0x04        STR     r1, [r0, #BCON3_off_addr]    详情 回复 发表于 2007-8-14 14:11
点赞 关注
 

回复
举报

85

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

有电路图吗?是不是你的电路有问题?

                                 另外,请介绍一下这个SST39VF6401,它是一个什么样的Flash?串行的还是并行的?容量多大?
此帖出自stm32/stm8论坛
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

电路图传上来看不清楚啊

该Flash是4M*16位并行的,共2048个扇区,每个扇区为2048word,
1word=16bit
此帖出自stm32/stm8论坛
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

4
 

没有电路图,也应该说说地址数据线是如何连接的

尤其是片选线。

STR710用的是什么扩展模式?
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

5
 

原理图在附件中

原理图在附件中请帮我看下,谢谢!目前我只用一块Flash,就是原理图中的U20.       U22扩展用。
我的QQ是115085212,在线通常隐身,你可以和我直接联系
相关链接:https://bbs.eeworld.com.cn/upfiles/img/20078/2007813145822267.rar
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

6
 

对不起,你能放一个PDF或图形文件吗?我没有PCB软件

                                 或者只需用语言描述一下地址数据线是如何连接的,尤其是片选线,STR710用的是什么扩展模式?
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

7
 

怎么还学人家把数据线扭成那样,累死你哦

建议你:
1.把硬件的数据口扭过来,用H-JTAG来写,
2.调整一下频率和等待时间来写
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

8
 

你这问题不是数据线的问题就是写的时间过快

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

9
 

数据线问题?

                                 如果是数据线问题那应该写的数据不正确才对,也不会存在写到两个不同的扇区啊,而且每一扇区数据都是正确的,就是写了两份。Flash的A0-A21地址线对应str710f的A.1-A.22,数据线D15-D0对应str710的D.0-D.15,是反着的,没办法电路图不是我设计的,我只写软件。CE#对应/CS0片选,读信号OE#对应/RD,ARM的/WE.0,/WE.1通过一个与门后连到flash的WE#
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

10
 

写外部flash的频率多少合适?

                                 我的MCLK=RCLK=FCLK=48MHZ,PCLK=6MHZ,没有设置等待时间!不知道有没问题?数据口如果改过来要重新做一次样板,现在没时间了。
此帖出自stm32/stm8论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

11
 

在写Flash时应该注意什么?

                                 请问当电路连接都正确的情况下,在编写Flash程序应该注意什么?(STR710F单片机)
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

12
 

你用什么工具写FLASH哦?

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

13
 

Re:

1. 硬件连接:
   Flash的A0-A21地址线应该对应str710f的A.1-A.22,其它的连接不变(事实上
   U21没必要使用,只需STR710的/WE.0与flash的WE#连接就可以了,因为该
   flash是16bit的)。这样,FLASH-U20的地址映象为:0x60000000~
   0x607FFFFF;FLASH-U22的地址映象为:0x62000000~0x627FFFFF;
2. 编写Flash程序的注意事项:
(1)你存在FLASH中的数据的地址必须在上述范围内;
(2)选择合适的“Cycle Length”(寄存器EMI_BCON0/EMI_BCON1中的位域),详 
     细参考STR710的datasheet和FLASH的参数;
 (3) B_SIZE[1:0](寄存器EMI_BCON0/EMI_BCON1中的位域)应为0x01b,因为FLASH
     的总线是16 bit的。
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

14
 

程序代码是放在STR710F内部FLASH中的

                                 我的程序代码是放在STR710F内部Flash中的,外部Flash(SST)只存放数据,我是通过程序写外部Flash的,不用其它式具写的。
此帖出自stm32/stm8论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

15
 

你最好用仪器看一下

根据你的描述,怀疑你的软件有问题:

向第8扇区写数据时第1640扇区也有同样的数据,
向第9扇区写数据时第1641扇区也有同样的数据,
向第10扇区写数据时第1642扇区也有同样的数据

分析一下:
如果使用CS0,那么第8扇区的地址是0x60004000~0x600047FF;而第1640扇区的地址是0x60334000~0x603347FF。可以看到地址线的低16位相同,误操作区域的地址线的A16~A19共四条地址线为高,是不是你的软件中输出了这样的地址?否则就是你的硬件上有干扰!

你最好用仪器看一下这几条地址线的情况,判断是软件的错误还是硬件错误。
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

16
 

BCON调大点试一下,可能是这问题

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

17
 

在 EMI_INIT 里加上最那几条,从0x3C开始测试

   EMI_INIT
        LDR     r0, =GPIO2_Base_addr      
        LDR     r2, [r0, #PC0_off_addr]
        ORR     r2, r2,#0x000000FF
        STR     r2, [r0, #PC0_off_addr]
        LDR     r2, [r0, #PC1_off_addr]
        ORR     r2, r2,#0x000000FF
        STR     r2, [r0, #PC1_off_addr]
        LDR     r2, [r0, #PC2_off_addr]
        ORR     r2, r2,#0x000000FF
        STR     r2, [r0, #PC2_off_addr]
        LDR     r0, =EMI_Base_addr
        LDR     r1, =0x3C:OR:EMI_ENABLE:OR:EMI_SIZE_16  ///0x3C 0x38 0x34 ...(-4)... 0x04
        STR     r1, [r0, #BCON0_off_addr] ;             
        LDR     r1, =0x3C:OR:EMI_ENABLE:OR:EMI_SIZE_16  ///0x3C 0x38 0x34 ...(-4)... 0x04
        STR     r1, [r0, #BCON1_off_addr]               
        LDR     r1, =0x3C:OR:EMI_ENABLE:OR:EMI_SIZE_16  ///0x3C 0x38 0x34 ...(-4)... 0x04
        STR     r1, [r0, #BCON2_off_addr] ;             
        LDR     r1, =0x3C:OR:EMI_ENABLE:OR:EMI_SIZE_16  ///0x3C 0x38 0x34 ...(-4)... 0x04
        STR     r1, [r0, #BCON3_off_addr] 
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播报名| TI 面向楼宇和工厂自动化行业的毫米波雷达解决方案
【内容简介】TI 60GHz IWRL6432和 IWRL1432毫米波雷达传感器如何帮助解决楼宇和工厂自动化应用中的感应难题
【直播时间】5月28日(周三)上午10:00
【直播礼品】小米双肩包、contigo水杯、胶囊伞、安克充电器

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 6

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表