理论教育 如何使用SPI_Boot函数启动设备

如何使用SPI_Boot函数启动设备

时间:2023-06-15 理论教育 版权反馈
【摘要】:SPI引导装载器支持8位数据流,但不支持16位数据流。这类的器件包括Xicor X25320、Xicor X25256SPI串行SPIEEPROM及Atmel AT25F1024A串行Flash等。在进入SP_Boot函数后,设置引脚为SPI功能,然后初始化SPI,以尽可能最慢的速度完成初始化。来自SPI EEPROM的数据传输以“脉冲”的方式完成。工作进程如下:1)初始化SPI-A端口。2)GPIO19引脚用于串行SPI EEPROM或Flash的片选信号。第一个读取到的字节是LOSPCP值,第二个读取到的是SPIBRR值。SPI引导装载器读取这7个字然后丢弃它们。

如何使用SPI_Boot函数启动设备

SPI装载器用于SPI-A引脚连接与SPI兼容的16位、24位可寻址的串行EEPROM或串行Flash器件,如图14-14所示。SPI引导装载器支持8位数据流,但不支持16位数据流。

SPI-A装载器使用的引脚包括:GPIO16上的SPISIMOA、GPIO17上的SPISOMIA、GPIO18上的SPICLKA和GPIO19上的SPISTEA。

SPI的引导装载器初始化SPI模块为与SPI EEPROM或者Flash的接口。这类的器件包括Xicor X25320(4Kx8)、Xicor X25256(32Kx8)SPI串行SPIEEPROM及Atmel AT25F1024A串行Flash等。

978-7-111-57271-8-Chapter14-45.jpg

图14-14 SPI装载器连接

SPI的引导装载器用以下设置来初始化SPI:FIFO使能、8位字符、内部SPICLK主模式和对话模式,时钟相位=1,极性=0,使用最慢的波特率

如果从其他设备上的SPI端口执行下载,那么该设备必须设置在从模式和模拟串行SPI EEPROM的情况下操作。在进入SP_Boot函数后,设置引脚为SPI功能,然后初始化SPI,以尽可能最慢的速度完成初始化。一旦SPI被初始化并且关键值被读取,用户就可以改变波特率或者低速外设时钟。

来自SPI EEPROM的数据传输以“脉冲”的方式完成。传输以字节模式(字符为8位)。工作进程如下:

1)初始化SPI-A端口。(www.daowen.com)

2)GPIO19(SPISTE)引脚用于串行SPI EEPROM或Flash的片选信号。

3)SPI-A输出一个读串行SPI EEPROM或Flash的命令。

4)SPI-A发送给SPI EEPROM一个地址0x0000,即主机要求EEPROM或者Flash必须从0x0000处开始存放程序块。装载器兼容16位和24位地址。

5)下一个要获取到的字节必须与8位数据流的关键值相匹配(0x08AA)。这个字的最低有效字节是首先要读取到的字节,并且最高有效字节是下一个要获取到的字节。SPI上传输的所有字都是如此。如果关键字不匹配,那么装载将会终止。

6)接下来的两个字节用于改变低速外设时钟寄存器(LOSPCP)和SPI波特率寄存(SPIBRR)的值。第一个读取到的字节是LOSPCP值,第二个读取到的是SPIBRR值。接来的7个字保留,用作将来的扩展。SPI引导装载器读取这7个字然后丢弃它们。

7)接下来的两个字节组成了32位的入口指针地址,在引导装载完成之后,系统将会继续从这里执行程序。

8)多个代码和数据块将通过SPI端口从外部串行SPI EEPROM复制到片内存储器。代码块以标准数据流结构传输。当遇到一个大小为0x0000的数据块时,表示传输结束。入口地址返回到调用程序并退出引导装载器,然后恢复执行程序。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