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低功耗模式与烟雾报警器触发信号电路设计的更多相关文章

  1. 【原创】STM32低功耗模式及中断唤醒(基于BMI160及RTC)的研究

    预研目标 六轴静止时,终端进入低功耗模式:六轴震动时,终端正常工作模式,从而极大减少非工作时的电流消耗. 解决方案 机器静止时,依据六轴算法,CPU进入休眠(停止)模式:机器工作时,触发六轴中断唤醒C ...

  2. STM32的低功耗模式

    一 待机模式standby和STOP模式的区别: 进入低功耗模式:都一样,都是先关闭相应时钟,关闭相应外设,配置相应所有IO口(浮动输入),然后配置相应的唤醒中断源,中断影响的O口,然后调用相应函数进 ...

  3. STM32 低功耗 调试心得

    MCU在进入STOP模式的时候,GPIO的状态都是保持在进入低功耗模式之前的状态,在最小系统中,MCU的GPIO都是悬空的,所以设置为何种状态都不会影响到功耗.但当连接到外设后,外设的电平状态和所连接 ...

  4. FreeRTOS低功耗模式

    在系统或电源复位以后,微控制器处于运行状态.当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时,用户需要根据最低电源消耗,最快速启动时间和可用的唤醒源等条件,选定一个最佳 ...

  5. android wifi SWOL低功耗模式

    1 睡眠模式RX代码流程 ar_wal_rx_patch.c::patch_rx_process_recv_status//调用rx_ctxt->data_ind_handler -> d ...

  6. msp430f149的低功耗模式

    430的低功耗确实很强啊,虽然和VR单片机比起来速度慢了好多.在CPU进行工作时,如果没有什么事情干,就得进入低功耗模式啦,LMPX(0~4)这几种模式的具体事项就是如下的,得记住了. 一,运行模式M ...

  7. android蓝牙的调试(博通蓝牙工作 and 低功耗模式)

    首先结合项目从整体上去把握这部分: 蓝牙模块中一个比较核心的文件是bluetooth.c, 在我们上电的时候, 会调用这个文件中bt_enable()这个函数, 在这个函数里面先调用set_bluet ...

  8. STM32启动模式及API(转)

    源:STM32启动模式及API 我们玩ARM9,一般都是在内存里调试程序,速度飞快.STM32下也可以这样,虽说现在的flash寿命已经很长了,但flash中调试烧录程序还是一个很慢的过程,有时候程序 ...

  9. Doctype的作用?严格模式与混合模式,如何触发者这两种模式,区分它们有何意义?

    Doctype作用?严格模式与混合模式,如何触发者这两种模式,区分它们有何意义? 1.1 Doctype作用 <!DOCTYPE>声明叫做文件类型定义(DTD),声明的作用为了告诉浏览器该 ...

随机推荐

  1. 【Luogu】P1383高级打字机

    可持久化线段树模板题之一. 权当温习主席树模板 #include<cstdio> #include<cstdlib> #include<cctype> #defin ...

  2. Java统计程序运行时间

    代码如下: 第一种是以毫秒为单位计算的. long startTime = System.currentTimeMillis();    //获取开始时间 doSomething();    //测试 ...

  3. Morris Traversal 方法遍历二叉树(非递归、不用栈,O(1)空间)

    http://www.cnblogs.com/AnnieKim/archive/2013/06/15/MorrisTraversal.html

  4. 1109 NOIP 模拟考试

    NOIP2016 模拟赛 ——那些年,我们学过的文化课 背单词(word.c/cpp/pas)[题目描述]fqk 退役后开始补习文化课啦, 于是他打开了英语必修一开始背单词. 看着满篇的单词非常头疼, ...

  5. 【HDOJ5949】Relative atomic mass(签到)

    题意:给定一个只由H.C.O三种分子组成物质的分子式,求相对分子质量 len<=10 思路:队友写的 #include <stdio.h> #include <vector&g ...

  6. WEB学习-CSS盒模型

    盒子的区域 一个盒子中主要的属性就5个:width.height.padding.border.margin. width是“宽度”的意思,CSS中width指的是内容的宽度,而不是盒子的宽度. he ...

  7. CocoaPods为project的全部target添加依赖支持

    在使用CocoaPods时.pod install默认仅仅能为xcodeproject的第一个target加入依赖库支持.假设要为全部的target添加可依照例如以下步骤进行 两种情 1. 编辑Pod ...

  8. HeatMap(热图)的原理和实现

    先来看两张图: (1)10年世界杯决赛,冠军西班牙队中门将.后卫.中场及前锋的跑位热图 通过热图,我们可以很清楚的看出四个球员在比赛中跑动位置的差异. (2)历史地震震源位置的热图 也可以很清楚的看出 ...

  9. 内存管理[5]通过 GetProcessHeaps 函数获取了当前进程的堆句柄列表

    本例在建立一个新的堆前后分别通过 GetProcessHeaps 函数获取了当前进程的堆句柄列表, 没想到一个最简单的程序也有 5 个堆. 效果图: unit Unit1; interface use ...

  10. android项目大全,总有你所需的

    注:打开请贴网址.有些直接通过链接打开的不对.  1.相对布局实例 http://kukuqiu.iteye.com/blog/1018396 2.Log图文具体解释(Log.v,Log.d,Log. ...