关于PAH8002   Wakeup Interval 问题与分析

在8002 sensor在复位之后,在还没有修改Wakeup Interval Registers(bank 1 0xE6、0xE7),默认是156.25µs (5 x 31.25µs)没有操作就会进入休眠。(载入设定,第一个就是先改这个设定,目前所有模式的设定:0xE6为0xC8,0xE7为0x00,即200*31.25µs=6.25mS ),如果超这个时间没有操作sensor就进入休眠状态,有可能导致寄存器写入失败或其他问题

案例1:
之前出现过,因为客户的Log信息打太多,在sensor在复位之后改这前,也有很多Log,导致前几次唤醒失败。导致在初始化时,有部分reg没有成功写入,导致中断时间异常。(中断时间变成每320ms左右一次中断,而不是1S一次)

案例2:
  MT2601安卓平台,从touch mode切换到 ppg mode失败,单独使用ppg mode,功能是正常的,从逻辑分析仪看,touch mode初始化正常,在皮肤接后切换到ppg mode后,一直wake up失败,mcu 发I2C 地址后一直不响应。


分析:
 应该是sensor休眠时间设定问题,有此平台如2601,当I2C有通信失败时,要继续通信时,会等一段时间,才会操作I2C,这个等待时间会大于目前设定默认的6.25ms,导致第一次通信失败时(其实已把8002唤醒),再等一段时间,导致8002再次休眠,结果是一直wake up失败。

解决方法:
把bank 1{0xe6, 0xC8},  {0xe7, 0x00},这两个寄存器从0xc8,改为0x320,即{0xe6, 0x20},  {0xe7, 0x03},

把touch mode,ppg mode,和ppg log reg mode 三个模式设定都改过来。现场测试,问题解决。

另外像MT6572这类安卓 平台,中断的电平也要改宽,必为level triger方式, 不然可能会有overflow问题。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★博文作者未开放评论功能