Measuring time with counter on CY8C24123A

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

cross mob
Anonymous
Not applicable

 Hello

   

So I try to count time using a CY8C24123A
I use an 8bit counter running on 32 khz and make it interrupt at terminal count. Every time it interrupts, I add 1 to an integer, 1 is equal to 0,008s or 8ms.

   

32000/256=125
1s/125=0,008

But if I try and count 60 seconds, it will count 63 seconds. And the longer I count, the more wrong it will get. 90 will be 94,5

I cant figure out where I can have a problem. The counter is running sync with the processor.

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

The specs in the datasheet tells that accuracy of IMO is +- 5% wich is consistent with the counting error you've got.

   

To improve accuracy there are two choices coming to my mind:

   

1st: Using an external oscillator or a 32kHz chrystal

   

2nd: Calibrating the needed counts/s by measurement and programming the value individually for every device. Here the EEProm usermodule comes in handy to have that information stored

   

 

   

Bob

0 Likes
Anonymous
Not applicable

 Really 😮 I allways thought 24mhz would be 24 mhz exactly.
It could be the problem since 5% is 3 sec of 60sec. So it might "fail" like 3-4%. 

Thanks for the help, greaaat help.
Ill consider what to do. 

0 Likes
lock attach
Attachments are accessible only for community members.
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Your design goals for accuracy, repeatability, set approach and HW you use

   

to determine design performance. A xtal is most common approach. The next

   

step up would be to use a precision external osciullator. For even better results

   

the following is very effective.

   

 

   

One approach to getting very high accuracy is at production test. Basically you

   

have a routine inside of PSOC that talks to a high precision external freq counter

   

 and feed an onboard PSOC clk to a pin for the external counter to read. GPIB, USB, UART

   

commonly used to external counter. PSOC drives a testbed heater/cooler, and records

   

the external counter and onboard die temp values building a table for generation of

   

the coefficients to a power fit equation. The table or power curve equation then become

   

the means for interpreting any value read by PSOC timer/counter. This essentially takes

   

device to device variation out and corrects for temp. Its only drawback is it does not fix

   

component aging, but that usually is the lesser problem, or can be characterized and

   

compensated for. Sounds complicated but really quite simple.

   

 

   

The attached pic shows general idea, in this case replace the precision ref source with

   

a freq cntr. This pic shows approach to correct A/D and Reference accuracy of a PSOC.

   

This approach is general.

   

 

   

 

   

Regards, Dana.

0 Likes
lock attach
Attachments are accessible only for community members.
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

More than you want to know on frequency counters, and reciprocal

   

counters. Attached.

   

 

   

Regards, Dana.

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

And a PSOC ap note on period counters -

   

 

   

http://www.cypress.com/?rID=2671

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable

 Thank you 🙂
Ofcourse I want it to be effective, but I also need to keep it abit simplified since I do alot different projects. I will use the oscilator idea 🙂
But thanks for your time, it is awesome that i can get such help in here.

   

Simon

0 Likes
MeenakshiR_71
Employee
Employee
100 likes received 50 likes received 25 likes received

Hello SimonTHK,

   

 

   

As bob pointed out the issue is because of inaccuracy, but the inaccuracy is around +/- 50% for ILO or 32 KHz clock (IMO has +/- 2.5%). So, you can expect a lot of deviation from the intended time period from device to device and over temperature/voltage range.

   

 

   

 

   

And yes, the best solution would be to use an External Crystal Oscillator and use the 32 KHz source. For details on how to use an ECO - refer AN2027 - PSoC® 1 - 32.768 kHz External Crystal Oscillator.

   

 

   

Regards,

   

MSUR

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

You can also use an external osc feeding a clock to P1_4, in the Mhz range,

   

24 Mhz for example on a 5V 29xxx type part. See datasheets on other families

   

for pin and allowed freq in.

   

 

   

http://www.cypress.com/?rID=2773

   

 

   

Regards, Dana.

0 Likes