Vref temperature characteristic

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

cross mob
JohnDoe1111
Level 1
Level 1
5 sign-ins First reply posted First question asked

I am investigating the temperature characteristics of Capsense and am performing various measurements using CY8CKIT-149.

・Is there any data on the temperature characteristics of Vref=2.021V(when 3.2V <= VDDA < 4.7V)?
・If not, how can I measure it?

0 Likes
1 Solution
DennisS_46
Employee
Employee
100 sign-ins 50 likes received 50 solutions authored

JohnDoe:

I messed up and gave you wrong data. It turns out that the 4147AZI-S475 does not have a routable programmable reference. But . . . there is a way to measure the internal reference. The same reference is used for capsense and the ADC.
So, put in Sequencing SAR ADC. Go to configure. The simple way is to set it for one input, single-ended.

Then . . . here's the secret: set  Vref select to "Internal Vref, bypassed." Build the project. Go to the analog view.
you will see that the Vref for the SAR is routed to Pin 1.7. Put at least a 0.1 uF cap on it. You can now measure
this point to get the reference you want.

Again, my apology for giving initial incorrect data.

---- Dennis

View solution in original post

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

Hi @JohnDoe1111 

 

Can you please let me know the use case for this requirement? The CapSense validation we perform is typically on the entire block. The performance of the CapSense IP is validated across temperature to note the raw counts variation with respect to the temperature. 

The CapSense block is validated for 10% change from -40C to 85C. 

 

Best regards, 
Hari

0 Likes
DennisS_46
Employee
Employee
100 sign-ins 50 likes received 50 solutions authored

JohnDoe:
To measure only the Vref characteristics, connect Vref to non-inverting input of opamp, set opamp to follower, set output to pin, set opamp power high (lowest offset error and drift). If you need to measure opamp error, put in a mux, one input to a pin, the other to Vref. Set mux to opamp, measure input to output offset. Then set mux input
to Vref, measure and subtract input to output offset.

---- Dennis, PSoC apps

0 Likes

Dear DennisS_46,

Thanks for the reply.

I don't know how to connect Vref to Opamp, because I can't find Vref in the list of Component Catalog, and I can't find the corresponding setting in Opamp's Configure screen. (Is it a limitation in CY8CKIT-149?)
How can I do this?

Best regards.

0 Likes
DennisS_46
Employee
Employee
100 sign-ins 50 likes received 50 solutions authored

Put in programmable reference component (PVRef).

DennisS_46_0-1641916721138.png

This exists in all PSoC 3,4,5 parts.

---- Dennis

0 Likes

Dear DennisS_46,

Thanks for the reply.

I looked for PVref in the Component Catalog, but could not find it.

search1.PNG search2.PNG

Best regards.

0 Likes
DennisS_46
Employee
Employee
100 sign-ins 50 likes received 50 solutions authored

JohnDoe:

I messed up and gave you wrong data. It turns out that the 4147AZI-S475 does not have a routable programmable reference. But . . . there is a way to measure the internal reference. The same reference is used for capsense and the ADC.
So, put in Sequencing SAR ADC. Go to configure. The simple way is to set it for one input, single-ended.

Then . . . here's the secret: set  Vref select to "Internal Vref, bypassed." Build the project. Go to the analog view.
you will see that the Vref for the SAR is routed to Pin 1.7. Put at least a 0.1 uF cap on it. You can now measure
this point to get the reference you want.

Again, my apology for giving initial incorrect data.

---- Dennis

0 Likes

Dear DennisS_46,

Thank you for teaching me how to measure! I will try it as soon as possible.

Best regards.

0 Likes

Note to self:


Don't forget to put ADC_Start() in the initialization process of the main() function.

JohnDoe1111_0-1642033313048.png

 

int main(void)
{
    CyGlobalIntEnable; /* Enable global interrupts. */
    
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    ADC_SAR_Seq_1_Start();

    for(;;)
    {
        /* Place your application code here. */

    }
}

 

0 Likes