整个项目开始,既然我们要设计滑翔机的控制器,那么就要对整个滑翔机所有的器件进行列举。首先肯定是主控芯片,因为这是师兄留下来的项目,所以就按照他原本的选型,主控芯片选用STM32F429IGT6,然后查看所需要的传感器和电机,根据传感器以及电机确定接口类型、通信的方式,结合主控芯片的电压范围设定电源电路。此PCB主要分为5个部分(page):电源、主控系统、通信、传感器、电机。
经过整合,已知需要用到的电源电压分别是:
步进电机的供电电压12V
舵机的供电电压5-7.4V
普通信号电压高于4.7V(这里选择5V)
芯片电压3.3V
所以选择12V电池输入,先进行一个滤波稳压整流;然后使用PW2205芯片降压到7.2V,此芯片能过最大的电流是5A,满足滑翔机舵机负载情况下的电流条件;接着就是1117系列的转压芯片将7.2V转成5V,5V再转成3.3V,这两种电压(5V和3.3V)是信号电压,因此1A的电流已经足够;最后再加3个LED用来测试电源的电压是否能正常工作。
主控STM32F429IGT6,178引脚,首先是它的最小系统,包括晶振、复位、下载,以及它的一些延申模块,如USB串口,存储flash、按键等等。
滑翔机采用的传感器所使用的通信方式有3种:
IIC通信:MPU
串口通信:GPS
无线通信:无线串口
滑翔机用到的传感器主有:
GPS----定位导航
MPU----姿态管理
流量计----流量反馈,因为流量计的信号是从STM32芯片发出,为3.3V,达不到传感器要求的高于4.7V,所以这里还要给流量计的信号电压做一个升压。此处流量计还用到了继电器控制,继电器的信号升压在MOTOR图纸中实现。
编码器----步进电机闭环控制,和上面一样,编码器的信号电压也要做升压处理。
这里主要用到两种电机,一个是大扭矩的数字舵机,一个是步进电机。舵机的信号从芯片引脚发出,需要升压到5V,同理,步进电机的信号也是如此。步进电机还需要一块驱动芯片来驱动,这里选择的是L298P。
在确定好电路之后,就要使用orcad来将全部的电路绘制出来,并填写好对应的器件封装,进行DRC检查后输出网表。具体的DSN绘制可以看原理图绘制。
一个模块一个模块画,先建立元器件的库,画完所有类型的单个元器件后,再调用并连线。
画完电路图以后,我们还要对每个元器件的封装属性进行填写,当然我们最好是先找到每个元器件的封装(这里的工作量还是蛮大的,因为一块控制板上的封装起码都有几十种),一定要找到所用元器件尺寸对应的封装!!!比如电容是0603的,就要找到0603的封装,是极性SMD类型的,就要找到SMD类型的封装,不然到时候我们焊板的时候就要哭出来了!! 这里有两种下载元器件封装的方法——懒人PCB封装下载方法
选择dsn右键—edit object…
封装填写完后,进行DRC检查,不出意外都会有警告的,遇到最多的就是off-page的使用。off-page是跨页连接,没有跨页(同一页内使用)会报警告;没有连接会报警告;主要就是这两个警告,同业的使用Net Alias就行了。直到修改到无误后结束。
生成网表,不出意外也会出现错误,点击下图文件可以查看错误。修改无误后成功生成了网表文件。
首先file—new新建一个我们要制作的board文件,完成命名及路径存放。
进行set up—design parameter 的参数设置,这里布局布线的单位选择mils,精度2,画板尽量弄大一点,原点坐标也设置好。
可以用画线命令或者铜皮命令来绘制板框,记住要在Board geometry 的outline下画板框。
因为完整的封装文件是包括dra、pad、psm文件的,所以我们可以利用dra文件再PCB editor 中自动生成pad以及psm文件。
首先我们要搞到封装的dra文件,至于怎么找到可以自己下载或者自己画。下载方法在上面2.2的连接。
拿到dra文件,打开,file—export—library
导出并保存即可生成对应的pad和psm文件,记住一定要保存!!否则psm文件不会生成。
刚才已经做好封装的所有文件了,现在就要对封装库路径进行设置,让软件知道在哪里调用我的这些封装。
set up—user preference—path—Library,将padpath和psmpath的路径修改为刚才导出pad、psm的路径。
file—import—logic,选择CIS类型,always,无视锁定特征,点击导入即可。
第一次导网表几乎都是有错的,错误可以在同一个路径下的netrev中查看,导网表出现最多的问题就是原理图与封装不匹配,比如原理图有2个引脚而PCB封装文件却有3个。修改成功后netrev如下图所示。
当网表导入成功后,所有的元器件就已经进入后台等待调用了。
place----quickplace,选好放置的位置,点击place即可,有错的封装是不能放出来的。
放完之后可以查看display—status,查看是否全部放置,若没有则place—manually一个一个放,若是有错误则需要修改错误后再放置。
注意:修改错误后,若有dsn文件修改,则需要重新生成网表文件再导入;若PCB封装修改后,要重新生成pad、psm文件。
最后成功放出元件如下所示:
像我这种元器件比较少,又没有高速信号的或者很多对差分信号的板子,其实叠层的时候选择两层就行了,一般咋们工科生做测试用的板子两层也ok的了,所以这里直接进行布局分析。
什么是布局分析呢?就是将元器件按照比较好的连线方式来摆放,做到以下:
①有定位孔,离板边5mm
②接插口放在板边,方便插拔
③线越短越好
④信号线走一起
⑤模块化布局
这是布局后的图,相比上面的胡乱飞来飞去的线是不是好了很多。
交互式操作是实现orcad和pcb editor的交互,在pcb editor 这边选择命令后,在orcad的原理图中框选想要框选的元器件,pcb editor就会自动高亮。
交互式操作需要打开它的使能开关,enable intertool communication。
一般电源和地线都是最后绘制的,所以我们可以先高亮再把它的飞线收起来。高亮操作我就不多说了,而收起飞线有两种方式,一种是全部关掉飞线,一个是单个收起(有个框框里面打个×)。
全部关闭,点击一下就行。
单个收起则需要赋予地和电源电压值。edit—properties—选net(或者shift+F2),在选择需要收起的地或者电源,如下图赋予电压即可收起。
在PACKAGE KEEPIN— ALL中使用z-copy命令生成禁布区,一般为板边内缩3mm,也就是120mil左右。图中紫色即为禁布区。
禁布区画完之后,就可以进行模块化布局了。一般电源模块放到最后。这里经常用到的两个操作是交互式操作(前面讲了)以及单个元器件的飞线显示——display—show rats—net,然后选择引脚即可。
这里一般先把主控放上去,然后一步步的放对应模块的器件,飞线怎么顺就怎么摆,尽量做到不要有太多的交叉线。