Clase 17 - RTCC

Views:
 
Category: Entertainment
     
 

Presentation Description

modulo rtcc de in dspic

Comments

Presentation Transcript

slide 1:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES MODULO DE RELOJ DE TIEMPO REAL Y CALENDARIO. Modulo RTCC de la Familia DSPIC33E/PIC24E

slide 2:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E El módulo de reloj y calendario en tiempo real RTCC proporciona un completo reloj- calendario en formato Binario-Decimal BCD. Algunas de las características claves del módulo RTCC son: • Reloj 24 horas hora militar. • Calendario de 100 años hasta el año 2099 • Conteo de los segundos minutos horas días de la semana fecha mes y año con compensación de año bisiesto. • Representación del tiempo calendario y alarma en formato BCD • Alarma programable con modo de repetición • Generación de ondas por medio de alarma o salida de reloj 1 Hz en el pin RTCC • Calibración del RTCC El módulo RTCC proporciona una referencia de tiempo a una aplicación que se ejecuta en el dispositivo con mínima a ninguna intervención de la CPU. La fecha y la hora actuales se supervisan a través de un seguimiento a un conjunto de registros de conteo que se actualizan una vez por segundo. El RTCC y el Oscilador Secundario SOSC siguen en funcionamiento cuando el CPU es reseteado tirando el pin MCLR a bajo.

slide 3:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Diagrama de bloques del RTCC

slide 4:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTROS DEL MÓDULO RTCC Los registros del módulo RTCC se organizan en tres categorías: • Registros de control RTCC - RCFGCAL: Registro de Configuración y Calibración RTCC - PADCFG1: Registro de Control y Configuración PAD - ALCFGRPT: Registro de Configuración de Alarma • Registros de valores RTCC - RTCVAL cuando RTCPTR 1:0 11: Registro de valor de Año - RTCVAL cuando RTCPTR 1:0 10: Registro de valor de Mes y Día - RTCVAL cuando RTCPTR 1:0 01: Registro de valor de Día de la semana y horas - RTCVAL cuando RTCPTR 1:0 00: Registro de valor de Minutos y Segundos • Registros de valor de alarma - ALRMVAL cuando ALRMPTR 1:0 10: Registro de valor de Alarma Mes y Día - ALRMVAL cuando ALRMPTR 1:0 01: Registro de valor de Alarma Día de la semana Alarma y Horas - ALRMVAL cuando ALRMPTR 1:0 00: Registro de valor de alarma de Minutos y Segundos

slide 5:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Mapeo de registros Para limitar el interfaz de registro se accede a los registros de valor de alarma RTCC y Valor RTCC a través de los punteros de registro correspondientes. El valor del registro RTCC utiliza los bits RTCPTR RCFGCAL 9:8 para seleccionar el par de registro del temporizador que desee. Los bits RTCPTR RCFGCAL 9:8 disminuyen de forma automática cada vez que la parte superior de ocho bits del registro RTCVAL se accede por la aplicación de usuario. Después de que alcancen un valor de 00 cualquier acceso posterior a estos ocho bits superiores por la aplicación de usuario no tiene ningún efecto sobre los bits RTCPTR. El registro de valor de alarma RTCC utiliza los bits ALRMPTR ALCFGRPT 9:8 para seleccionar el par de registros de alarma deseada. Los bits ALRMPTR ALCFGRPT 9:8 disminuyen de forma automática cada vez que los 8 bits superiores del registro ALRMVAL se accede por la aplicación de usuario. Después de que alcancen un valor de “00” cualquier nuevo acceso a estos ocho bits superiores de la aplicación de usuario no tiene ningún efecto sobre los bits ALRMPTR.

slide 6:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Mapeo de registros RTCVAL Mapeo de registros ALRMVAL

slide 7:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Debido a que el núcleo de 16 bits no distingue entre 8-bit y 16-bit en las operaciones de lectura la lectura ya sea los bytes superiores o inferiores disminuye el valor de los bits ALRMPTR. Lo mismo se aplica a los bits RTCPTR. Mientras se escriben los valores de los registros RTCPTR y ALRMPTR se decrementan sólo al escribir en los bytes RTCVALH y ALRMVALH respectivamente. Escribiendo a los bytes RTCVALL y ALRMVALL no afecta a los bits de puntero correspondientes.

