使用 stm32实现锂电充电_额温枪实战方案开发板,使用手册+全套资料

工欲善其事必先利其器。单片机的学习不仅需要书本的理论知识,更需要实际操作的硬件平台,否则一切是都是空中楼阁。除了硬件平台,还需软件开发工具,用于软件开发的有 Keil、IAR 等。开发好的程序,还需下载器将其程序下载到 Flash 中,这时还需要下载器。同样,当我们在项目开发中,还会遇到各种各样的问题,此时还需调试器。

OWL Micro F1 开发板,是『芯知识学堂』成立以来,推出的首款开发板,主控芯片采用了ST 的STM32F103C8T6 这款处理器,板载详细功能如下图所示:

c1becee6df0d373a843b32b19b931f4c.png

◆传感器接口:

板载接口默认使用搭载了MLX90614 这款红外测温传感器的GY-906 模块,从板子背面直接连接,但是考虑到目前MLX90614 这款传感器的短缺,以及方便后续用户做其他实验,特意预留了4 路ADC 接口。这里需要说明一下,此处的PA0、PA1、PA2、PA3、SCL2、SDA2 和板子两侧的单排针上的PA0、PA1、PA2、PA3、PB10、PB11 引脚是连在一起的,详见原理图。

04a8200a7f1d230e4ec50cc41418149a.png

传感器接口的电源部分,通过一个P-MOS 管SI2301 来作为传感器电源的控制开关,图中SI2301 的1 脚为G 极(门极),2 脚为S 极(源极),3 脚为D 极(漏极)。

6723b2b8faa3fca8808b02d9d1e251a8.png

这里,我们需要明白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,硬件原理图如下图所示:

8912d2b58060bea7d182ea7a99bfcebf.png

当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 接口。

b74a2281989c730efe33c84be060f0de.png

◆ 复位按键

微控制器一般有软件复位和硬件复位两种方法,STM32F103 硬件复位信号为低电平有效,一般加上拉电阻(即另一端为高电平),保证一般情况下为高电平,如下图所示:

69bdc9b4fd41f4f4b972dc7af986ecf5.png

◆ RGB 三色灯

流水灯一直低入门学习微控制器的最简单、最经典的例子,体现了微控制器最基本的功能:控制引脚输出高低电平。此开发板上搭载了一颗RGB 三色灯,三色灯采用共阳极接法,正极接到了3.3V,负极通过一个限流电阻接到了STM32F103 的GPIO 口上,只要控制STM32F103 的对应引脚输出低电平,就能点亮对应的灯,输出高电平,就能关闭对应的灯。通过一定的逻辑组合,就能实现流水灯的效果。

5f6812aa3a04a6b20870139895e8db2e.png

◆ 功能按键

类似RGB 灯,几乎每个开发板都有集成独立按键,因为从测试代码功能也好,实际应

用也好,按键用处多多。此开发板也不例外,板载了4 个功能按键可供用户使用。普通按键按下和弹开瞬间都有抖动过程,如下图所示:

8f6d680c035a844411ef1ed485b43ffd.png

按键抖动过程一般为5ms-10ms,有了抖动就需要消抖,不然很容易造成误操作。消抖方法可分为:硬件消抖和软件消抖。软件消抖在后续的软件部分会做相应的介绍,此处主要是介绍硬件消抖。此开发板按键部分主要通过一个上拉电阻和一个电容组成硬件消抖电路,其原理图及实物图如下:

4af243545a560a8f7d883dcd1b15017c.png

◆ 可充电备用电池

备用电池的作用主要是在STM32 断电时保持内部RTC 始终正常运行,否则断电后RTC数据会丢失,重新启动后又从默认时间重新开始计数。一般开发板上都会带有一个备用电池,常用的要数CR1220 这款纽扣电池了。由于我们板子空间比较紧凑,所以我们在选择备用电池的时候,也考虑到了电池的尺寸,从而选择了MS621 这款容量为5.5mAh 的可充电的锂电池来作为STM32 的备用电池,其工作电路及实物图如下图所示:

d9d516bbbc72d05f765db4e415e4fd9b.png

当外部电压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 上,可供用户做实验时用。

3669a568d7af1528a1b9fa917df7b251.png

OLED 模块选用的是中景园电子的0.91 寸的OLED 模块,IIC 接口、分辨率为128*32像素。实物图如下:

6f26d4b5ba91e78a57df75870b1c7e37.png

关于OLED 模块的使用,在后续软件部分会详细介绍,在这里就不再做介绍了。

◆无源蜂鸣器

在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。

有源蜂鸣器直接接上额定电源就可以联系发声;而无源蜂鸣器则和电磁扬声器一样,要在音频输出电路中才能发声。

有源蜂鸣器和无源蜂鸣器的区别(注意:这里的“源”不是指电源,而是指震荡源。):

  • 有源蜂鸣器内部带有震荡源,所以只要一通电就会叫;
  • 无源蜂鸣器内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须使用一定频率的方波去驱动它(一般频率为2kHz-5kHz);
  • 有源蜂鸣器一般比无源蜂鸣器贵,主要是因为内部多了个震荡电路。

