Showing results for 
Search instead for 
Did you mean: 

Accuracy of internal RC oscillator of STM32F030C8


Hi ST Community,

I am planning to design a board with STM32F030C8 that will be mass produces. It will be very small PCB, so I am plannig to use internal RC oscillator of the MCU. The MCU will use I2C1  (to write some data to LCD with I2C converter) and I2C2  to communitacte with sensor that has I2C interface. I will make System clock frequency 48MHz (HSI * 6 PLL) and I2C1 frequency 48MHz in Cube IDE clock config. 

My question is related to  the accuracy of the RC oscillator. I need to measure zero crossing of the sensor signal. For example, if the difference between two zero crossing is 100ms and sensor value is X, I will write data to 16x2 LCD via I2C1. The 100ms difference does not has to be 100ms exactly. For example, if time difference is between 85ms and 115ms, I will accept is as 100ms, or for example, if the time difference is between 140ms and 185ms, I will accept it as 160ms.  

1.Do you think this accuracy is achiveable using internal RC oscillator of the MCU?

2. Is it reliable in long run (for example, for 2 - 3 years)

3. Does calibration in every system reset will help to achieve it?




Accuracy of the internal RC oscilator (HSI) is given in the datasheet. It says +/- 5% is typical without calibration. If you allow 15%, that seems fine to expect without any further steps. Calibrating it will improve accuracy.


But it's so easy to add a crystal and get, say, 50 ppm accuracy. If you are timing things, it seems silly not to.

If you feel a post has answered your question, please click "Accept as Solution".