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

PSoC™ 4 Forum Discussions

ZONDAR1
Level 2
10 replies posted 5 questions asked 10 sign-ins
Level 2

Hi.

I'm now using 3 proximity sensors on 4000s MCU (CY8C4025LQS-S411).

The problem I'm facing now is that the raw count will rise unexpectedly (Proximity sensor 1&2 → Graph 2&3) after the board is powered on and it takes a few seconds to be stable. What I want is that it can be operated once powering up.

As shown in the graph below, Proximity sensor0 (Graph1) seems OK, while the others perform bad.

It troubles me a lot and is there any way to improve it ?

sensor0sensor0

sensor1sensor1

sensor2sensor2

Best Regards.

0 Likes
1 Solution
MaMi_1205306
Level 6
50 solutions authored 25 likes received 250 sign-ins
Level 6

Hi,

 

If so, it is likely that Cs is simply increasing,

I suspect noise on the board or external noise.

・ LED light on the board

・ PWM signal for LED dimming

・ Communication and digital signals

・ GND layout

 

After that, is there any factor that increases the capacitance from the outside?

You may want to check the board layout for the difference between the buttons that increase the RAW count and the buttons that do not.

 

AN64846

https://www.infineon.com/dgdl/Infineon-AN64846_Getting_Started_with_CapSense-ApplicationNotes-v26_00...

 

Regards,

View solution in original post

10 Replies
MaMi_1205306
Level 6
50 solutions authored 25 likes received 250 sign-ins
Level 6

Hi,

 

Fluctuations in raw counts are often system dependent and often difficult to identify.

 

Generally, the following are possible causes of fluctuations in the raw count.

・ Fluctuation of power supply voltage

・ Effect of external noise

You also need to check the settings of the CapSense component.

・Is the tuning method Auto / Manual?

・Is the IDAC sensing method sink / source?

 

As an example, in IDAC source mode, the raw count may increase as the PSoC4S power supply voltage drops.

Especially when the power supply source (V) and the board on which PSoC4S is mounted are thin and long wiring, the wiring resistance value (R) increases.

When the current consumption (I) rises on the board on which PSoC4S is mounted, The power supply voltage of PSoC4S drops(PSoC4S  Vcc = V - I x R).

 

First of all, I think it is important to distinguish whether it is a power supply problem or a noise problem.

I hope it will be helpful.

 

Regards,

0 Likes
ZONDAR1
Level 2
10 replies posted 5 questions asked 10 sign-ins
Level 2

Hi MaMi,

I have checked the capsense setting. It's manual tuning method and IDAC sourcing. 

MCU power supply voltage is shown as the graph below. 

RIGOL Print Screen2021-12-23 14_49_18.289.bmp

Do you have any advice ? Thanks a lot.

Best regards.

0 Likes
MaMi_1205306
Level 6
50 solutions authored 25 likes received 250 sign-ins
Level 6

Hi,

 

When using IDAC sourcing mode, the raw count can be calculated from the formula below:

MaMi_1205306_1-1640244342351.png

 

MaMi_1205306_0-1640244299721.png

N : Resolution

Vref : Internal reference voltage

Fsw : Sense clock frequency

Imod : Modulation Idac

Icomp : Compensation Idac

 

Other than Cs, it is a fixed value, but due to the decrease in power supply voltage, Idac tends to decrease and the raw count tends to increase.

 

Application note AN85951 URL

https://www.infineon.com/dgdl/Infineon-AN85951_PSoC_4_and_PSoC_6_MCU_CapSense_Design_Guide-Applicati...

 

If the power supply voltage you measured indicates the Vdd terminal of the PSoC4S device, I don't think you will see a large voltage drop.

Therefore, as Hari-san said, the increase in the raw count may be due to an increase in Cs due to the influence of ambient noise, or a temperature change.


・ Temperature characteristics of the capacitor used for Cmod

・ Observation of changes in Ta, heat source on the board, etc.

・ Check if the increase in raw count is improved by stopping the power supply to other than PSoC4S

 

Regards,

0 Likes
Hari
Moderator
Moderator 750 replies posted 500 replies posted 250 solutions authored
Moderator

Hi @ZONDAR1 

 

This looks like a temperature drift - can you check if there is a change in temperature on startup? Is this a custom board that you are using? If so, what is the Cmod capacitor that you have used? We recommend using a NP0 (C0G) capacitor for better temperature performance. 

Can you also check if you have a lot of digital components that are activated after CapSense? You can rearrange the firmware so that all other components are started before CapSense is started. 

 

Best regards, 
Hari

0 Likes
ZONDAR1
Level 2
10 replies posted 5 questions asked 10 sign-ins
Level 2

Hi Hari,

Thanks a lot for your reply.

It is indeed a custom board and I have eliminated the effect of other components. So now I am wondering how can I check the change in temperature on startup for I think it's really not obvious.

Could you gime me some advice and it really matters.

Best regards,

ZONDAR

0 Likes
Hari
Moderator
Moderator 750 replies posted 500 replies posted 250 solutions authored
Moderator

Hi @ZONDAR1 

 

One easy way to check if this is a temperature issue is to simply let it run for some time. Once the raw counts become stable, you can reset the device and check if the raw counts are increasing still. If it is, then the issue is with some other component, but in case it's stable, it is a temperature issue. 


Best regards, 

Hari

0 Likes
ZONDAR1
Level 2
10 replies posted 5 questions asked 10 sign-ins
Level 2

Hi,Hari

Thanks for your reply.

I have reset the device and the raw counts are still increasing. Perhaps it is not a temparature issue.

Besides, I tried to wake it up from deep sleep and the raw count is stable. Then I use the API CapSense_Start() after wakeup and the raw count rises just like the phenomenon I have mentioned at the beginning.

So I am doubting the row count rises due to the API CapSense_Start(). Does that make sense ? If so, how can I prevent it ?

Best regards,

ZONDAR

0 Likes
MaMi_1205306
Level 6
50 solutions authored 25 likes received 250 sign-ins
Level 6

What if I set a delay of a few milliseconds in CyDelay() before calling the CapSense_Start() API?

It has been a problem in the past that the RAW count fluctuates due to fluctuations in the power supply if initialization of CapSense component is completed before the PSoC power supply becomes steady.

If it is neither the temperature nor the power supply voltage, isn't it a problem of external noise?

In that case, it may be necessary to turn off the power supply other than the PSoC device on the board and check what happens to the RAW count.

0 Likes
ZONDAR1
Level 2
10 replies posted 5 questions asked 10 sign-ins
Level 2

Hi, MaMi

Thanks a lot for your reply.

I have set a delay before calling the Capsense_Start()  but it doesn't work. And there is no other power supply on the board.

🤔

Best regards

0 Likes
MaMi_1205306
Level 6
50 solutions authored 25 likes received 250 sign-ins
Level 6

Hi,

 

If so, it is likely that Cs is simply increasing,

I suspect noise on the board or external noise.

・ LED light on the board

・ PWM signal for LED dimming

・ Communication and digital signals

・ GND layout

 

After that, is there any factor that increases the capacitance from the outside?

You may want to check the board layout for the difference between the buttons that increase the RAW count and the buttons that do not.

 

AN64846

https://www.infineon.com/dgdl/Infineon-AN64846_Getting_Started_with_CapSense-ApplicationNotes-v26_00...

 

Regards,