slide 8:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E OPERACIÓN RTCC El módulo RTCC está destinado para trabajar con un oscilador de tiempo real a través de un cristal de reloj externo de 32768 khz. El prescaler divide la frecuencia del oscilador de cristal para producir la actualización de 1 hz de frecuencia para el reloj y el calendario. La fecha y la hora actuales es seguida a través de unos registros de conteo de 7 bytes que se actualizan una vez por segundo. Cada contador cuenta en BCD ya que permite una fácil conversión de dígitos decimales para la visualización o impresión. Es de notar que los contadores del día del mes y numero del mes se reinician en uno. todos los otros contadores se reinician en cero. El numero de días del mes y correcciones para los años bisiestos se ajustan automáticamente. Topo esto es válido hasta el año 2100 después de la aplicación inicial de la energía los contadores contienen información aleatoria.

slide 9:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Temporizador RTCC

slide 10:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Nota: El Bit de habilitación del Oscilador Secundario LPOSCEN en el registro de control del oscilador OSCCON 1 se setea para que el módulo RTCC para ser conectados a los pines SOSCO y SOSCI.

slide 11:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Escribir en el temporizador RTCC La aplicación de usuario puede configurar la hora y el calendario escribiendo los segundos minutos hora día de la semana fecha mes y año deseados a los registros RTCC. Durante el funcionamiento normal escrituras a los registros de valor RTCC no se permiten. Intentos de escrituras aparecerán como que se ejecutan normalmente pero los contenidos de los registros permanecerán sin cambios. Para escribir en los registros de valor RTCC el bit RTCWREN RCFGCAL 13 debe setearse. Setear el bit RTCWREN escrituras a los registros de valor RTCC. Por el contrario el borrado de este bit impide cualquier escritura. El bit RTCWREN se puede borrar en cualquier momento. Para setearlo siga estos pasos: 1. Escribir 0x55 a NVMKEY. 2. Escribir 0xAA a NVMKEY. 3. Setear el bit RTCWREN usando una instrucción de un solo ciclo. El módulo RTCC se habilita activando el bit RTCEN RCFGCAL 15. Para setear o borrar el bit RTCEN el bit RTCWREN RCFGCAL 13 debe ser puesto a uno. Si necesita que todo el reloj horas minutos y segundos deba corregirse se recomienda que se desactive el módulo RTCC para evitar la operación de escritura coincidencial cuando el temporizador se este incrementando. Esto previene que el reloj cuente durante una escritura en el valor de registro RTCC.

slide 12:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Si sólo una única ubicación requiere modificación tales como horas minutos o segundos el reloj no debe ser detenido. Por ejemplo un solo campo es modificado para corregir el horario de verano. Detener el reloj para modificar un solo valor introduce un error en el cronometraje. Además una escritura en los registros de minutos o segundos reinicia el prescaler. Para escribir en el reloj de la marcha la aplicación de usuario debe esperar hasta que el bit RTCSYNC RCFGCAL 12 sea borrado antes de escribir en los registros de la hora normal. El bit RTCSYNC es seteado para 32 flancos de reloj 1 m antes de que un desbordamiento se produzca en el pre-escalador.

slide 13:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Habilitar Acceso al temporizador RTCC MOV 0x55 W0 MOV W0 NVMKEY MOV 0xAA W0 MOV W0 NVMKEY BSET RCFGCAL RTCWREN Setea el bit RTCWREN Desactivar el módulo RTCC BCLR RCFGCAL RTCEN Limpia bit RTCEN Escribe a Timer RTCC

slide 14:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E MOV RCFGCAL W0 OR 0x300 W0 MOV W0 RCFGCAL Establece puntero RTCPTR a 3 MOV 0x0007 W0 Establece Año 0x00YY MOV 0x1028 W1 Establece Mes y Día 0xMMDD MOV 0x0110 W2 Establece Día de la semana y la hora 0x0WHH MOV 0x0000 W3 Establece minutos y segundos 0xMMSS MOV W0RTCVAL MOV W1RTCVAL MOV W2RTCVAL MOV W3RTCVAL Habilitar el módulo RTCC BSET RCFGCAL RTCEN Setea el bit RTCEN Desactivar el acceso al temporizador RTCC BCLR RCFGCAL RTCWREN Borra bit RTCWREN

