【原创】Resetting and pausing target processor: FALSE 错误的解决

来源:互联网 发布:客服数据分析 编辑:程序博客网 时间:2024/06/06 09:37

使用NIOSIDE在下载程序到FLASH的时候发生如下错误:

 

Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: FAILED
Leaving target processor paused

 

如下图所示:

 

 

 

经过仔细检查,排除了引脚分配错误。而且,只是下载到FLASH,而没有用到SDRAM,所以应该和SDRAM没有关系。

 

 

在网上搜索的许多资料,折腾了好几天。最终将错误锁定到了CPU核心没有工作。

导致这个错误的原因有两个:一个是没有正确配置CPU 的复位端口;另一个是CPU的时钟没起作用。

 

于是修改了复位引脚,将原来的复位计数器去掉,直接将复位端加到芯片引脚。之后依然出现错误。

 

这是可以断定,错误的产生是由于时钟的原因。将PLL的时钟输出引导芯片外部,用电压表测量为0V。在QUARTUS中去掉PLL,直接用外部时钟输入到CPU,目的是为了验证我的推断。结果是可以通过CPU 的响应测试。果然是PLL出了问题。

一开始还以为是芯片的PLL坏了,换了一个别的工程,PLL正常,于是考虑是设计的问题。最初系统设计如图:

 

 

经过反复试验后发现,问题就处在PLL的复位端。当不使用PLL复位的时候系统能够正常工作,一旦使用了,就不输出时钟了。原因是当系统的复位结束后,PLL的复位变为了高电平,这正是PLL的复位电平,因此PLL一直处于复位状态。难怪没有CLK输出了。

 

更改电路,加上了一个反相器。

PLL终于正确工作了。FLASH的程序也能正常下载了,说明CPU工作正常了。如下图:

 

 

 

 

 

 

在次,仅仅是提供一个调试的错误原因思路,此类错误可能是PLL导致的。所以如果PLL真的坏了,那就真的悲剧了。

原创粉丝点击