reloj de tiempo real (rtc)
DESCRIPTION
Cortex – LPC1769. Seminario de capacitación docente 2012. Reloj de tiempo real (RTC). Pablo Irrera Condines Ayudante de TP. Cortex – LPC1769. ¿Qué es un RTC?. Es un circuito que posee toda la funcionalidad para la gestión de fecha y hora en unidades de tiempo humanas. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/1.jpg)
Pablo Irrera Condines 1
Reloj de tiempo real (RTC)
Seminario de capacitación docente 2012
Pablo Irrera CondinesAyudante de TP
Cortex – LPC1769
![Page 2: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/2.jpg)
Pablo Irrera Condines 2
Cortex – LPC1769¿Qué es un RTC?
Es un circuito que posee toda la funcionalidad para la gestión de fecha y hora en unidades de tiempo humanas.
![Page 3: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/3.jpg)
Pablo Irrera Condines 3
Cortex – LPC1769
¿Qué ventajas tiene usar un RTC?
• Bajo consumo de energía (importante cuando está funcionando con una pila)
• Libera de trabajo al sistema principal para que pueda dedicarse a tareas más críticas.
• Suele ser más preciso que otros métodos.
¿Cómo mide el tiempo?
Se suele usar un oscilador a cristal de 32,768KHz ya que con un divisor de frecuencia de 215 se obtiene un clock de 1Hz (215 = 32768)
![Page 4: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/4.jpg)
Pablo Irrera Condines 4
Cortex – LPC1769Forma de alimentación
Normalmente se lo alimenta con una pila de litio tipo CR2032 (como en las PC). Otra opción es usar un supercapacitor que se mantiene cargado mientras está encendido el equipo y que puede durar varios días con el equipo apagado.
![Page 5: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/5.jpg)
Pablo Irrera Condines 5
Diagrama en bloques de la alimentaciónCortex – LPC1769
![Page 6: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/6.jpg)
Pablo Irrera Condines 6
Diagrama en bloques funcionalCortex – LPC1769
![Page 7: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/7.jpg)
Pablo Irrera Condines 7
RegistrosCortex – LPC1769
![Page 8: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/8.jpg)
8
Macros para manejar los registrosCortex – LPC1769
Pablo Irrera Condines
![Page 9: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/9.jpg)
Pablo Irrera Condines 9
¿Cómo se usa?Cortex – LPC1769
1. Se habilita el clock2. Se lo “pone en hora”3. Se configuran las interrupciones que usemos4. Se habilita la interrupción desde el NVIC5. Se puede leer la hora en cualquier momento
Mientras se mantenga la alimentación del RTC (por VBAT o por VDD), los contadores seguirán funcionando y todos sus registros mantendrán su valor
Luego de un reset, sólo se debe configurar el NVIC nuevamente
![Page 10: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/10.jpg)
Pablo Irrera Condines 10
Habilitación del clock:Cortex – LPC1769
![Page 11: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/11.jpg)
Pablo Irrera Condines 11
Seteo de la hora/fecha:Cortex – LPC1769
Desde estos registros se puede escribir o leer la hora/fecha
![Page 12: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/12.jpg)
Pablo Irrera Condines 12
Rango de los contadores:Cortex – LPC1769
El cálculo de años bisiestos es automático pero falla para años múltiplos de 100 y no múltiplos de 400
![Page 13: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/13.jpg)
Pablo Irrera Condines 13
Interrupciones del RTC• Por incremento de contador
Se produce por el incremento de cualquiera de los contadores: segundos, minutos, horas, dia del mes, dia de la semana, dia del año, mes, año.
Para habilitarlas se escribe un 1 en los bits correspondientes:
Cortex – LPC1769
![Page 14: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/14.jpg)
Pablo Irrera Condines 14
Interrupciones del RTC• Por alarma
Se produce cuando todos los registros de alarma que no han sido enmascarados son iguales a los contadores correspondientes de fecha y hora
Para enmascarar los registros de alarma, poner un 1 en el bit correspondiente al registro:
Cortex – LPC1769
![Page 15: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/15.jpg)
Pablo Irrera Condines 15
Interrupciones del RTC
Registros de alarma:
Aca escribimos la hora y fecha a la que “suena la alarma”
Cortex – LPC1769
![Page 16: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/16.jpg)
Pablo Irrera Condines 16
Interrupciones del RTC
Flags de interrupción:
Si RTCCIF == 1 : la interrupción ocurrió por incremento de algun contadorSi RTCALF == 1: la interrupción ocurrió por alarma
Se debe escribir un 1 en estos bits para limpiar el flag
Cortex – LPC1769
![Page 17: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/17.jpg)
Pablo Irrera Condines 17
Escribiendo la ISRCortex – LPC1769
![Page 18: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/18.jpg)
Pablo Irrera Condines 18
Registros de backup
Son 5 registros conectados al mismo bloque de alimentación del RTC. De esta manera mantienen su valor cuando se desconecta la alimentación del microcontrolador. Su valor no es afectado por el reset. Pueden usarse para cualquier propósito
Cortex – LPC1769
![Page 19: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/19.jpg)
Pablo Irrera Condines 19
Calibración
El RTC se puede configurar para que se autocalibre para corregir desfasajes del oscilador.
CALDIR = 1 : calibración hacia atrásCALDIR = 0: calibración hacia adelante
Cortex – LPC1769
![Page 20: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/20.jpg)
Pablo Irrera Condines 20
CALVAR: Valor de calibración. Su valor máximo es 131072, valor que corresponde a 36,4 horas.
Calibración hacia atrás (CALDIR = 1):Se usa cuando el reloj adelanta. Cuando el contador de calibración llega al valor CALVAL, se detiene el RTC por un segundo.
Contador de calibración: Contador que se incrementa cada segundo. Cuando su valor es igual a CALVAR, se resetea y se efectúa la calibración configurada.
Calibración hacia adelante (CALDIR = 0):Se usa cuando el reloj atrasa. Cuando el contador de calibración llega al valor CALVAL, los contadores de tiempo se incrementan en 2.
Cortex – LPC1769
![Page 21: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/21.jpg)
Pablo Irrera Condines 21
Para habilitar el contador de calibración:
Escribimos un 0
Cortex – LPC1769
![Page 22: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/22.jpg)
Pablo Irrera Condines 22
Para determinar el valor de CALVAL:Usando el pin CLKOUT se pueden observar los pulsos del oscilador del RTC. Se debe medir la frecuencia de los pulsos y calcular cuantos se necesitan para que haya un corrimiento de 1 segundo. Ese valor se escribe en CALVAL.
Función 1 de P1.27
Cortex – LPC1769
![Page 23: Reloj de tiempo real (RTC)](https://reader034.vdocuments.net/reader034/viewer/2022050802/56815ac1550346895dc8891a/html5/thumbnails/23.jpg)
Pablo Irrera Condines 23
Habilitación de CLKOUT:
=1
Cortex – LPC1769