En un microcontrolador ST que estoy usando hay dos OSC que se pueden enrutar exactamente al mismo hardware y me pregunto cuándo usarías cada uno.
Enlace a la documentación de la pieza STM32L496ZG
Extracto de la hoja de datos sobre los dos OSC's -
Oscilador interno RC de alta velocidad de -16 MHz (HSI16), ajustable por software, que puede suministrar un PLL
- Oscilador RC interno de varias velocidades
(MSI), recortable por software, capaz de generar 12 frecuencias desde 100 kHz a 48 MHz. Cuando una fuente de reloj de 32.768 kHz está disponible en el sistema (LSE), la frecuencia MSI se puede recortar automáticamente Hardware para alcanzar una precisión superior a ± 0.25%. En este modo el MSI puede alimentar el dispositivo USB, ahorrando la necesidad de una alta velocidad externa cristal (HSE). El MSI puede suministrar un PLL.
En la nota de aplicación de ST AN4555 se explica
reloj HSI16
La señal de reloj HSI16 se genera desde un oscilador RC interno de 16 MHz. El oscilador HSI16 RC tiene la ventaja de proporcionar una fuente de reloj a bajo costo (sin componentes externos). También tiene un tiempo de arranque más rápido que el oscilador de cristal HSE. Sin embargo, incluso con la calibración, la frecuencia es menos precisa que un cristal externo. Oscilador o resonador cerámico. La señal HSI16 también se puede utilizar como fuente de respaldo (reloj auxiliar) si el cristal HSE el oscilador falla Consulte la sección del manual de referencia: Sistema de seguridad del reloj (CSS).
3.3 reloj MSI
La señal de reloj MSI se genera desde un oscilador RC interno. Su rango de frecuencia puede ser ajustado por software utilizando los bits MSIRANGE [3: 0] en el registro de control del reloj (RCC_CR). Hay doce rangos de frecuencia disponibles: 100 kHz, 200 kHz, 400 kHz, 800 kHz, 1 MHz, 2 MHz, 4 MHz (valor predeterminado), 8 MHz, 16 MHz, 24 MHz, 32 MHz y 48 MHz. El oscilador MSI RC tiene la ventaja de proporcionar un bajo costo (sin componentes externos) Fuente de reloj de baja potencia. Además, cuando está recortado por el oscilador externo de 32.768 kHz (LSE), el MSI puede proporcionar al dispositivo USB un reloj muy preciso que elimina la necesidad de un cristal externo de alta velocidad (HSE).
Mi problema
He estado sacándome el pelo cuando STLINK LPUART estaba agregando un cero extra en el medio de cada byte que envié a la PC desde el microcontrolador. Lo puse a tiempo y me di cuenta de que había asignado HSI como el reloj LPUART. Cuando asigné MSI el error desapareció. Supongo que tendré que recortar el HSI ya que debe ser calibrado.
Pero esto me hizo preguntarme, ya que puedo usar el MSI para casi cualquier cosa, ¿por qué incluyen ambos relojes en el único chip?