问:附件为我的电路图和VDSP++中的boot配置选择。现象描述:程序在线调试无问题,通过SPI引脚对Flash芯片可成功进行读写操作;程序在下载的时候,用示波器观察SPI的几根信号线,应该有数据进入Flash芯片(DSP的MOSI有电平,有时钟,有片选);上电或复位后,程序在被引导期间有异常(有片选,有时钟,Flash芯片的输出引脚基本没输出,Flash芯片的输入引脚也基本没有输入)。说明:VDSP++中的boot配置选择,SPI SLAVE/SPI MASTER/SPI FLASH/SPI PROM,我全都试过,都不写,最简单的程序都不行(我试过只点一个LED的程序)。
问:最新情况:我刚才试了一下,用评估板把程序下到一个Flash芯片(与评估板上的flash并接,除了片选),评估板运行没问题。然后让这个Flash为我们自己做的板子提供程序(一样与自己板上的flash并接,除了片选),没反应。急求Andy解决啊!、
答:
你在仿真状态下,对SDRAM做遍历操作,看是否读写数据正确。
你把时钟配置的跳线,配置为最慢,看看是否能启动。
检查板子有没有焊接短路或者虚焊的地方。
问:我们又焊接了一块板子(这次请高手来焊接),今天下午进行了测试,就写了一个简单的点灯程序,下到板子上依然不行(已经屏蔽了SDRAM初始化程序,默认时钟配置为8:1最低速率)。在线调试过程,测试读写Flash芯片,正常。但是有这么一个情况:在线调试的时候对Flash下达写指令(03h),示波器测试,写指令03h对应8个上升沿时钟信号;复位时钟,DSP引导过程中,DSP首先也是向Flash下达写指令03h(ADSP21489芯片手册这么说的),但是这个03h对应了9个上升沿时钟信号,而芯片手册写的是1个上升沿应对应1bit。因此我们猜测 21489EzFlashDriver_Serial.dxe 这个文件对引导100脚21489和引导176脚21489是不是应该不同;我现在使用的21489EzFlashDriver_Serial.dxe是VDSP++安装库提供的,之前使用评估板一直都用它。所以下午我们对21489EzFlashDriver_Serial.dpj工程中的SPI配置进行了多次小修,然后重新编译生成21489EzFlashDriver_Serial.dxe ,但是还是不行。 急盼Andy和OP帮忙指点一二!感谢!
答:
你先生成一个确认没有问题的LDR文件,写入flash,最好在其他板子上测试一下看是否能启动。(100脚的芯片没用过,不知道他的LDR和大封装的有何区别。暂且认定没区别)
你把CLK_CFG 配置为11,即不使用PLL倍频。
拆掉复位芯片,或断开复位芯片对处理器影响,直接将RESET脚用10K上拉到电源,复位信号上飞一根线方便接地手动复位。
如果上电后不启动,用手摸一摸芯片,看是否会触发启动。 其他的想不到还有什么了
答:
我这2天去问了一下ADI北京和深圳的FAE,还真就找到有曾经的客户碰到跟你类似的boot不起来的问题,是在21479上的,你可以参照改一下试试看。
解决办法就是把“kernal文件”修改一下,“把user_init里的“#define EXT_MEMORY”这个宏注释掉”,“其他都保持工程原样,再然后使用编译出来的debug版kernel编译你的工程”。
21479的那个客户是改了这个之后就boot没问题了。
问:
问题已解决,技术手册里,包括评估板电路,Flash的时钟全部是下拉,但是。。。我们下拉就是boot不起来,后面把flash的时钟改成上拉,问题就解决了。
疑问:是ADI的手册写错了,还是因为176脚的21489设计就是要下拉,而100脚的设计就得上拉?这个OP再去跟ADI公司核实一下。
PS:设计100脚2148X的朋友要特别注意这里。
|