关于Cypress 4025 MCU touch sensor在模拟测试遇到的问题

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Alan_03
Level 3
Level 3
25 sign-ins 5 questions asked 10 sign-ins

1.jpg2.jpg

Cypress 4025 MCU touch sensor在模拟测试下列场景时,有遇到sensor 无法响应的问题

当手指无限接近touch sensor button时,此时手指还未触模到,发现baseline在一直变化爬升,当过一段时间后baseline升的比较高,在手指触摸上的时候,此时由于baseline升的太高接近raw countcapsense sensor signal无法达到阈值,也就无法触发,针对这个问题还请提供些技术支持,感谢!

0 点赞
1 解答
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

请问做该测试时否在按键上增加了盖板,如果没有请加盖板之后再做测试。

Baseline 的跟随算法的核心是:

If( baseline-negative  noise threshold  < rawdata < baseline + noise threshold)  Baseline 正常跟随

else basline 不变

Vison_Zhang_0-1681785826865.png

你的缓慢靠近测试,会让 If( baseline-negative  noise threshold  < rawdata < baseline + noise threshold)  一直为真,所以 baseline 才会不断跟随。

这种测试是没有实质意义的,客户不会这样使用触摸按键,请按照正常的触摸动作来操作。

在原帖中查看解决方案

0 点赞
17 回复数
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

请问做该测试时否在按键上增加了盖板,如果没有请加盖板之后再做测试。

Baseline 的跟随算法的核心是:

If( baseline-negative  noise threshold  < rawdata < baseline + noise threshold)  Baseline 正常跟随

else basline 不变

Vison_Zhang_0-1681785826865.png

你的缓慢靠近测试,会让 If( baseline-negative  noise threshold  < rawdata < baseline + noise threshold)  一直为真,所以 baseline 才会不断跟随。

这种测试是没有实质意义的,客户不会这样使用触摸按键,请按照正常的触摸动作来操作。

0 点赞
Alan_03
Level 3
Level 3
25 sign-ins 5 questions asked 10 sign-ins

是有盖板的 是否是Igain给的太大灵敏度太高了?

0 点赞
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

如果是有盖板,感觉灵敏度调教的过高了。降低 scan resolution, 降低 sense clock 以及增加 Mod IDAC 的值可以降低 sensor 的灵敏度。 

0 点赞
Alan_03
Level 3
Level 3
25 sign-ins 5 questions asked 10 sign-ins

Alan_03_0-1681803366217.png

HI Vsion
      如上图,现在是在模拟手指与touch PAD接近但是没有触碰到的一个状态,在baseline上升的期间,手指再完全触摸到touch PAD,这个时候已经无法触发了,而且即使出现了大于阈值的rawcount也无法触发,如上图。

0 点赞
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

按键要触发,首先信号值要超过 finger threshold + hysteresis 才可以,而且必须保持连续 on debounce 次保持触发状态,从signal 波形图看,应该是保持 ON 的时间没有超出去抖要求

0 点赞
Alan_03
Level 3
Level 3
25 sign-ins 5 questions asked 10 sign-ins

Alan_03_1-1681805859233.png

HI Vison 
   如上图,这个是实际操作时候的signal截图,后面就是我的手指完全触摸上去也是没办法触发,这种问题有办法解决么(实验目的:比如说手盖在touch上没有接触,过了一段时间,突然我想按一个功能键,需要能正常触发touch的功能。但是从实际测试下来看是没有办法触发的)。

0 点赞
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

目前有两个问题:

一是你说的这种测试方式在实际使用时基本不会出现,我没有见过哪个客户或者哪种应用把你说的这种场景作为一个测试项来对产品触摸面板做测试的,从逻辑上讲这种测试方法一定可以找出让按键无法触发的条件,导致按键不能触发,除非你不引入基准线算法,单纯靠 rawdata 的绝对值增长来判定按键触发与否,但是这是不可取的;

二是在你当前的测试中,按键不能触发的直接原因是信号增长受限 (rawdata 达到饱和值之后无法再向上增长,即使手指电容在增加),所以在 rawdata 距离上限值小于手指阈值时,无论你怎么触摸,信号都不足以让触摸按键触发。rawdata 那么容易接近饱和值是因为默认的自校准算法会把 rawdata 校准到满量程的 85%, 你可以按照下图将校准 level 从 85% 降低到 55% 或 65%, 这样 rawdata 就不容易接近饱和值了,应该可以缓解你看到的不能误触的问题

 

