ROBERTO BERNER

MC9RS08KA2CPC PROBLEM TRIMMING CLOCK FREQUENCY

Discussion created by ROBERTO BERNER on Jun 6, 2011
Latest reply on Jun 11, 2011 by Chinlun Wu

Hello friends, I have a problem to obtain an exact 1 millisecond flag using the MTIM module.

Here are the details:

USBSPYDER08 programmer ( trimming enabled 20000000 DCO )

A very simple program in C using CodeWarrior 6.2

 

Device initialization wizard screen shows:

 

CPU:

Internal oscillator frequency = 31.25 KHz

Initialize trim values = Yes

Trim value address = 3FFA

Fine trim value address = 3FFB

Bus freq. divider = autoselect

Internal bus clock = 8.0 MHz

FLL = Engaged

 

MTIM settings:

Clock source = bus clock

Prescaler = 32

Modulo register value = 249

Period = 1ms

Overflow interrupt = disabled

Enable MTIM module = Yes

 

Main program code:

 

void
main(void)
{
    MCU_init();
       
      for( ; ; )
    {
        while( MTIMSC_TOF == 0 )  /* wait for MTIM counter overflow */
            ;
        MTIMSC_TOF = 0;    /* clear counter overflow flag */

        TEST_PIN ^= 1;     /* oscilloscope mark 500 Hz square wave */

        timer_tick();      /* really small processing here */
    }
}

 

MCU_init() contains this code that installs trimming values in corresponding registers:


/*  System clock initialization */
  ICSTRM = *(unsigned char* __paged)CONVERT_TO_PAGED(0x3FFA); /* Initialize ICSTRM register from a non volatile memory */
  ICSSC = *(unsigned char* __paged)CONVERT_TO_PAGED(0x3FFB); /* Initialize ICSSC register from a non volatile memory */
  /* ICSC1: CLKS=0,IREFSTEN=0 */
  ICSC1 = 0x00;                        /* Initialization of the ICS control register 1 */
  /* ICSC2: BDIV=0,LP=0 */
  ICSC2 = 0x00;   

/*---------------------------------------------------------*/

 

The result is a 800 us ( 0,8 ms ) MTIM overflow instead of 1000 us ( 1 ms ) period.

I can see that the USBSPYDER writes "Trimming ...  " while in FLASH programing.

I can't understand what I am doing wrong. This has worked for me with any other 9S08 MPU perfectly well.

Any ideas ?

 

Thank you in advance.

 

 

 

 

 


Outcomes