slide 15:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Nota: La alarma se debe desactivar ALRMEN 0 mientras que se escriben en los registros de valor RTCC de otro modo una falsa alarma podría ser generada.

slide 16:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Lectura del contador de tiempo RTCC El tiempo y la información del calendario se obtiene mediante la lectura de los bytes de registros adecuados. El temporizador RTCC se lee en la marcha. Para leer la hora actual el temporizador RTCC no debería detenerse. Si lo hace podría introducir un error en su cronometraje. Como el conteo de reloj se produce de forma asíncrona a la lectura del contador es posible que leer el contador mientras se incrementa . Esto puede dar lugar a una lectura de la hora incorrecta. Por lo tanto para garantizar una lectura correcta de todo el contenido del reloj o la parte de interés debe ser leída sin que se produzca un desbordamiento de reloj. Para leer el reloj en la marcha la aplicación de usuario debe esperar hasta que el bit RTCSYNC RCFGCAL 12 se convierte en 0 y luego leer los registros de cronometraje. El bit RTCSYNC introduce 32 flancos de reloj 1 m antes de que un desbordamiento este a punto de ocurrir en el pre-escalador. Si la aplicación del usuario no puede esperar a que el bit RTCSYNC se convierta en 0 el método alternativo es leer los registros de cronometraje dos veces. Si los datos es la misma en ambos tiempos se considera que es válida. En ese caso se requiere un mínimo de dos y un máximo de tres accesos.

slide 17:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Espere a que el bit RTCSYNC llegue a 0 while RCFGCALbits.RTCSYNC 1 Lea el registro de cronometraje RTCC RCFGCALbits.RTCPTR 3 año RTCVAL month_date RTCVAL wday_hour RTCVAL min_sec RTCVAL

slide 18:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E ALARMA RTCC Las alarmas están disponibles para interrumpir la CPU en un momento determinado o en intervalos de tiempo periódicos tales como una vez por minuto o una vez por día. Durante cada actualización del reloj el RTCC compara los registros de alarma seleccionados con los correspondientes registros de reloj. Cuando se produce una coincidencia un evento de alarma es generado. Los bits de máscara de alarma AMASK 3:0 en el registro de configuración de alarma ALCFGRPT 13:10 se utilizan para enmascarar registros que no tienen que ser comparados.

slide 19:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Alarma RTCC

slide 20:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Por ejemplo si desea establecer una alarma para cada mañana a las seis 06:00:00 en formato 24 horas realice el siguiente procedimiento: 1. En el registro Valor de alarma ALRMVAL cargue el byte horas con 06 BCD el byte minutos con 00 BCD y el byte segundos con 00 BCD. 2. Enmascarar los bytes de numero y día de mes día de la semana bytes y comparar horas minutos y segundos configurando los bits de la máscara de direccionamiento AMASK para 0B0110. Cada día cuando llega el tiempo el desborde de 5:59:59 se genera un evento de alarma. Nota: La alarma se debe desactivar ALRMEN 0 en el registro de configuración de alarma ALCFGRPT al escribir en ALRMVAL de lo contrario puede dar lugar a una falsa alarma. ALRMVAL se puede leer en cualquier momento.

slide 21:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Desactivar la alarma ALCFGRPTbits.ALRMEN 0 Escribir en el Registro de alarma Hora: 06:00:00 ALCFGRPTbits.ALRMPTR 2 ALRMVAL 0x0000 ALRMVAL 0x0006 ALRMVAL 0x0000 Seleccione Máscara de alarma para comparar horas minutos y segundos ALCFGRPTbits.AMASK 0b0110 Active la alarma ALCFGRPTbits.CHIME 1 ALCFGRPTbits.ALRMEN 1

slide 22:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Selección del modo de alarma La alarma se activa mediante el bit ALRMEN ALCFGRPT 14 que puede generar una sola vez alarma y una alarma recurrente. ALARMA DE UNA SOLA VEZ Este evento de alarma se genera cuando el reloj coincide con los cuartetos de alarma seleccionados. La alarma se desactiva automáticamente en un evento de alarma. Complete los siguientes pasos para configurar alarma para una sola vez : 1. Borrar el bit de habilitación de timbre CHIME en el registro de configuración de alarma ALCFGRPT 14. 2. Configure los bits de valor del contador de repetición de alarma ARPT 7:0 a 0 . ALARMA RECURRENTE TIMBRE DESABILITADO Cuando CHIME 0 los bits de valor del contador de repetición de alarma ARPT 7:0 se decrementan en cada evento de alarma y la alarma se desactiva cuando el contador de repetición se convierte en cero. TIMBRE HABILITADO La repetición indefinida de la alarma se puede producir si el bit de habilitación de timbre se activa CHIME. Cuándo TIMBRE 1 los bits de valor del contador de repetición de alarma APRT 7:0 en el registro ALCFGRPT son decrementados de forma indefinida cada vez que se emite la alarma.

