cancel
Showing results for 
Search instead for 
Did you mean: 

Is internal RC clock stable enough?

Alex Vinitsky
Associate II
Posted on April 24, 2018 at 10:53

Hi,

I am planning to use STM32F301K8 with UFQFPN32 package (the PCB space is critical).

I am going to use:

1 or 2 UARTs in Asynchronouse mode driven by DMA. 8N1 . Boud Rate 115200 .

1 or 2 SPIs driven by DMA. Csn by not dedicated GPIO. Boud Rate up to 5Mbps.

1 I2C with low boud rate.

Up to 3 gemeral purpose Timers with interrupts. There is no requirement for high timing accuracy.

1 ADC input.

Some additional GPIOs with EXTI mode.

Boot loader.

No USB.

System clock - 64MHz.

The PCB space is critical!

Temperature range : -40 to +60 DegC.

Vdd is regulated but voltage spikes expected.

So my question is the internal RC clock stable enough for my implementation or it is strongly suggested to use external crystal ?

#internal-rc-clock
6 REPLIES 6
Posted on April 24, 2018 at 11:09

What does the DS say?

What's connected to the UARTs and how?

JW

Posted on April 24, 2018 at 11:45

'

What does the DS say?'   -  Sorry, but I didn't understand your question. Please describe.

UARTs will be connected via one Tx or Rx line (1 direction) to support transmitting or receiving data in asynchronous mode , 8N1 protocol with 115200 bps baud rate. On the other side another MCUs (from different vendors with different implementation) will be connected to UARTs. 

Posted on April 24, 2018 at 12:07

'

What does the DS say?'

 The datasheet.

Should be one of the first reads anyway.

... 8N1 protocol with 115200 bps baud rate.

For a full range of -40 to +60°C environmental temperature, you will most probably get into trouble with the internal oscillator.

Posted on April 24, 2018 at 13:12

For a full range of -40 to +60°C environmental temperature, you will most probably get into trouble with the internal oscillator.

Thank you! I think I got the answer .

Posted on April 24, 2018 at 13:23

I assumed an acceptable baud rate tolerance of about 2.5%.

I have had some experiences with internal RC oscillators at higher temperatures, so I expect similar issues at -40°C.

Ambient temperature is usually not equal junction temperature, but the difference might be negligible in your case.

Posted on April 24, 2018 at 22:18

The UART's basic tolerance may be some 5%, depending on how exactly are the bits sampled. However, that assumes a perfect counterpart; if it's also an mcu running from an RC clock, or running from a non-precise-baudrate-multiple crystal, then the tolerance drops, say to 2%. It further drops if there are delays asymmetric for the two edges, this is typical of optocouplers, but seen also when converting to RS232 levels, or even at 5V/3V levels if the RC constants on the line are significant, the up/down pulls and the decision levels asymmetric.

The crystal is more a safe bet in this case.

If you desperately need to spare space, you can either try to characterize the RC oscillator over temperature and hope it won't change, or you can periodically autobaud to the counterpart's speed.

The other interfaces may or may not be timing-critical, e.g. if you want to do some frequency-dependent processing on the results of ADC... but that's then upon you to decide whether the available RC clock precision and jitter is acceptable.

JW