Part Number:TMS320C6678
EMIF的一个CE是否支持128M的nor flash?
现在有个项目,DSP的一个CE接了一个128M的nor flash 。
nor flash 的 高位 bit 通过 DSP 的两个 GPIO 管脚来拉高拉低。正常读低位的时候,GPIO都为底,当读写到高位的时候其中一个 GPIO 拉高
经过测试,只要高位不超过 0x04000000 ,都可以这样控制。但是如果超过了这个范围(64M),DSP就不能正常擦除读写FLASH。GPIO的控制逻辑应该没错。
问:DSP的EMIF是不是本质上就不支持读写超过64M的nor flash?(nand flash 没这个限制)
如果支持的话,需要注意配置哪些?
Shine:
nor flash是线性寻址的,寻址范围有多少根EMIF地址管脚数决定。如EMIFA口有24根地址线,所以寻址范围2^24xdata width. 实际没有64M,请看下面的datasheet上memory map下面的注释。32MB per chip select for 16-bit NOR and SRAM. 16MB per chip select for 8-bit NOR and SRAM. The 32MB and 16MB size restrictions do not apply to NAND.https://www.ti.com/lit/ds/symlink/tms320c6678.pdf
,
wapdasta:
经过测试,
1,我明白你的意思了,EMIF地址线【23,0】,可访问16M空间大小,因为数据线16位,所以16M*2 = 32M,DSP的一个CE原则上最多只能访问32M空间。
也就是说一个CE空间 0x74000000—0x78000000这64M,其实前面32M访问的内容和后面32M访问的内容是同样的。经过测试确实是这样。
2,如果nor Flash容量大于32M,想访问flash高位的存储空间,就需要额外用GPIO控制flash的高位。经过测试可以控制,需要控制好每次读写nor flash的基地址。例如如果访问0x76000000,则需把flash 24 bit位拉高。访问的基地址隐射到0x74000000.就行了。
经过测试一个CE能访问128M大小的nor flash。
,
wapdasta:
还有个新问题:
原理图上,为什么DSP的EMIF的第23bit位接在了flash的 0 bit位。其他位也都往后顺延了一位。
,
Shine:
新问题麻烦另起新帖,方便其他客户参考,谢谢!