slide 23:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Interrupción de alarma y salida El evento de alarma puede generar una interrupción RTCC o cambiar el pin de salida RTCC. Una interrupción RTCC se habilita mediante el respectivo bit de habilitación de interrupción RTCC RTCIE. El nivel de prioridad de la interrupción se configura con los bits RTCIP 2:0 y deben ser escritos con un valor distinto de cero para que el RTCC pueda ser una fuente de interrupción. Además un evento de alarma puede activar o desactivar el pin RTCC generando de esta manera una señal de reloj periódica a la mitad de la tasa de alarma. El pin RTCC también es capaz de dar salida al segundo de reloj. La aplicación de usuario puede seleccionar entre la salida de alarma o el segundo de salida del reloj usando el bit RTSECSEL PADCFG1 1. Cuando RTSECSEL 0 la alarma se invierte la señal en cada evento de alarma. Cuándo RTSECSEL 1 selecciona el segundo reloj.

slide 24:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E CALIBRACIÓN DEL RTCC La calibración se proporciona para compensar las variaciones de la frecuencia del cristal nominal y del cristal externo sobre un rango de temperatura. La calibración se lleva a cabo mediante la adición o sustracción de conteos de reloj cada minuto. Adición de conteos acelera el reloj y sustracción de conteos retrasa el reloj. El número de pulsos eliminados sustracción para la calibración negativo o insertados añadido para la calibración positiva se configura con la carga del valor de los bits de calibración del RTCC CAL 7:0 en el registro de configuración y Control de calibración RTCC RCFGCAL 7:0. Cada etapa de calibración o agrega o resta cuatro ciclos del oscilador para cada minuto 60 x 32.768 kHz 1.966.080 ciclos del oscilador. Esto equivale a ± 2034 partes por millón ppm de ajuste por paso de calibración o ± 535 segundos por mes lo que permite la calibración de la precisión de cronometraje dentro de los tres segundos por mes.

slide 25:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Valores de ajuste de Calibración

slide 26:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Para establecer el grado de calibración necesarios en una aplicación dada el siguiente método el cual está especialmente adaptado a los entornos de fabricación se puede utilizar: 1. Activar salida el reloj segundo 1 Hz en el pin RTCC medir la frecuencia del oscilador de cristal y calcular la desviación de frecuencia del cristal en Hz. 2. Frecuencia de error 32.768 kHz - Frecuencia medida. 3. Calcular error del contador por minuto debido a la desviación de frecuencia. Error de conteo Frecuencia Error x 60. 4. Ajuste de los bits CAL 7:0 para error de conteo/ 4. Nota: La aplicación de usuario puede utilizar un sensor de temperatura para ajustar el valor de calibración para compensar la desviación de temperatura.

slide 27:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Escribiendo el valor de calibración El módulo RTCC realiza la calibración o ajusta el prescaler por cada minuto El punto de calibración se encuentra en el flanco de reloj 512 º después de que el contador de segundos se desborde en BCD de 59 a 00.

slide 28:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Punto de Calibración

slide 29:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E En el punto de calibración el módulo RTCC lee el valor de 8 bits con signo CAL 7:0 y ajusta el contador del pre-escalador acordado. Cuando el módulo RTCC lee el valor este no debería ser actualizados por la CPU asegurando así que el módulo RTCC lea el valor de calibración correcto. Cuando el byte de segundos es cero y el bit HALFSEC RCFGCAL 11 se coloca en 1 el valor de calibración debe ser actualizado.

slide 30:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Leer el temporizador RTCC para comprobar los segundos Si el byte es 0 segundos esperar a que el bit HALFSEC se convierta en 1 RCFGCALbits.RTCPTR 0 segundo RTCVAL 0xFF if segundo 0 while RCFGCALbits.HALFSEC 0 Escribir en el valor de calibración RCFGCALbits.CAL CalValue

