SparkFun Forums 

Where electronics enthusiasts find answers.

Discussions on how to get your MSP JTAG programmer up and running.
By swarf_maker
#49403
I am using an MSP430F1611 and the 32.768 KHz crystal oscillator is running slowly enough that it loses about 1 second per minute. I arrived at this by comparing the time reported by FORTH Inc's TIME function included with SwiftX and the time displayed on my PC. Unfortunately, I don't have an oscilloscope or a counter-timer.

I thought this might be due to stray capacitances on my PCB so I tried it using another 430F1611 in the socket on my TI FET430P140 evaluation board with the crystal supplied by FORTH Inc and it is even worse, losing about 2 seconds per minute.

The processor on my board is running from a supply voltage of 3.3V and the tracks (0.2mm wide) to the crystal are 1.0 and 1.5 cm long. The board is four layer with buried power and ground. The crystal is a Citizen CM415 32.768 KHz surface mount part and is specified for use with 12.5 pF capacitors such as are internal to the MSP430 series. I calculate the capacitance to ground of the crystal's solder pads to be 0.026 pF and the tracks would add a similar amount - certainly small in comparison to the 12 pF in the processor.

The processor on the FET430P140 is running from 2.75 Volts and the crystal is a leaded cylindrical can on which I don't see any markings.

In either case this is pretty horrible performance from a crystal oscillator and is certainly of absolutely no use for time keeping.

Has anyone else encountered this problem, and better yet solved it? One thought I have is that the crystal might be driven too hard. Would some series resistance be worth trying? Are there any oscillator experts out there?

Bob
User avatar
By leon_heller
#49410
Stray capacitance to the inner layers might be causing the problem. Try bending the crystal up away from the board to see if it makes a difference.

Leon
By swarf_maker
#49435
Thanks Leon,

The behavior is certainly consistent with too much capacitance in parallel with the crystal so stray capacitance was my first thought. Unfortunately, the surface-mount crystal doesn't lend itself to bending.

The pads for the crystal are about 1mm by 2mm and, according to the PCB manufacturer the dielectric constant of the PCB material is 4.6 +/- 0.2 and the thickness of the outside dieletric layer is 0.012 inches. From this I calculate that each pad contributes about 0.027 pF and I estimate the tracks to the pads would add a similar amount. I don't think 0.054 pF this explains things.

I have been wondering whether FORTH Inc's TIME function is accurate, although I can't really see a bug like that going undetected and unresolved for long. My DMM has a counter function but I don't trust it to be accurate with the probe directly on the crystal so I am going to modify the timer Interrupt Service Routine to toggle an unused port pin so I have an isolated output on which I can measure the frequency (or in this case half the frequency).

Another thought is my processor chips could be from a batch with high capacitance. I would expect that TI would try to err on the low C side so as to allow a trimmer to be used to pull the oscillator onto frequency where better than average accuracy is required. Other than that I am pretty much out of ideas. Any help greatly appreciated

Bob
User avatar
By leon_heller
#49441
Try the MSP430 Yahoo group.

Leon
By gm
#49452
The '1611 has 2 pins that will output ACLK directly: P2.0 and P5.6. Just set the direction pin as output and enable the select pin. For instance:

P2DIR |= 0x01;
P2SEL |= 0x01;

You should see the ACLK frequency being output on P2.0.

No need to mess with interrupts.

HTH,

gm
By swarf_maker
#49459
gm,

Many thanks for that tip. Lo and behold the oscillator is running at 32.76 KHz - that's all the resolution my DMM has.

I put the toggle bit into the ISR and got 496.4 Hz not 512 Hz as I should have. Coincidentally, that is about 31/32 of 512. It seems someone at FORTH Inc didn't read the 430x1xx user's guide well enough. It says, "The number of timer counts in the period is TACCR0+1." They have loaded 32 into CCR0. When that is changed to 31 I get 512 Hz.

Time for a snooty e-mail to FORTH Inc's support dept. :twisted:


leon,

Thanks for the tip about the Yahoo Group. I have applied to join that group and will keep an eye on it too.


Bob