Download Introducción Descripción RTC

Document related concepts
no text concepts found
Transcript
 Introducción
Los "Processor Companions" son una familia de chips de Ramtron que incluyen las funciones más
comúnmente utilizadas en sistemas microprocesados. La figura muestra el diagrama de bloques interno.
Como podemos apreciar, un processor companion es un interesante dispositivo que reúne una cantidad de
funciones adicionales útiles, normalmente dispersas, en un circuito integrado. Entre estas funciones, podemos
observar en el diagrama:
Memoria no-volátil
Reloj de tiempo real
Reset por baja tensión
Watchdog timer
Contador de eventos
Número de serie
Comparador.
Descripción
Las funciones de reloj de tiempo real y contador de eventos, son mantenidas en ausencia de tensión por una
pila de respaldo, mientras que la memoria y el número de serie son FRAM.
RTC
El RTC (Real time Clock) provee información de fecha y hora en BCD, y cuenta con un pin para su
alimentación en caso de falta de la alimentación general. La alimentación de respaldo puede proveerse
mediante un capacitor o una batería, el mismo chip se encarga de mantener la carga mediante un tricle-charger
de 15uA, que se mantiene activo hasta tanto la tensión del elemento de back-up iguala a la de alimentación o
llega al máximo de 3,75V. La base de tiempo es un cristal de 32,768KHz externo, y el oscilador posee un
modo de calibración que permite ajustar por software la precisión del RTC.
51 2 H z
C lo ck
Di v id er
Os ci l lat or
W
1 Hz
Up da te
L og ic
3 2.7 68 k H z
cr y st al
CF
Y ea rs
8 b i ts
Mo nt hs
5 b i ts
Da te
6 b i ts
H ou rs
6 b i ts
Min ut es
7 b its
S ec on ds
7 b its
Da ys
3 b i ts
R
Us er Int e rfa ce R eg i ste rs
Reset, watchdog timer, comparador
Entre las demás funciones adicionales encontramos funciones de supervisión como por ejemplo una señal de
RESET, que puede activarse tanto por baja tensión de alimentación como por la expiración de un watchdog
timer interno. La señal RST se activa cuando la tensión de alimentación desciende por debajo de un valor
programable, y se mantiene activa por 100ms luego de que ésta supere nuevamente el valor de umbral. El
watchdog timer también es programable, con tiempos desde los 100ms hasta los 3 segundos. La operación del
watchdog timer es opcional, y el procesador, luego de un reset, puede determinar la causa del mismo leyendo
un flag en un registro interno del processor companion.
Otra función interesante es el comparador, con la entrada inversora conectada a una referencia interna de
1,2V. Esto permite su utilización en funciones de detección de bajo nivel de tensión, como por ejemplo una
advertencia temprana de pérdida de alimentación, que puede utilizarse para generar algún tipo de interrupción,
preferentemente no enmascarable, que posibilite al micro obrar anticipadamente y salvar su contexto de
operación antes de perder completamente la alimentación, por ejemplo.
Primary
Power
e.g. 12V
VDD
(regulated)
Set NMI trip point
VDD trip point
for RST
Comparator
NMI Output
RST
Número de serie
Disponemos además de un número de serie de 64-bits, el cual puede ser escrito y dispone de un flag que lo
torna solo-lectura, es decir, una vez seteado el flag no es posible alterar el número de serie, ni resetear el flag.
Contadores de eventos
Finalmente, disponemos de un doble contador de eventos, que permite llevar la cuenta de las transiciones en
sendos pines dedicados. El contador se alimenta de la misma tensión que el RTC, por lo que funciona también
cuando el dispositivo no tiene alimentación principal, esto puede emplearse, por ejemplo, para detectar y
contabilizar desarmes de gabinetes, apertura de puertas de configuración, etc. El consumo máximo de la
alimentación de backup es de 1uA.
C1P
16-bit Counter
CIN1
C2P
CIN2
16-bit Counter
CC
Operación
Si bien el fabricante, Ramtron, anuncia su interfaz como "2-wire", se trata de un I2C con algunas leves
modificaciones de timing que no afectan el normal desenvolvimiento dentro de un bus. Dentro de la familia
FM31xxx encontramos varias alternativas, con diversos tamaños de memoria FRAM, de 16Kb a 256Kb. La
misma se comporta como una FM24xyy equivalente. La familia 32xxx es similar, pero sin el reloj de tiempo
real. El resto de la circuitería está accesible en una serie de 25 registros que responden a otra dirección de
dispositivo. Desde el punto de vista del master I2C, el processor companion con FRAM se comporta como dos
dispositivos diferentes en el bus.
A continuación, un ejemplo de trabajo con el processor companion en un Rabbit:
#use i2c_devices.lib
#define COMPANION_ADDRESS 0xD0
return_code=I2CRead(COMPANION_ADDRESS,0x01,read_string,1);
printf("I2Cread returned:%d\n", return_code);
if(return_code != 0)
exit(-1);
printf("Cal/control: %02X\n",read_string[0]);
return_code=I2CRead(COMPANION_ADDRESS,0x0A,read_string,1);
printf("I2Cread returned:%d\n", return_code);
if(return_code != 0)
exit(-1);
printf("WDT control: %02X\n",read_string[0]);
return_code=I2CRead(COMPANION_ADDRESS,0x11,read_string,8);
printf("I2Cread returned:%d\n", return_code);
if(return_code != 0)
exit(-1);
printf("Serial number:");
for(i=0;i<8;i++)
printf(" %02X",read_string[i]);
Aplicaciones
La utilidad de un chip como éste adquiere particular interés cuando diseñamos equipos para aplicaciones en
las cuales la seguridad es más que importante. Por ejemplo:
Si necesitamos detectar que estamos por perder la alimentación y grabar algo en memoria no volátil,
podemos usar el comparador con referencia para sensar la tensión de alimentación antes del regulador.
El pin de RST oficia como reset por baja tensión, permitiendo evitar brown-outs.
Si nuestra aplicación es crítica o involucra la seguridad humana, el watchdog dentro del procesador puede
no ser suficiente; disponemos entonces de un watchdog externo al procesador, dentro del processor
companion.
Si la precisión de un RTC que podamos construir con el microcontrolador no es suficiente, disponemos de
uno de alta precisión y estabilidad dentro del processor companion.
Si necesitamos un número de serie para identificar nuestro equipo o validar nuestro software y evitar
copias, disponemos de uno en FRAM que puede bloquearse y pasar a ser de lectura solamente.
Si necesitamos contar o detectar algún tipo de eventos, incluso cuando el equipo está apagado, como por
ejemplo la apertura del gabinete, disponemos de un contador con alimentación de respaldo (la misma del
RTC).
Por lo demás, lo interesante de estas soluciones es disponer de un circuito integrado con todas las funciones
útiles incluidas, cerca del procesador, y a un costo razonable; en vez de tenerlas diseminadas por toda la placa
en forma de componentes diversos.
El siguiente es un circuito típico de aplicación:
Regulador
Vcc
SCL
SCL
CNT1
SDA
SDA
A1
PFI
A0
32768
IRQ
PFO Vback
RST
RST
FM31xx