中断误报测试

2017-03-31  本文已影响5人  13aaec9fb31b

目前确定:

下降产生中断,上升不触发中断

当前低,进入休眠,先拉高再拉低,先上升不触发,后下降触发中断

当前高,进入休眠,直接拉低,下降产生中断

当前低,退出休眠直接拉高,上升

当前高不拉

.................4418驱动的问题?

海派机器是上升触发中断,

退出休眠上升,触发中断,

单独测试打开关闭中断不产生中断


1,开中断为什么导致int拉高,导致乱报,

2,海派驱动

3,4418开中断不会导致int拉高,刻意通过延时屏蔽乱报,但是为什么下降沿触发断?驱动?

4,ini没有跳变,但是驱动收到一次中断

5,再拉低  再拉高 在开中断 产生一次中断 ,但是示波器没有跳变开中断

01-02 04:49:39.835 17321 17321 D TooanA083: zsw  send enable irq  start01-02 04:49:39.835 17321 17321 D TooanA083: zsw  set_enableINT2

01-02 04:49:39.837 17321 17321 D TooanA083: zsw  signalHandler  start示波器没有上升或者下降但是驱动收到中断示波器有问题?

6,打开中断时屏蔽第一次中断成对出现?

7,拉低  再拉高 在开中断 产生一次中断 ,但是示波器没有跳变8,出现一次跳变(关闭中断了),下次开中断时,这个中断就会出现,也就是把那个中断存起来多次跳变,开中断只出现一个


static void signalHandler(int num){

close_EINT();

ret = TS1060_ExitSleep();

ret = TS1060_CaptureImgFast();

ret = TS1060_SetDeepSleep();

open_EINT();}

app启动就打开中断了

点击取消: 关闭中断->退出休眠(拉高)

点击清空: 打开中断

点击中断测试: 进入休眠(拉低)

//jni收到中断后signalHandler:   关闭中断 -> 退出休眠(拉高)->读图(拉高)->进入休眠(拉低)->打开中断

海派现在验证 上升沿后再打开中断是不是报中断

打开app(开中断,int拉高)->点击中断测试(拉低)->点击清空(开中断)-> 产生一个中断    -> 按指纹能产生中断,不乱报 

打开app(开中断,int拉高)->点击中断测试(拉低)->点击清空(开中断)-> 没有 产生一个中断    -> 按指纹能产生中断,不乱报

上面这个要多测试几次

打开app(开中断,int拉高)->点击中断测试(拉低)->点击清空(开中断)-> 没有产生一个中断-> 再点击中断测试(拉高再拉低上升沿)->产生一个中断->示波器也有一个上升沿-> 按指纹能产生中断,不乱报


4418 int脚跳变后打开中断,不会报中断,所以可以通过延时屏蔽,但是海派会报, 内核原因还是驱动原因?改成signal方式?

4418本质是下降会触发中断,上升不会,这个应该是驱动的问题

IC工作流程: 

工作时把中断关闭,休眠时打开中断

指纹解锁流程:

按压IC, 收到中断后 , exitSleep (拉高) -> captureImageFast 匹配- > setDeepSleep(拉低)  期间不能产生中断,否则会循环

但是目前ic的情况是会产生中断,需要屏蔽

当前低-> exitSleep (拉高) 会产生中断

当前高> exitSleep (拉高) 不产生中断

当前低-> setDeepSleep(先拉高再拉低) 会产生中断

当前高> setDeepSleep(拉低) 不产生中断


4418驱动导致下降沿产生中断,上升沿无法产生中断

收到中断后 ,  关闭中断& exitSleep (拉高) -> captureImageFast 匹配- > setDeepSleep(拉低)->下降产生中断->延时15ms 打开中断  这样就屏蔽掉

收到中断后 ,  关闭中断& exitSleep (拉高) -> captureImageFast 匹配- > setDeepSleep(拉低)->下降产生中断->延时5ms打开中断-> 还是收到中断

ic下降沿  到 驱动检测到中断开关的状态这段时间 如果> 5ms 那么中断是打开的,所以没有屏蔽掉

ic下降沿  到 驱动检测到中断开关的状态这段时间 如果< 5ms 那么打开中断没执行,中断还是以前那种关闭状态 ,所以屏蔽掉中断

海派是上升沿触发中断,下降也偶尔会

1, bug 祝世武推测 有可能是中断多了导致spi时序乱掉,读图返回11或者10

2, bug int跳变打开中断会产生一个中断 , 但是示波器没有跳变

3, 4418可能是中断脚复用导致下降沿触发

4, 海派延时5s没用,因为5s后打开中断还是产生一个中断,但是示波器没有显示,说明这个中断是在任务里保存起来了.


现在改mt开发板安卓6.0驱动,验证



上一篇 下一篇

猜你喜欢

热点阅读