今天总算可以写一个总结了。
前天周五的时候,在百特雷工,和刘工的大力支持下,总算把SPI启动的问题解决了。
到底是什么问题呢:SPI DATA FLASH本身的质量有问题造成的。
反映的现象是:从SPI DATAFLASH的0地址读取数据是没有任何问题的,但是如果从中间任何一段读取数据,就有严重的地址偏移问题。
调试过程及步骤如下:
原来认为是CPU(AT91SAM9263有A版本和B版本)版本有问题,造成无法读取FLASH造成,反馈的现象是:
当DATA FLASH启动后,会将第一段代码EBOOT.nb0,存放于DATA FLASH的0X5000偏移地址,加载后,会进行WINCE的引导。
但是实际结果是:
=================================
>RomBOOT
>RomBOOT
>RomBOOT
>
INFO: Low Level Init: OK
Starting main…
AT45DB321 …
Load CE-BOOT from Flash to SDRAM
Jumping…
-
==================================
从现象上看,DATA FLASH已经找到了,也就说明SPI线路是正确的,但是为什么读的数据有问题呢?
怀疑问题有如下几个:
第一:DATA FLASH的SPI本身硬件有问题,可能存在干扰。
第二:在从DATA FLASH拷贝数据到SDRAM中,出现错误,数据不正确,SDRAM初始化有问题。
第三:因我们的SPI线路和以前的版本不同,采用了MAX3002进行了隔开,怀疑MAX3002本身造成SPI线路的 不稳定。
第四:CPU版本有问题,AT91SAM9263从A到B版本,SPI已经改过了,就我知道的是AT91SASM9263 B版本的SPI,需要两次复位才可以工作。
|