STM32低功耗模式与烟雾报警器触发信号电路设计
1、STM32的3种低功耗模式

STM32有3种低功耗模式,分别是睡眠模式、停机模式和待机模式。
2、STM32在不同模式下的电流消耗
a、工作模式 消耗电流在27mA至36mA之间。

b、睡眠模式 消耗电流在5.5mA至14.4mA之间。

c、停机模式和待机模式 停机模式消耗电流在15uA 待机模式在5uA

3、各种低功耗模式下的唤醒条件
从上面的图表1可以看到,在睡眠模式下和待机模式下可以利用外部中断唤醒,而停机模式下只能通过以下4种方式唤醒:
a、WAKEUP引脚的上升沿
b、RTC闹钟事件
c、NRST引脚上的外部复位
d、IWDG独立看门狗的复位
4、项目需求与低功耗模式选择
项目的特殊需求有以下两点:
a、有烟雾报警情况下的随时从低功耗模式退出,使用wifi传输报警信号
b、报警器需要定时报告自身的状态,所以到时间了必须从低功耗模式退出。
根据需求b,必须要用STM32的RTC功能。所以功耗选择模式必须选择待机模式,即MCU在运行状态下消耗电流约为30mA,在低功耗模式下消耗电流约为5uA。
5、烟雾传感器模块
烟雾传感器模块的电路主要使用了XC5012芯片。它与Freescale的MC145012 Pin-to-Pin匹配。MC145012的结构框图如下:

注意上图中的IO引脚,它就是为了扩展。它的详细定义如下:

其功能就是当自身烟雾传感器检查到烟雾时,其输出脉冲信号,当其级联时,它可以接受别的模块的报警信号。
时序图如下:

当芯片检查到烟雾报警条件满足时,在IO引脚上输出高电平,直到芯片检查到烟雾报警条件不满足。
6、烟雾传感器与STM32的连接
因为项目需求a的约束,所以必须要用STM32低功耗的待机模式,但是此种低功耗模式不支持外部中断唤醒。因此要利用STM32的WAKEUP引脚唤醒待机模式。
STM32的复位电路如下:

从上图和实际测试可以得出,当系统从低功耗管理复位时,程序代码将重头开始重新跑。
但是硬件电路设计上必须区分,目前的复位重新运行是因为WAKEUP引脚的上升沿引起复位(实际就是因为有烟雾报警的情况而产生复位)还是因为RTC闹钟事件引起的复位(实际就是因为定时报告事件到了而产生的复位)。
根据以上情况设计的接口电路图如下:

STM32低功耗模式与烟雾报警器触发信号电路设计的更多相关文章
- 【原创】STM32低功耗模式及中断唤醒(基于BMI160及RTC)的研究
预研目标 六轴静止时,终端进入低功耗模式:六轴震动时,终端正常工作模式,从而极大减少非工作时的电流消耗. 解决方案 机器静止时,依据六轴算法,CPU进入休眠(停止)模式:机器工作时,触发六轴中断唤醒C ...
- STM32的低功耗模式
一 待机模式standby和STOP模式的区别: 进入低功耗模式:都一样,都是先关闭相应时钟,关闭相应外设,配置相应所有IO口(浮动输入),然后配置相应的唤醒中断源,中断影响的O口,然后调用相应函数进 ...
- STM32 低功耗 调试心得
MCU在进入STOP模式的时候,GPIO的状态都是保持在进入低功耗模式之前的状态,在最小系统中,MCU的GPIO都是悬空的,所以设置为何种状态都不会影响到功耗.但当连接到外设后,外设的电平状态和所连接 ...
- FreeRTOS低功耗模式
在系统或电源复位以后,微控制器处于运行状态.当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时,用户需要根据最低电源消耗,最快速启动时间和可用的唤醒源等条件,选定一个最佳 ...
- android wifi SWOL低功耗模式
1 睡眠模式RX代码流程 ar_wal_rx_patch.c::patch_rx_process_recv_status//调用rx_ctxt->data_ind_handler -> d ...
- msp430f149的低功耗模式
430的低功耗确实很强啊,虽然和VR单片机比起来速度慢了好多.在CPU进行工作时,如果没有什么事情干,就得进入低功耗模式啦,LMPX(0~4)这几种模式的具体事项就是如下的,得记住了. 一,运行模式M ...
- android蓝牙的调试(博通蓝牙工作 and 低功耗模式)
首先结合项目从整体上去把握这部分: 蓝牙模块中一个比较核心的文件是bluetooth.c, 在我们上电的时候, 会调用这个文件中bt_enable()这个函数, 在这个函数里面先调用set_bluet ...
- STM32启动模式及API(转)
源:STM32启动模式及API 我们玩ARM9,一般都是在内存里调试程序,速度飞快.STM32下也可以这样,虽说现在的flash寿命已经很长了,但flash中调试烧录程序还是一个很慢的过程,有时候程序 ...
- Doctype的作用?严格模式与混合模式,如何触发者这两种模式,区分它们有何意义?
Doctype作用?严格模式与混合模式,如何触发者这两种模式,区分它们有何意义? 1.1 Doctype作用 <!DOCTYPE>声明叫做文件类型定义(DTD),声明的作用为了告诉浏览器该 ...
随机推荐
- 【Luogu】P3387缩点(Tarjan缩点+深搜DP)
题没什么好说的,因为是模板题.求值我用的是dfs. 不能直接在原图上dfs,因为原图上有环的话会发生一些滑稽的事情.所以我们要用Tarjan缩点.因为此题点权全为正,所以如果在图上走一个环当然可以全走 ...
- HDU 1565 方格取数(1) ——插头DP
[题目分析] 其实直接状压就可以了. 但是有点闲,又写了一个可读性极差,智商低下,很(gou)好(pi)的代码 [代码] #include <cstdio> #include <cs ...
- HDU 5833 Zhu and 772002 ——线性基
[题目分析] 这题貌似在UVA上做过,高精度高斯消元. 练习赛T2,然后突然脑洞出来一个用Bitset的方法. 发现代码只需要30多行就A掉了 Bitset大法好 [代码] #include < ...
- 洛谷P1435 回文字串
题目背景 IOI2000第一题 题目描述 回文词是一种对称的字符串.任意给定一个字符串,通过插入若干字符,都可以变成回文词.此题的任务是,求出将给定字符串变成回文词所需要插入的最少字符数. 比如 “A ...
- 【离散化树状数组】Nordic Collegiate Programming Contest G.Galactic Collegiate Programming Contest
#include<bits/stdc++.h> using namespace std; typedef long long ll; int n,m; ; struct node { in ...
- 【倒跑并查集维护连通块】NCPC 2016 A. Artwork
http://codeforces.com/gym/101550/attachments [AC] #include<bits/stdc++.h> using namespace std; ...
- Cstring中GetBuffer()方法的主要作用
摘自:http://bbs.csdn.net/topics/310247836 GetBuffer()主要作用是将字符串的缓冲区长度锁定 CString::GetBuffer有两个重载版本: (1 ...
- bzoj2648/2716 kdtree
SJY摆棋子 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 5199 Solved: 1813[Submit][Status][Discuss] D ...
- bigdata related
hive: http://lxw1234.com/archives/2015/07/413.htm 搜狗实验室数据集: https://www.sogou.com/labs/resource/list ...
- Android Service服务-(转)
Service是Android系统中提供的四大组件之一.它是运行在后台的一种服务,一般声明周期较长,不直接与用户进行交互. 服务不能自己运行,需要通过调用Context.startService( ...