做arm前后的一些经历_第1页
做arm前后的一些经历_第2页
做arm前后的一些经历_第3页
做arm前后的一些经历_第4页
做arm前后的一些经历_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

前传篇 虽然到现在为止我的 arm9 还没有做出来,目前只调通了一块。写这篇文章的目的,就是 想和嵌入式爱好者做一个简单的交流。 2002.9 月以前我是做龙珠的(dragonball vz)软件的,使用的是 uclinux,因为一直使用公司 的板子,也就是那块 motorola 的 ads 板。觉得上面的东西看起来不是很复杂,因此很想自 己做一个龙珠的板子来玩 uclinux,但是我不会使用任何一个画板的软件,最多也就会使用 protel 画画原理图之类的( 现在想想,从原理图到 pcb 还是有挺多细节要注意的),后来在 一个朋友的帮助下,我十分生疏的画了一个龙珠的简单的板子。不像学软件那样,买本书, 有台电脑就差不多够了。制板是要掏钱的,我的薪金一直偏低,在女朋友的支持下,我终 于拿去制板了,接下来就是买元件(十分简单但是又十分繁琐的一件事 )。再接下来就是焊 接了,大学时有个电子工艺实习,我学会了焊接电烙铁焊接直插元件,但是面对 tqfp 的 144 脚表贴元件,我还真不知道怎么下手。我又在网上结识了另外一个朋友,还到他们的 实验室看了一下怎样焊表贴元件,觉得也不是很难嘛:),观摩回来我就自己试着焊接,最 后出来了,黑糊糊的一堆,反正是很难看的东西了。期间尝试使用锡浆,助焊剂,松香水 之类的。不过我很幸运阿,这个板子可以跑 uclinux。 再到 2003 春节的时候,(此时国内的 arm7 板已经发展起来了)我又重新做了一个龙珠的板 子,这次参考了其他一些漂亮的板子,因此看起来比上次那个顺眼一点。还写了一个详细 的文档,我的目的就是:卖。至少要把成本收回阿。我把做好的板子首先送给了一位朋友, 他建议我做个 arm9(2410)的板子,我就开始在三星网站找资料,不过我还是和深圳另外一 个朋友一起合作把龙珠的板子整理了一下,写了几个简单的演示程序,准备卖几块。不过 在 arm7 的势头下,dragonball 已经鲜为人知了,在龙珠上,我和深圳的朋友已经尽了最 大的努力,这件事上,深圳的朋友至少在钱的方面,帮助了我很多,在他身上,我还学到 做事要认真、要有耐心、对用户负责的精神,从内心中,我一直都很感激他。后来接了一 个龙珠的小项目,还有一些其他事,我就回到广州了,那是在今年 6 月底。 回到广州,女朋友刚刚动完一个手术,身体很虚弱,陪了她两周,然后就想在她家附近找 类似机关单位的工作,亲戚帮忙介绍了几个,大部分都只是和负责人见面谈了谈,我就不 想在那种单位呆了。因为我发现有的工作台连台电脑都没有,要不就是跟一群当地没有工 作经验的大专毕业生在一起,和嵌入式丝毫没有关系,并且要十分注意脸色行事。有一家 办公的环境还不错,刚刚上午说了要我帮他们搞个 linux 网站,下午就被派去施工安装网 络插座了,说是领导安排要先在底层锻炼几个月再说。并且没有宿舍,三餐自己掏钱,工 资不到 2000,附近租房出奇的贵。折腾来折腾去,一个多月就进去了,结果什么都没搞成。 这时接的那个项目催的又急,gf 父母那边又相处的不是很好。干脆,我就在广州租了个房 子呆下去了(想想一年来我寄居过、租过不到 7 平方米的地下室、四周阴暗又不通风的民房。 。这次租的是一房一厅,感觉还不错) 到 8 月份的时候,我终于勉强把客户的那个龙珠板设计出来了。那是我第一次做四层板, 总共做了 8 块,深圳的朋友当时给了我一些够用的龙珠芯片。当时正值沿海的热浪袭击, 我又住在顶楼,天气热的要死,楼下就是一个超市,天天在做宣传促销活动,并且还是几 个公司一起搞,结果几对大音箱互相争霸,主持人简直就是歇斯底里的喊,我还打电话到 南方都市报投诉,但没有任何结果。我拿着电烙铁一边焊一边骂,谁知焊了第一块板,一 点反应也没有,就焊第二块,又是没有反应,当时穿着短裤,融化的焊锡一不小心就掉到 腿上,到现在还有个疤,我简直又气又急。看看剩下的芯片和板子,又仔细检查原理图和 pcb,真是好郁闷啊 !我就想,反正有 8 块板呢,我才焊了两块而已,不行就接着焊,于是 终于在第四块板的时候跑起了 uclinux,接下来的一个月就做相应的软件。这时我自己攒的 钱已经花的差不多了,这么久没有去工作,心里很急啊!那时我几乎每周都去招聘会溜达 一圈,期望能在广州找个自己喜欢的合适的工作。但是自从今年下半年以来,工作出奇的 难找。我天天都在安慰自己,一定能找个好工作的。我女朋友也鼓励我要找个自己喜欢的 工作。另外我接的项目要的钱也很少,只有几千块,向客户苦诉了一番,才又多给了 2000。做完龙珠的几个软件(也就是几个简单的驱动程序和测试代码),我就拿到一些钱了, 心里稍微安慰了一下。这时已经到了国庆节,arm7 的板子在国内已经遍地开花了。我找和 以前那个朋友又见面商量了一下,问他能不能帮我搞定 2410 的软件,于是过完国庆,就 开始参考 mizi 设计 arm9(2410)了。 到那时我已经好长时间没有工作了,也逐渐的适应了,大不了再跑去东莞或者深圳打工嘛。 我今年 25,感觉还不算老啊,年轻的资本就应该这样挥霍。从国庆开始,我在墙壁的四周 写下 10 月份的目标:设计出 2410 的板子。于是,第一次做完一个 4 层电路板,我就开始 第一次做 6 层板的设计了。我以前工作的时候,留意多认识一些搞硬件的朋友,这次设计 6 层板,不懂的地方我就打电话问,比如怎么做等长线,buffer 该怎么处理,要不要 cpld 之类的。我以前是个小小的软件工程师,现在要做逐渐做个硬件工程师。因此很多地方就 要虚心请教,我知道我还要交更多的朋友,拜更多的老师。设计这块 2410 的时候,对我 这个急性子而言,太需要耐心了,于是我就租史泰龙的碟来看,每次不想坚持下去的时候, 我就租张rocky来看,也当休息一下:-)幸好我以前也没有看过,所以看完了我就不想睡 觉了,接着画图。虽然恐怖片也比较刺激,但是我不敢深更半夜一个人看:(白天也不敢)。 大部分我是晚上画图的,白天睡觉,因此这里实在是太吵了。实际上,我两周基本上画完 了 pcb,又用了一周修修补补,毕竟做一次 6 层板对我来说还是不小的金钱付出啊。 10 月 30 号,我正式把 pcb 发送给制板厂了。8 号拿到 pcb,其中的 8 天,我又帮人设计 了一个 2 层的龙珠板,可惜要到明年才能拿到设计费。等买完 2410 的元器件,我又接近 弹尽粮绝了。这次不得已从朋友那个借了几千。对个人而言,买元器件其实是一个非常繁 琐的事情。首先货源难寻,要在网上找,不停的打电话问(我租住的地方没法安装电话,也 就没办法上网,每次买芯片话要跑回女朋友家);其次量少了,销售商一般都不理你,要么 就把价格抬的奇高。有些元件还么货期,需要耐心的等。到了大概 11 月 22 号左右,我的 元器件基本上凑齐了。bga 也焊接好了。我花了一个晚上焊接完了图片上那块板子。结果 没有 jtag 电缆,于是只能等第二天打电话问做硬件的朋友到哪里买,谁知他建议要我自己 做,我又翻出 mizi,找资料,当天下午就做好了。连上板子,十分庆幸的是竟然可以读到 cpu 的 id 了。但是不能辨认到任何一个 flash,更谈不上烧写了。于是去掉 buffer,采用直 接连接的方式(也就是为什么板子上有那么多飞线了),这次可以辨认到 nand flash,但 依然不能烧写,试了 n 次,最后郁闷至极。幸好第二天晚上有个朋友带了个笔记本过来问 我一些龙珠的问题,我就接到他的笔记本上试着烧,这次竟然写入了,原来是我的主板并 口有问题,我又连上串口,很顺利的就跑通了 vivi,到现在为止,至少证明我的板子还是 有点动静了。 我接着又试着烧写 zimage(压缩的内核),结果使用 minicom 怎么也下载不了。我怀疑是不 是我的电脑有问题,就转到 win2000 里用超级终端,这次又比较顺利,但是虽然写入到 flash 了,就是运行不了 linux,接下来又是问朋友,在朋友的帮助下,linux 终于起来了。 同时,我也焊接了其他四块板子(bga 我只贴了 5 片),但是无论我怎样找原因,就是不能 跑起其余的四块板子。我冒险把已经跑通的板子上的大部分元器件拆下来(cpu 除外),和 不能通的板子相互调换,结果还是不行,而那个好的板子照样可以跑。这些步骤,我断断 续续持续了一周多了,现在依然困扰着我。我几乎每天晚上都在用两把烙铁拆芯片、焊接、 飞线,用放大镜和万用表查找虚焊、短路,结果一无所获。 我做 2410 的目的想必大家也十分清楚,就是么做一个给大家玩的板子。大家都喜欢便宜 的东西,殊不知对个人和小公司而言,为做一个嵌入式开发板,是多么的辛苦,上面很多 情况我都是一笔带过,甚至有的都没有提及。我是全职在做这个东西的,而且我是个新手 (想必做面对一款新的没有用过的 cpu,每个人都是新手)。全职尚且需要这么多时间, 更何况业余做开发板的了。业余里做板子没有更多的时间,打电话买芯片不方便。诸 此种种,没有一份对嵌入式的一种真心的热情,很难说能有耐心坚持做下去。现在大家都 喜欢免费开放的东西,可是就算是给你一个完善的原理图和一个正确的 pcb 文件,没有半 年的时间,也是很难上手的。我认识的做类似开发板的,无不有一个难以忍受的经历,从 发出 pcb 到制板厂那时起,就注定要走这一步。大致这个流程是这样的:找资料-做简单 测试试验- 设计原理图 -做封装 -设计 pcb-制板-买元件-焊接-调试硬件-修正硬件 -调试软件 -写说明书-包装邮寄-技术支持。这其中有些过程看似很简单,但如果只有 一个人来做的话,会不知不觉的花费很多的时间和精力。其中的每一个步骤,都不是个人 和小公司所能耽误的起的。 这里面或许我是有一些抱怨,但我很高兴仍然能做自己喜欢的东西。欢迎大家和我多一些 技术上的交流。我暂时没有太大的目标,只想调通其余的四块板子;-),或者你还是建议我 重新做一个?谢谢! 硬件篇 今年春节总算可以安心的回家过年了,目前我做的 5 块新板都可以正常运行 linux 了。很 多朋友问我我是怎样调试板子的,现在我把做板的过程大致给大家说一下,希望能对各位 嵌入式爱好者有所帮助。 先从工具说起吧,俗话说:“工欲善其事,必先利其器” ,但是因为我自己没有太多的资金 买高级的工具,因此只能用土枪土炮来形容吧。 首先这个过程中我没有使用示波器、仿真器、热风枪、恒温烙铁之类的东西,我从一开始 学着搞硬件使用过多种烙铁,直到目前我仍然觉的自己的烙铁不太好用,虽然是 90 元进 口的两把 goot 牌烙铁,但总觉得用起来不太爽,那把 30w 的尖头烙铁老是不沾锡,另一 把 45w 的粗头烙铁温度太高了点,时间一长头就变黑了,反正是将就着用了。我用的焊锡 膏,虽然有人说这东西会有一定的电导,但我觉得还是挺好用的,特别是拖焊时遗留的那 一小堆焊锡,我有时就用这东西处理的,我用尖头烙铁像挖耳朵一样一点一点的把遗留在 芯片腿脚见的焊锡给挖出来。当然有时我也用一下松香。我用的洗板水是一个朋友给的, 现在只剩下一小口了,不知道是什么成分:) 其次我使用的测试工具主要是数字万用表,不到 30 元,算是比较低档的了。期间因为有 时忘记关电,用掉了 3 节 9v 的电池。我主要用万用表来测试电压,短路,发光二极管等。 搞硬件的一般台面比较乱,我也不例外,我的桌面是一个八仙桌面,没有静电胶垫,焊接 时就腾个地方铺张 a4 白纸。其他的都被镊子 剪钳、料盒、烙铁、焊锡丝、板子、芯片等 占领了。因为用的小元件比较多,我买了个蜂窝式的料盒,每个小格都盛放贴片元件,上 面贴标签注名型号和封装,大的元件就放在抽屉式的料盒中。 硬件上大概就这些工具了。 有人问我使用的画图工具是什么,这也没什么可保留的,我一直使用的是 protel99se,我 在大学时学的是 dos 版的 protel,学校是不教的,我那时看的书是一本好像叫什么 “protel3.31 印刷电路板设计”这样一本书,到现在都觉得挺好的,那时主要是学会了画原理 图,记得那时做自动控制试验,大家都手工画的图,我和有几个人用 protel 打印的,感觉 挺另类的。后来学 protel99,主要是看 protel99se 电路板设计,清华大学出版社,谢 淑如等编著,后来也看过和买过其他一些 protel99se 的书,都觉得不如这本好( 纯属个人观 点)。我真正用 protel 画板应该是在 2002 年 10 月份吧,画的是 dragonball vz 的两层板, 当然我参考了别人的设计,首先是布局,然后是布线的规则。我一直听别人说 protel 画板 不如 powerpcb 之类的好,比如 powerpcb 里面可以进行总线布线、自动推挤等很好用的 功能,几乎是学 protel 的同时我也找 powerpcb 的书来看,但学来学去,还是觉得 protel 简单易用。直到现在我还没有学会 powerpcb,虽然我很想。首先不管画原理图还是画板, 都要做封装这样类似的东西,powerpcb 的那一堆嵌套概念把我搞的稀里糊涂,像元件库中 包含元件和封装,每个封装又对应很多元件什么的,绕来绕去,我都不知道怎么下手了, protel 相对简单多了,一个引脚随便你怎么定义,一条线随便你怎么画,有没有网络都可 以画,都可以打孔等等。我在这里并不是贬低某个软件不好用,可能是我的思维方式不同 才造成这样的感觉吧。 有一些被别人称为技巧的功能介绍一下。 1.同步。在 powerpcb 中据说可以和 powerlogic 同步进行,protel99se 中我感觉是同样的 功能,就是当原理图中某些元件改动时,可以使用 design-update pcb反映到 pcb 中, 在跳出的对话框中,选择 connectivty 下拉列表中的 net labels and ports global,去掉 classes 框选中的两个 generate选项。点 preview changes 先预览一下,如果没有什么错 误那就 excute,如果有什么错误,那就按照提示进行修改,最常见的错误就是封装不对。 2.选择元件。当把网络表正确导入 pcb 中后,要进行布局,像接 vcc 和 gnd 这样的电容多 的是,到底摆在哪里?当然是这个电容所属的那个模块附近。为了使一个模块的几个元件 都放在一起,可以先原理图中选择这个模块的所有元件,然后使用 tools-select pcb components 就可以在 pcb 中一次性选择这些元件了,再把他们对齐、摆放等,每个模块 都可以这样处理,这样就不用对照原理图一个一个地找了。 3.文件压缩。或许当你安装 protel99se 以后,每次保存地文件都很大,文件多地时候有几 十 m。这时可以使用 file 菜单左边那个下拉箭头中的 design utilties,在对话框中的 perform compact after closing design 前打钩,以后每次保存文件就会比较小了。 4.封装库的制作。有时你用的某个元件封装在其他文件中也有,但是你只有那个文件的 pcb,这时可以在那个文件中使用 design -make library 把那个 pcb 用到的所有封装都能 提取出来生成一个库,这样你就能使用里面的库了。 5.铺铜。当布线完毕,在电路板各层进行铺铜是一个常见的操作,一般这是为了降低电磁 干扰。不知道你使用 placepolygonplane 还是 placespiltplane 铺铜?我是这样操作的:在 design-rules对话框中,有个规则设定 rules 选项卡,选择 rule classes 框选中的 clerarance constraint,点 add,弹出 clearnce rule 对话框,在 rules scope 对应的下拉列 表中选择 object kind,这时紧挨着的下面会出现很多要你框选的项目,在 polygons 前打钩, 再在右边的 ruls attributes 中填入你想要的尺寸,我一般设置为 0.6mm。点 ok 设置完毕, 回到 pcb,再点 placepolygonplane 快捷按钮,在整个 pcb 板的外围画一圈,这样就可以很 方便的铺铜了。 6.等长。关于等长,也不是三言两语能说清的,我是自己摸索出来的,不知道别人是不是 这样做的。先编辑好 fromto 网络,形成一个类,再在规则设定中的高速布线规则中,对这 个类进行规定添加和设置。这样,当布线完毕,可以使用 tools-equalize net lengths 进行 等长检查,如果和设置的值相差太大,那么就要更改相应的 fromto 网络,其实蛇行布线是 为了使等长更容易做一些。当然 drc 检查也可以进行等长检查。 7.孔径和线宽。我设置的过孔孔径是(0.4mm, 0.2mm),线宽最小是 0.127mm。不要问我 制板厂以及制板费是哪一家和有多少,也不要问我在哪里焊接 bga:-) 关于 protel 暂时就说这些吧,其他的可以参考一些书籍和到论坛问问其他人,希望我的 protel 经验不要对别人造成误导:-) 调试板子的时候,在所有元件没有焊接之前,我一般先把电源模块焊上去,检查电压是否 正常,以免电压不对时损坏元件。我没有可调稳压电源,为保险起见,我买了一个+5v(2a)输 出的开关电源,就像变压器,25 元。街头普通的那种变压器虽然标明是 5v 或者其他标准 输出的,但是一般不要使用这种东西,可以用万用表测试一下,指针式的可以明显反应出 电压的变化,一般先是高于 5v,差的会达到 15v,然后才慢慢回降到 5v 或者其他,我就 因此烧过一个编程器:-( 原则上要是电源模块正常了,接下来是调试 cpu 是否正常。这时焊接的东西比较多,包括 复位电路,和 cpu 周围的元件,晶振,jtag,用灯等,但是因为我没有仿真器,因此我焊 接的东西更多,一定要把 flash 和 sdram 和串口等同时焊接上去,再仔细检查有没有短路 和虚焊,使用 mizi 提供的烧写程序,把 vivi 写进去,然后接上电源,祈求上帝。如果 没有输出,最先检查的是电压是否正常,然后检查 sdram 有没有焊好,再不行就检查 flash,再不行。这就要有耐心和胆量了,嘿嘿。你不是手头有好几块板子吗?一 个一个地焊好,然后祈求上帝。我的第一版设计算是比较幸运也比较倒霉,五块板上 帝就给我一次机会:),其他板子我折腾了好久都没有找出原因。于是我下了很大的决心 来做第二版,结果几乎每块板子基本系统都能正常运行。 焊元件的时候一定要注意按照你自己设计的原理图进行焊接,不要想当然,由于某些原因, 即使有经验的工程师也总是会出现没有按照原理图焊接的情况,只是在 debug 的时候才去 对照原理图进行更改,并标记。当 vivi 能够出来,但是有时不能启动 linux,我的经验是电 源不够稳定。 另外也有人问我 mizi 是什么东西?其实是 mizi 出的一张光盘,里面包含了专门针对 samsung s3c2410 这款芯片移植好了的 linux 内核源代码,还包含编译器和烧写工具,以 及一个图形界面系统 qt 等,并有详细的使用文档,这些东西都是在三星那个 smdk 开发板 上做出来的,当然里面包含了这块板子的原理图,我就是按个原理图来设计的,有很多都 是韩文写的,我也看不懂,我只看英文的那个文档。 没有 jtag 仿真器怎么办?mizi 中有介绍,我就是按照那个里面介绍的 jtag 原理图做的 jtag 电缆。使用它主要是用来烧写 vivi 的。我没有试过有没有单步调试功能。我烧写的 vivi 是 mizi 中已经编译好的 ,linux 内核也是编译好的。文件系统我是自己做的,这个暂时不方便 告知,只要 linux 能起来,板子的问题就应该不大了。 s3c2410 使用 uclinux 吗?nononononono! mizi 中带了专门针对这块芯片的 linux 内核源 代码,2410 是带有 mmu(内存管理单元)的微处理器,它所使用的 linux 应该和标准的 linux 更相近一些,但和 uclinux 相差就比较远。 关于使用 vivi 下载 zimage:我在 linux 下使用 minicom 的 xmodem 协议下载总是不成功, 打开文件就出错,但在 window2000 下使用超级终端下载就很正常,i dont know why. 做 2410 的过程基本上就这些东西吧。有的朋友说做开发板没有什么前途,一个板子按照 硬件成本算起来,也不过 400-600 元,现在国内这么多人做,人家价格一降,你能挣到什 么东西?你看看现在内存忽然又上去了,还不如去炒炒芯片。我笑言:我不是生意人,也 不是生意世家出身,做这个东西是因为里面有我喜欢的东西。我爸从小喜欢电子,我也从 小喜欢电子的东西,我想他对我的期望也就是我能在电子设计上有所成就。我小时候在农 村长大,没钱也没有地方去买那些电子元件,好几次回家他都对我说起他小时候用做饭的 工具搭收音机的趣事,但他总是遗憾没读多少书,现在我的条件肯定比以前好的多了,我 不想我的理想也去让我的下一代去实现。虽然我是自动控制专业的,但我的硬件设计知识 都是工作后业余时间自己学的,我没有把自己的水平看的能有多高,也不想去比较什么, 我为自己制定一个目标,尽力试着去实现,然后再设定下一个目标,最后的目标是什么我现 在也不清楚,我现在对下一个或者下两个还是比较清楚的,也有一定的计划。不管我曾经 工作过的哪个公司都会有计划,要写周报甚至是日报,有的人觉得完全是官僚主义的象征 或者是没有用的,我虽然也很惧怕写那些东西,但对一个公司来说那绝对是必要的,没有 了计划,项目就失去了控制。谈到计划,其实几乎每个人心里都有个小算盘,作为一个技 术开发人员,自己想要在某个方面有发展,我觉得写下目标和计划是很有必要的,随时跟 目前的情况对比一下,就不至于时间无声无息的流逝了,我从做龙珠的板子开始,就根据 自己的能力制定进展计划,然后尽力按照这个计划去执行,因此我总是很清楚下一步该做 什么。我毕业后两年多才开始学硬件设计,曾经有的朋友对我说学硬件要三、四年的时间, 你还是算了吧,那时我也不懂也很惧怕要这么久的时间,现在我想其实这样的说法是不对 的,你学到什么程度才算是学会?标准是什么?我以看到有个残疾人 30 多岁了才开始学 单片机,我觉得很佩服也很怀疑,不知道他现在学的怎样,但肯德基是那位老人 60 多岁 以后才建立的事实是真实的,而且就在你天天上班经过的地方。或许我们看了太多成功人 士年轻的时候就有不同于常人的举动这样的例子了,才怀疑到底自己是不是那块料。我想 只要有自己的目标和切合实际的计划以及有耐心执行下去,大部分事是可以做到的,当然 没有一份对目标的热情也就可能没有那份耐心了。目前我只是调通了一个 2410 而已,或 许我没有资格说这样的话,交流嘛,就当我是随便说说罢了,希望对你有所帮助,也希望 大家说一说自己的故事。 设计篇 我追求完美的人生,也追求完美的设计。 作为一名开发人员,在你的印象中,开发板是否只是呆在实验室里足不出户的一团电路板? 拿起来总是“剪不断,理还乱” 。 当你看到我手中拿的这块 “便携式 arm9”开发板,或 许你就要改变 一下你的看法咯:-) 一直以来,我就想设计一块很“酷” 的电路板,如今这个想法终于实现了。现在就谈谈我是 如何做的 吧,希望对各位有志于有同样梦想的朋友有所帮助。 想必很多人对我的第一篇文章“前传篇” 有所了解了吧,那篇文章中设计的那块板子无论样 子还是 功能都只能用“丑陋的令人发呆 ”来形容。但爱因斯坦也有过做第一个小板凳的经历 啊,哈哈。没错,那是我设计的第一块 arm9 电路板,使用的是三星的 s3c2410x,正是 其中一块板的调试通过给了 我继续的信心,现在的这块是第三版,就是从那开始一步步发 展来的。 (我不知道何时变得希望追求完美,但我对大学时看的一本好像名叫硅谷狂夫的传记的 某些描述印象很深刻。那是讲述苹果电脑创始人 steven jobs 的传记,其中一个地方说道渥 兹设计的电路 板不仅仅就是能 work 就行了,而且每条电路线设计的都很规整,就算从机 壳里拿出来,看起来都很美观,那简直就是一件艺术品,因此我也一直梦想自己有能力雕 刻一件这样的电路板。) 其实从第一版开始,我就考虑着该如何设计才能美观一些,但因为某些地方原理不对,只 能“ 飞线” 解决拉。自从第二版设计完,经过很多测试之后,确定关键电路和各功能电路运 行良好了,我就天 天想着怎样设计才能“既实用,又美观” ,下面是我的一点分析。 从实用角度讲,作为开发板,应不依赖于其他任何接口板就能独立运行,而且接口方便(个 人观点)。 因为 2410 的功能模块挺多的,所以板子要尽可能发挥出它的功能和性能,如 usb host,usb slave, ad 转换, lcd 控制器,sd 卡,实时时钟,spi 控制器,三个串口, 音频播放等等。在扩展接口上,鉴于第二版使用紧凑型扩展插座带来的不方便,第三版就 选用了 2.0mm 间距的插针型接口。像一些比较 通用的功能接口( 如 serial1, usb host/slave, ethernet, audio, matrix keypad, sd card, jtag)就直接像电脑主板那样,使用相应的接插座 把它们引出了;其他嵌入式密切相关或不太通用的一些接口(如 ad input, gpio, spi, lcd, pwm,其他的串口,系统总线等 )就使用插针的方式引出。 另外,我还参考了很多的开发板及产品相关的设计方案,特别地安排了这些接口的定义(主 要): 1. 电源管理接口。2410 是一款针对手持设备推出的芯片,电源管理相当重要。但凡做过 手持产品开发的人,想必大都体会过电源管理的艰辛。实话实说,我本人没有这方面的设 计经验,也不想 趟这摊子混水,因此就参考很多的电源管理方案设计了一个电源管理模块 接口,至于怎样具体设计,那就让用户自己去选择实现吧:-)。或许没有做过的人认为电源 管理很简单,如果你不相信,可以大 致这样说一下吧,假设一个产品需要实现开关机保持 同样的界面和开关机环境,以及最低的系统功耗。为了实现这个功能,要有随时检测电压, 控制电压,保存内存数据,恢复内存数据,还有 lcd 的 开关时间,背景光的调节,实时时 钟等等这些硬件电路的实现,至于软件的实现,我想单开关机系统环境的保存就够你折腾 了的吧。基于此:我设计了如下的电源接口(当然,这个接口最多也就实现 中级的电源管 理): +12v + 1.8v usb_5v + 5v vdd_rtc+ 3.3v gnd +gnd ioctl1 + ioctl2 adin1 + adin2 i2csda + i2cscl 2. lcd 接口。 2410 支持的 lcd 挺多的,stn 的如黑白屏、灰度屏、 256 色屏、4096 色屏。 tft 的 如 1,2,4,8,16,24-bpp(bpp 是每个象素由几个 bit 实现的意思)。因此板子的 lcd 接口 相关引脚就多拉, 在此就不列拉,有翻译手册之嫌:p 3. spi 口。这个就不是俺的首创拉,直接把 cpu 的的引脚引出来就是拉,具体也不罗列了, 需要知道的是 2410 有 2 个 spi。 4. gpio 接口。其实这是个大杂烩,包括了 2 个 ad 输入( 用户触摸屏 ),5 个外部中断,2 个 pwm/timer, 4 个触摸屏监控等等,当然有些口是可以复用的。 5. 矩阵键盘接口。既然板子上有键盘了,为何还要引出这个接口?这是因为某些人可能不 喜欢上面的按键排列形状,或者不喜欢固定在板子上的按键,因此就可以使用这个接口设 计自己的键盘了, 是不是很方便:-) 6. 总线接口。也许你以为板子上有个 ide 接口,那真的很遗憾了。遵循产品开发的“kiss” (keep it simple, stupid!)的原理,我只在上面留出了供用户扩展使用的总线接口,它包括 16 位 data 线, 25 位地址线,还有一些总线控制线,像片选,读写,等待,复位等等,未 知的扩展还需要您进一步的开拓啊。 有人说,设计电路不板“功能第一,美观第二,可制造性第三” 。现在就交流一下我是怎样 在美观方便如何设计的。 我不是学美术的,也没什么艺术细胞,看不懂“蒙那里沙的微笑” ,因此现在我能做到的, 或许你比我做的会更好。一个电路板的“可欣赏性” 和布局关系密切,不要祈望任何一个 eda 软件能够给你一个满意的 布局,如果任何人打算使用自动布局,那结果可引用周星星 的话“简直就是一坨 shi”,这包含两个意思,一是它没什么用,二是它也不好看。所以你要 手工安排元器件的位置,至少让它可以用吧,就像我早期设计的一些电路板。安排元器件 的时 候有一把游标卡尺比较好,可以做到大致精确的测量,把需要固定位置的大部件先安 排下,主要是插件之类的,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论