slide 31:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE CONFIGURACION Y CALIBRACION DE RTCC RCFGCAL Byte superior Bit 15 Bit 8 RTCEN: Bit de habilitación de RTCC 1 Modulo RTCC es habilitado. 0 Modulo RTCC es deshabilitado. Bit14: No implementado leído como ‘0’. RTCWREN: Bit de habilitación de escritura en los valores de registro RTCC 1 Registro RTCC puede ser escrito por la aplicación del usuario. 0 Registro RTCC esta bloqueado para ser escrito por la aplicación del usuario. RTCEN ---- RTCWREN RTCSYNC HALFSEC RTCOE RTCPTR1:0

slide 32:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE CONFIGURACION Y CALIBRACION DE RTCC RCFGCAL Byte superior Bit 15 Bit 8 RTCSYNC: Bit de Sincronización de lectura de valores de registro RTCC 1 Una transferencia esta apunto de ocurrir en 32 flancos de reloj aproximadamente 1ms 0 Una transferencia no ocurrirá. HALFSEC: Bit de estado de mitad de segundo. 1 Segunda mitad de periodo de un segundo. 0 Primera mitad de periodo de un segundo. RTCOE: Bit de Habilitación de salida de RTCC 1 Salida de RTCC es habilitada. 0 Salida de RTCC es deshabilitada. RTCEN ---- RTCWREN RTCSYNC HALFSEC RTCOE RTCPTR1:0

slide 33:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE CONFIGURACION Y CALIBRACION DE RTCC RCFGCAL Byte superior Bit 15 Bit 8 RTCPTR1:0: Bit de Puntero de valor de registro de RTCC Señala el valor correspondiente del registro RTCC al leer el registro RTCVAL. Los bits de RTCPTR decrementa su valor en cualquier acceso al registro RTCVAL hasta alcanzar ‘00’. RTCEN ---- RTCWREN RTCSYNC HALFSEC RTCOE RTCPTR1:0

slide 34:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE CONFIGURACION Y CALIBRACION DE RTCC RCFGCAL Byte inferior Bit 7 Bit 0 CAL7:0: Bit de calibración de desviación de RTCC 01111111 Ajuste positivo máximo Añade 508 pulsos de reloj a RTCC cada un minuto. • • 00000001 Ajuste mínimo positivo Añade 4 pulsos de reloj a RTCC cada un minuto. 00000000 No hay ajuste. CAL7:0

slide 35:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE CONFIGURACION Y CALIBRACION DE RTCC RCFGCAL Byte inferior Bit 7 Bit 0 CAL7:0: Continuación 11111111 Mínimo ajuste negativo Sustrae 4 pulsos de reloj de RTCC cada 1 minuto • • 10000000 Máximo ajuste negativo Sustrae 512 pulsos de reloj de RTCC cada 1 minuto. CAL7:0

slide 36:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE CONTROL Y CONFIGURACION DE PAD PADCFG1 Byte inferior Bit 7 Bit 0 Bits 15:2: No implementados leídos ‘0’. RTSECSEL: Bit de selección de salida de reloj en segundos RTCC 1 Reloj de RTCC en segundos es selección para el pin RTCC 0 Alarma de pulsos RTCC es seleccionada para el pin RTCC Bit 0 PMTTL: No usado para el modulo de RTCC. Nota : Para habilitar la salida RTCC el bit RTCOE RCFGCAL 10 debe ser seteado ---- ---- ---- ---- ---- ---- RTSECSEL PMPTTL

slide 37:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE CONFIGURACION DE ALARMA ALCFGRPT Byte superior Bit 15 Bit 8 ALRMEN: Bit de Habilitación de Alarma 1 Alarma es Habilitada limpiada automáticamente después de un evento de alarma cuando ARPT7:0 0x00 y CHIME 0 0 Alarma es deshabilitada. CHIME: Bit de habilitación de timbre. 1 Timbre es habilitado Los Bits ARPT7:0 se les permite variar desde 0x00 a 0xFF. 0 Timbre es deshabilitado Los Bits ARPT7:0 se detienen hasta alcanzar 0x00 ALRMEN CHIME AMASK3:0 ALRMPTR1:0

