Baseline 并不是一个生成值,而是一个固件计算值,baseline 如果持续为 0 的话,那么怀疑有两种可能:
1. Sensor rawdata 曾经出现过一段时间的 0 值,且保持时间超过了 "sensor 扫描间隔(比如 5ms 扫一次)* LowBaselineReset”, 这会触发 baseline 的强制跟踪机制,将 baseline 拉到 rawdata 的 level, 如果之后 rawdata 又瞬间恢复到了原始 level, 那么 rawdata 与 baseline 之间的差值一下子就会超出感应阈值,baseline 就会一直保持当前状态不再跟踪,会一直保持为 0。 该可能性概率较高。
2. Cypress的固件中确实有一些 baseline 强制矫正的逻辑,如果这些逻辑中有导致 baseline 直接赋值为 0 的操作,也是可能将 baseline 拉到 0 的。但是我印象中我们没有这样直接赋值 0 的逻辑,所以该可能性概率很低。
可以从如上两点确定Baseline为0的时候的原因,针对性的解决问题
|