Skip to main content
Visitor II
October 22, 2004
Question

ST7 internal RC oscillator problem

  • October 22, 2004
  • 4 replies
  • 1089 views
Posted on October 22, 2004 at 10:48

ST7 internal RC oscillator problem

    This topic has been closed for replies.

    4 replies

    camagnaAuthor
    Visitor II
    October 19, 2004
    Posted on October 19, 2004 at 17:16

    Hallo.I have a problem. I normally use ST7 microcontrollers in my applications (ST7FLITE09Y0B6) with the internal RC clock. On 3 devices on a total of 30 , with the same program , I can't reach the 1% accuracy on the clock (the error is very high , 30-40% slower ).I use the ''INTERNAL RC OSCILLATOR ADJUSTMENT'' described in the ST7LITE0 manual , section 7.1 . I tryed to use the value of the FFDEh location memory (instead of the 1000h , RCCR0 , my application is working at 5 volt power supply and 1MHz, with 8x PLL) but I still have the problem.It seems that the location memory FFDEh contains 0 . This byte is writed by ST and should be read only memory. How is it possible? Can You help me please?

    Thanks

    Visitor II
    October 20, 2004
    Posted on October 20, 2004 at 04:01

    Hello Bettuzzo

    Maybe you had the read out protection option bit set and then reset ? That means that all the memory is erased, including the oscillator adjustment bytes. We experienced that kind of problem. So, be very careful with the read out protection! Otherwise these adjustment values are gone forever.

    Hope that helps.

    Ciao, Al
    Visitor II
    October 20, 2004
    Posted on October 20, 2004 at 05:25

    Hi Bettuzzo,

    if you are using the ST7 Stick to programm your ST7Lite your read only problem shall be solved when you disable the flag

    Protect RC Calibration values on Data Memory

    You can find it under Configuration -> Protections in the programming menu.

    Best Regards WoRo
    Visitor II
    October 22, 2004
    Posted on October 22, 2004 at 10:48

    I use thi code for correct the oscillator:

    EECSR = 0x00; /* E2 in read */

    RCCR = ((EEPROM[0] & 0xFF00) >>

    ; /* codice not portable - BIG endian */