wince 更换 FLASH 后驱动异常

dengchonglin 2011-02-14 05:25:32
请教各位高手,我把 K9GAG08U0M-PCB0 更换为 K9GAG08U0E-SCB0 后,
在 BOOTLOAD 里面
1、读 FLASH 的状态寄存器 70h 能正确读出来 0xE0
2、读 Device Code 的时候读不出来,
maker code 0xEC 也没有。

我对了一下两个 FLASH 的时序是一样的~!唯一的区别就是引脚上面多了几组 VCC VSS 。

代码如下
// Chip Select
NF_CE_L(nBank);
NF_WAIT_RnB(nBank);
for(i=0;i<500;i++);
NF_CMD(CMD_READ_STATUS);
for(i=0;i<500;i++);
nMID=NF_DATA_R();
RETAILMSG(1,(_T("[FIL]STATUS = 0x%02x\r\n"),nMID));
// Read ID Command
NF_CMD(CMD_READ_ID);
NF_ADDR(0x00);
// Find Maker Code
for (i=0; i<20; i++)
{
nMID = NF_DATA_R(); // Maker Code
RETAILMSG(1,(_T("[FIL] nMID = 0x%02x\r\n"),nMID));
if (nMID == 0xEC) break;
}
RETAILMSG(1,(_T("[FIL]++111Read_DeviceID()\r\n")));
// Read Device Code
nDID = NF_DATA_R(); // Device Code
nHID[0] = NF_DATA_R(); // Internal Chip Number
nHID[1] = NF_DATA_R(); // Page, Block, Redundant Area Size
nHID[2] = NF_DATA_R(); // Plane Number, Size
RETAILMSG(1,(_T("[FIL]nDID = 0x%02x nHID[0] = 0x%02x nHID[1] = 0x%02x nHID[2] = 0x%02x \r\n"),nDID,nHID[0] ,nHID[1] ,nHID[2] ));
// Chip Unselect
NF_CE_H(nBank);
...全文
151 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
dengchonglin 2011-02-16
  • 打赏
  • 举报
回复
谁给点引导??
loongembedded 2011-02-15
  • 打赏
  • 举报
回复
楼主可以参考我的一篇博文,希望对你有帮助http://blog.csdn.net/LoongEmbedded/archive/2010/11/26/6036448.aspx
dengchonglin 2011-02-15
  • 打赏
  • 举报
回复
读 ID 和 PAGE SIZE BLOCK SIZE 应该没有关系的。
估计是 ECC 的问题,
K9GAG08U0M-PCB0 的 ECC 4BIT/512BYTE
K9GAG08U0E-SCB0 的 ECC 24BIT/(1K+54.5)byte

而 S3C2416 不支持 ECC 24BIT/(1K+54.5)byte
怎么办哦~!
Ei 2011-02-15
  • 打赏
  • 举报
回复
PAGE SIZE 都不一样了,肯定驱动要改
你的ID信息里面 应该包含了 PAGE SIZE 、BLOCK SIZE 这些信息。
dengchonglin 2011-02-15
  • 打赏
  • 举报
回复
今天看看datasheet 发现
PAGE SIZE 不一样,
一个是 4K 一个是 8K
BLOCK SIZE 也不一样
一个是 512K 一个是 1M

不知道这个和驱动是否有关~!
个人认为和后面的驱动有关
与这个读ID 应该没关~!
逸萌 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dengchonglin 的回复:]
之前的是能读出 ID 的。
应该不是焊接的问题
我都对了引脚、电压~!
[/Quote]up
dengchonglin 2011-02-15
  • 打赏
  • 举报
回复
之前的是能读出 ID 的。
应该不是焊接的问题
我都对了引脚、电压~!
AMOROUS 2011-02-15
  • 打赏
  • 举报
回复
应该是硬件问题吧,不是pin2pin的话,就应该看看画板是否有误啊
loongembedded 2011-02-15
  • 打赏
  • 举报
回复
你上面代码的下面这些内容
for(i=0;i<500;i++);
NF_CMD(CMD_READ_STATUS);
for(i=0;i<500;i++);
中的for循环就体现了时间要求啊
dengchonglin 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 loongembedded 的回复:]
需要特别注意的是读flash时序的相关时间参数是否不一样。
[/Quote]
请问一下这个时间参数在哪里设置呢?
loongembedded 2011-02-15
  • 打赏
  • 举报
回复
需要特别注意的是读flash时序的相关时间参数是否不一样。
ProEmbedded 2011-02-15
  • 打赏
  • 举报
回复
K9GAG08U0M-PCB0 和 K9GAG08U0E-SCB0 是同一型号的不同系列,读芯片的ID应该是同样的代码,你连ID也读不出来可能是其它问题,没换之前能读出来吗?焊接是否有问题?
vann1982 2011-02-14
  • 打赏
  • 举报
回复
是硬件问题了 不是CE问题吧 不太明白

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