Vison_Zhang_0-1681818726404.png

注意:不要在 advanced expression view 视图下修改你不了解功能的选项,否则出现了问题很难发现。

0 点赞
Alan_03
Level 3
Level 3
25 sign-ins 5 questions asked 10 sign-ins

Alan_03_0-1682058501193.png

Dear  Vison
           现在使用了这个后确实是有效了,我想咨询下这个55level在这里面扮演了什么角色,是否有计算公式支持,因为我在capsense的手册没看到这个,所以想咨询下

0 点赞
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

如果你在CAPSENSE 组件中使能了 IDAC Auto Calibration, 芯片上电时, CAPSENSE 会按照一定的逻辑算法来调教 Mod IDAC 和 Comp IDAC( if compensation idac enabled) 的数值,将 rawdata 的 level 调整到满量程的百分之多少的位置,如果设置 55的话,对一个 12bit scan resolution 的按键来说,IDAC 调教算法会调整 IDAC 值将 rawdata 调整到 55% * 2^12 = ~2500 counts,  这样初始 rawdata 与满量程 2^12=4096 之间就有足够的裕量,让你来操作接近引入的 rawdata 增加。

公式就是以下两个,第一个是不是能 comp idac 的公式,后一个是使能 comp idac 的公式,都是通过调整 idac 的数值(Imod, Icomp)将 rawdata 调整到预设比例

Vison_Zhang_0-1682059064238.png

 

Alan_03
Level 3
Level 3
25 sign-ins 5 questions asked 10 sign-ins

HI Vison
        还有一个和Baseline有关的问题,就是我们这里模拟高温环境出现了一个情况

Alan_03_0-1682240732453.png

Alan_03_1-1682240987622.png

如图,这个Baseline在手指还没触摸的时候就已经上升到了3600以上 ,手指触摸就基本也没反应了。

0 点赞
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

你的手指阈值设置的 400, 这有点太大了吧,这样一旦 rawdata 大于 3600, 即使手指触摸让 rawdata 饱和到顶也不能触发按键的。

另外,我确认一下,你的测试是裸板测试吗?

 

0 点赞
Alan_03
Level 3
Level 3
25 sign-ins 5 questions asked 10 sign-ins

是的 就是测试的就是裸板的值

0 点赞
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

温湿度测试,不建议你使用裸板去做测试,建议使用装配好的产品整机或者触摸面板模组做温湿度测试。 触摸功能也不建议用裸板做测试。

0 点赞
Alan_03
Level 3
Level 3
25 sign-ins 5 questions asked 10 sign-ins

Alan_03_0-1682316669660.png

sorry,Vison,我重新确认了下,PCB外面是有一个包裹件的

 

0 点赞
LinglingG_46
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 10 questions asked

现在这个问题处于一个什么状态?

1:你现在高温测试的时候,rawcount calibration level是调节的多少?

2: AN85951_PSoC_4_and_PSoC_6_MCU_CapSense_Design_Guide-ApplicationNotes-v30_00-EN.pdf 

你找到5.3章节,Manual tuning,根据这个指导,对你的系统重新调试。

3:你目前系统的信噪比是多少?噪声大概是多少?手指信号值大概是多大?

 

0 点赞
Alan_03
Level 3
Level 3
25 sign-ins 5 questions asked 10 sign-ins

1:温度是65℃  calibration level现在该到了70
3:信噪比是80 手指信号值大概有3400~3700的样子

0 点赞
LinglingG_46
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 10 questions asked

1:你现在分辨率是调的多少位,信号值有3400~3700?

2:你可以按照我上一次回复里面的调试步骤进行调试。

3:你目前的测试状态是什么?你做了哪些尝试,效果分别是什么样的?

4:这个讨论,目前还有什么问题没有解决?

5:你是否已经根据我们工程师的建议,降低sensor的灵敏度:

LinglingG_46_0-1684721587050.png

 

0 点赞