OWL Micro F1 开拓板,是『芯知识学堂』成立以来,推出的首款开拓板,主控芯片采取了ST 的STM32F103C8T6 这款处理器,板载详细功能如下图所示:
◆传感器接口:
板载接口默认利用搭载了MLX90614 这款红外测温传感器的GY-906 模块,从板子背面直接连接,但是考虑到目前MLX90614 这款传感器的短缺,以及方便后续用户做其他实验,特意预留了4 路ADC 接口。这里须要解释一下,此处的PA0、PA1、PA2、PA3、SCL2、SDA2 和板子两侧的单排针上的PA0、PA1、PA2、PA3、PB10、PB11 引脚是连在一起的,详见事理图。
传感器接口的电源部分,通过一个P-MOS 管SI2301 来作为传感器电源的掌握开关,图中SI2301 的1 脚为G 极(门极),2 脚为S 极(源极),3 脚为D 极(漏极)。
这里,我们须要明白P-MOS 管导通和截止的条件是:当P-MOS 管的G 极与S 极中间的电压差低于阈值时,P-MOS 管的S 极和D 极就会导通;反之,P-MOS 管的S 极和D极就会截止。
根据P-MOS 管的事情事理:
当STM32 的GPIO 口输出低电平时,P-MOS 管SI2301 的GS 电压差为VGS=-3.3V,此时,SI2301 处于导通状态;
当STM32 的GPIO 口输出高电平时,P-MOS 管SI2301 的GS 电压差为VGS=0V,此时,SI2301 处于截止状态;
◆ BOOT 设置:
STM32F103 有多种启动模式可以选择。启动模式的理解是:微掌握器许可从“不同地址”,比如内部Flash(最常用)、RAM、系统代码,读取程序指令并实行,这个“不同地址”的选择是通过在为芯片供电(上电)后芯片会自动读取BOOT0 和BOOT1 引脚电平高低来决定的。这里的“不同地址”实际上是通过地址映射来实现,芯片总是从启动存储区开始实行程序的。举个类似的例子来帮助大略理解,比如,打听对应存储区0,存放了一个房号,这个房号便是由BOOT0 和BOOT1 引脚决定的;房间1 对应内部Flash,房间2 对应RAM,房间3 对应系统代码,在芯片上电时会现在大厅获取房号,然后找到对应房号,并实行对应的程序。
开拓板通过排针+短接帽来配置BOOT0 和BOOT1,硬件事理图如下图所示:
当B0/B1 与PCB 板上的H 短接时,就意味着将B0/B1 上拉,此时B0/B1 为高电平(1);
当B0/B1 与PCB 板上的L 短接时,就意味着将B0/B1 下拉,此时B0/B1 为低电平(0);
STM32F103 的启动模式和BOOT0、BOOT1 的关系如下表所示:
启动模式选择BOOT0BOOT1启动模式0任意从Flash 中启动(默认状态)10从系统代码(ISP)启动11从RAM 中启动
一样平常程序都是存储在Flash 空间的,默认在Flash 启动运行;ISP 模式用于直策应用USB 线进行串口下载;RAM 紧张用于调试(须要先配置干系资源)。
◆ SWD 下载接口
STM32 支持JTAG 和SWD 两种调试接口,这两种接口在调试功能上并没有差异。JTAG 接口是ARM 早期的调试接口标准,须要20 个引脚。SWD 接口只须要6 个引脚。我们的开办板仅支持SWD 调试接口(5 脚),不支持JTAG 接口。
◆ 复位按键
微掌握器一样平常有软件复位和硬件复位两种方法,STM32F103 硬件复位旗子暗记为低电平有效,一样平常加上拉电阻(即另一端为高电平),担保一样平常情形下为高电平,如下图所示:
◆ RGB 三色灯
流水灯一贯低入门学习微掌握器的最大略、最经典的例子,表示了微掌握器最基本的功能:掌握引脚输出高低电平。此开拓板上搭载了一颗RGB 三色灯,三色灯采取共阳极接法,正极接到了3.3V,负极通过一个限流电阻接到了STM32F103 的GPIO 口上,只要掌握STM32F103 的对应引脚输出低电平,就能点亮对应的灯,输出高电平,就能关闭对应的灯。通过一定的逻辑组合,就能实现流水灯的效果。
◆ 功能按键
类似RGB 灯,险些每个开拓板都有集成独立按键,由于从测试代码功能也好,实际应
用也好,按键用途多多。此开拓板也不例外,板载了4 个功能按键可供用户利用。普通按键按下和弹开瞬间都有抖动过程,如下图所示:
按键抖动过程一样平常为5ms-10ms,有了抖动就须要消抖,不然很随意马虎造成误操作。消抖方法可分为:硬件消抖和软件消抖。软件消抖在后续的软件部分会做相应的先容,此处紧张是先容硬件消抖。此开拓板按键部分紧张通过一个上拉电阻和一个电容组成硬件消抖电路,其事理图及实物图如下:
◆ 可充电备用电池
备用电池的浸染紧张是在STM32 断电时保持内部RTC 始终正常运行,否则断电后RTC数据会丢失,重新启动后又从默认韶光重新开始计数。一样平常开拓板上都会带有一个备用电池,常用的要数CR1220 这款纽扣电池了。由于我们板子空间比较紧凑,以是我们在选择备用电池的时候,也考虑到了电池的尺寸,从而选择了MS621 这款容量为5.5mAh 的可充电的锂电池来作为STM32 的备用电池,其事情电路及实物图如下图所示:
当外部电压3.3V 存在时,外部3.3V 通过限流电阻R13 和整流二极管D5 给STM32 的VBAT 供电,同时也可以给MS621 充电。当外部3.3V 段开始,STM32 的VBAT 引脚由MS621 供电。
◆ OLED 接口
OWL Micro F1 开拓板设计了一个OLED 模块的接口,接口的通信办法是IIC 通信,同传感器接口的电源一样,OLED 模块的电源部分也采取了一个P-MOS 管SI2301 来作为OLED 模块电源的开关,掌握事理前面已经讲过,这里就不再赘述了。为了能够更好的支撑OLED 模块,在OLED 接口的正对面设计了一个4PIN 的排母,这个排母的所有引脚都接到了GND 上,可供用户做实验时用。
OLED 模块选用的是中景园电子的0.91 寸的OLED 模块,IIC 接口、分辨率为12832像素。实物图如下:
关于OLED 模块的利用,在后续软件部分会详细先容,在这里就不再做先容了。
◆无源蜂鸣器
在单片机运用的设计上,很多方案都会用到蜂鸣器,大部分都是利用蜂鸣器来做提示或报警,比如按键按下、开始事情、事情结束或是故障等等。
有源蜂鸣器直接接上额定电源就可以联系发声;而无源蜂鸣器则和电磁扬声器一样,要在音频输出电路中才能发声。
有源蜂鸣器和无源蜂鸣器的差异(把稳:这里的“源”不是指电源,而是指震荡源。):
有源蜂鸣器内部带有震荡源,以是只要一通电就会叫;无源蜂鸣器内部不带震荡源,以是如果用直流旗子暗记无法令其鸣叫,必须利用一定频率的方波去驱动它(一样平常频率为2kHz-5kHz);有源蜂鸣器一样平常比无源蜂鸣器贵,紧张是由于内部多了个震荡电路。此开拓板上集成了一个无源蜂鸣器,电路设计参考图如下:
由于蜂鸣器的事情电流一样平常比较大,以至于STM32 的GPIO 口是无法直接驱动的,以是要利用放大电路来驱动,一样平常利用三极管来放大电流就可以了。
三极管的基极必须串接电阻,保护基极,即保护STM32 的GPIO 口。
基极和发射极须要串接电阻,即R11 电阻,该电阻的浸染是在输入呈高阻态时使三极管可靠截止,放置三极管受噪声旗子暗记的影响而产生误动作。三极管的基极不能涌现悬空,当输入旗子暗记不愿准时,加下拉电阻,就能使其有效接地。
D4 1N4148 二极管的浸染紧张是续流,由于蜂鸣器是感性元件,当感性元件溘然断电时会产生很大的反向感应电动势,可能会对电路中的其他电子元件造成损伤,因此,并联该二极管的目的是旁路掉此感应电动势,起保护浸染。
◆锂电池充电电路
OWL Micro F1 开拓板搭载了一颗“单节锂电池充放电管理”的芯片TC4056A,它是一款完全的单节锂电池采取恒定电流/恒定电压线性充电器,关于该芯片的详细参数,大家可以查阅手册,这款芯片的紧张特点包括电池温度检测、欠压闭锁、自动再充电和两个用于指示充电、结束的LED 状态引脚,可编程充电电流可高达1000mA。
锂电池的充电管理电路如下图所示:
上图中,D3 紧张是用来指示锂电池的充电状态,插入USB 时,在TC4056A 的浸染下,开始给锂电池充电,指示灯D3 常亮,当锂电池充满时,D3 常灭。R15 是用来限定TC4056A 的最大充电电流,根据公式:IBAT=(VPROG/RPROG)1200,个中,VPROG在预充电阶段时的电压为0.1V,此时电流IBAT=(0.1/1200)1200=0.1A;VPROG在恒流充电阶段时的电压为1V,此时电流IBAT=(1/1200)1200=1A。
由于锂电池我们采取了自带保护板的铝包电池,以是我们在板子上没有再增加充电保护电路了,如果大家在改换电池的时候一定要把稳选择带保护板的电池,否则有可能发生意想不到的事情。
◆升压电路
考虑到我们的OWL Micro F1 板子须要适应一些锂电池供电的运用,而标称为3.7V 的锂电池的电压范围实际一样平常在3.0V-4.2V,而对绝大部分常用的LDO 或者DC-DC 电源芯片来说,如果须要得到稳定的3.3V 输出电压,那么输入电压必须要比3.3V 赶过至少100mV以上,这样的话,锂电池电压低于3.4V 的时候就不能得到稳定的3.3V 电压了,可能会造成某些元器件不能正常事情。
因此,我们OWL Micro F1 开拓板在电路设计的时候,采取了先升压、再降压的方案。当然咯,大概也有人会有疑问,这里为什么不直接用一款内部集成了同步升压、降压一体的电源芯片,这样岂不是更省事?这样做确实没毛病,也省事,但是,我们之以是选择先升压、再降压的方案,也是为了得到一个常用的电压—5V 电压,这样的话,用户在做别的实验须要用到5V 的时候,就会很方便了有木有?
那么,我们先来看一下锂电池升压到5V 的电路:
升压芯片采取的是SDB628,这款芯片的输入电压范围为2-24V,最高输出电压为28V、最大输出电流为2A,更多详细参数请大家查阅芯片手册。
这款芯片的可调节输出电压的公式为:VOUT=VREF(1+R1/R7),个中VREF 的范例值为0.6V,那么根据事理图我们可以得到输出电压VOUT=0.6V(1+88.7K/12K)=5.035V。大家如果须要其他的电压,只需根据公式打算,改变R1 和R7 的值就好了。
其余值得说一下的是,在锂电池的输出端,我们增加了一个P-MOS 管SI2301 用来作为锂电池输出的开关,细心的小伙伴们可能创造了,同样是SI2301,但是用法彷佛跟之前传感器电源掌握和OLED 电源掌握有点不一样了,难道是我们设计错了吗?
实在,我们这里并没有设计错,只是换了一下用法,且听笔者剖析一下这部分的事情事理,大家就明白了。
当外部USB 插入时,MOS 管SI2301 的1 脚(G 极)和2 脚(S 极)之间的电压差即是SS34 两端的电压,只有零点几伏,并未知足SI2301 的D 极和S 极导通的条件,以是此时锂电池仅处于充电状态,并未放电,后极电路的电源完备由外部USB 供应,也便是说,外部USB 在给锂电池充电的同时,也在为后极电路供电;当外部USB 拔掉时,MOS 管SI2301 的1 脚(G 极)不才拉电阻R33 的浸染下,被拉低到了GND,此时MOS 管SI2301 的2 脚(S 极)的电压也险些为GND 电压,MOS 管SI2301 的D 极和S 极是处于未导通状态的,但是,由于MOS 管SI2301 内部寄生二极管的浸染,导致了MOS 管SI2301 的D 极和S 极之间直接形成了通路,这样又使得MOS 管SI2301 的2 脚(S 极)的电压靠近了电池的输入电压,而其1 脚(G 极)不才拉电阻的浸染下被拉低到了GND 处电压,于是G极和S 极的电压差又产生了,而且这个电压差高于SI2301 的G 极阈值,从而又导致MOS 管SI2301 的D 极和S 极导通了。看了这个电路的事情事理,相信大家不会再质疑这部分的电路有问题了吧!
?其余,图中的J6 实际上是用一个短接帽连起来的,这里紧张是为了在做低功耗运用测回路电流的时候供应了方便,其他也没有什么太大的用途。
◆ 降压电路
OWL Micro F1 开拓板的降压部分,采取的是ME6211C33M5G 这款LDO,这款LDO的输入最大电压为6V,输出电压为固定3.3V,输出最大电流为500mA。封装采取的是SOT-23-5,也是比较省空间的,运用事理图如下图所示:
PCB 板上的5V 和3.3V 均设置了指示灯,分别为上图中的D7 和D8,在板子上的位置如下:
◆ 电池电量检测
OWL Micro F1 开拓板上电池电量的检测紧张采取比较粗糙的直接测电池电压的方法,这种方法相对一些专用的电量芯片来说,还是比较大略,但是并不能检测到电池的真实电量,紧张运用在对电池电量检测精度哀求不高的场合。
我们是直接将两个电阻分压后电压送入到STM32 的AD 口进行采集,打算出分压后的电压,然后再通过分压比例,打算出电池的电压。开拓板上电池的电压为AD 口采集到的电压的2 倍。
◆ 外部时钟电路
时钟是微掌握器的脉搏,主要性可想而知,微掌握器都须要一个基本的时钟节拍,即时钟基准,不然会导致时序错乱,完备乱套了,系统就崩溃了。一样平常,我们须要为STM32F103 芯片供应一个外部时钟源,一样平常利用8MHz 的无源石英晶振,如下图所示:
实际上,STM32F103 芯片内部也有一个主时钟源,也是8MHz 的,但是一样平常我们不该用,而是利用外部晶振,紧张是处于稳定性的考虑。其余,为利用RTC(实时时钟、万年历)还须要供应32.768 KHz 的时钟源,由于芯片内部供应时钟是32KHz,不是2 的N 次方,无法得到准确的韶光,以是,为得到精准的韶光,我们须要用外部的32.768 KHz 的晶振,电路设计如下图所示:
◆ 串口下载/调试
OWL Micro F1 开拓板上集成了一颗USB 转TTL 电平的芯片CH340E,有了这款芯片,用户可以直策应用ISP 串口下载程序,同时也可以用来做串口通信的实验。CH340E 的运用电路如下图所示:
CH340E 这款芯片的外围电路比较于其他同类型芯片来说,切实其实是大略的不要不要滴!
在进行ISP 下载时,我们首先要将BOOT0 设置为高电平,BOOT1 设置为低电平,即:将板子上的B0 跟H 短接,B1 跟L 短接,这样STM32F103 就可以进入ISP 下载模式了,如下图所示:
把稳,这里我们讲的是“可以进入”而事实上并不会立时进入ISP 下载模式,由于,只有系统复位后MCU 才会读取BOOT 引脚电平,才会决定启动模式。以是,在对STM32F103 进行ISP 下载的时候,须要对STM32F103 进行一次手动复位。我们的开拓板上给大家设计好了复位按键,可以让大家很方便的对STM32F103 进行复位。
我们可以通过FlyMcu 这款免费的软件,来对STM32F103 进行程序的下载,软件界面如下图所示:
ISP 下载操作流程如下:
插入USB 线,并跟电脑连接,安装好CH340 的驱动;打开FlyMcu 软件,搜索串口,然后找到我们的设备COM 口号;加载程序的hex 文件;在STMISP 选项中点击“开始编程”;在涌现“开始连接”提示后,手动按下开拓板上的“复位”按键;等待FlyMcu 软件涌现如下字样时,解释程序下载成功:程序下载成功后,再将BOOT0 设置为0,BOOT1 设置为0,并给板子复位或者重新上电,程序就能正常实行了。
更多干货内容只须要你关注电子芯吧客微信"大众年夜众号