capsense programming

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

cross mob
Anonymous
Not applicable

Good afternoon everyone,

   

I'm creating a capsense module with CY8C20534.

   

It constructing a board with 4 buttons & 1 slider (with 4 sensors/buttons), the design & pcb's are ready.

   

what I need is the sample codes for the above stated details.

   

Since I'm able to program the button section, especially I want the suggestions for the slider section.

0 Likes
19 Replies
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Open the capsense datasheet. Near the end you find two examples accessing buttons and sliders. You may cut & paste those and adopt them to your design.

   

 

   

Bob

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

The bad news is: the design will not fit into the selected chip, you need a device with more ram. When you build your project, you'll get some errormessages which will explain that there is not enough ram availlable.

   

 

   

Bob

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

I hope, I do not conflict with Cypress's marketing policy, but a rather better solution would be for you to switch to PSoC4 for your design if this is possible.

   

Download Creator and get yourself a Pioneer Kit (look here www.cypress.com/).

   

You get comparatively much flash, ram, capsense and other components, the ability to debug and all that for a very reasonable price.

   

 

   

Bob

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Part seems to have a Capsense focus, from datasheet -

   

 

   

Features

   


■Low power CapSense block
❐Configurable capacitive sensing elements
❐Supports combination of CapSense buttons, sliders,
touchpads, and proximity sensors

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

I just checked with Cypress: using a PSoC4 in this case is quite reasonable.

   

 

   

Bob

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Cypress should stick a flag in the sand and let community know

   

if its time to move off PSOC 1.

   

 

   

Note he has boards already made, so clearly must have had tools

   

as well, one would hope. So now he needs to know what the remaining

   

support for manufacturing of the PSOC 1 will be. Bob can you contact

   

marketing and get that answer ? Or better yet turn this over to cutsomers

   

local field sales support, Rep or RSM or FAE. Let them carry the business

   

ball.

   

 

   

Regards, Dana.

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

I checked some more:

   

Try the following settings in Project -> Settings...

   

 

   

Enable paging
Stack page offset 7f

   

 

   

This will give you some more room in the availlable ram area.

   

 

   

Bob

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

@Dana

   

When a new chip family comes with 4 times more flash, 8 times more sram, quite a lot more functionality than an older chip and all that for a lower price, then I can read the signs. On the PSoC1 side is only few development done, while it is undenieable that on the quite more performant PSoC4 the timeline announces more and more new models.

   

 

   

What does this tell you?

   

 

   

Bob

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

When a new chip family comes with 4 times more flash, 8 times more sram, quite a lot more functionality than an older chip and all that for a lower price, then I can read the signs. On the PSoC1 side is only few development done, while it is undenieable that on the quite more performant PSoC4 the timeline announces more and more new models.

   

 

   

What does this tell you?

   


   

Bob

   

 

   

@Bob, tells me to contact the decision makers, not assume what is the trajectory of a family.

   

To wit the ongoing lifetime of 8051 families. Or the LM324, ~ 50 years old, hundreds of upgrades

   

introduced over that period, yet still in production, albeit some in other process technologies, but not

   

all.

   

 

   

Dana.

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

OK, Dana. So let us wait for 20 years and then let's open a bottle of wine and talk about the good-old-times.

   

Probably we both will be surprised what has gone on in that time.

   

 

   

Bob

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

No need to wait 20 years, just pick up the phone and contact the

   

decision makers. Typically marketing has this responsibility. If one

   

needs more than standard boiler plate then senior management

   

excellent resource.

   

 

   

Dana.

0 Likes
Anonymous
Not applicable

sorry for the late reply guys, I've just checked your suggestions and will try to work with them.

   

hope will workout with it. thanks for the reply.

   

thanks Dana, thanks Bob.

   

regards--

   

amit

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

We digressed over the topic of guessing in engineering, but

   

glad to have been of help.

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable

hello,

   

I have made the board with the capsense PSoC cy8c20534, working for the 5 buttons.

   

the problem is that the o/p is not holding. when I put my finger on the button the respective LED's glow(ON) but as soon as the finger is removed they goes OFF.

   

will you suggest me the required modifications in the program to hold the o/p.

   

----

   

Amit

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

If you want button press toggles an LED on, then a second press toggles

   

it off you have to -

   

 

   

First press, set a flag, debounce key in then out, then based on flag turn on LED.

   

Second press, reset a flag, debounce key in then out, then based on flag turn on LED.

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable

Hi Dana, I have done that for the 5 buttons & its working good. what I need is

   

while I'm increasing my LEDs (separate for each sensor) I need to put some ref value for
e.g. 0x10, 0x01,0x02,0x04,0x08 etc.

   

void display_update_LEDs(BYTE sensor_state)

       if ( (sensor_state & 0x02) &&flag2 == 0 )
          {   
             flag2=1;
             LED_1_Invert();
          }
        else if (!CSA_EMC_bIsAnySensorActive())
          {   
            flag2=0;

   

          }

   

 

   

above is one of my button(2) loop, like this I want to continue for slider with addition of 1 slider(4 sensors). can you tell me the logic behind these values & if possible give me some sample code with same logic.

   

----

   

Amit

0 Likes
Anonymous
Not applicable

by going through some of the older conversassions I found that it is something about     I2C  &  the slave addressing. thought it will help you reply my querry.

   

--------

   

Amit

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Can you post the entire project, I cannot see the code fragment

   

you show anywhere.

   

 

   

    

   

          

   

“File”                                                           Designer

   

“Archive Project”

   

Use Firefox or IE, not chrome to post.

   

 

   

 

   

Regards, Dana.

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Hi Dana,

   

Go through it & suggest me things to do; so as to get it ready for the various combinations of the buttons & the sliders(with various no. of segments).

   

see the display.c file, in that concentrate on-  0x01_type_addressing,

   

when I'm increasing my LED no. (suppose buttons, 1 slider with 5segments)what values are to put? what is the logic bahind defyning those values.

   

guide me out of this problem

   

 

   

void display_update_LEDs(BYTE sensor_state)
{
    if ( (sensor_state & 0x01) && flag1 ==0)
        {   
            flag1=1;
            LED_0_Invert();
        }
    else if (!CSA_EMC_bIsAnySensorActive())
        {   
            flag1=0;
       
        }

   

--------

   

Amit

0 Likes