CAP sensing raw data drifting problem (CY8CMR3102)

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

cross mob
Anonymous
Not applicable

Hi,

I started a new design with CY8CMR3102, used a STM32F103 MCU to configure and read the raw data from Sensor by I2C.

The PCB is a round shape(6cm diameter), a 1mm wide trace on edge of board as Proxmitiy sensor's antenna ( connects to CS0 pin though a 560ohm resistors).

CMOD is 2.2nF.

Here is the problem: the raw data I retrieved from sensor drifting a lot. In amibent temperature, the board will take 1 mintues to stay on the stable reading level. Then I put the board on temperature chamber running from -20(C) degree to +70(C)degree, monitoring the raw data, it will drift singanificant amount. I did try different configuration by setting different sensitivity value, different filters, enable/disable EMC function, but none of them can stop the raw data drifting.

My first guess is the whole pcb 's capacitance would impact the CMOD pin?  Or some charging/discharing problem between the proximity sensor antenna and the ground plane?

Any suggestions/thoughts will be greatly appreciated!

0 Likes
1 Solution

rawcount is a testing result, not a calculate value, I think the user has no right to avoid it drifting.

pastedImage_0.png

View solution in original post

0 Likes
3 Replies
LinglingG_46
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 10 questions asked

Why do you want to only get the rawcount? Or can you tell us why do you care the rawcount drift?

I think in some environment, the rawcount drift is normal. Capsense use the "rawcount - baseline" to decide whether the sensor has been trigger.

I think you should try to read the diff count.

0 Likes
Anonymous
Not applicable

My first attempt is get the proximity status from sensor by reading the register, however no matter what configurations I chosed, the output always not as good as expected.

Then I read the rawcounts and designed my own algorithm to determine the baseline, calculate the ‘raw - baseline'  and determine the proximity status . I did apply a certain level of differentiation, filters to distinguished different hand's movement,  the output is much better.

However the rawcount is drifting, if I can fixed it, I will be able to generate the much better software for my application.

Any inputs will be appreciated.

0 Likes

rawcount is a testing result, not a calculate value, I think the user has no right to avoid it drifting.

pastedImage_0.png

0 Likes