玖叶教程网

前端编程开发入门

烟感设计与测试参考方案

1.电源设计

电源是产品的动力输出,为了能够使产品的续航能力达到三年到五年以上,需要将系统的低功耗降到最低,而且工作时还需要稳定。

系统中NB模组、MCU、外设功耗比较高的元器件,而2108的功耗比较低。

2108芯片消防报警器的待机功耗低于2uA,报警电流为40mA。

NB模组的工作电压为3.1V-4.2V,经典值为3.6V,若是低于3.1V,则NB模组工作会出现异常,而且工作时最大的需要最大的电流为500mA,休眠电流<5uA。

MCU全速运行时,工作电流在mA级,在低功耗模式下,待机模式、停止模式、停止模式+RTC+保留2KB的RAM,功耗分别为0.23uA、0.29uA、0.54uA。工作电压为1.65V-3.6V。本次低功耗准备使用停止模式。

本系统工作大部分时间是在低功耗状态下,以上说明了单独芯片的功耗,而系统功耗不仅仅包括芯片,还包括外设功耗,外设需要比较多的功耗。为了能够使得系统的功耗达到最低,需要对外设进行合理的优化。

整个系统的功耗不报警时的电流不能高于30uA。工作电流最大不能高于500mA。

1.1 系统的外设低功耗

系统的外设包括电容滤波电路(忽略不计)、LDO电源芯片、有源8MHz外部晶振(20mA)、无源32KHz外部晶振(uA级)、外部3个LED信号灯(50mA)。

其中对于LDO的选择直接影响系统的功耗,系统的功耗通过以上分析,系统工作时功耗比较大,最大电流接近于650mA。经过以上参数,首先选择TI出品的电源管理芯片TLV757P、LP38690,LV1117LV33DCYR 、TPS61021A。

采用单电源供电,3V锂锰电池供电。出现的问题主要在于NB模组,NB模组使用的电压为3.6V,采用升压芯片TPS61021A,将3V电压升到3.6V,为了提高转换效率,也可以将电压升到3.3V,3.3V时NB模组也能正常工作。在输入为3.0V时,输出电压为3.3V、输出电流为100-500mA时,转换效率高达96%。而且静态功耗低达17uA。而对于MCU的工作电压为1.8V-3.6V。消防报警芯片,工作电压范围为2V-5.5V,都可在3.3V进行工作。所以,为了贯穿整个系统的电压,采用TPS61021A作为供电电压芯片。

对TPS进行布局时,要注意,电感的大小确定之后,还要确定电感的电流值,当一个电感的电流值过小的时候,会使得电路出现不可预知性错误。

1.2 NB模组的功耗优化

NB模组是利尔达模组出品的模组,工作时电流最大200mA,平均50mA,待机模式下3uA(在之前设计的NB模组开发板进行实验)。功耗优化不仅仅与外界电路有关,还有程序有关,第二章软件设计问题存在简介。

1.3 MCU功耗优化

MCU工作时,设置为停机模式,软件设置在第二章有介绍。

2.软件设计问题

2.1总是进入串口中断问题

stm32与NB模组通信时,总是出现程序卡死在中断中,经过单步调试,发现STM32L011的串口容易出现过载,过载中断总是出现,所以总是在中断中,不接受其他数据。

所以,在中断函数中加入清楚过载标志位即可

isrflags = huart2.Instance->ISR;

if((isrflags & USART_ISR_ORE) == 0x00000008)

{

__HAL_UART_CLEAR_IT(&huart2, UART_CLEAR_OREF);

res = USART2->RDR;

}

清除位之后,要及时的将res读出清楚RXIN中断标志位。

如果出现一次发送错误,必须重启模块,不能一次次的发送。

2.2 设置待机模式

此模式设置时一定要注意,不能跟停止模式一样,将其引脚设置为中断引脚。配置过程如下:

1. 调用__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);清楚电源标志位,这一步必须要调用,如果不调用,那么等到下次系统就不会进入待机模式了。

2. HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN3);使能唤醒引脚,引脚的数值为PWR_WAKEUP_PIN3,注:stm32L011只有两个唤醒引脚,PWR_WAKEUP_PIN0和PWR_WAKEUP_PIN3,分别对应PA0 和PA2,唤醒引脚不需要配置其工作模式,以及上下拉等问题。

3.最后调用 HAL_PWR_EnterSTANDBYMode();进入待机模式,经过测试,没有NB模组的情况下,芯片的功耗仅仅只有1uA。加上其他外设等情况,差不多与实际相符。

2.3 设置为停止模式

停止模式与待机模式不同,经过查阅网上资料,停止模式下,所有的时钟关闭,同时还保存寄存器中的数值。并且停止模式的唤醒引脚需要配置,而待机模式不需要配置唤醒引脚。

停止模式引脚配置:

配置PA2引脚为上升沿事件中断,如下:

GPIO_InitTypeDef GPIO_InitStruct;

GPIO_InitStruct.Pin = GPIO_PIN_2;

GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;

GPIO_InitStruct.Pull = GPIO_NOPULL;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

HAL_NVIC_SetPriority(EXTI2_3_IRQn, 0, 0);

HAL_NVIC_EnableIRQ(EXTI2_3_IRQn);

然后调用停止模式。

__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);

SystemClock_Config();

HAL_PWR_EnterSTOPMode进入停止模式。

2.4串口GPIO的配置导致的大功耗解决方法

在进行串口配置时,将串口的引脚(PA9、PA10)的输出属性配置为:

GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;

GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;

GPIO_InitStruct.Pull = GPIO_PULLUP;

GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

GPIO_InitStruct.Alternate = GPIO_AF4_USART2;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

在进行停机模式时,功耗比较到大,约为1.5mA。经过对比之前的试验,把引脚属性改为:

GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_InitStruct.Pull = GPIO_NOPULL;

GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

GPIO_InitStruct.Alternate = GPIO_AF4_USART2;

没有上拉,输出方式为推挽输出。推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小效率高。

如果采用GPIO_MODE_AF_PP作为输出模式,那么在停止模式下,功耗为1.4mA,如果是上拉方式GPIO_PULLUP,那么功耗为170uA。如果采用GPIO_MODE_OUTPUT_PP、GPIO_NOPULL,那么输出电流为1uA。

NB模组UART驱动程序(此程序为STM32F103ZET6开发板的例程)。例程在文件中NB驱动中,文件夹名称为Stm32f103zet6NbDriver。为keil例程。

对例程进行优化,0打开射频UDP不需要使用,8开启下行数据通知UDP不需要使用。21对PSM模式设置,将000001111,TAU01011111写入到AT+CPSMS进行设定PSM模式(PSM模式为利尔达2017年12月7日对固件进行升级添加的功能,此功能非常适合长时间不工作低功耗,具体的说明位于文件中的LierdaUpdata20171207.PDF)。图2表示PSM模式进入时间表。PSM状态请求的活动时间参数表中的数值表示idle状态到PSM模式的时间,而Connet到idle的时间则不可配置。TAU周期表示PSM到Connect的时间,最大可以设定为310个小时进行唤醒。但是如果系统网服务器发送信息,那么PSM会直接转换到Connect状态。对于低功耗器件,TAU周期表示PSM到Connect的时间可以直接设置为310h。

PSM模式请求表

2.5 NB程序优化

之前进行测试时,如果发现发送错误,会进行重启

3.调试MC14050的过程

烟雾报警器的灵敏度与元器件的选用有很大关系,例如红外发射二极管、红外接收二极管以及安装它们的迷宫是首先必须考虑到的。

烟雾报警器有一个标定模式,要调试烟雾报警器的灵敏度必须进入标定模式。

标定模式接线如图所示:

其中需要做如下连接:

l 蜂鸣片不必接入;pin1与电容器C1必须断开(标定调试结束后焊接)。

l pin7接VDD;

l pin15接GND;

l pin16接负电压(-0.7V)使之有-100微安流出。

烟雾报警器就可进入标定模式。

烟雾报警器调试波形的观测使用示波器。示波器设置如下:

l ch1:1V档,(黑色)显示pin1反映报警器灵敏度的锯齿波波形。使用数字示波器可以直观的读出与灵敏度相关的波形幅度,其中△为锯齿波幅度;@为标尺处波形电平。

l ch2:5V档,(绿色)显示pin9报警波形。

l 示波器同步触发使用pin6。

外围元、器件的选配:

l 改变相应的外围数值,会使锯齿波的幅度改变。幅度越大、灵敏度越高。建议将锯齿波幅度调节在1V左右。

l 调节R9可以改变报警门限。具体调试对应数值,需要反复进入烟箱确定。如果仅仅使用两个固定电阻,则建议R8=12K;但是R10必须在5.6K、10K之间选配,选配工作较麻烦,这也就是器件厂家推荐使用微调电阻R9的原因。

l 调试人员调节电位器使锯齿波电平下降,直至出现报警信号。当该脉冲宽度达到50微秒,停止下调电位器(图四)。我们就以报警脉冲宽度为50微秒时锯齿波的电平为基准VL,上调锯齿波电平直至报警波形消失(图一),并且继续过调一个电压量达到VH。具体调试对应数值△V=VH-VL,需要反复进入烟箱确定。一旦确定,以后就可以先调出VL值,然后在此基础上调一个电压量△V就可以完成调试。

1)图一:R9调节电平较高,还没有报警脉冲出现。

2)图二:调节R9使工作点电平下降,当锯齿波下端达到报警比较器的报警基准电压时,CH2就有一个一定宽度的报警脉冲出现。比较报警脉冲出现前后锯齿波的幅度△值,可以发现当锯齿波下端达到报警比较器的报警基准电压以后,锯齿波幅度会有所增加。如同施密特一样,这种现象可以提高抗干扰能力。