此开发板上集成了一个无源蜂鸣器,电路设计参考图如下:

283fc3e43ff712f04ff0f170af3ae74b.png

由于蜂鸣器的工作电流一般比较大,以至于STM32 的GPIO 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。

三极管的基极必须串接电阻,保护基极,即保护STM32 的GPIO 口。

基极和发射极需要串接电阻,即R11 电阻,该电阻的作用是在输入呈高阻态时使三极管可靠截止,放置三极管受噪声信号的影响而产生误动作。三极管的基极不能出现悬空,当输入信号不确定时,加下拉电阻,就能使其有效接地。

D4 1N4148 二极管的作用主要是续流,因为蜂鸣器是感性元件,当感性元件突然断电时会产生很大的反向感应电动势,可能会对电路中的其他电子元件造成损伤,因此,并联该二极管的目的是旁路掉此感应电动势,起保护作用。

◆锂电池充电电路

OWL Micro F1 开发板搭载了一颗“单节锂电池充放电管理”的芯片TC4056A,它是一款完整的单节锂电池采用恒定电流/恒定电压线性充电器,关于该芯片的详细参数,大家可以查阅手册,这款芯片的主要特点包括电池温度检测、欠压闭锁、自动再充电和两个用于指示充电、结束的LED 状态引脚,可编程充电电流可高达1000mA。

9a23d6502cf45a2c3733cd2010d51d4c.png

锂电池的充电管理电路如下图所示:

00f70ff6c685cdd1d8f63380391a5e6e.png

上图中,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。

由于锂电池我们采用了自带保护板的铝包电池,所以我们在板子上没有再增加充电保护电路了,如果大家在更换电池的时候一定要注意选择带保护板的电池,否则有可能发生意想不到的事情。

aedaa721ecbd53e2c2eceddff747db47.png

◆升压电路

考虑到我们的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 的电路:

00e2755bf3df04890a2ad09408888a91.png

升压芯片采用的是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,也是比较省空间的,应用原理图如下图所示:

9310fdfec9fd737068f7e369bdc0db90.png

PCB 板上的5V 和3.3V 均设置了指示灯,分别为上图中的D7 和D8,在板子上的位置如下:

5e01d4d39a24c92bb5769fef30db8064.png

◆ 电池电量检测

OWL Micro F1 开发板上电池电量的检测主要采用比较粗糙的直接测电池电压的方法,这种方法相对一些专用的电量芯片来说,还是比较简单,但是并不能检测到电池的真实电量,主要应用在对电池电量检测精度要求不高的场合。

152e3c755831be1c932e30d8b19a8196.png

我们是直接将两个电阻分压后电压送入到STM32 的AD 口进行采集,计算出分压后的电压,然后再通过分压比例,计算出电池的电压。开发板上电池的电压为AD 口采集到的电压的2 倍。

◆ 外部时钟电路

时钟是微控制器的脉搏,重要性可想而知,微控制器都需要一个基本的时钟节拍,即时钟基准,不然会导致时序错乱,完全乱套了,系统就崩溃了。一般,我们需要为STM32F103 芯片提供一个外部时钟源,一般使用8MHz 的无源石英晶振,如下图所示:

59da8d63ec8c8bfd51ffa4c98b4d3a8d.png

实际上,STM32F103 芯片内部也有一个主时钟源,也是8MHz 的,但是一般我们不使用,而是使用外部晶振,主要是处于稳定性的考虑。另外,为使用RTC(实时时钟、万年历)还需要提供32.768 KHz 的时钟源,由于芯片内部提供时钟是32KHz,不是2 的N 次方,无法得到准确的时间,所以,为得到精准的时间,我们需要用外部的32.768 KHz 的晶振,电路设计如下图所示:

3486b96bb4f7107b905af6c55ce1df47.png

◆ 串口下载/调试

OWL Micro F1 开发板上集成了一颗USB 转TTL 电平的芯片CH340E,有了这款芯片,用户可以直接使用ISP 串口下载程序,同时也可以用来做串口通信的实验。CH340E 的应用电路如下图所示:

f22b97d81236bd2c152951d816866b9d.png

CH340E 这款芯片的外围电路相比于其他同类型芯片来说,简直是简单的不要不要滴!

在进行ISP 下载时,我们首先要将BOOT0 设置为高电平,BOOT1 设置为低电平,即:将板子上的B0 跟H 短接,B1 跟L 短接,这样STM32F103 就可以进入ISP 下载模式了,如下图所示:

b0fd4c1350bec058c4e74d03fc10a75d.png

注意,这里我们讲的是“可以进入”而事实上并不会马上进入ISP 下载模式,因为,只有系统复位后MCU 才会读取BOOT 引脚电平,才会决定启动模式。所以,在对STM32F103 进行ISP 下载的时候,需要对STM32F103 进行一次手动复位。我们的开发板上给大家设计好了复位按键,可以让大家很方便的对STM32F103 进行复位。

我们可以通过FlyMcu 这款免费的软件,来对STM32F103 进行程序的下载,软件界面如下图所示:

5877f10df363a015ec08917fef8a6243.png

ISP 下载操作流程如下:

  • 插入USB 线,并跟电脑连接,安装好CH340 的驱动;
  • 打开FlyMcu 软件,搜索串口,然后找到我们的设备COM 口号;
  • 加载程序的hex 文件;
  • 在STMISP 选项中点击“开始编程”;
  • 在出现“开始连接”提示后,手动按下开发板上的“复位”按键;
ace3e328954ccfe3814e4d2ec89eb8f1.png
  • 等待FlyMcu 软件出现如下字样时,说明程序下载成功:
ceb5e572406250e3754e4d0848819be9.png

程序下载成功后,再将BOOT0 设置为0,BOOT1 设置为0,并给板子复位或者重新上电,程序就能正常执行了。

bdc53f1149b2b26470e414f18e909b24.png

更多干货内容只需要你关注电子芯吧客微信公众号

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 安富莱_STM32-V7开发板_用户手册是一本指导用户正确使用开发板的重要文档。它包含了开发板的详细介绍、硬件配置以及软件使用的相关信息。 首先,用户手册详细介绍了安富莱_STM32-V7开发板的主要功能和特点。它说明了该开发板采用的是STM32系列微控制器,具有高性能和可靠性。此外,手册还指出该开发板可以实现多种功能,如GPIO控制、ADC/DAC模块、通信接口等等。 其次,用户手册介绍了该开发板的硬件配置。它列出了开发板上各个接口和引脚的功能及用途,以及外部扩展接口的连接方式。另外,手册还提供了硬件连接的示例图和步骤,使用户更加便于理解和操作。 最后,用户手册详细说明了该开发板的软件使用方法。它介绍了开发板的编程环境和开发工具,如Keil MDK、STM32Cube等。手册还提供了基本的编程示例和代码片段,帮助用户快速上手开发。 总的来说,安富莱_STM32-V7开发板_用户手册是一本指导用户正确使用开发板的重要参考资料。它包含了对开发板的详细介绍、硬件配置和软件使用的全面指导,帮助用户快速上手并顺利完成开发任务。用户可以根据手册中提供的信息和示例,灵活运用开发板的各项功能,实现自己的项目需求。 ### 回答2: 安富莱_stm32-v7开发板_用户手册是一本详细介绍安富莱_stm32-v7开发板使用方法和技术规格的指南。该开发板是一款基于STM32系列微控制器的开发工具,可广泛应用于嵌入式系统的设计和开发中。 用户手册的目的是帮助用户熟悉和了解该开发板的特性和功能,以便能够更高效地使用它进行开发工作。手册首先介绍开发板的硬件组成,包括主控芯片、扩展接口、外设等部分,并提供相应的电路图和连接指南,方便用户进行硬件连接和布线。 接下来,手册详细介绍了开发板支持的软件开发环境和工具,包括嵌入式C语言开发工具链、编程软件、调试工具等。用户可以根据手册的指导,快速搭建开发环境,并了解如何使用这些工具进行程序编写、下载和调试。 此外,手册还提供了丰富的实例代码和应用案例,涵盖了常见的嵌入式系统开发任务,如GPIO控制、定时器配置、串口通信、ADC/DAC数据采集和PWM信号生成等。用户可以根据这些示例,快速理解和掌握相关的编程技巧和知识。 最后,手册还包含了一些附加的资料和参考资源,如STM32系列微控制器的技术手册、外设数据手册等。这些资料对于深入了解开发板和相关技术非常有帮助。 总之,安富莱_stm32-v7开发板_用户手册提供了全面的信息和指导,帮助用户快速上手并充分发挥该开发板的功能。无论是初学者还是有经验的开发者,都能从中获得所需的帮助和指导,提高开发效率和质量。 ### 回答3: 安富莱_stm32-v7开发板_用户手册是一本详细介绍该开发板使用方法和功能的手册。该用户手册共分为几个主要部分。 首先,用户手册会提供该开发板的硬件介绍,包括板载器件和接口的详细说明。用户可以了解到该开发板的主要硬件组成和功能。 其次,用户手册会介绍该开发板的软件开发环境和工具。包括该开发板所支持的集成开发环境和编程语言,用户可以根据手册中的指导进行软件开发。 用户手册还会详细介绍该开发板使用方法和注意事项。包括启动开发板使用示例代码、连接外部设备等。同时,手册中还会指导用户如何进行调试和故障排除,以及常见问题解答。 最后,用户手册还会提供一些扩展和进阶功能的介绍。用户可以了解如何通过扩展接口和外设模块实现更多功能。 总之,安富莱_stm32-v7开发板_用户手册是一本非常实用的指南,对于初次接触该开发板的用户来说尤为重要。通过阅读该手册,用户可以快速上手使用开发板,掌握其基本功能,并在此基础上进一步开发和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值