本帖最后由 zjd1 于 2011-2-11 14:46 编辑
第一次做电路板是读高中的时候,从每周20块钱的生活费里省下一半来买元器件和材料。那样纠结着做出了自己的第一块电路板。敷铜板,透明胶带,三氯化铁,松香,焊条,现在想来还带着那么一种让人难以释怀的亲热劲儿。原理一知半解的,照着书上的原理图在敷铜板上画出线,然后用透明胶带裁成细条粘到需要保留的部分,再放到三氯化铁溶液里腐蚀。一晚上起来看好几次,翻翻搅搅,最后一次醒来发现漂亮的小板已经腐蚀好了。然后焊接调试……
可惜第一次以失败告终,板子没有调试成功。现在已经回忆不起当时的感受了,不过,肯定是十分美妙的,即便没有成功,也有了很多欣喜!最重要的是,我从此迈出了自己的第一步。虽然摔倒了,但也从此开始体会到更多的快乐。遗憾的是现在已经找不到那块对我来说意义非凡的板子了,不过,它留给我一串的美好回忆。
那一年,就是我的电子元年。
进了大学就像放归了草原的饿羊,看见绿的就想啃,抱本书就舍不得放。专业的书看起来没够,扎在图书馆就懒得出来(我们学校一般,不过,图书馆藏书还是着实不错的)……可是,因为没有基础,学的又没有条理,所以学起来很费劲。还好,我有世界上最强大的导师——兴趣。
虽然高中的时候做了第一块电路板,但实际对电子知识还是很懵懂。大一是我开化的一年。这一年在系里的电子科协做了不少电子制作:电子感应查线器,早上太阳出来会叫的鸟,循环闪烁的灯,手触延时的开关……都是一些比较简单的小制作。
大一在电子科协做义务维修的过程中翻阅了不少模拟电路相关的书籍和资料,知识和动手能力得到了很大的提升。
大二的时候啃书为主:数电,模电,单片机,DSP,X86,VHDL……见什么啃什么,虽然啃不出味,但也能充饥。当时就通过这样硬填的方式杂七杂八的学了一堆东西。不过,也算因祸得福,正因为当时那样没有条理的乱学东西,所以了解的知识面比较宽,填的也还算扎实。内功扎实了,再学套路就比较快了。
大二的时候做了声音采集板,音调调理板。当时还做了一块DSP板,使用的主芯片是TMS320C5402。不过,又是以失败告终了。起初仿真器还能连接DSP,后来过一段时间就连不上了。之后分析应当是CPLD逻辑导致的总线冲突烧坏了DSP。当时对DSP和高速设计的理解还不行,从那次的失败里我又学习到很多新东西。一直很感激当时学校的老师为我提供的那些做板的机会,也庆幸自己是在那所学校读书,好些的学校或差些的学校都未必能有那样的机会。
音调调理板 可惜当时都没有留下照片,现在连电路图也找不到几张了。上面是音调调理的板子,可以控制高、中、低频的增益。现在看着老土了,瞅着它,感觉就像看着自己小时候的照片,呆呆傻傻的,却又满溢着温馨和甜蜜……
大三上学期参加了全国大学生电子设计竞赛,制作的30M数控正弦波发生器。比赛过后利用周末时间在廊坊一家公司兼职做电子节能灯设计。也是从那时起,自己研发的东西开始量产并进入人们的日常生活。
USB主机接口板——现在看当时真的把蛇形线画的太“幽默”了 大四以学习和毕业设计为主。毕业设计是做USB主机,不过,时间比较紧,方法也不得当(当时是想着自己写所有代码),最终还是没有调试完就到了毕业的那一天。现在想想的话有很多省事的方法,实现起来也比较简便。大四期间也零星做过一些兼职。现在天津很多公交车前面的LED显示牌就是我那时候做的。到现在每次回天津的时候都能看到载着自己LED车牌的公交车,总会有一种莫名的亲切感。
动态LED驱动核心板——当时想卷动中国高校风潮的凌阳61单片机
也是大四那年犯了刻骨铭心的一个错误。当时做一个高亮LED驱动板,准备用于替换公交车上的一些显示固定的车牌,那样就不用为不同的公交车做不同的显示牌了。当时MOS管使用不当,导致了项目的失败,成为自己很大的一个遗憾……
05年毕业后在华为数通产品线做硬件测试。这一年积累并强化了很多专业知识,分析问题解决问题的能力也得到了很大的提升。
高速球中的电源及协议板 06年离开北京到天津一家安防公司做研发工作。主要从事高速球的研发。先是基于51单片机平台的产品改造和升级。成功完成几次产品升级并得到单位的认可后,便开始着手DSP项目设计。这次使用的DSP是比较高端的视频处理器——TMS320DM642,现在几乎所有接触视频硬件的人都听说过的一款经典型号,它也是至今很多新型视频处理DSP运算性能评估的一个标尺。但在06年,DM642的资料还是相当难找,而我们只有几个人的小单位,又得不到TI和其他有效的技术支持。而且由于经费和精力有限,我们要求只能一版成功,硬件由我设计,软件和算法由另外一名工程师负责。
困难就不多说了,大概三个月后,我们自己的DSP板小系统调通了。也是那时候,我们单位负责软件的工程师出国,项目便搁置了。
TMS320DM642视频板——被我拍的破相了:( 这就是我的第一块DM642视频采集板。开发过程中没有任何开发板参照,只能在网上四处搜罗资料,查看大量的数据手册和文档。单位要求一版成功,终于三个多月用四层板实现了这个设计。
自己花了挺大精力做出来的板子被这样封存起来,心里还是挺难受的。当时DM642的资料很难找,设计中的各种艰辛只有做过的人才有体会。而DM642的确是当时很有应用前景的一个芯片。于是后来把设计做了一些删减和更改,将完整工程公布到了网上,包括PROTEL99格式的原理图、网表和4层的PCB文件(后来还在自己博客陆续补写了设计说明以及CPLD逻辑等)。后来还发布了针对这个PCB的SDRAM仿真过程及结果,以供别人借鉴参考。只希望能为后来做DM642的工程师朋友提供第一手的资料,减少一些困难,缩短开发时间,也为很多中小企业节省一些不必要的经费开支。
后来发现了原设计中的两个错误并将错误及解决办法在自己的博客作了声明。
错误修正后的DM642视频采集板 带NAND FLASH和数字传感器接口的642采集板 上面两个板子是我业余时间帮一个研究生朋友设计的。前面一个主要是图像采集和压缩,然后经网络传输,后面的增加了NAND FLASH存储和CMOS传感器接口。
CMOS传感器视频采集板 这个CMOS传感器板是2010年初做的,配合前面的DM642板完成了CMOS图像的采集。传感器选用MICRON的MT9V032。该传感器具有全局曝光功能,可以拍摄快速运动的物体,不会像逐行曝光传感器那样存在运动物体倾斜。经过对比,这颗传感器在暗光线时性能超过一般的CCD传感器。
TMS320F2812电机控制+字符叠加板 这个是我2007年做的高速球转台控制板,完全更改了以前基于双51单片机的设计方案。虽然从51平台升级到DSP平台,但整体成本没有明显的增加。利用一片DSP代替了两片51,使系统结构简化;利用DSP的SPI、PWM配合一个LM2903比较器和一个模拟切换芯片实现了中文菜单叠加,省去了一颗日产OSD叠加芯片;电机控制采用新的单颗DMOS工艺美产芯片,替换了两颗日产电机控制芯片;使用DSP的PWM加阻容滤波实现了4路DA,用来控制电机电流,省掉了一颗4通道DA。重新设计了步进电机控制算法和加减速方案,并且针对实测结果对正余弦进行了补偿。
第一版硬件没有做任何修改实现了所有功能。通讯和菜单部分代码是由另一位软件工程师编写外,其余系统整体设计及软硬件设计由我完成。新方案达到128细分,加入了正余弦补偿,转台低速可达0.1度/秒,运转平滑顺畅。验证转台最高转速可达到480度/秒,通过软件设置增加电流后可以进一步提高电机的转速和加速度。配合专门订做的步进电机,优化后的加速方案使得球机在低于原功耗30%的情况下转速提高了50%,从停止加速到最高速只需0.33秒,电机运转时声音非常低,控制板和电机的发热量也比原先减小了很多。另外,除个别函数使用汇编外,都改用了C代码,使电机控制程序将来可以在不同的平台上移植,也易于与其它控制程序接口。
期间我用EXCEL重新制作了加速表格,主要依托于电机功率来自动完成加速表格数据设计,生成DSP中控制电机运转所需的所有数据。另外,还会伴随参数调整自动生成加速曲线图,可以直观的看出电机加速过程,并有助于分析其中可能出现的问题。避免出现某些特殊点或段存在加速功率需求过高而导致丢步的现象。
300度/秒加速曲线图 这个图便是大家常称的S加速曲线,前段缓慢加速是防抖动和避免顿挫感,后段则主要是等功率升速曲线。图中只取到了300度/秒,可以通过在EXCEL表格中向下拖拉填充自动生成后面的数据。
中文菜单叠加效果 这个是菜单叠加效果。通过LM2903比较器提取复合同步脉冲,判断到行同步后使用SPI的16字的FIFO完成每行256点的叠加点位输出,PWM+阻容滤波实现叠加电平控制。
球机装配效果图 08年公司被收购,我们部门迁到江苏,在江苏近一年的时间进一步完善了基于F2812的高速球。其实在设计这个方案的时候是瞄准了TI当时还没有推出的TMS320F28027这一系列,看TI的宣传以及提前发布的芯片资料,这颗芯片批量价格应该可以在20元以内,性能和功能可以满足我们的设计需求,只要芯片一出来,马上就可以把F2812上的程序移植过去。这样,整体的成本会往下降一大截,体积也可以小很多,控制板大致可以做到火柴盒的大小。后来公司做基于DM6437的智能高速球,除智能算法外,还剩余一些运算资源。我便把F2812里的电机控制算法移植到了DM6437里。在单一芯片里集成了智能分析和电机控制,使系统得到了很大简化。
移植完成后我便离开江苏回到北京。一直到离职前一两周才得到TI的TMS320F28027样片。当时想有时间的话可以把它用起来,并且把电机控制算法改一下,使它适用于自动跟踪平台,实现平滑跟踪。可是就像**捉弄一样,一直到今天都没有闲下来过,时间都被这样那样的事给挤满了,就连周六日也都像有导演精心安排的一样塞满杂事。
关于电机控制,我写过一个PPT文档《步进电机细分控制原理及仿真分析》,并将其共享到网络上。其中分析了步进电机细分控制原理,以及其中存在的问题和需要注意的地方。并且利用MULTISIM建立了驱动电路仿真模型,针对各点电压和电流仿真波形进行了分析。以供别人借鉴参考,希望那些对电机控制感兴趣的朋友能够快速入门并且了解步进电机控制的关键所在。电机控制是一门看似简单实际有着自己完整理论体系的科学,三年前,我在江苏一个二线城市拿到13.5K的工资,主要靠的就是步进电机控制。实际上,对于真正的电机控制来说,我也就是刚了解了步进电机控制里的一些皮毛。电机控制这方面还是很缺少能深入的人才的。
基于FPGA的图形叠加板(正面)
基于FPGA的图形叠加板(反面) 上面的图形叠加板是我09年做的一个项目。当时从江苏回到北京有三个月没有上班,就在大兴一所民宅蜗居了三个月做这个东东。因为项目要求体积很小,而且又要3个串口,对叠加质量和分辨率又要求很高。最后只能用FPGA内嵌软核的方式才能实现。用ARM或DSP都无法完美满足所有要求。
因为前面接触过CPLD,也有一些逻辑方面的基础, 3个月期间边学边试,还算顺利的完成了所有的硬件和软件设计。第一次使用软核之后就深深的喜欢上了这架构,强大的性能和独有的灵活性让人禁不住用过一次就会爱上它。
这个板子第一版存在一个问题,因为采用三极管做视频钳位,三极管的BE结之间的电压有一个-2.1mV/℃的温漂。当时没有太在意这么小的一个参数,最终环境实验时高低温100度的温度变化导致了210mV的视频同步头电平偏移,致使同步脉冲提取出错。后来在电路中加入了二极管做温度补偿才解决问题。
FPGA叠加效果图 这块板子可以实现从黑到白的多种灰度叠加,并且支持自动生成黑边,可以接收从3个串口来的控制信息及要显示的数据,用于进行控制操作或将传感器反馈的数据显示在特定的位置。叠加分辨率为640*540,一个叠加主图像和三个数据显示窗口位置都能够水平垂直以1像素进行移动。 |