2024-01-25 05:55 AM - edited 2024-01-25 05:56 AM
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?
Regards,
Ahmet
2024-01-25 06:43 AM - edited 2024-01-25 06:44 AM
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.