C10 - Finite State Machine
Introducción
El microcontrolador cuenta de dos fuentes para el oscilador:
- Interna
- El oscilador interno del uC TM4C va a 16Mhz con una presicón de ±1% poco preciso
- Consume poca corriente
- Externa
- Se puede escoger entre una gama de osciladores con diferentes velocidades
- Son mucho mas precisos que el interno
- Consumen más corriente y espacio en el PCB
Phase-Lock-Loop (PLL)
Que és? Cómo funciona?
- Permite seleccionar un cristal externo
- Permite seleccionar la velocidad del cristal y por tanto del procesador
- Para poder llevar a cabo estas dos operaciones necesitamos manipular dos registros
- SYSCTL_RCC_R
- SYSCTL_RCC2_R
En la siguiente imagen se ven los registros que van asociados al PLL
![]()
Los datos que nos interesan:
- En el registro SYSCTL_RCC_R el campo XTAL
- Este se compone de 5 bits - del bit 10 al bit 6
- El campo XTAL configura la velocidad del cristal. En la tabla de abajo se ven la codificacion de la velocidad en hexadecimal
- En el registro SYSCTL_RCC2_R el campo SYSDIV2
- Este campo se compone de 7 bits - del bit 28 al bit 22
- Configura la velocidad del bus del sistema
- La fórmula para calcular es:
Hay que tener en cuenta que a el número n velocidad del reloj
Codificación velocidad cristal en hexadecimal:
![]()
Usar PLL
Hay dos formas de activar PLL:
- A través de una libreria
- La mejor solucion porque es mas estable
- El código se puede portar más fácil a otro micro
- Accediendo directamente a los registros
Accediendo manualmente
- Paso 0: Usar RCC2 porque provee más opciones
- Paso 1: Poner bit 11 de BYPASS2 a 1
- PLL esta bypassed y no hay system clock divider
- Paso 2: Seleccionar la velocidad del cristal a través del campo XTAL
- Los bits de OSCSRC2 se hacen clear para seleccionar el main oscillator como oscillator clock source