第一次写博客,希望能帮助到需要的人。也欢迎各位大牛指点。本人致力于开发一种NB-IOT的低成本、低功耗、长时间采集数据的解决方案。正好借这个机会把它实现在我的智慧花盆上面。
一、整个实物图:
简单阐述一下整个系统的功能:
1.当花盆土壤湿度低于42%的时候控制水泵自动浇水
2.每小时把湿度值和剩余的浇水量通过NB-IOT方式上传到华为云平台
3.休眠时,电流能降到20uA以下,加上太阳能持续补充电量。理论上能持续运行10年。
二、硬件原理图
除了核心板、下载板和外设板,其他模块在某宝上都能买到,所以这里就重点介绍我设计核心板和外设板的硬件思路:
首先解释一下为什么要分为核心板和外设板的好处:
如果因为某些原因(价格优势、贸易战等),需要更换MCU的时候,只要重画小小的核心板就行了,这样省时省力
1、核心板
1)核心板用的是STM8L050J3M3,有1K 的RAM和8K的ROM,使用到的外设有USART、TIM、ADC、DMA、RTC。
2)板子的设计思路都是根据STM8L的硬件设计文档要求的,左边的C16、C17、C18都是去耦电容。
3)TX引脚上的LED灯是测试用的,后面为了低功耗会把它摘除下来。
4)还有一个BTB-0的板对板母座,是下载板和外设板的接口。
5)ADC采集电路是根据datasheet手册上来设计的:
为了降低功耗,这里设计的=R14=47K。ADC在采样过程中输入引脚AIN要对内部的采样电容快速充电,而且充电时间很快。又因为之前用了47K的限流电阻,所以要用个C14(0.1uF)提前储存电荷,以备瞬间补充ADC采样电容(16pF)的电荷。注意C14和是不同的,是指AINx受到PCB影响的寄生电容。
2、下载板
这个就很简单了,只是一个板对板的公座+若干个2.54mm的插针组成。方便用杜邦线调试和下载的时候使用。
3、外设板
1)Power
充电电路主要由太阳能板、锂电池充电管理IC、单节10440锂电池组成。
太阳能电池板提供一个5V、200ma的电源,当然这是在最理想的条件下。实际使用时只是一个辅助充电的作用。
TP5410是低功耗锂电池充电管理IC,硬件设计也是根据Datasheet上典型电路设计的,这个没什么好解释的。唯一需要注意的就是PROG充电电流设定引脚,根据手册上的对应关系:10K(R18)——80ma,即最大充电电流是80ma,虽然小电流充需要时间长,但对锂电池的寿命有好处。还有一个充电状态灯的逻辑图:
接下来是一个3.3V的稳压电路,主要提供给MCU和NB-IOT模块使用的。稳压电路采用的是TLV62565DBVR稳压芯片,电路的设计根据datasheet手册上面的典型电路设计的,唯一要注意的是R2的电阻最大是120K,解释如下图:
这个稳压芯片在10ma——600ma之间的效率是最高的。NB-IOT模块射频的电流可以达到350ma,所以在正常工作时MCU+NB-IOT模块+外围损耗的总电流正好在这个最高电流利用率区间内。
2)NB-IOT
NB-IOT电路主要由BC35-G模块、eSIM芯片、SMF05C静电保护芯片组成。BC35-G模块基本是按照手册上来设计,比如说串口收发的部分参照手册如下图:
eSIM卡是通过运营商购买的,因为它对电气特性有敏感要求,所以增加了一个SMF05C静电保护芯片来为它保驾护航。
3)Peripheral
最后是一个外围模块的电路,主要由两个P沟道增强型MOS管、一个BTB-1公座子以及水泵、土壤湿度传感器、霍尔流量传感器的接插件组成。这里面功率最大的就是水泵模块了,需要180ma的电流和4.5V的电压驱动。所以mos管选型的时候和都要大于5V,要大于180ma。而且栅极电压的选择也要注意。下图是SI2301CDS的栅极电压和漏极电流的关系:
解释一下为什么要选择PMOS管而不是NMOS,在整个系统进入低功耗休眠的时候,要切断外围模块的电源。STM8L的IO口开漏输出高电平的时候,PMOS管是截止的,并且STM8L的IO口是处于一个高阻态,不存在电流灌入,即不存在漏电。这正是低功耗所需要的。
硬件篇就到此结束,有错误的地方希望各位多多指点。有需要AD工程的可以在评论区留下邮箱~