经验之谈part1
本文主要总结了在画主控板原理图、PCB布板和调试过程中的的经验教训,供在主控板设计时参考,针对STM32F407开发板和最小系统板。
目录:
一、原理图绘制
1.1、关于TIM 管脚的选择和使用
1、关于TIM管脚的选择和使用 出现的问题:1、将TIM的CH和TIM CHN混合使用,导致轮子跑飞。 2、编码器TIM管脚选择错误
STM32F4 的定时器功能十分强大,有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5,TIM9~TIM14 等通用定时器,还有 TIME6 和 TIME7 等基本定时器,总共达 14 个定时器之多。
STM3的通用TIMx (TIM2~TIM5和TIM9~TIM14)定时器功能包括:
1)16位/32位(仅TIM2 和TIM5)向上、向下、向上/向下自动装载计数器(TIMx_CNT) ,注意:TIM9~TIM14 只支持向上(递增)计数方式。
2)16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 1~65535之间的任意数值。
3)4个独立通道(TIMx_CH1~4,TIM9~TIM14 最多2 个通道),这些通道可以用来作为:
A.输入捕获
B.输出比较
C.PWM生成(边缘或中间对齐模式) ,注意:TIM9~TIM14不支持中间对齐模式
D.单脉冲模式输出
4)可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用1个定时器控制另外
一个定时器)的同步电路。
5)如下事件发生时产生中断/DMA(TIM9~TIM14不支持DMA) :
A.更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
B.触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
C.输入捕获
D.输出比较
E.支持针对定位的增量(正交)编码器和霍尔传感器电路(TIM9~TIM14 不支持)
F.触发输入作为外部时钟或者按周期的电流管理(TIM9~TIM14不支持)
编码器管脚A_1和B_1需要是一个TIM,A_2和B_2是一个TIM,不能用其他地方用过的TIM,尽量使用已经使用过的管脚如:A_1:PB6/B_1:PB7/A_2:PA0/B_2:PA1.
底盘电机信号不能同时使用TIMCH和TIMCHN,因为CH和CHN是反向关系,即一个信号与另外一个信号反, 程序控制时正转ch是1那么另外一个就是-1,会给程序控制上带来麻烦,因此一般情况下不使用CHN
参考资料:http://www.docin.com/p-972459340.html
红外接收分为接收头和接受管2种,一个是3引脚,一个是LED型2引脚,注意,接收头和接收管是2种不同的器件。
1.2、关于CAN 的使用
若要使用CAN2,就要先将CAN1打开,因此使用CAN1,不用CAN2
CAN1 TX: PA12 PD1 RX: PA11 PD0 另外要注意CAN芯片的VCC和GND都需要连接
1.3、接收管
①关于接插件的选择 接插件有molex、排针、排母三种方式(现在不用vH头),其中molex相对比较稳定。在布板时,可以使用直的molex使板子尽量小,但是要注意直molex的方向,以及与周围元器件的距离,如果与其他部分离得太近在拔插时很不方便。使用直插molex不如弯的稳定,容易把外壳拔掉,可以考虑在测试好后将直插molex周围加一些胶,如果没有直的需要将弯的掰直时要注意方向。
两条线的一侧是带有卡扣的一侧
②关于地隔离问题
SGND是模拟地,GND是信号地,只要是地,最终都要接到一起,然后入大地。如果不接在一起就是“浮地”,存在压差,容易积累电荷,造成静电。模拟地和数字地必须进行隔离,如果把模拟地和数字地大面积直接相连,会导致相互干扰,但是不短接又不妥。
目前常用的是用0欧电阻将地连接起来
③原理图各模块的标注要具体如下:
④要留有5V、地,多余普通IO口、串口,可以把5V、地用1*2 molex便于引出。如:
⑤仅对于灰色的数字陀螺仪,最小系统板数字陀螺仪接出来时MISO和GND之间接一个1K欧的下拉电阻
⑥当同时作为TIM输出时,在不同模块的不能用同一个通道,如果两个需要同步,可以使用同一个通道
⑦PA14是烧录管脚,不能用于其他功能
⑧使用光耦(舵机处等)需要在输出信号的管脚位置加上上拉电阻和电压
如:
⑨对于不熟悉的模块可以参考以往主控板的管脚,但是在参考时一定要考虑是否和现有的管脚冲突
⑩在TIM管脚选择时,对于需要比较少的同一个TIM的,比如涡轮涡杆只需要一个单独的TIM,可以选取比较类似TIM12等,对于需要很多个通道的选取TIM1、TIM2有较多个通道的
二、PCB布板
1、在布板前要设置好规则,选择合适的线宽,一般设置GND: 1.2mm 、VCC:1mm ,在芯片管脚处使用0.3mm的防止短路,在不会产生短路等其他影响的前提下可以粗线地方使用粗一点的线,走线尽量横平竖直,相同管脚可根据布线需要调整顺序比如红外、气缸 2、元器件摆放 PCB板上预划分数字、模拟、信号布线区域。数字、模拟元器件及相应走线尽量分开并放置于各自的布线区域内,接插件和开关尽量往外放。 首先放置混合型元器件(如光耦、A/D、D/A转换芯片等):确定元器件放置方向,尽量使数字信号及模拟信号引脚朝向各自布线区域,将元器件放置在数字和模拟信号布线区域的交界处。 放置模拟电路元器件、数字元器件。优先布局重要的单元电路、核心元器件(如各种芯片),然后根据信号的流向规律摆放剩下的元器件。 电源和地间的去耦电容连接走线尽量短;旁路电容尽量靠近芯片;晶振电路尽量靠近其驱动器件 在布线时要把共同的工作模块放在一起,属于某模块的用于隔离的电容要放在该模块区域内,可以参考原理图的布局,使用相同电压尽量放得相近。 3、关于布线 走线避免直角和锐角,一般用135度折角,两线相交直角处应用实心区域由三角形填充; 先布高频信号、高速信号、时钟信号等关键信号线,过线尽量短,不能出现回环走线,尽量避免飞线; 接下来布电源线,应尽量远离关键信号线,可以适当飞线;飞线不能太长,以避免衰减过多。在pcb完成后也要多观察尽量减少飞线 然后布剩下的线,同一器件各管脚处的线应该“垂直进垂直出”,防止管脚间短路,可以适当飞线; 适当使用敷铜,一般敷铜连接地线。 4、蓝牙口要注意插的方向周围是否有干扰 5、红外模块的缓冲器旁用1K欧排阻会节省空间,但是刷板时不如分开的电阻方便
三、调试
1、布线 ①在布线时要考虑车子的运动状态,比如能够上下移动的结构,要使其满足最苛刻的要求;气缸打出的结构一定要留有足够的余量,防止线被扯断 ②布线时信号线和电源线尽量分开 ③走线时线要捋顺,线的长度要合适,并且做好标记 2、调试过程 ①在调试过程中出现问题时的检查顺序 最小系统板信号是否正常、主控板输出信号是否正常、连接主控板与器件的线是否正常,找出问题所在。 ②当因为某处错误修改主控板时要考虑对其他信号的影响,尤其是修改地线或电源线时。 ③蓝牙上有6个接口,但只需要把中间四个VCC/GND/TX/RX插到主控板上,如果插错位会出现主控板上控制电源的指示灯不亮、最小系统板上和蓝牙指示灯不亮的现象,因此在插的时候要注意蓝牙的方向和次序。 另: 底盘轮子跑飞电路方面可能原因: 1、最小系统板到molex之间信号线断裂 2、连接控制盒的信号线松动 3、控制盒MOT+/MOT-接反 4、电机连接控制盒线松动 5、控制盒参数需要设置 6、主控板上底盘电机连接口的地和电源的地不共地 7、管脚选择错误
参考资料:《第十三章定时器中断实验-STM32F4开发指南》 《STM32F407 datasheet》 《规范141101》