从研二就开始准备想做一个微型飞控,那时候在bitcraze上看到了该类飞控的原型设计,于是想模仿做一个,一直在准备中,现在已经是工作第二个年头,准备的时间已经差不多了。正好在最近要动手做的时候,他们推出了2.0版本,所以也就开始从这个版本来做。目前还在焊接调试各种硬件电路阶段,好多都是QFN的package,焊接总体来说相对以前难一些,但是还好都顺利搞定,没有费片子,毕竟焊烂掉一块儿,浪费的不仅仅是钱更重要的是时间啊!
状态记录:
目前的状态:
(1)STM32F405R程序下载没有问题,LED测试程序OK
(2)nRF51822 256K程序下载没有问题,LED测试程序OK
下一步需要调试的电路:
(1)BQ24075电源控制电路
(2)nRF51822 无线数据接收发送
电源部分的电路解析:
(1)BQ24075
BQ24075是德州仪器的一款锂电池充电和电源管理的芯片,完全兼容USB充电,我们是不是就可以撇掉淘宝上专用的充电器了,呵呵,该芯片可以通过引脚EN1和EN2控制充电的电流100ma或者500ma,充电的输入电压最大可以达到28V,充电的输入电压跳动范围相对已经很大了。根据pin脚的功能,结合crazyflie2.0简单叙述它的功能:
BAT:Charger Power Stage Output and Battery Voltage Sense Input(充电阶段的输出,也是电池供电的输入)电池正极直接接的引脚
CE#:Charge Enable Active-Low Input(充电使能输入,低有效)该pin直接连接到nRF51822的P0.07,由它来控制使能充电
CHG#:Open-Drain Charging Status Indication Output(充电状态指示输出),CHG# pulls to VSS when the battery is charging(低电平有效,表示电池正在处于充电状态)。CHG# is high impedance when charging is complete and when charger is disabled(当充电完成或者充电被diable的时候,CHG#会被拉高)
EN1,EN2:Input Current Limit Configuration Inputs(输入电流限制配置输入),Do not leave EN1 or EN2 unconnected to ensure proper operation(最好不要让这两个pin处于未连接状态,一定要有明确的高低电平),具体组合配置如下:
EN2=0,EN1=0100 mA. USB100 mode
EN2=0,EN1=1500 mA. USB500 mode
EN2=1,EN1=0Set by an external resistor from ILIM to VSS
EN2=1,EN1=1Standby (USB suspend mode)
ILIM:Adjustable Current Limit Programming Input(可调节的电流限制输入),前提条件需要EN1=0,EN2=1,该引脚才会起作用,Connect a 1100-Ω to 8-kΩ resistor from ILIM to VSS to program the maximum input current(在ILIM和VSS直接连接1.1K~8K大小的电阻,编程最大的输入电流)。
IN:Input Power Connection(充电输入引脚),Connect IN to the external DC supply (AC adapter or USB port). (连接到AC适配器或者USB端口)The input operating range is 4.35 V to 6.6 V(bq24075)(输入电压范围为4.35到6.6V),The input can accept voltages up to 26 V without damage but operation is suspended.(输入可以接受高达26V的电压,而不会损坏,但是充电的操作会被停止)。
ISET:Fast Charge Current Programming Input(快速充电电流编程输入),Connect a 590-Ω to 5.9-kΩ resistor from ISET to VSS to program the fast charge current level(连接590-Ω to 5.9-kΩ到VSS,可以编程快速充电电流),Charging is disabled if ISET is left unconnected(如果ISET没有连接,表示充电会被diable),当被充电的时候,可以用这个引脚监控充电的电流。公式如下:VISET = ICHARGE / 400 × RISET,VISET 是我们测得的电压,RISET是连接1K的电阻,从而可以算出充电电流。
OUT:System Supply Output(电压输出),When the input is out of the operation range, OUT is connected to VBAT except when SYSOFF is high(当输入在操作电压范围之外的时候,OUT会被连接到Vbat,当SYSOFF为高电平的时候会关闭Vbat供电给OUT)
PGOOD#:Open-drain Power Good Status Indication Output(供电正常状态指示开漏输出),PGOOD# pulls to VSS when a valid input source is detected(当可利用的输入电源被检测到时,PGOOD#会被拉低)。
SYSOFF:System Enable Input(系统供电使能输入),Connect SYSOFF high to turn off the FET connecting the battery to the system output(SYSOFF 拉高会关闭Battery到system out的FET,也就是说电池供电到输出电压这条路就不通了,确保SYSOFF一定是低电平)。
TMR:Timer Programming Input(定时器可编程输入),TMR controls the pre-charge and fast-charge safety timers(预充电和快速充电安全定时器),Connect TMR to VSS to disable all safety timers. Connect a 18-kΩ to 72-kΩ resistor between TMR and VSS to program the timers a desired length(连接TMR到VSS会diable掉安全定时器,那如果连接18-kΩ 到72-kΩ电阻可以编程充电时间的预期长度)。
TS:External NTC Thermistor Input(NTC热敏电阻输入),该功能一般没有用,直接连接固定10K电阻到VSS(地)
(2)NCP702SN30
BQ24075的OUT连接到NCP702SN30的输入,转换成3.0V供电给nRF51822
(3)LP2985-30
BQ24075的OUT连接到LP2985-30的输入,转换成3.0V供电给STM32F405R,但是LP2985-30的3J脚EN受到nRF51822的P0.10使能控制。
所以从上面的电源电路可以看出,直接4.2V左右的锂电池供电和USB充电,nRF51822除了无线通信之外,还主要做电源管理的工作,控制和检测充电电流,控制STM32F405R的供电电路。