alexanderu alexanderu

MTIM-timer accuracy and stability in MC9S08QG8

Discussion created by alexanderu alexanderu on Apr 5, 2007
Latest reply on Apr 11, 2007 by alexanderu alexanderu

Greetings All,

I have a question regarding stability of wave frequency, which produced by MTIM timer module in MC9S08QG8 device. The problem appears when timer runs in high speed - the frequency of produced wave is not stable (more then 2%)!

I evaluate this chip using internal click source at maximal buss speed after trimming correction.

Platform: Freescele EVB - DEMO09S08QG8.

I set timer by following values:

 MTIMCLK_PS = 2;        // 2*38=>should give 25us period
 MTIMCLK_CLKS = 0;   // 0-Bus clock; 1-fixed-freq. clock
 MTIMMOD = 38;           // Modulo value for 25us period

 MTIMSC &=~ 0x90;      // clear TOF and exit stop TSTP
 MTIMSC |= 0x60;          // reset and start MTIM, enable interrupts (TOIE)

COP is fed regularly.

The only allowed interrupt is conducted with MTIM with toggling some hardware pin with connection to scope allowing accurate frequency measure.

The interrupt looks like:

interrupt 12 void   MTIM_ISR(void)
{
   volatile U_CHAR x;
   LED2 = ~LED2;          // toggle pin - set to high – connected to the scope
   x = MTIMSC_TOF;
   MTIMSC_TOF = 0;     // clear TOF flag
   MTIMSC_TRST = 1;   // reset counter
   LED2 = ~LED2;          // toggle pin - set to low – connected to the scope
}

As I mentioned, the output signal is not stable. The stability is above 2%. Accuracy depends on quantity of tasks inside main loop (again: there are no additional interrupts in my code).

I have tested it also on demo application demo9S08QG8_test.c, which comes with EVB. The same result - when I speed up the timer frequency, the signal becomes unstable.

Had some body experience the same problem or can advice.

Thanks in advance.

Outcomes