调W29C040P-90B三天了,没进展,真的没脾气了...

[复制链接]
5045|20
 楼主| asian_here 发表于 2007-3-13 11:31 | 显示全部楼层 |阅读模式
公司一种产品,本来是用AT29C040的,但是AT29C040已停产了,现在要换为W29C040,调了三天了,一点进展都没有!

读出来的全是FF

程序也已经检查N遍了

写入0AAH到05555H 
写入55H到02AAAH
写入0A0H到05555H
设置扇区
写入一页数据:
        MOV     B,#80H
 WRITE_S1:
        MOV     A,@R0
        MOVX    @R1,A
        INC     R0
        INC     R1
        DJNZ    B,WRITE_S1
        LCALL   TIME10     ;10MS
其中:
高11位地址由74HC164 控制
程序一再分析了,没发现什么不对的.

大家帮帮忙,如果问题解决,最后会给出解决方案.先谢谢了!
 楼主| asian_here 发表于 2007-3-13 11:33 | 显示全部楼层

在线等...

我在线等...
bsbjx 发表于 2007-3-13 11:55 | 显示全部楼层

难道里面的内容本来就是FF???

xwj 发表于 2007-3-13 12:14 | 显示全部楼层

R0、R1置初值,不要跨页

 楼主| asian_here 发表于 2007-3-13 12:29 | 显示全部楼层

全是FF,没有跨页

是的,全是FF
------------------
没有跨页
-----------------

A里存储的是A8---A15
B里存储的是A16--A18
C用来选择上半页和下半页

        POP     B
        POP     ACC
        
        MOV     ADD_H,B
        MOV     ADD_M,A
        LCALL   LOAD_ADD;设置扇区
  
        POP     PSW
        MOV     R0,#80H
        CLR     A
        RRC     A
        MOV     R1,A

        MOV     B,#80H
WRITE_S1:
        MOV     A,@R0
        MOVX    @R1,A
        INC     R0
        INC     R1
        DJNZ    B,WRITE_S1
        LCALL   TIME10     ;10MS
 楼主| asian_here 发表于 2007-3-13 12:31 | 显示全部楼层

LOAD_ADD

LCALL   LOAD_ADD;作用是把高11位地址移入74HC164
NE5532 发表于 2007-3-13 12:35 | 显示全部楼层

你不用调,那两个FLASH是一样的

要出问题是硬件错.
 楼主| asian_here 发表于 2007-3-13 12:45 | 显示全部楼层

用AT29C040完全可以

我现在用来调试的这块板,如果把FLASH换为AT29C040完全可以正常工作,但是换为W29C040就不行了...
读出来的数据全是FF....
 楼主| asian_here 发表于 2007-3-13 12:47 | 显示全部楼层

主芯片

单片机用的是AT89C52
晶振:11.0592MHz
 楼主| asian_here 发表于 2007-3-13 12:56 | 显示全部楼层

我试试...

我试试...
hotpower 发表于 2007-3-13 12:56 | 显示全部楼层

ID不一样~~~编程是一样的

 楼主| asian_here 发表于 2007-3-13 13:29 | 显示全部楼层

擦除后再写也不行

系统初始化时就把FLASH整片擦除,然后再采样,存储..
上位机提取数据...
但还是不行......
提上来的数据:
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
65535.000
bsbjx 发表于 2007-3-13 14:09 | 显示全部楼层

W29C040坏了???

 楼主| asian_here 发表于 2007-3-13 16:40 | 显示全部楼层

没有一片可以

我一共买了十片,没有一片是可以的.
高建明 发表于 2007-3-13 17:07 | 显示全部楼层

看时序对不对,可能在临界值上面.

kenchen 发表于 2007-3-13 17:15 | 显示全部楼层

呵呵

片子坏了的,现在29C040 WINBOND也很少出货
hotpower 发表于 2007-3-13 19:04 | 显示全部楼层

选择类型很多,29x040/28x040/39x040

好做~~~
lenglx 发表于 2007-3-13 19:22 | 显示全部楼层

你的程序是否检查了ID号

1.2个片子的ID号不一样.看下你的程序是否检查了ID号.
2.你是否读取boot block,并且boot block已经被lockout了.
  如果你买到的是人家的拆卸件,这个很有可能哦.
3.打开写保护,向非boot块写入一些数据,再读出来看下.
4.如果还是不正常,没办法,我就闪人了.
 楼主| asian_here 发表于 2007-3-14 09:21 | 显示全部楼层

好的,我再认真检查一下...

好的,我再认真检查一下...
 楼主| asian_here 发表于 2007-3-14 11:23 | 显示全部楼层

仔细检查了一下...

1: 程序没有检查了ID号;
2: 向非BOOT BLOCK写数据依然失败;

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

本版积分规则

3

主题

22

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部