3)图三、图四:调节R9可以改变脉冲宽度。

4.烟感PCB设计的问题

1.设计烟感时,PCB设计的重点在于烟感的IC的布线布局,之前设计的烟感主要问题出现在接收二极管与芯片的PIN3、PIN4距离太远。如图1所示,因为太远导致了烟感不能正常工作,注:测试时不能正常工作,按下test键,不能出现报警,而且太远容易导致光电仓检测出现问题,总是导致蜂鸣器出现滴的周期性报警声音,而且不利于标定。烟雾报警器PCB板在排版走线上要求很严格,尤其PIN1、PIN2、PIN3与外围元件的连线应该尽可能短。为了说明烟雾报警器PCB排版重要性,我们使用同一块sop形式的电路,做了两个试验。为了排除红外接收二极管的影响,我们使红外发光二极管不发光;并且将R14短路。

使用两块相同的pcb板,第一块用有一定长度导线外接一个测试夹具,对该电路进行标定试验,观测PIN1、PIN6波形,并用PIN6同步。可以观测到图一波形。

由于红外发光二极管不发光,理想状态PIN1应该输出一个不变的直流电平。然而实际输出是一个近似正弦波的波形,幅度达到2.2V以上,峰峰值4.24V。(这也许是部分报警器发光管反接或不接、接收管反接或不接都会报警的原因),如图4.1和4.2出现的错误从而导致的问题。

图4.1 导致没有烟雾报警的波形

图4.22 接收二极管的PCB线太长

2.C1与C19必须无比的接近MC145010。

3.同样,在设计RE46C190时,也需要注意,接收二极管不能与IC间隔太远,负责容易出现问题。

5.红外发射管的装配

红外发射管装配时管脚没有按照90o折脚,因此无法保证光路的一致性。

接触到的迷宫红外发射管,在模具上都有光路一致性的保证:有的采用塑料突起把红外发光管卡住;

有的甚至用两小块塑料部件先把红外发光管夹起来,再安装焊接。…….

将红外发光管折脚角度纠正为90°,波形的幅度可以增加50mV以上。

6.调试2108的问题

6.1 设计PCB与元器件的选择

l IRN与IRP需要靠近接收二极管。

l Pin1与Pin3的滤波电容必须接近2108。

l 升压电感的大小必须大于1.5A。

6.2 2108调试各个参数的设置与说明

CS2108是一款类似于RE46C190消防报警芯片的处理器。引脚完全对应。

进行设置时,主要包括参数设置。其中包括T1模式的参数、T2模式、T3模式、T4模式。

对以上几个模式的数值进行设置之后,还需要对报错最大值与最小值进行设置。当校准到阈值后,如果该阈值大于最大报错值或

者小于最小报错值时,会提示校准出错。当该值设置为 0 是,则不启用报错功能。报错功能主要是对环境进行设置时,才启用的。

对于参数设置,有几个是根据迷宫与对管特性进行选择。

l PAGF <1:0>:放大器增益选择

l IT<1:0>:积分时间选择

l IRC<1:0>:发射管驱动电流选择

以上三个数值不同得烟感对应不同得数值。因为光学迷宫以及光学对管并不是所有的都相同。

LB<2:0>表示低压报警点的选择。

LTD表示灵敏度漂移补偿使能位。可以打开,一般就是灰尘导致的漂移。

HUSH表示静音模式退出选项位 一般选择1

LBH表示低压报警静音使能位

T0模式参数中的选择:

PAGF=00 、IT =10 、IRC= 001 、LB=101 、LTD = 0 、HUSH = 0、LBH=0、EOL=0、TS=0、LVRLED=0、AMEN=0、HEN=0、CP=0000000、HNS=0、IO=00;HTIME=0、RLED=0、HTRIG=0。

T1=20、T2=10、T3=200、T4=005、报错最大值与报错最小值在特定环境中进行标定时选择。

6.3 2108调试过程

采用调试器进行调试,调试出现的问题主要在于如何去设置各个参数,经过严格的实验。

之前出现的问题是按TEST键不会报警,而且喇叭还会每隔1min滴滴滴三次发生,极大的影响了传感器的质量与可靠性。对于以上问题,总结得出三个结论。

修改T4阈值,将其修改为0。将T3阈值修改为229.T1预留量为20,T2为0。

RLED 为1、PAGF=10(3)、IT=11(100us)、IRC=011(200mA)。

这样报警器不会出现异常状况,统统解决掉。

还有一个问题就是取消静音之后,LED灯会每隔10s闪烁一次。这个问题也解决了将HTRIG设置为1,即可。

6.4 调试出现的问题与解决方法

? 蜂鸣器电容为680pf,与规格书上不符。其他电阻阻值相同

? 自动调试出错,但是串行读可以读出来数值,出现的问题解决方法观察是否RCAP的充电电容是否为200uf、发射二极管接收二极管是否焊接正确、发射二极管是否符合规格(940nm与850nm)、光电迷宫有没有损坏。有没有将

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言