2018-04-24 01:53 AM
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-clock2018-04-24 02:09 AM
What does the DS say?
What's connected to the UARTs and how?
JW
2018-04-24 04:45 AM
'
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.
2018-04-24 05:07 AM
'
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.
2018-04-24 06:12 AM
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 .
2018-04-24 06:23 AM
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.
2018-04-24 03:18 PM
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