stm32四旋翼设计——2.硬件设计-爱代码爱编程
STM32四旋翼设计之硬件篇,开始介绍硬件方面的设计,包括板卡构成、选型等一些问题。
整个板卡包含几个部分:电源、STM32最小系统、电机驱动、陀螺仪、通信模块,板卡的框图如下图所示,其中的NRF24L01通信模块因为要计算阻抗,条件不足,所以买淘宝现成的模块。
1.电源模块
电源由一个锂电池进行外供,但电池提供的是4.1V的电压规格,不满足内部其他元件的电源要求,因此要进行转换,电源架构如下图所示。电池直接给到电机供电,但经过一个2303转成5V,然后再降压到3.3V,这样做的目的原先是因为5V要给CH340供电,后面没有这部分但也保留5V供电。而3V3直接给到STM32、MPU6050、GT24(通信模块)供电,电流也标记在框图中,整个板子的功耗不大,所以没有散热的必要。这里要注意,调试时可以采用USB的5V进行供电,但是无法让四旋翼起飞,因为即使USB3.0提供的电流也才900mA,瞬时电流不够大,无法满足电机的需求。电源参考电路图如下图所示。
2.STM32最小系统
STM32最小系统我这里采用的型号是C8T6的LQFP48封装的,因为没有多少GPIO口的需求,所以这一块比较合适,晶振也仅仅需要一个8M的外接晶振。其中PA0-3用来复用成PWM引脚控制电机,比普通GPIO口更合适,因为直接使用内部的TIME进行控制;串口预留了UART3进行状态回传,这样可以提高效率;一路软件IIC用来读取MPU6050芯片;一路SPI用来跟GT24通信。调试时还发生过一件低级错误,晶振的起振电容我没有改成12pf,结果焊接的是104,导致状态回传时反应很慢,查了好久才查出来。
3.MPU6050
采用这个芯片是因为控制简单,而且网上案例很多,但其实我也调过MP9250和BMP280,后面会出一个这个模块的调试。这个模块的参考电路就很简单了,一路IIC,注意一下地址选择,其他的没有了,重点在软件调试,所以方向要摆好。
4.电机驱动
电机驱动比较简单,采用SI2302的MOS管,不采用三极管的原因是因为三极管需要开启电压,功耗上会大一些,另外MOS管的响应速度更快,电机并联一个104电容可以更好地滤波,电机采用空心杯电机,这里的电容也可以换成一个二极管,可以加速断电时电机两端电子的流逝,因为电机是感性元件。
5.PCB布局
整个PCB布局比较简单,因为没有什么高速信号,所以比较随意,但注意电源、小系统、各个模块最好分割开,双层板就可以搞定。