下面三种接法中都是从DSP总线的A1对应接到Flash的A0上顺序连接的,这是为什么呢?
为什么不使用DSP的地址总线中的A0呢,这要从5509的寻址方式说起,5509有两种不同的寻址方式——字节寻址和字寻址。当DSP中的CPU访问程序存储器空间时,采用字节寻址方式,而CPU访问数据存储器空间时,采用字寻址方式。C5509通过外设存储器接口EMIF对外部存储器空间进行管理,外部存储器空间被分成CE0-CE3四个空间,分别有EMIF的CE0~CE3四个引脚管理,当然这些引脚一般与外存储器的片选信号连接,如上图中连接所示,当CE1引脚为低电平时,则选中存储器,其存储内容就会被映射到CE1空间。
由于DSP中在访问程序存储器空间时,采用字节寻址方式,而访问数据存储器空间时,采用字寻址方式。所以对外扩flash操作是应该定义为字地址。
C5509的字地址宽度为23bit,而其内部地址总线为24bit,字地址加载到内部地址总线上进行传输时,内部地址总线就在23bit地址的后面自动添加一个0。
例如:一条指令要读取字地址(23bit)为000013h处的一个字,则读数据地址总线传输的24bit实际值为000026h。
所以CC5509的地址A0不能与外扩flash的A0相连,如果连接,则当编程对字地址200000h寻址时,外扩flash获得的地址是400000h,并且只能获得偶数地址。
这下应该明白了为啥在字寻址模式下不能使用DSP5509的地址A0了吧。
|