cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 4 MCU

New Contributor

I am looking at measuring capacitance reading as raw count in Bridge control panel using CY3280-MBR3 Evaluation kit. However I am unable to register any output chart in the control panel. I am using I2C mode. Does anyone know whether my editor configuration is right?

[SPEED=100K] [VCC=3.3V]

; Attempt to get attention

r 37 x p [delay=10] r 37 x p [delay=10]

w 37 00 78 00 78 00 00 00 00 00 40 15 00 00 7f 7f 7f 80 80 80 80 7f 7f 7f 7f 7f 7f 7f 7f 7f 03 00 00 00 00 00 00 00 00 00 00 80 05 00 00 02 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 0a 00 ff ff ff 0f 0f 0f 0f ff 00 00 00 00 03 01 58 00 37 01 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c9 8d p

w 37 86 02 p

; Raw config data

; 0x78, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x15, 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x80, 0x80, 0x80, 0x80, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x05, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x58, 0x00, 0x37, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x8D

; #00       #02    #04       #06      

; SENSOR_EN FSS_EN TOGGLE_EN LED_ON_EN

; 78 00     78 00  00 00     00 00    

; #08          #09          #0A          #0B         

; SENSITIVITY0 SENSITIVITY1 SENSITIVITY2 SENSITIVITY3

; 40           15           00           00          

; #0C             #0D             #0E               #0F               #10               #11               #12               #13               #14               #15               #16                #17                #18                #19                #1A                #1B               

; BASE_THRESHOLD0 BASE_THRESHOLD1 FINGER_THRESHOLD2 FINGER_THRESHOLD3 FINGER_THRESHOLD4 FINGER_THRESHOLD5 FINGER_THRESHOLD6 FINGER_THRESHOLD7 FINGER_THRESHOLD8 FINGER_THRESHOLD9 FINGER_THRESHOLD10 FINGER_THRESHOLD11 FINGER_THRESHOLD12 FINGER_THRESHOLD13 FINGER_THRESHOLD14 FINGER_THRESHOLD15

; 7F              7F              7F                80                80                80                80                7F                7F                7F                7F                 7F                 7F                 7F                 7F                 7F                

; #1C            

; SENSOR_DEBOUNCE

; 03             

; #1D        #1E      #1F        #20        #21       #22         

; BUTTON_HYS RESERVED BUTTON_LBR BUTTON_NNT BUTTON_NT RESERVED1   

; 00         00       00         00         00        00 00 00 00 

; #26     #27      #28       #29       #2A            #2C            #2E              #2F              #30      #31       #32      #33      #34     #35               #36               #37       #39               #3A               #3B      

; PROX_EN PROX_CFG PROX_CFG2 RESERVED2 PROX_TOUCH_TH0 PROX_TOUCH_TH1 PROX_RESOLUTION0 PROX_RESOLUTION1 PROX_HYS RESERVED3 PROX_LBR PROX_NNT PROX_NT PROX_POSITIVE_TH0 PROX_POSITIVE_TH1 RESERVED4 PROX_NEGATIVE_TH0 PROX_NEGATIVE_TH1 RESERVED5

; 00      80       05        00        00 02          00 02          00               00               00       00        00       00       00      00                00                00 00     00                00                00 00    

; #3D        

; LED_ON_TIME

; 00         

; #3E        #3F           

; BUZZER_CFG BUZZER_ON_TIME

; 01         0A            

; #40     #41                #42                #43                #44                #45                #46                #47                #48                #49       #4C     #4D         #4E         #4F         #50        

; GPO_CFG PWM_DUTYCYCLE_CFG0 PWM_DUTYCYCLE_CFG1 PWM_DUTYCYCLE_CFG2 PWM_DUTYCYCLE_CFG3 PWM_DUTYCYCLE_CFG4 PWM_DUTYCYCLE_CFG5 PWM_DUTYCYCLE_CFG6 PWM_DUTYCYCLE_CFG7 RESERVED6 SPO_CFG DEVICE_CFG0 DEVICE_CFG1 DEVICE_CFG2 DEVICE_CFG3

; 00      FF                 FF                 FF                 0F                 0F                 0F                 0F                 FF                 00 00 00  00      03          01          58          00         

; #51     

; I2C_ADDR

; 37      

; #52          #53      

; REFRESH_CTRL RESERVED7

; 01           00 00    

; #55           #56                   #5D       #5E        #61        #62        #63        #64        #67        #68        #69        #6A                #70        #71        #72        #73        #74                           

; STATE_TIMEOUT RESERVED8             RESERVED9 RESERVED10 RESERVED11 RESERVED12 RESERVED13 RESERVED14 RESERVED15 RESERVED16 RESERVED17 RESERVED18         RESERVED19 RESERVED20 RESERVED21 RESERVED22 RESERVED23                    

