MPC5554通过外部总线接口(Extrenal Bus Inter-face,EBI)和存储器控制器提供对外部存储器的访问。其中,外部总线接口提供24条地址线和32条数据线与存储器相连,存储器控制器提供4条片选信号线CS[0:3],1条输出使能信号线OE,4条读写信号线WE[0:3],用于选择和读写外部存储器或设备。MPC5554的24条地址线和4条片选信号配合可以访问64 MB的地址空间。
在软件实现方面,主要是对EBI相关寄存器进行设置,同时在SIU(System Integration Unit)模块对相关管脚进行功能设置,以及对FLASH自身的程序设计。MPC5554自身划分了若干功能模块,并设有相应的寄存器。MPC5554的大部分引脚具有复用功能,每个引脚通过SIU模块的PCR(Pad Configuration Registers)寄存器进行功能选择。例如片选信号引脚功能复用为CS[0:3]_ADDR[8:11]_GPIO[0:3],作为片选信号需要对寄存器进行设置,其他相关引脚同理设置。
SIU.PCR[2].R=0x0443: //CS2
SIU.PCR[3].R=0x0443: //CS3
MPC5554的EBI模块对外部数据总线进行设置,对某片选信号相对应的外扩存储器进行地址与存储空间设置。其中,OR寄存器通过掩码的方式设置片选信号控制的存储空间大小。例如,CS[3]连接的FLASH起始地址为0x20000000,存储器空间为2 MB。
EBI.CS[3].BR.R=0x20000003;
EBI.cs[3].OR.R=0xffe00020;
该系统的重点是对FLASH进行操作的程序,主要是对AM29LV160DT内部的命令寄存器按一定的时序写入命令,如表3所示。通过这些命令或命令序列可以实现获得芯片信息、数据读取、整体擦除、扇区擦除和数据写入等功能。
下面附一部分FLASH擦写程序。
5 结 语
在此实现了在JTAG模式下对MPC5554外部FLASH的编程设计,验证了Codewarrior,P&E与JTAG组合开发平台的可用性,为MPC5554微控制器用于复杂多变量系统开发打下了基础。