TI中文支持网
TI专业的中文技术问题搜集分享网站

求助!c66780nor flash 烧写成功,但spi启动不了!!!

C6678 NOR Flash烧写成功,但SPI启动不了!!!

自制的6678板卡,有一个小FPGA提供上电顺序和时钟。现在按照论坛里的例程通过SPI启动,NOR Flash型号是NORN25Q128。采用NoDDR的方式,单核,使用ti的nor-writer工程能成功烧写,断电重启,SPI却无法启动。

由于我们的板子硬件设计为固定的SPI mode,不能通过FPGA或者拨码开关方式切换启动模式,所以所有步骤均在SPI Mode下进行,在开发板上试过该方法可行。

具体步骤如下:

1、准备应用程序,板子上没有LED灯,所以应用程序中每隔3ms翻转GPIO7电平。

应用程序主函数部分如下,程序裸跑,用示波器测试可以实现功能:

void main()

{

int i;

/*enable TSC, memory protection interrupts, EDC for internal RAM;

    clear cache; protect L1 as cache*/

KeyStone_common_CPU_init();

/*print device information.

Enable memory protection interrupts, EDC for MSMC RAM*/

KeyStone_common_device_init();

//enable exception handling

KeyStone_Exception_cfg(TRUE);

KeyStone_main_PLL_init(50, 20, 1);//Core输入时钟为50MHz,产生1G主频

/*GPIO使能模块*/

//打开CSL GPIO模块0

hGpio = CSL_GPIO_open(0);

//设置GPIO管脚为一个输出

CSL_GPIO_setPinDirOutput(hGpio,7);

for(i = 0;i < 1000;i ++)

{

//将GPIO7拉高,测试SPI烧写成功

CSL_GPIO_setOutputData(hGpio,7);

//延时3ms后将电平拉低

TSC_delay_ms(3);

CSL_GPIO_clearOutputData(hGpio,7);

//延时3ms后将电平拉高

TSC_delay_ms(3);

CSL_GPIO_setOutputData(hGpio,7);

//将GPIO7拉低

TSC_delay_ms(3);

CSL_GPIO_clearOutputData(hGpio,7);

}

return ;

}

2、成功编译GPIO应用程序,生成一个.out文件,重命名为simple.out,将该文件拷贝到spi_boot_suit\1_utilities\1.6678\singlebore_boot_not_support_large_binary文件夹下,双击spiboot_single_noddr.bat批处理文件,得到siprom_le.dat,该文件见附件1。

3、打开MCSDK自带的nor-writer工程,将工程bin文件夹下的nor_writer_input.txt 打开,修改输入文件名为spirom_le.dat 并将spirom_le.dat拷贝到mcsdk_xxxx\tools\writer\nor\evmc667xl\bin路径下

4、由于我的板子和开发板不同,DDR参数不同,不能使用开发板的gel文件,所以我在此先执行一个应用程序,进行DDR初始化,测试过SYSCLKOUT正确,观察memory空间里的数据也正确,初始化成功。

5、链接nor-writer工程,等PC指针停在main函数入口,打开view–memory browser,输入0x80000000,load memory 选择spirom_le.dat,(自动)勾上Use the header…  

   再次确认start address 为0x80000000,length为spirom_le.dat的长度(单位是word) 开始往DDR里灌数。观察到memory空间里的数据正确。

6、烧写nor-writer工程run,观察console输出如下:

说明烧写成功

7、断电后重新上电重启,用示波器观察GPIO7引脚无反应,测试SYSCLKOUT=8.3MHz,说明SPI未启动。

该问题已经持续了两周,实在找不到原因。请各位大神帮忙看看,是我们的配置或流程有哪些不对吗??或者我们需要测试哪些来定位问题??

附件1

上述附件的Boot Parameter Table中,(1)SPI mode试过1或0都不行;(2)PLL看手册说明是bypass,应该没有关系。同时,我也按照我们的PLL配置过,还是不行,PLL配置如下:

我们的板子BOOTMODE[12:10]的硬件设计为0b000,所以按照如下手册

我的Boot Parameter Table中PLL配置为0x02002740(大端表示)。

(3)上述附件.dat的参数表是大端表示,我也按照小端表示更改过,如下附件2,无法启动。

另外,我们的工程都是小端的,为什么例程里用的boot parameter table要用大端呢??

user4962317:

这是上文中提到的dat文件。

user4962317:

我们在自己的板子上进行spi nor flash烧录,显示成功但spi启动不了,具体见附件,请各位大神帮忙!

该问题已经持续了两周,实在找不到原因。请各位大神帮忙看看,是我们的配置或流程有哪些不对吗??或者我们需要测试哪些来定位问题??

附件1

上述附件的Boot Parameter Table中,(1)SPI mode试过1或0都不行;(2)PLL看手册说明是bypass,应该没有关系。同时,我也按照我们的PLL配置过,还是不行,PLL配置如下:

按照如下文档描述:

我们的板子BOOTMODE[12:10]的硬件设计为0b000,所以按照如下手册

我的Boot Parameter Table中PLL配置为0x02002740(大端表示)。

(3)上述附件.dat的参数表是大端表示,我也按照小端表示更改过,如下附件2,无法启动。

另外,我们的工程都是小端的,为什么例程里用的boot parameter table要用大端呢??

user5801771:

回复 user4962317:

您好,我目前也遇到了和您一样的问题,也是在自己的板子上实现spi nor flash启动,我这边用创龙给的NORflashwriter可以烧写,但是用ti官方的norwriter却不能烧写。虽然用创龙的NORflashwriter烧写成功,但是启动不了。请问您后面问题解决了吗?期待得到您的答复,谢谢了。

赞(0)
未经允许不得转载:TI中文支持网 » 求助!c66780nor flash 烧写成功,但spi启动不了!!!
分享到: 更多 (0)