BH1750 传感器实战教学 —— 硬件设计篇
前言
前面刚写了一篇 《BH1750 光照传感器文档详解 及 驱动设计》,今天来写一篇传感器硬件设计实战文章。
文章如下:
BH1750 光照传感器文档详解 及 驱动设计
https://xie.infoq.cn/article/7da5636517271217cc7c03ca2
那有些朋友就疑惑了,在上一篇文章其实我们基本都测试成功了,驱动也写了,还有必要在写一篇吗?
如果是用 STM32 做的一个普通产品,确实没有必要再过多说明,但是我们本次的应用稍微特殊一点,需要在一个 51 内核的低功耗无线芯片上使用这个传感器。
硬件上除了低功耗的设计不能少,I2C 通讯还需要做电平转换,软件上产品的驱动也需要修改移植。
这种针对有现成驱动和参考资料的传感器实际应用,也有很多人不太明白,本文的目的就在于给大家做个实际应用示例,便于大家以后在对面不同应用的时候知道怎么处理。
纸上谈兵大家都会,设计一定要实际落地才有价值!
我是 矜辰所致,全网同名,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开!
一、整体说明
我们上文提到的测试是使用市面上现成的模块,我们只需要连接 4 根线即可完成测试。 但是本次实战,我们需要了自己设计电路图,而且要针对低功耗的应用,所以有些地方有必要说明。
本次采用的无线芯片为 Enocean 芯片,其实不是很通用,国内只有极少的的公司在使用他们的技术,但是这并不影响我们说明传感器的使用。
方案已经确定为 3.6V 的电池供电,需要尽可能的低功耗,处理芯片为 51 内核,I2C 电平为 1.8V。
本次的示例方案很简单,需要用心考虑的地方如下几点:
BH1750 的 供电处理;
BH1750 的 通讯处理;
BH1750 驱动的移植;
二、 AD 绘制 BH1750 封装库
既然是实战,而且我们的 BH1750 是新接触的,要画原理图第一步当然是先画 BH1750 的原理图和 PCB 库了(因为本次是个人学习,所以对 AD 不算侵权 )。
打开 AD ,我们可以打开自己的 库文件,如果没有自己的库文件,可以任何找一个,自己新建也可以,但是一般来说,如果要长期使用这个软件,还是建议自己有自己的一个库文件,这样也方便自己往后项目的设计:
根据下图进行操作,点击自己的原理图库,打开 SCH Library:
我们根据手册画好 BH1750 的原理图如下:
原理图库绘制完成我们还需要进行 PCB 封装的绘制,这时候又需要用到我们的传感器资料了, PCB 封装的设计需要参考下图:
我们需要用到 AD 自带的一个 封装管理工具,如下:
手册上面给我们的说明 BH1750 为 WSOF 封装,这里我们并没有对应的,但是我们可以选择一个合适的封装对应 SOP ,如下:
根据手册参数,填入适当数据,因为封装不是一致的,所以这里需要自己的判断,我填入的数据如下:
最后生成的封装如下,如果觉得不合适,我们还可以在此基础上微调,如下图:
保存 PCB 封装,最后我们把 PCB 封装和原理图关联起来:
最后重新加载一下我们使用的 PCB 库文件:
就可以在画原理图的时候使用这个封装了:
三、 原理图设计
原理图设计我们这里考虑的点上面已经说了,因为整体方案是简单的单品传感器,主要注意如何能够保证低功耗。
3.1 BH1750 小板子
考虑到光照传感器的性质(产品设计中外壳是不得不考虑的一个问题):<font color=#0033FF>测量光照需要外壳透光,所以对一般的外壳来说,PCB 的布局会是一个问题。
为了把这个问题简化,我们本次的示例计划把光照传感器单独做一块小板子,小板子的好处是更容易的适应各种外壳。
这里我们用到我们在手册中我们看过的参考电路了,直接使用推荐电路图即可,如下图:
使用小板子的好处是,以后即便不用这个芯片,这个小板子还是可以直接使用的。
3.2 芯片板
芯片板子,就是上面提到的我使用的 Enocean 芯片,一个最小系统,这里因为某些原因就 不放出原理图,但是也不会影响我们说明问题,因为芯片出来与传感器连接 的也只有 2 根线, SDA 和 SCL 。
供电是很简答的:
3.3 传感器供电
传感器供电问题是本文重点之一,本次方案供电为 3.6V 的电池供电,我们在资料中知道,传感器电压最大是可以达到 3.6V 的:
所以其实我们这里可以直接使用电池过来的电源。
但是这里我们要注意一个问题,传感器一直供电是有消耗的。一般低功耗的传感器大部分情况下是处于休眠状态,传感器并不需要一直工作者。我们可以使用一个简单的电路切断传感器的电源。
当然我们通过手册知道,BH1750 传感器在 Powerdown Current 模式下面的电流很低,最大才只有 1uA 的电流消耗,如下图:
1uA 的电流消耗其实算是很小了,因为我所用的芯片最小系统随眠模式的电流 大概是 5、6uA,但是这里写了一个条件, No input Light ,就是没光照的情况,但是我们传感器很多情况下,即便有光照我们也不需要他工作,所以这里电源控制电路是加定了。
电源控制电路怎么选,这里我不废话,直接推荐两种方式:
方式一:低静态电流 LDO
使用超低静态电流低压降线性稳压器控制 传感器的 电源,EN 引脚为供电开关引脚,如下图:
注意,此电路控制选用需要保证静态电路越低越好,因为 LDO 一直通电,他自己也有能量消耗。 但是这个电路的好处是可以提供稳定的电源,有些传感器的耐压值只有 3.3V ,甚至是 3.0V (使用 TPS78230),需要 LDO 降压。
方拾二:MOS 管开关
通过 MOS 管开关,可以直接切断传感器的供电,而且消耗极低,考虑到我们的 BH1750 传感器可以支持 3.6 V 的供电,我们本次采取这种方式 :
注意,开关电路是由 一个 PMOS 和一个 NMOS 构成的!
而且还有一点,此方法成本低。
3.4 传感器通讯电平转换
传感器通讯,在《BH1750 光照传感器文档详解 及 驱动设计》文章中,我提到过,使用 STM32 的时候, BH1750 都不需要做电平转换, SDA 和 SCL 可以直接和 STM32 的 IO 口连接。
但是在我们本次设计中,使用的芯片 I2C 引脚电平为 1.8V,就是下图中的 DVDD 为 1.8V 的电平,所以需要电平转换,如下图:
电平转换电路的说明可参考我的另外一篇博文:
结合实际聊聊电平转换电路(常用电平转换电路总结)
https://xie.infoq.cn/article/58d521c864f01c42d8522a21f
图中预留了两个端子(其实两个接口不相同),一个是为了接收头现成的传感器模块方便测试,另外一个就是给我们自己设计的传感器模块预留的。
这种预留的测试在实际产品的设计中是很有用的,再产品设计初版的时候,如果产品出问题,可以更快的查出问题所在。
至此,加上芯片最小系统,我们的一个低功耗的传感器就设计完成。
结语
本文我们通过一个简单的示例,手把手的说明了一个传感器的实际应用电路设计。
对于老工程师来说虽然简单,但是有一些细节还是值得大家注意和学习。
本文作为实际的设计应用,把硬件设计部分给大家说清楚了,但是我们在单片机上移植 I2C 程序,还需要我们花一些时间,还是老样子,下一篇博文,会来更新 BH1750 传感器在单片机上的驱动移植篇。
本文就到这里,谢谢大家!
版权声明: 本文为 InfoQ 作者【矜辰所致】的原创文章。
原文链接:【http://xie.infoq.cn/article/f819a35a36a64e3115c7b5f01】。文章转载请联系作者。
评论