"); //-->
作者:胡恩伟 时间:2011年10月
今天,我们的2011ADI大赛复赛作品终于完成,此刻我们心中的喜悦之情难以言表~!在此谨以此文纪念刚刚过去的这个四个月大家一起努力拼搏的“光辉岁月”。
探索、创新永无止境。
梦想、成功永驻我心。
——写在前。
每参加一个竞赛,都有不同的体验和收获。也许有点人参加一个竞赛时单纯的为了一份证书或者是奖金,在乎于竞赛得结果和带来的荣誉。当然,我自己也在乎竞赛结果,但参加竞赛的过程更为珍贵和重要的。
回顾这过去的4个多月时间,不算太长,也不算短。做竞赛的日子是最忙碌的,每天都过得那么的充实,睡觉都在想下一步的改进方案,如何提高,如何完善,一切的感情和精力都投入到了自己的作品上。当自己的第一块处女作PCB调试一周最终成功下载运行,点亮LED灯时;当自己做的动机驱动加在买来的车模,小车缓缓启动时;当加速度传感器的i2c总线dump出小车加速度时;当无线模块接收到数据时。。。那一个个,一次次的喜悦,还留在我的记忆里。
付出不一定都会有回报,但是,不付出是肯定没有回报的。
执着是一种信念,更是成功的必备因素。在本次竞赛中,为了使我们设计的小车更加整洁美观,电路连接更加简单可靠。我们在用开发板调试成功的基础上,制作了一块PCB板。这也是自己话PCB的处女作(之前原理图画过不少,但PCB一直没有画过),从画原理图,建元件PCB封装,到布局布线,一步一步的走完,前前后后花了近半个月。然后下单,印制PCB,最后焊接,调试。在我看来一切似乎都应该非常顺利,因为板子的原理图是参照了开发板和官网的demo板画的,布线后的DRC检查也是零error零warning,一切OK的。但是,板子就是不能正常下载程序,仔细检查后发现自己的PCB上ADuC7026的JTAG的TRST线没有物理连线,然后焊了一个飞线搞定。蛮以为这下会OK了,可是问题依旧,擦出FLASH超时,CPU无法停止(cannot be halted afer reset)。之后检查reset管脚为高电平(万用表测试),也不是硬件管脚复位的问题啊~!之后又在网上google了两天,并在ADI的官方论坛里面搜索相关的帖子,看到网上确实有类似的情况,按照他们的解决办法,无论是改写keil4的FLSH下载算法和超时时限(timeout值),还是换晶振电容,检查电源,升级J-Link软件。。。等等都试过了,可以确定在硬件设计上供电电压为3.326V没有问题,晶振正常起振(示波器观察,标准正弦波),时钟电路也没有问题,但是问题依旧。
之后,我还是没有死心,我联系了ADI的技术支持,他们告诉我用串口下载,有可能是ADuC7026的片内flash引导程序被破坏了,用串口ISP重新刷一次就好,于是我就照做了,可是遇到的情况是ADuC7026的串口根本不想有ISP下载软件,我有仔细研读了一下官方关于串口ISP下载的协议和应用笔记,还用示波器和逻辑分析仪观察ADuC7026的串口管脚信号,发现时序和ISP命令均已送至串口管脚,但ADuC7026的串口输出响应管脚TX-pin始终为高电平,不响应。。。。头都大了。
那一个星期的时间,其他事我一概没管,也没有心情管,把全部心思都集中在这个PCB板子的程序下载问题上,有怀疑是PCB布线的问题(因为之前JTAG的TRST引脚是飞线的),又重新画了一版PCB,与此同时,自己也一直在网上搜索相关问题的答案(不断地想办法,试了一次又一次下载程序,不断地换搜索的关键词),终于在接近崩溃的边缘,收到了一个论坛的帖子,那是2006年的回帖,与我遇到的问题一模一样,都是ADuC7026的程序下载问题。他的解决办法是,发现ADuC7026的VDDIO管脚的0.1uF滤波电容没有画,飞线接了一个就好了,***太神奇!!!!开始,我也不相信,因为我的PCB上那个0.1uF的电容还是画了的,只不过是在电源芯片输出的3.3V电压那里,作为滤波电容加的,两个0.1uF的电容,布局的时候也自然是把他们和电源芯片放在一块的,因为那样方便布线嘛。
可曾想,最后的问题还真的就在一个0.1uF的电容上。而且VDDIO管脚的滤波电容还必须放在靠近VDDIO管脚的地方才能够起到滤波,问题IO口电压的问题。加上一个0.uF的电容,当然是以飞线的形式加上的,板子就好了,程序下载OK,调试OK,一切都OK了~!(PS:我最后得出的结论是稳压芯片得到的3.3V电压直接给MCU的VDDIO是由于走线干扰,存在电压波动,从而使得所有的IO口电压都随之波动,表面上用万用表检查可以看到是高电平,但实质上reset脚上IO电压波动造成了MCU内核不停的复位,故出现cannot be halted afer reset的现象)。
技术问题,尤其是硬件有些时候就是这么的神奇,做硬件设计的人必须仔细,同时经验的积累是非常重要的。这一次,一个0.1uF电容的教训无疑是深刻的。
信念和执着同样重要。
另外,在本次竞赛得软件设计上,我的收获也不小,虽然我们的整个程序设计没有加操作系统,但是编译生成的可执行hex文件也有足足30K大小,在编写如此多的C代码是,代码风格(包括换行,对齐和及时详细的注释和通俗易懂的变量函数命名等)都十分关键,在方便别人的同时也是解放自己;还要在编写程序时,保持一个清醒的大脑,有一个清晰的编程思路十分必要,就比如本次竞赛中的小车智能避障策略算法实现上,必须首先对小车避障流程有一个清晰的流程图,胸有成竹。否则,一个程序编下来,不但漏洞百出,状况各异,自己也是晕的。
再者,团队合作的力量不可小觑。竞赛中,两个小师弟都表现的非常给力,一个负责上位机显示与控制界面软件的编写,一个负责各种传感器的驱动编写调试。最后大家一起完成竞赛文档的编写和整理工作。明确的分工和及时的相互沟通,有力的保障了我们本次竞赛作品的顺利完成。在相互之间的交流和沟通中,学到新知识、新方法的同时也增加了我们之间的了解和友谊。
对于学电子,搞技术,立志成为一名出色电子工程师的我们,对技术的执着追求和对未知领域的不断探索是我们人生不可或缺的一部分。在读研期间能够全身心的投入在本次ADI大赛中,我感到机会的难得和对这已经逝去但充满激情的四个月竞赛生活弥足珍惜,这个竞赛经历将会为我的研究生学习留下难忘的记忆并给以我对未来工程师生涯的无限期待和信心。(胡恩伟于重庆大学)
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
eleaction01 阅读:2944