页面编程指令时序图如图3所示,进行页面编程操作首先应将内部状态寄存器的写允许位(WREN)置1,然后将片选信号拉低选中器件,输入PP指令字节02H,紧接着输入三个字节的地址数据,然后输入要编程的数据,所有数据都输入后将片选信号拉高,M25P80随即启动内部逻辑完成编程操作。

4、 SPI模块软件编程

4.1 软件流程说明

SPI模块软件流程图如图4所示。

a、系统初始化:完成SPI接口引脚功能的选择、DSP外部接口时钟的定标、SPI接口时钟的使能。具体为:GPIO多路复用控制寄存器:GPFMUX中将相关引脚配置为SPI功能引脚,低速设备时钟定标寄存器LOSPCP中低速设备时钟的定标,外设时钟控制寄存器PCLKCR中SPI接口时钟使能,程序如下:

b、与SPI相关的中断初始化,使能外部中断向量表(PIEVECT寄存器),复位外部中断应答寄存器(PIEACK),清除外部中断标志寄存器(PIEIFR),置位PIE中断使能寄存器(PIEIER),清除全局中断屏蔽位(STI寄存器的INTM位)。

c、SPI接口初始化:首先在SPI配置寄存器(SPICCR)中置位SPI软件复位位,使SPI进入复位模式,设置SPI接口的时钟极性(根据具体的Flash器件操作特性设置,在4种时钟模式中选择,本系统选择不带相位延时的下降沿方式)、选择有效数据位数、选择奇偶校验位;在SPI控制寄存器(SPICTL)中:使能接收中断和发送中断、选择SPI时钟相位、选择主或从模式;SPI波特率寄存器(SPIBRR)中设置SPI接口的通讯波特率。

d、SPI增强型特性配置:SPIFIFO发送寄存器(SPIFFTX)中复位SPI发送和接收通道、使能增强特性、复位FIFO指针、清除FIFO中断标志位、使能FIFIO中断、设置FIFO中断优先级,SPIFIFO接收寄存器(SPIFFRX),请参考SPIFFTX寄存器配置,两者基本相同,分别用于发送控制和接收控制,SPIFIFO控制寄存器(SPIFFCT);根据具体器件的操作时序要求配置FIFO发送延时。实现程序如下: