I am using a 32.768kHz crystal for a ARM M0+ MCU. According to the specification, the crystal tolerence is 20PPM, and the loading capacitance is 12.5pF. I connect the crytal to the MCU and a capacitor between each of the crystal terminal and the ground. By calculation (considered the PCB and MCU stray capacitance), each of the capacitor is about 18pF (SMD type).
For checking the accuracy, I make use of the MCU's timer periphral to generate a signal from the crystal and checking the frequency by a frequency counter. I found that the error is about 650PPM, which is much higher than my expectation. I tested the loading capacitor with different value but the result is similar. The ambient temperature when I test the crystal is at room temperature (~24C). I have also tested it with the integrated Real Time Clock (RTC) periphral, the result is similar. The RTC error is about 700PPM after two days.
I would like to ask is it normal that the actual error is so high for using a 20PPM crystal? If not, what is the possible reason for that?
Thank you very much.
For checking the accuracy, I make use of the MCU's timer periphral to generate a signal from the crystal and checking the frequency by a frequency counter. I found that the error is about 650PPM, which is much higher than my expectation. I tested the loading capacitor with different value but the result is similar. The ambient temperature when I test the crystal is at room temperature (~24C). I have also tested it with the integrated Real Time Clock (RTC) periphral, the result is similar. The RTC error is about 700PPM after two days.
I would like to ask is it normal that the actual error is so high for using a 20PPM crystal? If not, what is the possible reason for that?
Thank you very much.