大家好,
我对C6678的SPI BOOT存在一些疑惑,望能与大家一起讨论一下:
我是自己做的板卡,Coreclk为100MHz输入,1.25GHz的PG2.0芯片
1.C6678在上电时,我给了BOOTMODE[]12:0]为0b0101000000110(SPI BOOT)。我想问问,这样上电以后,C6678的的Main PLLD、PLLM分别是多少?C6678的内核运行在多少GHz?
2. 这样上电后,RBL是不是先默认配置C6678的Main PLL,让C6678跑起来?此时,我是不是应该写个程序,就可以在C6678里面跑了?
3. SPI BOOT是不是指,RBL还能够从SPI FLASH的开始处,找到我自己编写的boot parameter,然后去根据这个parameter去重新配置PLL等外设?
4.如果想调试SPI BOOT是不是应该按照以下步骤:
(1)先上电,BOOTMODE[]12:0]为0b0101000000110(数据前几位可能变)。这样上电完了以后,C6678是可以运行的
(2)然后,写个SPI烧写程序,将自己写的Bootloader下载到外部的SPI FLASH里面。
(3)下次上电后,RBL将自动地从外部FLASH读取第(2)步中的Bootloader去配置C6678内部的PLL等外设。
我这样的步骤对不对?
我现在的问题是:在第(1)步结束后,我写个C6678的程序,打算烧写SPI,可以CCS却报出来“Device is held in reset”。可以我的C6678上的RESET、RESETFULL、POR都按照上电时序来起来了,而且C6678的RESETSTAT引脚已经对外指示高电平了,并且SYSCLKOUT引脚对外输出了16.6MHz。
我想问问,这问题到底出在哪里?
谢谢了~~~
Andy Yin1:
SPI boot上电后是不会初始化PLL,所以SYSCLKOUT输出时钟只有16.6MHz,具体SPI boot流程看一下RBL source code更容易理解。
从你的问题提示来看可能是上电时序有问题,还是要严格按照手册时序对照一下,测一下输入电压及时钟的正确性。
TI中文支持网