关于6678的EMIF16接口,使用中有两个问题想请教下专家:
1:EMIF16的EMIFBE信号根据手册上讲是控制高低字节有效的信号
但是外挂的16 比特位宽的NOR FLASH只有一个BYTE的输入控制信号,当BYTE=1时为16比特操作,BYTE=0时为8比特操作
怎么用6678的EMIF16的 EMIFBE[1:0] 两个信号来控制外部的这个BYTE这一个信号呢?
我的理解是:
(1)如果DSP要16比特方式去读NOR FLASH,就把flash的BYTE信号置1(16比特访问)—出来的数据是16比特
(2)如果DSP要8比特方式去读NOR FLASH,就把flash的BYTE信号也置1(16比特访问)— 出来的数据是16比特
然后DSP的内部逻辑根据寻址时是要用这16比特的高字节还是低字节来自动从这16比特来提取一个字节的数据(提高8位或者低8位)
EMIFBE[1:0] 只是一个状态指示信号的作用,没有实际的控制外设的作用
不知道这样理解是否正确,不然EMIFB1信号不知道怎么接到FLASH上去,FLASH上面根本没有对应的管脚啊。。。
2:EMIF16接口 16比特方式访问外挂的NOR FLASH时,地址线为什么必须要错位连接呢?
如手册上讲的 EMIFA [22:00,23]————–>NOR FLASH A [n:0]
这样相当于将EMIFA 23直接接在了FLASH的 A0上,为什么不用顺序连接的方式呢?
EMIF A [0]——–> NOR FLASH A[0]
EMIF A [1]——–> NOR FLASH A[1]
…………………………………
EMIF A [n]——–> NOR FLASH A[n]
希望专家抽空可以给解答一下,多谢
Shine:
1. BE1, BE0的输出逻辑见EMIF手册上的表2.5.3 EMIF16 Truth Table。
www.ti.com/…/sprugz3a.pdf您用的flash的byte线为高表示16bit位宽,BE1,0要做一下逻辑再去接,总之,就是要让两者的时序匹配。
2. EMIFA地址A0是least significant bit of a 32-bit word address,所以接16bit,8bit时需要用A23, A22表示least-significant bits of the halfword or byte address。具体可以看下面的帖子说明。
e2e.ti.com/…/166642