slide 38:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE CONFIGURACION DE ALARMA ALCFGRPT Byte superior Bit 15 Bit 8 AMASK3:0: Bit de Configuración de mascara de Alarma 0000 Cada medio de segundo 0001 Cada segundo 0010 Cada 10 segundos 0011 Cada Minuto 0100 Cada Hora 0100 Una vez al día 0101 Una vez al mes 0100 Una vez al año. ALRMEN CHIME AMASK3:0 ALRMPTR1:0

slide 39:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE CONFIGURACION DE ALARMA ALCFGRPT Byte superior Bit 15 Bit 8 AMASK3:0: Continuación 1001 Una vez al Año Cuando la configuración para Febrero 29 una vez cada 4 años 101x Reservado 11xx Reservado ALRMPTR1:0: Bits de puntero de registro de valor de alarma. Apuntaa al corespondiente valor de registro de alarma cuando se lee los registros ALRMVALH y ALRMVALL. El valor de ALRMPTR1:0 se decrementa en Cada lectura o escritura de ALRMVALH hasta alcanzar ‘00’. ALRMEN CHIME AMASK3:0 ALRMPTR1:0

slide 40:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE CONFIGURACION DE ALARMA ALCFGRPT Byte inferior Bit 7 Bit 0 ARPT7:0:Bits de valor de conteo de repetición de alarma. 11111111 Alarma se repetirá 255 veces mas. • • • 00000000 Alarma no se repetirá. El contador se decrementara en cualquier evento de alarma. El contador impide que se desborde de 0x00 a 0xFF a menos que CHIME 1. ARPT7:0

slide 41:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE AÑO RTCVAL Cuando RTCPTR 1:0 11 Byte inferior Bit 7 Bit 0 Bits 15:8: No implementados leídos como ‘0’. YRTEN3:0: Valor de Código Binario en dígitos decimales de decenas de año contiene valores de 0 a 9. YRONE3:0: Valor de Código Binario en dígitos decimales de unidades de año contiene valores de 0 a 9. YRTEN3:0 YRONE3:0

slide 42:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE MESES Y DIAS RTCVAL Cuando RTCPTR 1:0 00 Byte superior Bit 15 Bit 8 Bits 15:13: No implementados leídos como ‘0’. MTHTEN0: Valor de Código Binario en dígitos decimales de decenas de meses contiene valores de 0 a 1. MTHTONE 3:0: Valor de Código Binario en dígitos decimales de unidades de meses contiene valores de 0 a 9. ---- ---- ---- MTHTEN0 MTHONE3:0

slide 43:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE MESES Y DIAS RTCVAL Cuando RTCPTR 1:0 10 Byte inferior Bit 7 Bit 0 Bits 7:6: No implementados leídos como ‘0’. DAYTEN1:0: Valor de Código Binario en dígitos decimales de decenas de Días contiene valores de 0 a 3. DAYONE 3:0: Valor de Código Binario en dígitos decimales de unidades de Días contiene valores de 0 a 9. ---- ---- DAYTEN1:0 DAYONE3:0

slide 44:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE DIAS DE SEMANAS Y HORAS RTCVAL Cuando RTCPTR 1:0 01 Byte Superior Bit 15 Bit 8 Bits 15:11: No implementados leídos como ‘0’. WDAY2:0: Valor de Código Binario en dígitos decimales de días de semana contiene valores de 0 a 6. ---- ---- ---- ---- WDAY2:0

slide 45:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE DIAS DE SEMANAS Y HORAS RTCVAL Cuando RTCPTR 1:0 01 Byte Inferior Bit 7 Bit 0 Bits 7:6: No implementados leídos como ‘0’. HRTEN1:0: Valor de Código Binario en dígitos decimales de decenas de horas contiene valores de 0 a 2. HRONE3:0: Valor de Código Binario en dígitos decimales de unidades de horas contiene valores de 0 a 9. ---- ---- HRTEN1:0 HRONE3:0

slide 46:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE MINUTOS Y SEGUNDOS RTCVAL Cuando RTCPTR 1:0 00 Byte Superior Bit 15 Bit 8 Bits 15: No implementados leídos como ‘0’. MINTEN 2:0: Valor de Código Binario en dígitos decimales de decenas de minutos contiene valores de 0 a 5. MINONE 3:0: Valor de Código Binario en dígitos decimales de unidades de minutos contiene valores de 0 a 9. ---- MINTEN2:0 MINONE3:0

