项目总结 |
您所在的位置:网站首页 › 烟雾报警器原理图加代码怎么写 › 项目总结 |
一、概述
最近做了一个烟雾报警的项目,其中碰到一些问题,总结起来 二、项目介绍 项目主要包含stm8L151G6单片机,烟感检测,红外检测,蜂鸣器,LED,NB-IOT模块,烟感检测采用红外对管,红外对管并不是直接对射,而是通过烟雾漫反射来检测。这个项目主要在于低功耗。 三、问题汇总 1、唤醒问题 为了实现功耗,单片机采用RTC唤醒,在设置这个RTC寄存器的时候碰到幻想不了的问题,最后发现是有个寄存器设置顺序的问题。如下 T_S32 DRIVER_RTC_Open(T_VOID) { memset(&g_RtcCtl, 0, sizeof(g_RtcCtl)); g_RtcCtl.u32WakeInt = RTC_DEFAULT_WAKE_INT; ///* CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE); CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_1); RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16); //32768/16 = 2048 RTC_SetWakeUpCounter(2048 * g_RtcCtl.u32WakeInt); //这个要放在开中断前 //*/ /* CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE); CLK_RTCClockConfig(CLK_RTCCLKSource_HSE, CLK_RTCCLKDiv_64); //250000 RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16); //250000/16 = 15625 RTC_SetWakeUpCounter(15625); */ RTC_ITConfig(RTC_IT_WUT, ENABLE); RTC_WakeUpCmd(ENABLE); return RET_SUCCESS; } 2、stm8 串口在唤醒后乱码 我主频本来是采用HSE的,但是在唤醒后,本来好的串口发送有问题。后来我把主频改成HSI就好了,这里具体什么原因还没分析清楚,后面再来看 3、NB-IOT模块 我们采用的m5310 的NB-IOT模块,模块在入网之后的电流还是挺小的只有3ua 4、串口 进入休眠时可以采取将串口置成输入口来降低功耗 5、报警 在蜂鸣器报警的时候,电流可能很大,这时候可能会影响通信芯片 的稳定性,所以看需要在通信模块电源旁边加上一个大点的电容 6、入网 对通信来说,一般都会存在入不了网的情况,所以需要一个比较合理的入网及检查过程来判断网络情况。 7、红外功耗 板子的功耗由两部分组成,1是静态功耗,2是间隔检测红外的功耗。我们本来板子静态功耗挺低的,只有4.7ua。整体平均功耗由200多ua,而泛海三江的只有16ua.。后来发现是我们的红外管打开时间过长,泛海三江的只打开100us。而我们的有10几ms。这里我程序其实打开时间很短的,但用示波器测就是有10几毫秒。后来发现是驱动电路有问题,我们采用MOS管控制红外的电源,这里会导致延时。 所以需要都改成三极管控制 8、NB IOT卡 nb模块实现低功耗是根据卡的接入点不同来设置的,不同的卡功耗会不一样,这里在买卡的时候要注意 9、弹簧天线 弹簧天线需要套热缩管,这样性能会更好 10、烟感断网问题 给客户的烟感出现一个问题,他的卡流量正好没了,导致所有设备都断网了,我在设备里面是又做重连网络的,但是是每隔30分钟重现入网,这里可能在断网之后耗电量是比较大的情况,所以这里最好改过。 11、湿度大的地方误报的情况 可上电的时候采集一个当地的基值,然后与这个基值对比来报警 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |