关于 ADXL362 传感器不工作的说明

1. 问题描述

超低功耗设备在低温环境下电池供电,偶然性的会出现 ADXL362 传感器无法产生中断,重新初始化传感器,SPI 通信也无法进行,即完全不正常工作了。

一开始全力集中在代码层面上,优化相关处理:

  • 优化 SPI 通信代码,以及传感器初始化设置
  • 周期检测中断是否产生,不产生则重新初始化
  • 检测读取的数据是否有效(是否是变化的加速度值)

最终还是出现了偶然性的死机现象。

2. 解决方案

其实在不断的调试过程中,其表现出来的现象也在朝着一个方向走,即:

传感器在某种上电状态,是无法正常工作的,
此时需要断掉设备一切电源一段时间才行(串口线也要拔掉)

仔细查看数据手册,其实也说明了这个问题,
只是一开始以为是电池供电,大概率不会出现电源波动,
看来还是想简单了。

数据手册说明如下:

电源要求
ADXL362 设计利用 1.8 V 到 3.3 V 的电源电压轨供电。如表 1 所示,工作电压范围(VS)为 1.6 V 至 3.5 V,此范围考虑了最高达电源电压 ±10% 的不精确性和瞬变。
器件工作时,只要断开 ADXL362 的电源或工作电压降至额定范围以下,电源(VS、 VDD I/O 和任何旁路电容)就必须完全放电后才能再施加。要使能电源放电,建议从微控制器 GPIO 为器件供电,将一个关断放电开关连接到电源(图47),或者使用ADP160 等具有关断放电特性的稳压器。

电源参考电路如下:
在这里插入图片描述
即:

  • 使用 GPIO1 给 ADXL362 供电,使用 GPIO2 控制 ADXL362 电路的放电;
  • 当正常使用时,GPIO1 高电平供电,GPIO2 断开放电电路;
  • 当 ADXL362 死机时,GPIO1 非高电平断电,GPIO2 闭合放电电路,对其复位

但最后一步需要注意 GPIO1 的灌电流极限,别放电时烧坏了 GPIO1,可设置为浮空悬浮态,让电流全部流经放电电路,直至放完。

注意:ADXL362 经过验证在某种情况下 SPI 都能给传感器供电并正常工作,佩服!官方文档也没有提及,所以 SPI 所有 GPIO 都要拉低才能真正完全放电。博主是从示波器上看出端倪的,测试时电源切断,SPI GPIO 不处理,这都能够在传感器电源引脚检测到 0.7V 左右的电压,牛逼,而恰好是这个电压,导致传感器又进入了不工作状态。当关断传感器电源的同时把 SPI 所有引脚拉低,才真正达到了 0V,满足官方文档要求了。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值