slide 47:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE MINUTOS Y SEGUNDOS RTCVAL Cuando RTCPTR 1:0 00 Byte inferior Bit 7 Bit 0 Bits 7: No implementados leídos como ‘0’. SECTEN 2:0: Valor de Código Binario en dígitos decimales de decenas de segundos contiene valores de 0 a 5. SECONE 3:0: Valor de Código Binario en dígitos decimales de unidades de segundos contiene valores de 0 a 9. ---- SECTEN2:0 SECONE3:0

slide 48:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE ALARMA DE MESES Y DIAS ALRMVAL Cuando ALRMPTR 1:0 10 Byte superior Bit 15 Bit 8 Bits 15:13: No implementados leídos como ‘0’. MTHTEN0: Valor de Código Binario en dígitos decimales de decenas de meses contiene valores de 0 a 1. MTHTONE 3:0: Valor de Código Binario en dígitos decimales de unidades de meses contiene valores de 0 a 9. ---- ---- ---- MTHTEN0 MTHONE3:0

slide 49:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE ALARMA DE MESES Y DIAS ALRMVAL Cuando ALRMPTR 1:0 10 Byte inferior Bit 7 Bit 0 Bits 7:6: No implementados leídos como ‘0’. DAYTEN1:0: Valor de Código Binario en dígitos decimales de decenas de Días contiene valores de 0 a 3. DAYONE 3:0: Valor de Código Binario en dígitos decimales de unidades de Días contiene valores de 0 a 9. ---- ---- DAYTEN1:0 DAYONE3:0

slide 50:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE ALARMA DE DIAS DE SEMANA Y HORAS ALRMVAL Cuando ALRMPTR 1:0 01 Byte Superior Bit 15 Bit 8 Bits 15:11: No implementados leídos como ‘0’. WDAY2:0: Valor de Código Binario en dígitos decimales de días de semana contiene valores de 0 a 6. ---- ---- ---- ---- WDAY2:0

slide 51:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE ALARMA DE DIAS DE SEMANA Y HORAS ALRMVAL Cuando ALRMPTR 1:0 01 Byte Inferior Bit 7 Bit 0 Bits 7:6: No implementados leídos como ‘0’. HRTEN1:0: Valor de Código Binario en dígitos decimales de decenas de horas contiene valores de 0 a 2. HRONE3:0: Valor de Código Binario en dígitos decimales de unidades de horas contiene valores de 0 a 9. ---- ---- HRTEN1:0 HRONE3:0

slide 52:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE ALARMA DE MINUTOS Y SEGUNDOS ALRMVAL Cuando ALRMPTR 1:0 00 Byte Superior Bit 15 Bit 8 Bits 15: No implementados leídos como ‘0’. MINTEN 2:0: Valor de Código Binario en dígitos decimales de decenas de minutos contiene valores de 0 a 5. MINONE 3:0: Valor de Código Binario en dígitos decimales de unidades de minutos contiene valores de 0 a 9. ---- MINTEN2:0 MINONE3:0

slide 53:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E REGISTRO DE VALOR DE ALARMA DE MINUTOS Y SEGUNDOS ALRMVAL Cuando ALRMPTR 1:0 00 Byte inferior Bit 7 Bit 0 Bits 7: No implementados leídos como ‘0’. SECTEN 2:0: Valor de Código Binario en dígitos decimales de decenas de segundos contiene valores de 0 a 5. SECONE 3:0: Valor de Código Binario en dígitos decimales de unidades de segundos contiene valores de 0 a 9. ---- SECTEN2:0 SECONE3:0

slide 54:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Realizar el diseño de un reloj digital cuya hora se pueda visualizar por una interfaz grafica externa a través del reloj de tiempo real interno RTCC del DSPIC256EP806MU

slide 55:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E

