Sunteți pe pagina 1din 19

Módulo CCP

y módulo
EEPROM

Alumno : Gabriel Alonso


Llerena Quenaya
Módulo CCP
El módulo CCP (Captura / Comparación / PWM) es un
periférico que permite medir y controlar diferentes
eventos.
Un microcontrolador de la gama media de los PIC16
puede tener hasta 2 módulos CCP.
1. Como registro de 16 bits para captura de tiempo al
producirse un evento.
2. Como registro de 16 bits para compararlo con el
valor de cuenta del temporizador TMR1,
pudiendo provocar un evento cuando se
alcanza el valor contenido en este registro.
3. Como registro de 10 bits del ciclo de trabajo de
una señal PWM generada por el microcontrolador.
El microcontrolador PIC16F887 dispone de dos
módulos CCP - CCP1 y CCP2. Ambos son
idénticos en modo normal de funcionamiento,
mientras que las características del PWM
mejorado están disponibles sólo en el modo
CCP1(funcionamiento por disparo de evento
especial).

Condiciones de funcionamiento
Interacción entre los 2 módulos CCP
Módulo CCP1
 Una parte central de este circuito es un registro
CCPR1 de 16 bits que consiste en registros CCPR1L
y CCOR1H. Se utiliza para capturar y comparar sus
valores con los números almacenados en el
registro del temporizador Timer1 (TMR1H y TMR1L).
CCP1 en modo captura
En este modo, el registro del temporizador
Timer1 (que consiste en los TMR1H y TMR1L) se
copia al registro CCP1 (que consiste en los
CCPR1H y CCPR1L) en las siguientes situaciones:

1. Cada flanco de bajada en el pin RC2/CCP1


2. Cada flanco de subida en el pin RC2/CCP1
3. Cada 4 flancos de subida en el pin
RC2/CCP1
4. Cada 16 flancos de subida en el pin
RC2/CCP1
Una combinación de cuatro bits (CCP1M3 - CCP1M0) del
registro de control determina cuál de estos eventos
causará transmisión de dato de 16 bits. Además, se deben
cumplir los siguientes requisitos:
1. El pin RC2/CCP1 debe estar configurado como
entrada
2. El Timer1 debe funcionar como temporizador o
contador síncrono.
CCP1 en modo comparación

En este modo, el valor almacenado en el


registro CCP1 se compara constantemente al
valor almacenado en el registro del
temporizador Timer1.

Al igualarse los valores, el estado lógico en el


pin de salida puede ser cambiado, lo que
depende del estado de bits en el registro de
control (CCP1M3 - CCP1M0). El bit de bandera
CCP1IF se pone a uno simultáneamente.
Para poner el módulo CCP1 en este modo de
funcionamiento, se deben cumplir dos condiciones:
1. El pin RC2/CCP1 debe estar configurado como
salida
2. El temporizador Timer1 debe estar sincronizado
con el reloj interno.
Se tienen las siguientes opciones:

1. El pin CCP2 se pondrá a 1 al producirse la


igualdad entre el módulo CCP2 y el timer1,
además que pondrá el bit 0 del registro PIR2 a 1
el cual puede ser utilizado en las interrupciones
producidas por este módulo.
2. El pin CCP2 se pondrá a 0 al producirse la
igualdad entre el módulo CCP2 y el timer1,
además que pondrá el bit 0 del registro PIR2 a 1
el cual puede ser utilizado en las interrupciones
producidas por este módulo.
3. El pin CCP2 no se ve afectado al momento de
ocurrir la igualdad entre el módulo CCP2 y el
timer1, pero pondrá el bit 0 del registro PIR2 a 1
el cual es utilizado en las interrupciones
producidas por este módulo.
CCP en modo PWM
Las señales de frecuencia y de ciclo de trabajo
variados tienen una amplia gama de aplicaciones
en automatización. Un ejemplo típico es un circuito
de control de potencia.
Los dispositivos que funcionan según este principio
se utilizan con frecuencia en la práctica como
variadores de frecuencia ajustable que controlan
motores eléctricos (velocidad, aceleración,
desaceleración etc.)
Diagrama de bloques del módulo
CCP1 puesto en el modo PWM

Para generar un pulso de


forma arbitraria en el pin
de salida, es necesario
ajustar el período de
pulsos (frecuencia) y la
duración de pulsos.
Periodo de la onda PWM:

T = (PR2 + 1) · 4 · TOSC · Prescaler TMR2

Cuando TMR2 es igual a PR2, en el siguiente


incremento de ciclo se producen tres acciones:

1. El TMR2 se resetea
2. El pin CCPx se pone a 1. Salvo si el ciclo de
trabajo esta fijado a 0 donde el pin CCPx no se
pondrá a 1 nunca (el biestable RS es de borrado
prioritario).
3. El nuevo ciclo de trabajo es cargado desde el
registro CCPRxL al registro CCPRxH que es el que
realmente se compara con el TMR2 para fijar el
ciclo ce trabajo.
Ciclo de trabajo de la onda PWM:

El ciclo de trabajo de PWM se especifica al utilizar


en total 10 bits: los ocho bits más significativos del
registro CCPR1L y los dos bits menos significativos
adicionales del registro CCP1CON(DC1B1 y DC1B0).

Ancho de pulsos = (CCPR1L,DC1B1,DC1B0) * TOSC


* Prescaler TMR2

Si el ciclo de trabajo de la onda PWM es mayor que


el periodo, la señal que sale por la patilla CCPx está
siempre a 1.
Módulo EEPROM
Es un módulo que cuenta con una memoria
EEPROM, para almacenamiento de datos, una
memoria EEPROM es una memoria programable y
borrable eléctricamente de sólo lectura que puede
ser accedida a través del bus I2C.

Se trata de un módulo de almacenamiento


secundario que una vez escrito (programado)
puede almacenar datos incluso aún si se
desconecta la energía a todo el circuito. Este
modulo es ideal si se requiere espacio de
almacenamiento en el circuito, o si desea entender
el funcionamiento de las memorias EEPROM.
EEPROM EXTERNA AT24C256
El AT24C256 forma parte de una familia de EEPROM
externa fabricadas por Atmel que incluye los
modelos AT24C256 (256 Kb), AT24C512 (512 Kb) y
AT24C1024 (1024 Kb). Todos los modelos se
incorporan en forma de integrado de 8 pines.
Una de las ventajas del AT24C256 frente al resto de
módulos de la familia es que incorporan un socket
en el que podemos montar fácilmente cualquier
integrado de la familia.

Como todas las EEPROM, el AT24C256 tiene un vida


útil que depende del número de ciclo de escrituras.
Su vida es muy alta, con 1.000.000 de ciclos de
escritura garantizados (frente a 100.000 de la
EEPROM de Arduino). El tiempo de escritura es de
5ms.

Podemos emplear el AT24C256 para almacenar


variables que necesitamos que persistan entre
reinicios, como valores de calibración, detectar
cuando Arduino ha perdido alimentación, guardar
un contador, o hacer un datalogger.
Esquema de montaje
La conexión es sencilla, simplemente alimentamos el
módulo desde Arduino mediante GND y 5V y conectamos
el pin SDA y SCL de Arduino con los pines
correspondientes del sensor.

S-ar putea să vă placă și