; 0A            00 00 00 00 00 00 00  00        00 00 00   00         00         00         00 00 00   00         00         00         00 00 00 00 00 00  00         00         00         00         00 00 00 00 00 00 00 00 00 00 

; #7E       

; CONFIG_CRC

; C9 8D     

0 Likes
Reply
1 Solution
Moderator
Moderator

Hi

To plot the chart in bridge control panel, the following steps have to be executed:

In Bridge control panel (BCP) set the variable. Go to chart-> variable settings

pastedImage_0.png

Give a variable name and click on OK.

In bridge control panel, write the following command

w 37 82 04 p

where 37 is the address of MBR3, 82 is sensor ID register, and 04 specifies the sensor. (CS4 in this case. change this to the sensor you want to plot).

Ensure that this is transmitted correctly by checking the '+' sign at the end of each data.

pastedImage_1.png

Then send the command to obtain raw count value.

w 37 E2 r 37 @0raw_count @1raw_count p

Send this command continuously by clicking on the Repeat option. In the chart tab, you will see the raw count plotted.

Please try this out and let us know if you are able to obtain the raw count information.

Thanks and regards

Harigovind

View solution in original post

8 Replies
Moderator
Moderator

Hi

To plot the chart in bridge control panel, the following steps have to be executed:

In Bridge control panel (BCP) set the variable. Go to chart-> variable settings

pastedImage_0.png

Give a variable name and click on OK.

In bridge control panel, write the following command

w 37 82 04 p

where 37 is the address of MBR3, 82 is sensor ID register, and 04 specifies the sensor. (CS4 in this case. change this to the sensor you want to plot).

Ensure that this is transmitted correctly by checking the '+' sign at the end of each data.

pastedImage_1.png

Then send the command to obtain raw count value.

w 37 E2 r 37 @0raw_count @1raw_count p

Send this command continuously by clicking on the Repeat option. In the chart tab, you will see the raw count plotted.

Please try this out and let us know if you are able to obtain the raw count information.

Thanks and regards

Harigovind

View solution in original post

New Contributor

Hi Thank you for your help!

I have met with another issue regarding the consistency of the raw count reading.

After every round of testing for capacitance measurement, the raw count reading would be different from the previous run. Do you have any idea how I could keep it consistent if I am using the same sample?

In addition, would it be possible if the variable could be programmed to read absolute capacitance reading instead of raw count?

Hope to hear from you soon!

0 Likes
Reply
Moderator
Moderator

Hi

In each round of testing, how different are the raw counts? A slight variation in raw count would occur due to the noise present in the system.

Please let us know the variation in raw counts.

You can measure the parasitic capacitance by using the

w 37 82 04 p

w 37 DD p

r 37 x p

This will provide the parasitic capacitance in pF.

Please note that this capacitance measurement is updated whenever there is a change in value of SENSOR_ID register. Hence continuously running the command will provide the same result. Also this cannot be used to measure change in capacitance. This is not a recommended use case for MBR3 devices and is suitable only for measuring parasitic capacitance.

Please refer to MBR3 register TRM, page 161 for more details.

Link: https://www.cypress.com/file/127221/download

0 Likes
Reply
New Contributor

Hi,

This is the variation I get when conducted on different day.

Thank you!

0 Likes
Reply
Moderator
Moderator

Hi

Are the two levels in the picture representing raw counts with and without touch? Or is this a picture of just the baseline without touch?

If the levels are representing values obtained with and without touching the sensor, then there is some error in measurement as the SNR of 5:1 is not being met.

A slight variation of raw counts is bound to happen due to changes in the environment.

Please follow the procedure to obtain the correct raw counts plot and ensure that an SNR of 5:1 is observed.

Thanks and regards

Harigovind

0 Likes
Reply
Moderator
Moderator

Hi

Could you please clarify what the levels represent?

Thanks and regards

Harigovind

0 Likes
Reply
New Contributor

Hi,

I have tried using the Universal Capsense Controller Kit as shown above and it gave much better reading compared to MBR3. My aim is to find out the capacitance reading of dielectric material with changing concentration of electrolytes.

However, MBR3 is unable to give the same results as the controller kit. Is there any way that I am able to configure MBR3 to produce similar result?

Regards,

Tim Ee

0 Likes
Reply
Moderator
Moderator

Hi

Measuring the capacitance is not the intended purpose of the CapSense block in MBR3. It is designed to detect human touches based on raw count levels. The smartsense algorithm present in MBR3 automatically takes into account, the environmental changes and noise in the system and calibrates raw counts accordingly.

Hence, the will be a small change in the raw count value on every reset.

If possible, use a PSoC4 device with manual tuning capability for CapSense block. You can set the parameters manually to obtain the same raw counts every time.

Thanks and regards

Harigovind

0 Likes
Reply