求真相,S3C6410对K9GAG08U0E这个NAND是不是兼容啊?
马上要开始做项目了,从开始计划到现在都没想到NandFlash居然存在这么大的问题。打算买了一块开发板打算做参考,却又听说S3C6410对K9GAG08U0E这个NAND不太兼容。(没想到CPU和存储芯片还存在这种问题)各位工程师朋友帮下忙啊,S3C6410这个CPU到底能不能用K9GAG08U0E芯片啊?不兼容会有什么后果啊?急~
[解决办法]
不是CPU和NAND不兼容哦,最多也就是驱动问题罢了。
[解决办法]
线路ok就没问题,跟K9F1G08U0B对比一下吧
[解决办法]
如何进行Nand Flash选型?
嵌入式系统设计是个复杂的工作,一个产品的性能是不是优良,很大程度上决定于芯片选型是否科学,各功能单元之间的搭配是否合理。就像我们电脑主机一样,一款奔腾处理器需要与其相配套的内存和硬盘才能恰到好处的发挥他的性能。今天我们探讨下如何进行NAND选型。
两年前,嵌入式系统设计还很少使用MLC Nand Flash,如今该技术已成熟并被广泛应用,最初工程师对其使用的‘恐惧感’已成为过去,而对其选型却成为越来越重要的知识。
Nand Flash和我们以前使用的存储介质有很大的不同,它是以页为单位进行读写的,一个页的大小最小为512字节,一般情况下,无论我们读写一个字节还是整个页,都要在一个整页的基础上进行操作。
Nand Flash芯片在出厂时会有若干坏块,我们需要软件配合来识别并管理他,在使用过程中也会出现坏块,我们必须不断把坏块搜集起来。
Nand Flash在读写过程中时常会出现某些位的反转,这样就必须把他纠正过来,纠正错误位的算法一般采用ECC,我们可以用硬件纠错也可以采用软件纠错(在超过4位的ECC算法实现时一般不会采用软件算法,因为太耗时了!会严重影响整个系统性能),比如S3C6410内部集成了ECC最大8位硬件纠错机制,注意这里说的8位是指在512字节当中纠错8位,也就是说能在1K字节当中纠错16位,如果一个页是4K,那么平均来讲,能在这个页中纠正8*8=64个的错误位。
需要注意的是,Nand Flash在出厂时因为所采用的工艺不同,对ECC纠错的能力要求也不同,一般情况下,越是容量大的Nand芯片出错的概率就越高,越需要更强的纠错算法,当然芯片本身性价比会越高。如何来选择合适的处理器和Nand芯片,主要看处理器ECC纠错的能力和Nand芯片ECC纠错的要求是否匹配。例如K9GAG08U0E这颗芯片,三星要求和它搭配的处理器要有在1K字节上纠错24位的能力,显然S3C6410是不符合要求的。
单片机 MCS51系列 27c128 27c512(ROM)
ARM7 S3C4510 / S3C44B0 SST39VF160(NOR FLASH)
ARM9 S3C2410 / S3C2440 K9F1208 K9F2G08 (SLC NAND)
ARM11 S3C6410 / S3C6440 K9GAG08U0M K9GAG08U0D(MLC NAND)
CORTEX-A8 S5PC110 / S5PV210 K9GAG08U0E(MLC NAND)
[解决办法]
学习了。。。。
[解决办法]
驱动要改的吧 ,一个是 SLC一个是MLC ,驱动架构是不一样的。肯定能支持的我都用过。
[解决办法]
按照6410的数据手册,SLC Nand只支持到1Bit ECC,MLC Nand只支持到8Bit ECC,你用在工业环境最好只用SLC Nand呀,这样数据可靠性要好些。 ARM11 S3C6410 / S3C6440可用的 NAND 芯片K9GAG08U0M K9GAG08U0D(MLC NAND),这两个没问题。
但K9GAG08UOE这个Flash,需要12bit纠错,S3C6410应该是不支持这个芯片的。这里注意一点,没有校验或校验不好的后果是Flash有坏块后发现不了,这样存储的数据就出问题了,问题很多。
[解决办法]
S3C6410下用K9GAG08U0E是可以的,我这有产品用
[解决办法]
修改驱动让他支持
[解决办法]