当前位置: 代码迷 >> WinCE >> s5pv210 nandflash驱动解决方案
  详细解决方案

s5pv210 nandflash驱动解决方案

热度:243   发布时间:2016-04-28 12:28:50.0
s5pv210 nandflash驱动
如题,开发板处理器是s5pv210,调试过程中发现,nandflash读写速度比较慢。具体情况是,用示波器测试读取一个sectors(2K)的时间是250us左右,而S3C6410的是120us左右,慢了一半!nandflash型号都是k9f2g08U0B,S5PV210芯片的主频是1Ghz,S3C6410的是600Mhz。有遇到类型情况的帮帮忙了,感激不尽。

------解决方案--------------------
这个没有具体测试过,只是感觉速度还行!
------解决方案--------------------
应该是bootloader的flash驱动部分可以优化。查查源码,对比下。

以前搞2440,把loader里面读flash一个page的代码换成汇编的,快很多。
------解决方案--------------------
timing没问题的话,应该是driver的问题了
------解决方案--------------------
感觉启动速度还可以啊,
我觉得还行,我的S5pv210 工控板子 觉得还可以,启动速度还可以的。
但是没有实际测试过。

觉得启动比6410 快啊。
------解决方案--------------------
楼主有没有S5pv210 的开发板或是其它家的,都量一下,确定是个通病还是只有自己的有这问题
------解决方案--------------------
我用的友善的tiny210,loader部分没源码。

请问楼主用哪家开发板?有loader源码的?
------解决方案--------------------
4个读信号,是指读命令吗?还是指读4个字节。具体nandflash的命令我也不记得了,楼主应该可以查到,如果是读完字节的话,是不是放缓冲区的时间长了?
汇编的话,很好查的呀。
------解决方案--------------------
有這麼難嗎,你看C:\WINCE600\PLATFORM\SMDKV210\SRC\COMMON\NANDFLASH\FMD\cfnand.h
裡面的static NAND_FLASH_SPEC g_supportedNAND[] = 
{
{0xEC, 0xDA, SLC_NAND, 2048, 64, 2112, 2048, 64, 7, 7, 7},
{0x00, 0x00, SLC_NAND, 0, 0, 0, 0, 0}
};
你看最後的7,7,7
NandFlash的操作時脈取決於
TACLS[15:12]
CLE and ALE duration setting value (0~15)
Duration = HCLK x TACLS
TWRPH0[11:8]
TWRPH0 duration setting value (0~15)
Duration = HCLK x ( TWRPH0 + 1 ) 
TWRPH1[7:4]
TWRPH1 duration setting value (0~15)
Duration = HCLK x ( TWRPH1 + 1 )

目前設定為7,7,7這是各安全值,不是最佳值
因為規格書上都不需要如此長的時間
你隨便改一下改成3,3,3
就會快非常多
但是最佳值要設多少,你要自己去看規格書,我懶的去看


------解决方案--------------------
usb2.0方面怎么样,速度能上来

——这个我加了一个USB hub 芯片,扩展出四个USB 接口。具体速度没测试
U盘鼠标,读卡器等都都在android/wince下使用,没问题。

做这些东西总有不停完善的地方,感觉总是不断发现三星原厂的bug 客户需求也很多,搞的无所适从。
------解决方案--------------------
可以找个spec 来看, RE就是送给flash 的clk。 flash 内部采样靠这个信号。
------解决方案--------------------
你测试的时候是测试Bootloader的nand读写?如果是的话,可以先对比一下 测试进入WinCE系统里面的读写文件速度。因为他们是同一个驱动的。
  相关解决方案