NT1001 - Ceres Controls
Transcripción
NT1001 - Ceres Controls
Notas Técnicas de Uso y Aplicación NT1001 3.1 MÓDULO DE GENERACIÓN DE RELOJ – CGMC GENERACIÓN DE FRECUENCIA DE BUS CON EL MÓDULO CGMC (SOLO GP32) Preparado por: Rangel Alvarado Estudiante Graduando de Lic. en Ing. Electromecánica ÍNDICE Universidad Tecnológica de Panamá 3.1.1 Introducción Panamá, Panamá 3.1.2 Lazos Enganchados de Fase - PLL “e-mail”: [email protected] 3.1.3 Registros de Estado y Control del “web site”: http://www.geocities.com/issaiass/ Módulo de Reloj 3.1.4 Diagrama de Flujo 3.1.5 Código 3.1.6 Simulación 3.1.7 Conclusión 3.1.8 Referencias 3.1.9 Problemas Propuestos 3.1.1 Introducción 321 322 322 325 327 333 334 334 334 La velocidad del bus es limitada por el tamaño del cristal externo u oscilador que se fije a las terminales del microcontrolador. Anteriormente se informó que la velocidad de bus del microcontrolador es la cuarta parte del cristal externo; aunque parezca poco creible, nuestra pastilla puede correr a velocidades de bus diferentes independientemente de la velocidad del cristal que se situe en las terminales de oscilación, todo esto gracias a un módulo especial que posee un “PLL”1 y permite generar frecuencias múltiplos del cristal. En principio, se explica a grandes razgos que función tiene un PLL en general y en detalle: Cálculo de la frecuencia de bus: En la configuración del PLL para GP32 se analizan los parámetros que deben calcularse para su buen desempeño. Configuración del Módulo de Generación de Reloj: Inicializar el módulo para generar una frecuencia máxima de bus, dependiendo del cristal de entrada. Código: Muestra el listado del programa de configuración del PLL específico para un cristal de 4.9152 MHz; la función del código es conmutar un LED con un retardo de “software” a 50 Hz configurada una frecuencia de bus máxima. Simulación: Corroborar de manera gráfica, cómo varían los registros del módulo de reloj y deducir que acción retoma el microcontrolador, configurado estos registros; finalmente, se utiliza el PLL para generar una frecuencia de bus y un retardo de “software” para generar una frecuencia de cincueta hertz (50 Hz). 1 F.I.E., C.D.P., 2005 Lazos Enganchados de Fase o “Phase Locked Loop” NT1001 322 3.1.2 Lazos Enganchados de Fase - PLL Un PLL es un circuito que permite que una señal de referencia externa controla la frecuencia y la fase de un oscilador, el mismo, detecta la señal de entrada, la filtra y compara con la señal de oscilación ajustando así la diferencia de fase (señal desplazada). (1) Detecta si la señal está desplazada y (2) Elimina frecuencias (3) Genera una señal de oscilación hacia el detector de fase e incrementa la frecuencia ligeramente. genera pulsos hacia el filtro. fuera de rango. Figura 180. Lazo Enganchado de Fase o PLL. Para el microcontrolador GP32, el PLL incorporado genera una frecuencia de oscilación la cual es utilizada como reloj del sistema. (4) Lazo de retroalimentación. 3.1.3 Registros de Estado y Control del Módulo de Reloj 3.1.3.1 Registros de Control del PLL 1 = PLL disponible. Si PLLIE está habilitado, genera una P, Bits de Programación del preescalar. interrupción. 0 = PLL bloqueado, no debe ser usado aún. (a) E, Multiplicador de potencia base dos del VCO. 1 = PLL habilitado 1 = Reloj del sistema depende del PLL 0 = Reloj del sistema depende del Cristal. 0 = PLL inhabilitado 1 = Interrupciones habilitadas 0 = Interrupciones deshabilitadas Nota: Si el bit AUTO en PBWC está habilitado, PLLF siempre leerá un 0. Nunca Programar E para un valor igual a 112 1 = Control Automático 1 = Modo “Tracking” 0 = Control Manual 0 = Modo de Adquisición (b) 1 = La frecuencia del VCO es cercana a la deseada. 0 = La frecuencia del VCO está lejos de la deseada. Nota: Si AUTO = 1, el bit LOCK siempre leerá un 0. Cuando el bit LOCK = 1 se puede cambiar la referencia del reloj del sistema. Figura 181. Registros de Estado y Control del Módulo de Reloj. (a) Registro de Control del PLL. Controla el estado del PLL, interrupciones, activación y variables P, E. (b) Registro de Control del Ancho de Banda del PLL. Configura el PLL para modo automático, define cuando esta listo y su modo de operación entre adquisición o “tracking”. Nota Técnica Módulo de Generación de Reloj 323 (a) (b) Los registros de la figura 181 y 182 no se podrán configurar si PLLON = 1 N, Selector Multiplicador de la Frecuencia del PLL. Nota: NMáx = 212 – 1 = 409510. N = 0, impone por defecto N = 1. (c) R, Selector del Divisor de Referencia del PLL. L, Selector de Rango del VCO del PLL Nota: 1510 ≥ R > 0; 25510 ≥ L > 0 L = 0, Deshabilita el PLL. R = 0, impone por defecto R = 1 Figura 182. Registros de Estado y Control del Módulo de Reloj (Continuación). (a) Registros Selectores de Multiplicador de la Frecuencia del PLL. Controlan el Módulo del divisor de la retroalimentación del VCO. (b) Registro Selector de Rango del VCO del PLL. Controla el rango lineal en el cual opera el detector de fase. (c) Selector del Divisor de Referencia del PLL. Igualmente, este registro controla el rango lineal. 3.1.3.2 Pasos para la Programación del PLL del GP32 Tabla 69. Parámetros de Configuración del PLL Valor actual de N 0 < N ≤ NMáx NMáx < N ≤ NMáx × 2 NMáx × 2 < N ≤ NMáx × 4 NMáx × 4 < N ≤ NMáx × 8 P 0 1 2 3 (a) P = Registro PCTL_PRE[1:0] Rango de Frecuencias [MHz] 0 < ƒVCLK < 9.8304 9.8304. ≤ ƒVCLK < 19.6608 19.6608 ≤ ƒVCLK < 39.3216 E 0 1 2 (b) E = Registro PCTL_VPR[1:0] 1. Escoger una frecuencia de bus deseada menor o igual a ocho Megahertz (8 MHz), ƒBUSDES. 2. Calcular la frecuencia del VCO, ƒVCLKDES = 4 × ƒBUSDES Ecuación 8. Frecuencia Deseada de Oscilación 3. Apuntar el Cristal de referencia ƒRCLK = ƒXTAL Ecuación 9. Cristal de Referencia PLL 4. Si, 30 kHz ≤ ƒRCLK ≤ 100 kHz, escoger R = 1, de lo contrario f R = round RMáx × VCLK f RCLK f − int VCLK f RCLK Ecuación 10. Selector Divisor de Referencia del PLL 324 f BUS = f VCLK / 4 5. Calcular N para extraer P de la tabla 61(a). R × f VCLKDES N = round f RCLK 9. Recalcular: Ecuación 13. Frecuencia de Bus 7. Seleccionar un valor de E de la tabla 69(b). 8. Calcular: Ecuación 11. Multiplicador de Referencia 6. Calcular la frecuencia del VCO y del bus: f L = round E VCLK 2 f NOM f VCLK = 2 × N × f RCLK / R P ) Ecuación 15. Verificación del VCO 10. Verificar: f VRS − f VCLK ≤ f NOM × 2 E −1 Ecuación 16. Verificación de Parámetros del PLL Ecuación 14. Selector de Rango del VCO En donde fNOM = 38.4 kHz. Ecuación 12. Frecuencia del VCO ( f VRS = L × 2 E ⋅ f NOM 3.1.3.3 Ejemplo de Programación y Configuración del PLL Sea un Cristal Externo de 4.9152 MHz y la frecuencia de bus de 8 MHz, configure el PLL. 1. ƒBUSDES = 8 MHz. 2. ƒVCLKDES = 32 MHz. 3. ƒRCLK = 4.9152 MHz. 4. R = 8. 5. P = 0. 6. ƒVCLK = 31.9488 MHz. 7. E = 2. 8. L = D016 9. ƒVRS = 31.9488 MHz. 10. 0 ≤ 76.8 k Tabla 70. Parámetros de Configuración para Frecuecias de Bus ƒBUS [MHz] 2.0 2.5 4.0 4.9152 7.3728 8 P 0 0 0 0 0 0 E 0 1 1 2 2 2 N F 2 D 4 6 34 L D5 80 D0 80 C0 D0 (a) ƒXTAL = 4.9152 MHz (a) R 9 1 4 1 1 8 ƒBUS [MHz] 2.0 2.5 4.0 4.9152 7.3728 8 P 0 0 0 0 0 0 E 0 1 1 2 2 2 N F 1 F 2 3 D L D5 80 D5 80 C0 D0 (c.1) R 9 1 9 1 1 4 (c.2) (b) ƒXTAL = 9.8304 MHz (b) (d) (e) Figura 183. Configuración del PLL a frecuencia máxima de Bus con Cristal de 4.9152 MHz. (a) PCTL. Inhabilitar el PLL y luego configurar P y E. (b) PBWC. Habilitar el modo automático. (c) PSM[H:L]. (c.1) y (c.2); configurar N. (d) PMRS. Configurar L. (e) PMDS. Configurar R y luego, habilitar el PLL en el registro PCTL, PLLON = 1. Nota Técnica Módulo de Generación de Reloj 325 3.1.2.4 Vector de Interrupción del Módulo de Generación de Reloj Tabla 71. Vector de Interrupción del Módulo PLL Bandera PLLF Máscara AUTO, PLLIE Dirección FFF2 FFF3 Vector (Dirección) Vector del PLL (Alto) Vector del PLL (Bajo) Si el bit AUTO está en 1 y las interrupciones están habilitadas (PLLIE = 1) el CPU generará interrupciones si el bit LOCK cambia de estado. Además, cuando el bit AUTO, esté en 0, las interrupciones estarán deshabilitadas y el bit LOCK leerá siempre 0. 3.1.4 Diagrama de Flujo El programa configura el microcontrolador GP32, para que se genere una frecuencia máxima de bus con un cristal externo de 4.9152 MHz y utilizar un retardo de “software” para conmutar el LED PTA6 a una frecuencia de cincuenta hertz (50 Hz). (b) Figura 184. NT1001 – CGM. (a) Programa principal. Configura el Módulo CGMC para generar una frecuencia máxima de bus basada en un cristal de 4.9152 MHz y conmuta un LED a 50 Hz. (b) Reinicio del Sistema. Al presionar “reset”, reinicia el sistema. Nota: Para que el PLL funcione, se necesita realizar la siguiente conexión adicional de componentes pasivos, elija cualquiera de las dos configuraciones. GP32 GP32 (a) 0.033uF 10k 0.01uF VDDaPTA7 VSSaPTA6 CGMX PTA5 Osc2 PTA4 Osc1 PTA3 RST PTA2 PTC0PTA1 PTC1PTA0 PTC2REFL PTC3REFH 0.47uF VDDaPTA7 VSSaPTA6 CGMX PTA5 O 2 PTA4 326 (a) (b) (c) (d) Figura 185. NT1001 – CGMC (continuación, subrutinas). (a) INIT_PLL. Configura el módulo de generación de reloj para que en base a un cristal de 4.9152 MHz genere una frecuencia de bus máxima. (b) INIT_PORTS. Inicializa el puerto A6 en bajo y luego lo ubica como salida para el LED. (b) INIT_ADC. Configura para conversión en el puerto A5. (c) INIT_CONFIG. Inicializa el registro de configuración 1 para inhabilitar el “watchdog” y hacer que el LVI trabaje a 5V. (d) Delay. Subrutina de retardo programable de un milisegundo (1 ms) de base de tiempo. 3.1.5 Código Nota Técnica Módulo de Generación de Reloj 327 ;================================================================= ; ARCHIVO : NT1001 - CGMC - 23 07 04.asm ; PROPÓSITO : Configura el microcontrolador para que con un Cristal ; Externo de 4.9152 MHz, genere una frecuencia de bus de ; 8 MHz y conmute el estado del LED PTA6 a una rata de 50 Hz ; ; NOTA : ; 1 - Observar la rutina de inicialización del PLL. ; 2 - El módulo PLL puede generar una frecuencia máxima o ; cualquiera deseada por el usuario independientemente del ; cristal externo que se tenga. ; REFERENCIA : ; MC68HC908GP32, MC68HC08GP32 Technical Data ; http://www.freescale.com/files/microcontrollers/doc/ ; data_sheet/MC68HC908GP32.pdf ; Págs. 113 @ 116 - Programación del PLL, sección 7.4.6 ; ; LENGUAJE : IN-LINE ASSEMBLER ; --------------------------------------------------------------------------; HISTORIAL ; DD MM AA ; 22 07 04 Creado. ; 15 09 04 Modificado. ;================================================================= ; Pasos para iniciar el PLL. ; Nota : Utilizar siempre los últimos valores si estos son redundantes en la ; calibración, p.e. N ; 1 - Escoger una frecuencia de bus, Fbusdes ; 2 - Calcular Fvclkdes = 4 * Fbusdes ; 3 - Calcular la frecuencia del Cristal externo Frclk ; 3.1 - Si 30 kHz <= Frclk <= 100 kHz -----> R = 1 ; 3.2 - Si Frclk > 100 kHz, utilizar la ecuación: ; R = round{Rmáx*[(Fvclkdes/Frclk) - int(Fvclkdes/Frclk)]} ; 4 - Calcular N = round(R*Fvclkdes/Frclk) ; 5 - Seleccionar P de la tabla en la pág. 114 del manual ; 6 - Nuevamente calcular: ; 6.1 - N = round[R*Fvclkdes/(Frclk*2^P)] ; 6.2 - Fvclk = 2^P*N*Frclk/R ; 6.3 - Fbus = Fvclk/4 ; 7 - Seleccionar E de la tabla de la página 115 ; 8 - Calcular L = round[Fvclk/(2^E*Fnom)], en donde ; Fnom = 38.4 kHz ; 9 - Calcular Fvrs = L*2^E*Fnom ; 10- Verificar que |Fvrs - Fvclk| <= (Fnom * 2^E)/2 ; 11- Los Registros correspondientes de cada variable son: ; 11.1 PCLT_PRE[1:0] = P ; 11.2 PCTL_VPR[1:0] = E ; 11.3 PMS[H(3:0):L] = N ; 11.4 PMRS = L ; 11.5 PMDS = R ; NT1001 Rev. 1 del 07.08.05 Nota Técnica 328 ; Pasos para programar el PLL. ; 1 - Desactivar el PLL, PCTL_PLLON = 0 ; 2 - ¿Necesito Interrupciones?, Programar P & E, PCTL_BCS = 0 ; 3 - Programar N, PMSH[3:0] + PMSL ; 4 - Programar L, PMRS = L ; 5 - Programar R, PMDS = R ; 6 - Seleccionar modo automático (recomendado), PBWC_AUTO = 1 ; 7 - Activar el PLL, PCTL_PLLON = 1 ; 8 - Esperar la interrupción o que la bandera PLLF = 1 ; 9 - Cambiar a la referencia interna del VCO, PCTL_BCS = 1 ;================================================================= $SET ICS08 ; ICS08 = 1, Vamos a simular en la pastilla ; la velocidad de simulación es menor en la ; PC. ;$SETNOT ICS08 ; ICS08 = 0, Vamos a programar la pastilla ; la aplicación debe correr en tiempo real ;============================================= ; Definiciones del Usuario ;============================================= DELAY32 equ $03E4 ; Retardo para 8 MHz de Bus PTA6 equ 6T ; Puerto A, Bit 6 DDRA6 equ 6T ; Registro de Direccionamiento A, Bit 6 LVI5OR3 equ %00001000 ; CONFIG1, Bit de Operación del LVI, LVI @ ; 5V COPD equ %00000001 ; CONFIG1, Bit de Inhabilitación de Watchdog, ; BIT 0 ON PLLIE equ %10000000 ; PCTL, Bit de Habilitación de interrupciones, ; Bit 7 ON PLLF equ 6T ; PCTL, Bandera de Interrupciones ; pendientes, Bit 6 PLLON equ 5T ; PCTL, Bandera de activación del PLL, por ; defecto en alto BCS equ 4T ; PCTL, Seleccionador del Reloj Base, Bit 4 PRE1 equ 0T ; PCTL, Divisor de la Frecuencia a la potencia ; de Dos, Bit 3 OFF PRE0 equ 0T ; PCTL, Divisor de la Frecuencia a la potencia ; de dos, Bit 2 OFF P equ PRE1|PRE0 ; PCTL_PRE[1:0] = P, Divisor de la frecuencia ; a la potencia de dos VPR1 equ %00000000 ; PCTL, Multiplicador a la potencia de dos del ; VCO, Bit 1 ON VPR0 equ %00000010 ; PCTL, Multiplicador a la potencia de dos del ; VCO, Bit 2 OFF E equ VPR1|VPR0 ; PCTL_VPR[1:0] = E, Multiplicador a la ; potencia de dos del VCO AUTO equ 7T ; PBWC, Habilitador del Modo Automático de ; Control del Ancho de Banda, Bit 7 ON LOCK equ 6T ; PBWC, Bandera de Aviso del PLL ; Inicializado (Cuando AUTO = 1 y LOCK = 1) ; el PLL corre a la frecuencia programada MUL11_8 equ $0 ; PMSH, Multiplicador de la frecuencia del NT1001 Rev. 1 del 07.08.05 Nota Técnica Módulo de Generación de Reloj MUL7_0 N 329 ; VCO, Bits OFF ; PMSL, Multiplicador de la frecuencia del ; VCO, valor de 7 equ MUL11_8|MUL7_0 ; PMS[H:L] = N, Multiplicador de la frecuencia ; del VCO equ $34 VRS7_0 L RDS3_0 equ $D0 equ VRS7_0 equ $08 R equ RDS3_0 ; PMRS, Selector de Rango del VCO ; PMRS = L, Selector de Rango del VCO ; PMDS, Selector de Divisor de Referencia, ; por defecto, siempre 1 ; PMDS = R, Selector de Divisor de ; Rererencia ;============================================= ; Mapa de Memoria del Microcontrolador ;============================================= ;============================================= ; Registro de E/S ;============================================= PORTA equ $0000 ; Dirección, Puerto 0 DDRA equ $0004 ; Registro de Direccionamiento, Puerto 0 ;============================================= ; Módulo Generador de Reloj ;============================================= PCTL equ $0036 ; Registro de Control del PLL, también ; parámetros P & E PBWC equ $0037 ; Registro de Control del Ancho de Banda del ; PLL PMSH equ $0038 ; Registro Selector del Multiplicador N (Alto) PMSL equ $0039 ; Registro Selector del Multiplicador N (Bajo) PMRS equ $003A ; Registro Selector del Rango Lineal L PMDS equ $003B ; Registro Selector del Divisor de Referencia R ;============================================= ; Registro de Configuraciones ;============================================= CONFIG1 equ $001F ; Vector de configuración 1 ;============================================= ; Memoria FLASH ;============================================= FLASH_STARTequ $8000 ; Puntero - Mem.FLASH ;============================================= ; Vectores de Usuario ;============================================= PLLH equ $FFF8 ; Vector de Módulo de Lazo de Fase Cerrada RESET_VEC equ $FFFE ; Puntero del RESET NT1001 Rev. 1 del 07.08.05 Nota Técnica 330 ;============================================= ; OBJETIVO : Inicio de Codif. del Ensam; blador en Memoria FLASH. ;============================================= org FLASH_START ; Inicio Mem. FLASH ;============================================= ; OBJETIVO : Inicializa el PLL para operar ; a la máxima frecuencia de bus ; (8 MHz). ; Prende y apaga el LED cada ; 10 ms, lo que causa una fre; cuencia de 50 Hz ;============================================= START rsp ; Inic.Stack = $00ff clra ; Borra A clrx ; Borra X jsr INIT_CONFIG ; Inicializa el módulo de Configuración jsr INIT_PORTS ; Inicializa Puertos jsr INIT_PLL ; Inicializa Módulo Fase de Lazo Cerrado ESPERA ldhx #10T ; A retardar 10 ms $IFNOT ICS08 ; Solo retarda si se está en modo de ; programación jsr Delay ; Retarda $ENDIF com PORTA ; Conmuta el puerto (50 Hz) bra ESPERA ; Salta al modo de bajo consumo ;============================================= ; INIT_CONFIG : Inicializa registro de confi; guración. ; OBJETIVO : Habilita pin Reset, LVI a 5 V ; y Watchdog inhabilitado. ; ENTRADA : Ninguna ; SALIDA : Ninguna ; REGISTROS ; AFECTADOS : CONFIG1 ;============================================= INIT_CONFIG mov #{LVI5OR3|COPD},CONFIG1 ; LVI a 5V, Watchdog inhabiliado rts ; retorna NT1001 Rev. 1 del 07.08.05 Nota Técnica Módulo de Generación de Reloj 331 ;============================================= ; INIT_PORTS : Inicializa variables y re; gistros. ; OBJETIVO : Inicializa los registros de ; direccionamiento. ; PTA6 = LOW ; PTA6 = HIGH ; ENTRADA : Ninguna ; SALIDA : Ninguna ; REGISTROS ; AFECTADOS : PORTA ;============================================= INIT_PORTS bclr PTA6,PORTA ; Puerto A 6 en bajo bset DDRA6,DDRA ; Puerto A 6 es salida rts ; retorna ;============================================= ; INIT_PLL : Inicializa el módulo de PLL. ; OBJETIVO : Módulo PLL operando a la fre ; cuencia de bus MÁXIMA. ; ENTRADA : Ninguna ; SALIDA : Ninguna ; REGISTROS ; AFECTADOS : PCTL, PMS[H:L], PMSR, PMDS, ; PBWC ;============================================= INIT_PLL bclr PLLON,PCTL ; Inhabilita PLL mov #{P|E},PCTL ; Selecciona reloj del sistema CGMOOUT = ; CGMXCLK/2, ; Programa P = 0T, E = 2T ldhx #N ; Registro de Seleccionador del Multiplicador, ; N = 52T sthx PMSH ; Almacena en el registro mov #L,PMRS ; Selector de Rango, L = 208T mov #R,PMDS ; Selector de Divisor de referencia, R = 8T bset AUTO,PBWC ; PLL decide entre los modos de adquisición y ; tracking bset PLLON,PCTL ; Enciende el PLL brclr PLLF,PCTL,* ; Espera a que se configure el PLL bset BCS,PCTL ; Cambia el PLL a la referencia interna del ; VCO ; CGMOUT = CGMVCLK/2 rts ; Retorno NT1001 Rev. 1 del 07.08.05 Nota Técnica 332 ;============================================= ; DELAY : Genera un retardo de tiempo ; OBJETIVO : Retardo de tiempo, base 1ms ; ENTRADA : H:X = Retardo en ms ; SALIDA : H:X = 0 ; REGISTROS ; AFECTADOS : H:X ; USO : ; MIN = H:X = 1T ; MÁX = H:X = 65535T ; ldhx #500 ; jsr Delay ; retarda 0.5 seg ;============================================= Delay pshx ; [2] Salva X en la pila pshh ; [2] Salva H en la pila ldhx #DELAY32 ; [3] Carga constante de bucle fino Delay0 aix #-1 ; [2] Decrementa H:X en 1 cphx #0 ; [3] LLegó a cero (0) bne Delay0 ; [3] Si no es igual, salta a Delay0 pulh ; [2] Si es igual, recupera H de la pila pulx ; [2] Recupera X de la pila aix #-1 ; [2] Decrementa H:X en 1 cphx #0 ; [3] LLegó a cero (0) bne Delay ; [3] Si no es igual, salta a Delay rts ; [4] retorna ;============================================= ; OBJETIVO : Inicializa el Vector de Reset ; Arranque del programa en la ; memoria Flash y búsqueda de ; la interrupción del módulo de ; fase de lazo cerrado. ;============================================= ;===== Vector de Reinicio de Sistema ======= org RESET_VEC ; Puntero Vec - RESET dw START ; al darse reset salta a Start Listado 21. NT1001 – CGMC. El programa principal inicializa el Módulo de Generación de Reloj con un cristal externo de 4.9152 MHz y generar una frecuencia de bus máxima para luego hacer conmutar el LED PTA6 a 50 Hz. NT1001 Rev. 1 del 07.08.05 Nota Técnica Módulo de Generación de Reloj 333 3.1.6 Simulación PCTL PBWC PMSH (a) Inicie WinIDE. (b) Cargue el archivo NT1001 – CMGC – 23 07 04.asm. (c) Compile. (d) Entre al simulador. (e) Añada “breakpoints” según la figura 186(a). (f) Corra su programa y en la sección de llamado a la rutina de inicialización del módulo reloj (INIT_PLL) observe la ejecución de cada instrucción, ver figura 186(b). (a) Sitúe “breakpoints” en la inicialización del PLL PMSL PMSR PMDS (b) Al llegar al “breakpoint” ejecute cada instrucción paso a paso (a excepción de la línea brclr PLLF,PCTL,*; ejecútela en “Go”) y observe la configuración de un PLL. (c) Luego de la última línea, el simulador (BCS = 1) capta la nueva frecuencia de bus, que es muy cercana a la máxima. (g) Observe la ventana de ciclos, figura 186(c) y note que la frecuencia del bus ha cambiado a aproximadamente 8 MHz. (h) Ejecute el programa en modo multipaso y observe el resultado de la conmutación del LED. (i) Si desea “quemar” su pastilla, revisar la NT0009, Sección 1.9.5. Nota: Recuerde mover su compilación condicional si desea que su programa corra en tiempo real: ; $SET ICS08 $SETNOT ICS08 Figura 186. Simulación del Programa Principal. (a) “Breakpoint”. Sitúe “breakpoints” para visualizar la configuración del módulo de generación de reloj. (b) Registros del Módulo de Generación de Reloj. Ejecute cada instrucción y cuando haya llegado a la subrutina de inicialización, deduzca la variación que causa en el registro. (c) Frecuencia de Bus Límite. Luego de la última línea, el microcontrolador cambia al PLL como reloj de referencia, el cual actúa en el límite del bus. Nota Técnica 334 3.1.7 Conclusión Independientemente del cristal que se posea, para el microcontrolador GP32, se pueden generar frecuencias de buses mayores a la actual. Como el bus del sistema varía, afecta directamente a los módulos como el temporizador, ADC, SCI, que empiezan a calcular en base a esta referencia. Para efecto práctico, se puede realizar un programa que calcule los parámetros de configuración del PLL; por otro lado, esta nota abarca la configuración a máxima frecuencia de bus, demostrando el poder del módulo de generación de reloj. 3.1.8 Referencias 3.1.8.1 Data Técnica del MC68HC908GP32, MC68HC08GP32 (a) http://www.freescale.com/files/microcontrollers/doc/data_sheet/MC68HC908GP32.pdf Pág. 108 – Diagrama de Bloques del Módulo de Generación de Reloj, figura 7-1 Pág. 109 – Lazos Enganchados de Fase (PLL), Sección 7.4.2 Pág. 110 – Descripción funcional de la figura 7-1 Págs. 113 – 117 – Programación del PLL. Págs. 119 y 135 – Circuito de Conexión Externa del PLL. Pág. 122 – 130 – Información General de Registros de Control. Págs. 131 y – Interrupción del PLL. 3.1.8.2 Manual de Referencia del CPU (a) http://www.freescale.com/files/microcontrollers/doc/ref_manual/CPU08RM.pdf 3.1.8.3 Información General de PLL (a) http://users.telenet.be/educypedia/electronics/pll.htm (b) http://www.profesores.frc.utn.edu.ar/electronica/electronicaaplicadaiii/descargas.htm 3.1.8.4 Otro Código Fuente de PLL en ensamblador (c) http://www.robotroom.com/PLL.html 3.1.8.5 Página “web” de Microcontroladores de esta nota (a) http://www.geocities.com/issaiass/index.htm 3.1.9 Problemas Propuestos 3.1.9.1 Calcule los parámetros de configuración del PLL para GP32, para un Cristal de 9.8304 MHz y frecuencia de bus de 8 MHz. 3.1.9.2 Calcule los parámetros del PLL para un Cristal de 4.9152 MHz y frecuencia de bus de 2.5 MHz, y hacer conmutar un LED a 60 Hz utilizando el temporizador. NT1001 Rev. 1 del 07.08.05