slide 56:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E int year0 mesydia0 diasyhora0 minyseg0 // Glcd module connections sbit GLCD_D7 at RE1_bit sbit GLCD_D6 at RE0_bit sbit GLCD_D5 at RF1_bit sbit GLCD_D4 at RF0_bit sbit GLCD_D3 at RD7_bit sbit GLCD_D2 at RD6_bit sbit GLCD_D1 at RD5_bit sbit GLCD_D0 at RD4_bit sbit GLCD_D7_Direction at TRISE1_bit sbit GLCD_D6_Direction at TRISE0_bit sbit GLCD_D5_Direction at TRISF1_bit sbit GLCD_D4_Direction at TRISF0_bit sbit GLCD_D3_Direction at TRISD7_bit sbit GLCD_D2_Direction at TRISD6_bit sbit GLCD_D1_Direction at TRISD5_bit sbit GLCD_D0_Direction at TRISD4_bit

slide 57:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E sbit GLCD_CS1 at LATE3_bit sbit GLCD_CS2 at LATE2_bit sbit GLCD_RS at LATD1_bit sbit GLCD_RW at LATD2_bit sbit GLCD_EN at LATD3_bit sbit GLCD_RST at LATE4_bit sbit GLCD_CS1_Direction at TRISE3_bit sbit GLCD_CS2_Direction at TRISE2_bit sbit GLCD_RS_Direction at TRISD1_bit sbit GLCD_RW_Direction at TRISD2_bit sbit GLCD_EN_Direction at TRISD3_bit sbit GLCD_RST_Direction at TRISE4_bit // End Glcd module connections int year0X0001 mesydia0X0101 diasyhora0X0101 minyseg0X0000 int mesydiaA0X1028 diasyhoraA0X0110 minysegA0X0000

slide 58:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E Void RTCC_assembler asm MOV 0x55 W0 asm MOV W0 NVMKEY asm MOV 0xAA W0 asm MOV W0 NVMKEY asm BSET RCFGCAL RTCWREN// Setea el bit RTCWREN RCFGCALbits.RTCEN 0 Limpia bit RTCEN desactiva modulo ALCFGRPTbits.ALRMEN0 //desactivar alarma Escribe a Timer RTCC

slide 59:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E RCFGCALbits.RTCOE 1 // habilita el pulso de salida RTCC PADCFG1bits.RTSECSEL 0 // salida de la alarma //Configura la fecha y hora al RTC RCFGCALbits.RTCPTR 3 RTCVAL year RTCVAL mesydia RTCVAL diasyhora RTCVAL minyseg RCFGCALbits.RTCEN 1 // activa modulo RCFGCALbits.RTCWREN 0 // deshabilita escritura en RTCC delay_ms1000

slide 60:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E void main ANSELC0 ANSELD0 ANSELE0 ANSELB0 OSCCONbits.LPOSCEN1 //activa el oscilador secundario RTCC_assembler // inicializa escritura RTCC y graba valores iniciales PADCFG1bits.RTSECSEL1 // habilita salida de reloj a un segundo RCFGCALbits.CAL1 //ajusta a cero RCFGCALbits.RTCOE1 // habilita el pin RTCC se puede usar para verificar que el RTCC está funcionando Keypad_Init Glcd_Init Glcd_Set_Fontcharacter8x7 8 7 32 Glcd_Fill0 Glcd_Write_Text“Reloj Digital:" 0 2 1

slide 61:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E while1 whileRCFGCALbits.RTCSYNC0 RCFGCALbits.RTCPTR3 yearRTCVAL mesydiaRTCVAL diasyhoraRTCVAL minysegRTCVAL // transforma de bcd a decimal anio Bcd2Dec year 0x00FF mes Bcd2Decmesydia 0xFF008 dia Bcd2Dec mesydia 0x00FF hora Bcd2Dec diasyhora 0x00FF minn Bcd2Decminyseg 0xFF008 seg Bcd2Dec minyseg 0x00FF

slide 62:

Prof. Rafael Surga UNEXPO-Pto.Ordaz MICROPROCESADORES Modulo RTCC de la Familia DSPIC33E/PIC24E shortToStranio texanio shortToStrmes textmes shortToStrdia textdia shortToStrhora texthora shortToStrminn textminn shortToStrseg textseg Glcd_Write_Chartxtanio 1 4 1 //ordenar Glcd_Write_Chartxtmes 2 4 1// ordenar Glcd_Write_Chartxtdia 3 4 1//ordenar Glcd_Write_Chartxthora 4 4 1//ordenar Glcd_Write_Chartxtminn 5 4 1//ordenar Glcd_Write_Chartxtseg 6 4 1//ordenar

authorStream Live Help