打印

DM642 硬件复位问题解决方案

[复制链接]
413|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Clovee|  楼主 | 2017-11-10 13:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhangmangui 于 2017-11-11 00:15 编辑

DM642 硬件复位问题解决方案


   前几天和做硬件的同事,突然发现一个问题。DM642板子在初始上电时能够正常加载算法程序。但是按Reset键后,并没有如期望那样重新加载程序。起初以为是DSP复位时,其它外围芯片的引脚没有复位,而影响了DSP的引脚导致Reset,但是令人失望的是,通过对USB芯片,FLASH芯片正常复位,还是没有解决问题。最后,问题集中在CPLD芯片上面。因为发现这样一个问题,每次重新写CPLD程序时,DSP可以正常复位后加载程序,那么显然可以说明在按复位键时。cpld没有恢复到上电时的状态。这样导致无**常复位,后来仔细检测才发现。DSP的高三根地址线,我们是连接CPLD用来设置CPLD寄存器的值,根据CPLD寄存器的值以选择不同的FLASH页,而我的算法是放在第4页的。也就是在CPLD寄存器中设置了4,使用DSP访问的是flash第4页地址。加载完成第4页的程序,并没有将CPLD的页的地址恢复到第0页,还是保存4的值,这样就导致了,是reset时。硬件从0x90000000加载的不是flash 第0页的1k boot代码,而是从第4页加载程序,而第4页并不是bootloader代码。所以才会导致加载失败。最后,在程序中。当加载完成flash代码时。对上述CPLD寄存器,恢复到0,问题圆满解决!!!

相关帖子

沙发
zhangmangui| | 2017-11-11 00:15 | 只看该作者
恩  这种经验分享  很受欢迎

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

708

主题

1032

帖子

2

粉丝