汽车电子expert成长之路

本博客发布的个人原创精品----嵌入式系统技术文章,欢迎大家参考学习,并转发分享!

2011 ADI创新设计大赛 重庆大学 2011018队参赛感言

0
阅读(4268)

2011 ADI创新设计大赛 重庆大学 2011018队参赛感言

作者:胡恩伟、宋宁帅、蔡自伟

   今天,我们的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大赛中,我感到机会的难得和对这已经逝去但充满激情的四个月竞赛生活弥足珍惜,这个竞赛经历将会为我的研究生学习留下难忘的记忆并给以我对未来工程师生涯的无限期待和信心。(胡恩伟)

 

 

这次有幸和师兄一起参加这个竞赛,接触并深入了解了ADI的单片机。Aduc7026虽然只是ARM7的内核,但是仍然具有相当高的执行效率。再加上其丰富的外设资源,对嵌入式应用的开发还是很合适的。特别让我感到惊奇的是它还有PLA单元,给设计提供了更大的灵活性。但是也有感觉用起来不怎么方便的地方,比如说IRQ中断,外部中断只能高电平触发等等。在和师兄调试程序的过程中也学到了很多东西,更加深刻的体会到嵌入式程序的调试比开发更难,各个模块之间都会相互的影响。在调试无线接收模块的时候,开始的问题是传输并不是每一次都能收到,因为我们开始使用的轮询的接受方式,后来我们改为中断的方式来接受。经过艰苦的调试,中断能接收了,但是接受成功了,发射又不行了。这种模式的切换引发比较纠结的问题。诸如这样的问题,在加入加速度传感器后也同样遇到。问题总是有的,我们需要的是一个个的去解决它。在这个竞赛中,最重要的是学会了:不要放弃,问题始终在那里,除了克服它我们别无选择。(蔡自伟)

 

 

很早就听闻ADI公司生产的单片机功能很强,可之前从未亲自试用过,调试过,借助这次设计大赛,我切身体验了一把,果然名不虚传,丰富的外部接口,快的运行速度,精确的定时等都给我留下了深的印象。本次竞赛设计中我主要负责上位机的编程,通过串口将无线设备RF2401接收到的数据传输到PC机上,编写上位机界面程序,完成数据的实时处理和显示。在本部分,要完成小车周围温度、湿度、光照等信息的数字显示,并要对数据进行实时绘图,以便工作人员更好的观察以上数据信息变化的趋势,做进一步的打算。由于首次尝试编写单文档和对话框混合的界面,中间遇到了很多问题,例如画图中曲线闪烁等,通过与他人交流,以及上网查阅,这些问题都被我们一一克服,从中我也领略到了软件编程的妙处和苦处,“纸上得来终觉浅,绝知此事要躬行”,这次是有了切身的体会。Aduc7026单片机快速的运行速度也帮了我不少的忙,开始我还担心由于串口数据传输速度慢,不能使曲线更平滑实时的问题,可在设计实验中,完成打消了我的顾虑,这块单片机在完成各个数据的采集处理后,在以每秒20帧的速度传输完全没出问题,这也确实让我佩服。

竞赛过程是艰难的,有成功的喜悦也有失败的苦涩,不管怎样,在我们小组的齐心努力下,我们完成了本项目的设计,深深让我感受到了团队合作的力量。最后我想说:相信自己,我能行!(宋宁帅)

 

                                   2011年9月29日星期四

                             于重庆大学A区主教学楼2601实验室