Sunteți pe pagina 1din 319

MICROCONTROLADORES GAMA

ALTA Y ARQUITECTURAS
MIXTAS

Departamento de Electrónica Instrumentación


y Control.
Cont ol
Profesor:
Ing Vladimir Trujillo Arias.
Ing.
V
L
Contenido.
A
D „ CAPITULO 1. Introducción
Evolución de los sistemas digitales
I
M „
I
R
„ Estado del Arte
„ Tendencias
T
R
„ Conceptos generales de procesadores
U „ Qué es un microprocesador
J „ Q é
Qué es un
n microcontrolador
mic ocont olado
I
L
„ Qué es un DSP
L „ Qué es un Dispositivo Lógico Configurable
O
„ Terminología
í utilizada en la arquitectura de
A procesadores
R
I
A
S
V
L
Contenido.
A
D
I
„ CAPITULO 2. Conceptos Básicos de
M
I Microcontroladores Gama Alta
R

„ Familias de Microcontroladores de Altas


prestaciones
T
R
U
J
I
„ Arquitecturas de Microcontroladores de
L Gama Alta
L
O

A
R
I
A
S
V
L
Contenido.
A
D „ CAPITULO 3. Microcontroladores PIC de Gama Alta.
I Familia 18
M
I
„ Arquitectura
R „ Capacidades de computo
„ Memoria
T
R
„ Periféricos especiales
U „ Módulos HW
J „ Set de inst
instrucciones
cciones
I
L „ CAPITULO 4. Herramientas de programación y
L simulación
O
„ Lenguaje Ensamblador
A „ Compiladores C
R „ Simuladores
S u ado es (MPLAB
( y PROTEUS)
O US)
I
A
S
V
L
Contenido.
A
D
I
„ CAPITULO 5. Arquitecturas Mixtas
Introducción
M
I „
R

T
„ Sistemas Multiprocesadores
R
U
„ Arquitecturas Electrónicas Paralelas
J
I
„ P
Procesadores
d en Sistemas
Si t d
de
L
L
Telecomunicaciones y Sistemas
O
I d ti l
Industriales
CAPITULO 6. Proyecto
y Final.
A
R „
I
A
S
Evolución de los Sistemas
V
L
Digitales
g
A
D
I
„ La aparición del transistor, condujo a su
M
I uso como conmutador (lógica binaria).
R

T
„ Aparición de técnicas de integración
R
U
electrónica (Microelectrónica), primeros
J
I
circuitos
i it integrados
i t d Digitales.
Di it l
L
L
O
„ Circuitos Integrados
g Monolíticos
A
R
I
A
S
Evolución de los Sistemas
V
L
Digitales
g
A
D
I
„ Clasificación:
Según la forma en que se realizan
M
I „

físicamente:
R

T
R „ Según el semiconductor: Silicio, Arseniuro de
U
J
Galio,, Silicio – Germanio
I
L
„ Según el Transistor: Bipolares, CMOS, BICMOS
L „ Según
g el número de transistores: SSI,, MSI,, LSI,,
O
VLSI, ULSI y GLSI.
A
R
I
A
S
Evolución de los Sistemas
V
L
Digitales
g
A
D
I
„ Clasificación:
Según la forma en que se realiza el diseño
M
I „

visto p
por el desarrollador:
R

T
R „ Los Circuitos Integrados Digitales Monolíticos
U
J
((CIDM)) Normalizados
I
L
„ Los Circuitos Integrados Digitales Monolíticos
L (CIDM) especificados por el usuario.
O

A
R
I
A
S
Evolución de los Sistemas
V
L
Digitales
g
A
D
I
„ Según el número de transistores:
M
I Nivel de Integración # de # de Año
R Transistores compuertas
T
R
Pequeña
ñ escala de integración
ó SSI 10 a 100 1 a 10 1960
U
J
Mediana escala de integración MSI 100 a 1000 10 a 100 1965
Gran escala de integración LSI 1000 a 10000 100 a 1000 1970
I
L
L
O
Muy Gran escala de integración
VLSI
10K a 100K 1K a 10K 1978
Ultra Gran escala de integración 100K a 1M 10K a 100K 1985
A
R
I
ULSI
A
S
Giga Gran escala de integración
GLSI
>1.000.000 >100.000 1995
Evolución de los Sistemas
V
L
Digitales
g
A
D
I
„ Circuitos Integrados Digitales
M
I
M
Monolíticos
lí i (CIDM) Normalizados
N li d
R
„ CIDM normalizados de función fija. Los
T cuales poseen una arquitectura predefinida
y su comportamiento no se puede alterar.
R
U
J
I
(C t d
(Contadores, sumadores,
d etc.)
t )
L
L
„ CIDM normalizados Programables.
O
„ Programables
bl ded Arquitectura Fija.
A „ Programables de Arquitectura Configurable.
R
I
A
S
Evolución de los Sistemas
V
L
Digitales
g
A
D „ CIDM normalizados Programables de Arquitectura
I
M
Fija Caracterizados por poseer un Hardware
Fija. Hardware, en el
I que las conexiones entre los elementos que lo
R
componen, no pueden ser modificadas. Pueden
T ser Combinacionales
C bi i l o secuenciales.
i l
R
U
„ Los combinacionales se definen mediante una
J tabla de verdad que rige su comportamiento,
comportamiento
I
L
como el caso de las memorias de acceso aleatorio.
L „ Los secuenciales p
poseen una CPU,, que
q sigue
g un
programa almacenado en memoria.(Aquí se Hallan
O

A los Microprocesadores y Microcontroladores)


R
I
A
S
Evolución de los Sistemas
V
L
Digitales
g
A
D „ CIDM normalizados Programables de Arquitectura
I Configurable. La característica principal de estos
M
I
dispositivos es la de modificar su función o
R comportamiento, utilizando una parte de los
elementos que los componen y/o cambiando la
T
R
interconexión entre ellos.
U „ Poseen un elevado contenido de elementos lógicos
J en su interior
interior.
I
L „ Utilizados especialmente en el diseño de sistemas
L electrónicos digitales complejos, en aplicaciones
O
d paralelismo
de l li o en aquellos
ll casos en que losl
A
dispositivos existentes no son los adecuados.
R „ FPGA’s,
FPGA s, PLD’s
PLD s
I
A
S
Evolución de los Sistemas
V
L
Digitales
g
A
D
I
„ Los Circuitos Integrados Digitales Monolíticos
M
I
(CIDM) especificados
f por el usuario. Estos
R dispositivos se fabrican por petición de un
T usuario y en grandes
d cantidades,
d d
especialmente para producción en serie.
R
U
J
I „ Requieren de potentes herramientas de
L
L desarrollo electrónico con el fin de ser
diseñados por el que los requiere.
O

A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
„ Las empresas líderes a nivel mundial, en
M
I
sistemas embebidos de uso general son:
R
„ INTEL (Microprocesadores)
TEXAS (Microcontroladores y DSP)
T
R „
U
J „ ALTERA (PLD’S
(PLD S, FPGA’S
FPGA S DSP’S)
DSP S)
I
L
L
„ XILINX (PLD’S, FPGA’S DSP’S)
O
„ MICROCHIP
C OC (
(Microprocesadores)
d )
A
R
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
„ INTEL.
M
I
R
„ A nivel de Procesadores producen
T
dispositivos para:
Computadores de escritorio
R
U „
J
I
L
„ Intel Pentium 4 Extreme Edition
L
O
„ Intel Pentium 4
A „ Intel Celeron
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
Procesadores para computador de escritorio
M
I Pentium 4 XE Pentium 4 Celeron
R
Hyper-Threading
yp g Hyper-Threading
yp g No Hyper-Threading
yp g
T
R Dos niveles de Caché Un nivel de caché de Un nivel de caché de
U hasta de 2MB hasta 2 MB hasta 256 K
J
H
Hasta 3
3.7
7 Gh
Ghz d
de reloj
l j H
Hasta 3
3.6
6 Gh
Ghz d
de reloj
l j H
Hasta 2
2.8
8 Gh
Ghz d
de reloj
l j
I
L
Bus Frontal de 800 MHz Bus Frontal de 400 MHz
L Bus Frontal de 1066 MHz
O
Tecnología de procesador Tecnología de procesador Tecnología de procesador
A
de 90 nm de 90 nm de 130 nm
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
„ Computadores Portátiles
M
I
„ Intel Pentium M
R
„ Mobile Intel Pentium 4
T
„ Intel Celeron M
R
U „ Mobile Intel Celeron
J
I
L
„ Servidores
L
O
„ Intel Itanium 2
„ Intel Xeon Processor
A
R „ Intel Pentium 4 processor
I
A
S
V
L
Estado del Arte y Tendencias
A
D
Procesadores para computadores portátiles.
I
M
Procesador Intel Intel Intel Celeron M Mobile Intel
I Pentium M Pentium 4 Processor Celeron
R mobile Processor
T
Tecnología
l í de
d Tecnología
l í de
d Tecnología
l í de
d Tecnología
l í de
d
R
procesador de 90 nm procesador procesador de 90 procesador de 130
U
de 90 nm nm nm
J Un nivel
U i l de
d Caché
C hé hasta
h t Un nivel
U i l de
d Un nivel
U i l de
d Caché
C hé Un nivel
U i l de
d Caché
C hé
I de 2MB Caché hasta hasta de 1MB hasta de 256kB
L
de 1MB
L
O Velocidad Velocidad hasta 1.5
15 Velocidad hasta 2.5
25
Velocidad de 2.13 GHz hasta 3.46 GHz velocidad para GHz velocidad para
A
con velocidad para ultra GHz ultra bajo consumo ultra bajo consumo
R
bajo consumo de 1.2 de 1 Ghz de 800 Mhz
I Gh
Ghz
A Bus Frontal de 533 MHz Bus Frontal Bus Frontal de 400 Bus Frontal de 400
S
de 533 MHz MHz MHz
V
L
Estado del Arte y Tendencias
A
D
Procesadores para servidores.
I
M
Intel Pentium 4 con Intel Itanium 2 Permite Intel Xeon Permite
I tecnología Hyper- trabajo multiprocesador trabajo multiprocesador
R Threading o procesador dual o procesador dual
T
R Tecnología de procesador Tecnología de procesador Tecnología de procesador
U de 90 nm de 90 nm de 90 nm
J
I
Un nivel de Caché hasta Tres niveles de Caché 32k, Tres niveles de Caché ??k,
L
de 2MB 256k y hasta de 9MB en el 1M y hasta de 8MB en el
L
nivel 3 nivel 3
O Velocidad hasta 3.46 GHz Velocidad hasta 1.6 GHz Velocidad hasta 3.66 GHz

A
Bus Frontal de 800 MHz Bus Frontal de 400 MHz Bus Frontal de 677 MHz
R
con 128 bits de ancho y con 128 bits de ancho y
I
BW de I/O de 6.4 Ghz BW de I/O de 14 Ghz
A
S
V
L
Estado del Arte y Tendencias
A
D
I
„ Procesadores para equipos de red.
M
I
„ Intel IXP4XX que son procesadores utilizados para
R dispositivos de comunicaciones, como
T
en tado es gate
enrutadores, gateways,
a s Cont
Control
ol ind
industrial
st ial y
R aplicaciones de automatización, telemetría e
U
J instrumentación lectores RDIF
instrumentación, RDIF.
I
L „ Procesadores para equipos Inalámbricas
L
O „ Intel PCA
PCA. Diseñado funcionar en equipos de
A
comunicaciones móviles, como PDA, celulares y
R equipos similares.
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D „ Microcontroladores Texas Instruments
I
M
Familia MSP430
I
„ Poseen un manejo de potencia muy bajo, con
una CPU de tipo RISC de 16 bits
R

Poseen una serie de periféricos analógicos y


T
R „
U
J
digitales, para mediciones precisas..
I „ Incluyen ADCs, DACs, amplificadores
L
L
operacionales, comparadores, drivers LCD y
O sistemas supervisorios de nivel de voltaje.
voltaje
A „ Ultra-bajo consumo de potencia.
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D „ Microcontroladores Texas Instruments Familia
TMS470
I
M
I
„ Poseen una CPU tipo RISC de 32-bits RISC
R

„ Manejan velocidades de reloj por encima de los 60 MHz


T
R „ La memoria de programa puede alcanzar hasta 1MB
Posee
osee alta
a ta integración
teg ac ó co
con u
una
aggran
a variedad
a edad de
U
J
„
I periféricos.
L
L „ Ampliamente utilizado en aplicaciones de:
- Industria automotriz
O
„
A
R
„ - Sistemas Industriales
I „ - Aplicaciones generales de sistemas embebidos
A
S
V
L
Estado del Arte y Tendencias
A
D „ Procesadores Digitales de señales
I
M „ DSP d
de Alt
Alto rendimiento
di i t TMS320C6000
I
„ Con velocidades por encima de 1 GHz.
R
„ Los TMS320C64x y los TMS320C62x p poseen ALUs que
q trabajanj con
T punto fijo
R
„ Los TMS320C67x manejan punto flotante
U
J „ Utilizados en aplicaciones donde se manejen señales de gran ancho
I de banda.
L
„ Óptimos para aplicaciones de digitalización de audio e imágenes
L
O „ Rendimiento del orden de 1200 a 8000 MIPS para punto fijo y de
600 a 1350 MFLOPS (Millones de operaciones de coma flotante por
A
segundo) para punto flotante
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
„ DSP TMS320C5000 Alta eficiencia
M
I de energía.
R

T
„ Estos DSPs son optimizados para
R
U
elaborar equipos portátiles de uso
J
I
personal. l Como
C reproductores
d t
L
L personales de audio, receptores GPS,
equipos médicos portátiles, telefonía
O

celular,, y cámaras digitales.


g
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
„ DSP TMS320C2000 Optimizado
M
I para Control.
R

T
„ Optimizados para trabajo en técnicas
R
U
de control digital.
J
I
L
L
O

A
R
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
„ PLD (Programable Logic Device)
M
I „ MAX II (CPLD)
Bajo consumo de energía, alta densidad
R
„

Utiliza memoria FLASH


T
R „
U
J „ Soporta voltajes de 1
1.8
8-V
V, 2.5
2 5-V
V & 3.3
3 3-V
V
I
L
L
„ MAX
O
„ Bajo
B j consumo y densidad
d id d moderada.
d d
A
R
„ Soporta voltajes de 2.5-V, 3.3-V o 5.0-V
I
A
S
V
L
Estado del Arte y Tendencias
A
D „ FPGA (Field Programable Gate Array)
I
M „ CICLONE II
I
R „ Soporta Nios II embedded processor
„ Multiplicadores digitales 18x18 para DSP
DSP’ss Embebidos
T
R „ Amplio portafolio de IP.
U
J „ CICLONE
I
L
„ Soporta Nios II embedded processor
L „ Amplio portafolio de IP.
O
„ STRATIX II (Alta Densidad)
A
R
„ Soporta Nios II embedded processor
I „ Interfaces de I/O de alta velocidad
A
S „ Amplio portafolio de IP.
V
L
Estado del Arte y Tendencias
A
D „ STRATIX (Alta Densidad)
Soporta Nios II embedded processor
I
M „
I
R
„ Bloques para DSP
„ Interfaces de I/O de alta velocidad
T
R
„ Amplio portafolio de IP.
U
J
I
L
„ STRATIX GX (Alta Densidad)
L „ Todas las características de los otros STRATIX
O
„ Transceptores de 3.125-Gbps
A „ Amplio portafolio de IP
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
„ SPARTAN 3 E (FPGA)
M
I
„ Posee alrededor de 1.2 millones de
R compuertas
T
R
„ Tecnología de 90nm
U
J
„ VIRTEX 4 ((FPGA))
COOL RUNNER (CPLD)
I
L „
L
O „ Soporta voltajes de 1
1.5
5a3
3.3V
3V en sus
A sistemas I/O
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
„ IP CORE
M
I
R
„ Herramientas de desarrollo para diseño
T
de controladores
controladores. Y procesadores de
R
U
diversos tipos que corren sobre sus
J
I
plataformas
l t f h
hardware.
d
L
L
O
„ Processor Central.
A
R
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
„ Microcontroladores de Gama Media de
M
I la familia 16FXXX
R

T
„ Microcontroladores de Gama Alta de la
R
U
familia 18FXXXX
Procesadores digitales de Señales
J
I „
L
L
O
30FXXX
A
R
I
A
S
Conceptos Generales de
V
L
procesadores
A
D „ EL MICROPROCESADOR.
I

Definición: Es el dispositivo encargado de realizar cálculos


M
I „
R aritméticos y lógicos y que temporiza y controla las operaciones
T
d llos d
de demás
á elementos
l t d de un sistema.
i t
R
U
„ Partes:
J
I
- Unidad
U id d de
d control.
t l
L - Unidad Aritmético-lógica (ALU).
L
O
- Registros: - Contador de programa.
programa
- Registros generales.
A
R - Registro de estado.
I
- Stack.
A
S
Conceptos Generales de
V
L
procesadores
A
D
„ Reloj de funcionamiento:
I -CCiclo
c o de reloj:
e oj se
señal
a de reloj
e oj a la
aeentrada
t ada de
del p
procesador.
ocesado
M
I - Ciclo de máquina: periodo de ejecución de una operación
R completa del procesador.
T
- Ciclo
Ci l de
d instrucción:
i t ió periodo
i d que se requiere
i para
R ejecutar una determinada instrucción.
U
J
I
L
L
O

A
R
I
A
S
Conceptos Generales de
V
L
procesadores
A
D
I
„ MICROCONTROLADOR
M
I
R
„ Un microcontrolador es un circuito
T
integrado de alta escala de integración
R
U
que incorpora la mayor parte de los
J
I
elementos
l t que conforman
f un
L
L controlador.
O

A
R
I
A
S
Conceptos Generales de
V
L
procesadores
A
D Características:
I
M
„ Este circuito integrado programable contiene todos los
I
R
componentes de un computador .
„ No alcanzan el nivel de p
procesamiento de p por ejemplo,
j p , un 8086,,
T aunque poseen la ventaja de poder trabajar sin memoria
R externa .
U
„ El microcontrolador es un computador dedicado. En su memoria
J
sólo
ól reside
id un programa d destinado
ti d a gobernar
b una aplicación
li ió
I
determinada, una vez programado y configurado el
L
L
microcontrolador solamente sirve para gobernar dicha tarea.
O „ Es un computador completo,
completo aunque de limitadas prestaciones
prestaciones,
que está contenido en el chip de un circuito integrado y se
A destina a gobernar una sola tarea.
R
I
A
S
Conceptos Generales de
V
L
procesadores
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
DSP Definición
A
D
I
„ Estrictamente hablando, el término DSP se
M
I
aplica a cualquier chip que trabaje con
R señales representadas de forma digital.
T
R
„ Un Procesador Digital de Señales es un tipo
U
J
de microprocesador o microcontrolador,
I increíblemente rápido y poderoso para
L
L operaciones repetitivas en las que se realicen
un gran número de sumas y multiplicaciones.
O

A
R
I
A
S
V
L
Que hace a un DSP un DSP?
A
D
I
„ Capacidad de realizar operaciones de
M
I multiplicación y acumulación (MACs) en
sólo un ciclo de reloj.
R

T
R
U
„ Manejo de aplicaciones en tiempo real
Arquitectura que soporte un flujo de
J
I „
L
L
O
datos a alta velocidad hacia y desde la
A
unidad de cálculo y memoria.
R
I
A
S
V
L
Que hace a un DSP un DSP?
A
D
I
„ Unidades DMA (Direct Memory Acess)
M
I
R
„ Generadores de direcciones (DAG’s)
T „ Mecanismo efectivo de saltos para
ejecución de loops
R
U
J
I
L
„ Alta velocidad de procesamiento de
L
O
operaciones aritméticas
A
R
I
A
S
Diferencias entre
V
L
Microcontrolador y DSP
A
D
I
„ Estructura de memoria que poseen.
M
I „ Cantidad de unidades de ejecución que
R
poseen, (operaciones en paralelo).
El DSP tiene características diseñadas para
T
R „
U
J
soportar tareas de altas prestaciones,
I
L
repetitivas y numéricamente intensas.
Microprocesadores de propósito general y
L
O „

A
microcontroladores no están especializados
R
I
para ninguna aplicación en especial.
especial
A
S
Requerimientos HW y
V
L
Operaciones Comunes
A
D
I
„ Los DSP’s tienen en común ciertas
M
I características como:
R

„ Capacidad aritmética especializada de alta


velocidad
T
R
U
J
I
„ Buena capacidad de transferencia de datos
L hacia el mundo real.
L
O
„ A
Acceso a múltiples
últi l arquitecturas
it t de
d
A memoria.
R
I
A
S
Requerimientos HW y
V
L
Operaciones Comunes
A
D
I
„ Las operaciones típicas en los DSPs
M
I son:
R

„ Sumas
T
R
U
„ Multiplicación
J
I
„ R t d
Retardos
Manejo de matrices y arreglos de datos.
L
L „
O

A
R
I
A
S
Requerimientos HW y
V
L
Operaciones Comunes
A
D
I
„ La suma y Multiplicación. Requiere
M
I el uso de:
R

„ Dos operandos
T
R
U
„ Alto rendimiento.
J
I
„ Al
Almacenamiento
i t deld l resultado.
lt d
L
L
O

A
R
I
A
S
Requerimientos HW y
V
L
Operaciones Comunes
A
D
I
„ Manejo de Arreglos
M „ Búsqueda
Bú d ded valores
l de
d lugares
l consecutivos
i de
d
I
R
memoria
„ Copia de datos de memoria a memoria
T
R „ Multiplicación y suma en paralelo.
U
J „ Acceso múltiple a memoria
I
L
„ Registros temporales
L
O
„ Eficiente g
generación de direcciones.
„ Características especiales como retardos o
A
R
direccionamiento cíclico
I
A
S
V
L
Arquitectura Von Newman
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Arquitectura Hardvard
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Arquitectura
A i Harvard
H d Extendida
E did o Super
S
V Harvard ARChitecture (SHARC).
L
A
D
I
„ Esta arquitectura incluye una memoria
M
I
d caché
de hé (Reserva),
(R ) la
l cuall es utilizada
ili d
R
para almacenar instrucciones y datos
T que seráná reutilizadas
l d por la l CPU,
liberando así los dos buses de la
R
U

arquitectura Hardvard y permitiéndoles


é
J
I

ser utilizados en la búsqueda y


L
L

almacenamiento de datos, mientras se


O

A
R j
ejecutan las instrucciones en caché
I
A
S
Arquitectura
A i Harvard
H d Extendida
E did o Super
S
V Harvard ARChitecture (SHARC).
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Arquitectura
A i Harvard
H d Extendida
E did o Super
S
V Harvard ARChitecture (SHARC).
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Arquitectura
A i Harvard
H d Extendida
E did o Super
S
V Harvard ARChitecture (SHARC).
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Arquitectura Von Newman
V
L
Modificada.
A
D „ La arquitectura Von Neuman modificada, permite
I
M
múltiple acceso a memoria por instrucción
instrucción,
I valiéndose de un truco simple que consiste en hacer
R
el reloj de acceso a memoria más rápido que el de
T i
instrucciones.
i
R
U
„ Por ejemplo el DSP32C de Lucent con reloj de 80Mhz,
J tiene un ciclo de instrucción compuesto por cuatro
I
L
estados de máquina. Mientras que el acceso a
L memoria de este DSP es posible realizarlo cada
O
estado
d ded máquina
á i siendo
i d posible
ibl entonces realizar
li
A cuatro accesos a memoria por cada ejecución de
R instrucción
I
A
S
V
L
CPU
A
D
I
„ CISC Aprox. 80 instrucciones
M
I Arquitectura Von Neuman
R

T
„ RISC Aprox.
Aprox 30 instrucciones.
instrucciones
R
U
Arquitectura Hardvard
SISC Diseños específicos
í (Controladores
J
I „
L
L
O
p
Empotrados o embebidos))
A
R
I
A
S
V
L
Segmentación
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Ortogonalidad
A
D
I
„ La ortogonalidad de las instrucciones
M
I hace posible ejecutar cualquier
operación, sobre cualquier registro,
R

utilizando cualquier modo de


T
R
U
J
I
direccionamiento
direccionamiento.
L
L
O

A
R
I
A
S
V
L
Memoria
A
D „ RAM. Los datos que manejan los programas varían
I continuamente, y esto exige que la memoria utilizada
M
I
para ello debe ser de lectura y escritura.
R „ ROM. En este tipo de memoria el programa se graba
T
en el chip durante el proceso de fabricación mediante
R
el uso de máscaras. Se aconseja este tipo de
U memoria cuando se precisan series muy grandes,
J con el fin de disminuir costos de fabricación
fabricación.
I
L „ OTP. Este modelo de memoria solo puede grabarse
L una vez por parte del usuario, utilizando el mismo
O
procedimiento
di i que con la
l memoriai EPROM.
EPROM
A
Posteriormente no se puede borrar. Su bajo precio y
R la sencillez de la g
grabación aconsejan
j este tipo
p de
I memoria para prototipos finales y series de
A
S
producción cortas.
V
L
Memoria
A
D „ EPROM. La grabación de esta memoria se realiza mediante
I un dispositivo físico gobernado desde un computador
M personal. En la superficie de la cápsula del microcontrolador
I existe una ventana de cristal por la que se puede someter el
R chip a rayos ultravioletas para producir su borrado y
emplearla nuevamente
nuevamente.
T
R „ EEPROM. La grabación es similar a las memorias OTP y
U EPROM, pero el borrado se hace eléctricamente. Puede
J puede ser programada y borrada muchas veces
I
L
„ FLASH. Se trata de una memoria no volátil, de bajo
L
consumo, que se puede escribir y borrar en circuito al igual
O
que las EEPROM
EEPROM, pero suelen disponer de mayor capacidad
que estás ultimas. El borrado sólo es posible con bloques
A completos y no se puede realizar sobre posiciones
R concretas. Son muyy recomendables en aplicaciones
p en las
I que sea necesario modificar el programa a lo largo de la vida
A del producto
S
La Gama Alta de los PIC
(18F452)
V
L
Características Generales
A
D
I
„ Código compatible con la familia 16 y
M
I 17 de los PIC
R

T
„ Reloj que puede trabajar por encima de
R
U
10 MIPs.
Uso de
d cristall de
d 40 Mhz.
h
J
I „
L
L „ Cristales de 4 Mhz a 10 Mhz utilizando un
multiplicador de frecuencia PLL.
O

A
R
I
„ Instrucciones de 16 bits con bus de
A
S
datos de 8 bits.
V
L
Características Generales
A
D
I
„ Prioridad de interrupciones
M
I
R
„ Multiplicador hardware de 8 x 8 que
T
funciona en un solo ciclo de máquina.
máquina
Tres pines para manejo de
R
U „
interrupciones externas.
J
I
L
L
O
„ Manejo de niveles de corriente de 25
A mA. en modo fuente y sumidero
R
I
A
S
V
L
Características Generales
A
D
I
„ Timer 1 de 16 bits, Timer 2 de 8 bits.
M
I
R
„ Timer 3, (no lo posee la gama media),
T
de 16 bits (65535 conteos)
conteos).
Dos módulos de
R
U „
Captura/Comparación/PWM.
ó
J
I
L
L
O
„ Módulo de comunicación serial con
A soporte para RS-485 y RS-232
R
I
A
S
V
L
Características Generales
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Características Generales
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Oscilador.
„ LP Cristal de baja potencia.
„Se poseen 3 bits „ XT Cristal resonador de cuarzo
(FOSC2 FOSC1 y
(FOSC2,
FOSC0) para la „ HS Cristal resonador de alta velocidad
configuración del (por encima de 8 Mhz.)
tipo de oscilador a „ HS + PLL Cristal de alta velocidad con PLL
utilizar. habilitado.
„ RC Oscilador RC externo.
„ RCIO Resistor externo y capacitor con
pin I/O habilitado.
„ EC Reloj externo.
„ ECIO Reloj externo con pin I/O
habilitado
V
L
Oscilador en modo HS, XT, LP
A
D
I
M
I
R

T
R
U
J
I
L
L Una capacitancia
p elevada,
O
incrementa la estabilidad del
A oscilador, pero también incrementa
R los tiempos de inicio del oscilador
I
A
interno.
S
Oscilador en modo RC
Con el Oscilador en modo,,
RC, FREC/4 esta disponible
en el pin OSC2.
Si FREC/4
C/ no se necesita,
i se
recomienda utilizar el modo
RCIO para ahorrar
RCIO,
corriente.
El modo RCIO,, es igual
g al
modo RC, con la diferencia
de que el pin OSC2 se
comportat como un pini de
d
I/O normal (RA6).
V
L
Oscilador Externo.
A
D
I Cuando se utiliza el oscilador externo,, se puede
p utilizar el
modo EC, el cual se tiene FREC/4 por el pin OSC2.
M
I
R
También se puede tomar el modo ECIO, para ahorro de
T corriente,
i ell cuall OSC2 queda
d como un pin i de
d propósito
ó i
R
U
general (RA6)
J
I
L
L
O

A
R
I
A
S
PLL
V
L
PLL
A
D
I
„ El PLL se utiliza solo cuando el oscilador se ha
M
I
configurado
f en modo HS.
R
„ Si la programación del cristal se ha realizado
T
R
en otro modo, el PLL no se habilita y la
U
J
fuente de reloj directa proviene de OSC1.
I
L
„ Existe un timer que bloquea el PLL, hasta que
L
O
no se halla logrado por parte de él el
A
enganche al cuádruplo de la frecuencia de
R
I
entrada
entrada.
A
S
V
L
Cambio de Fuente de Reloj.
A
D
I
„ Los PIC 18Fxx2 permiten cambiar el uso del
M
I
oscilador de alta velocidad, por uno de baja
R velocidad (como el oscilador de 32Khz de
T timer1)) esa selección
l ó se hace
h en ell BIT
OSCSEN del registro de configuración.
R
U
J
I „ El BIT OSCSEN se selecciona antes de
L
L programar el PIC, para que se pueda producir
el cambio de oscilador.
O

A
R
I
A
S
Registro OSCON

„ BIT 7 a 1 No utilizados
„ BIT 0 SCS
SCS: System
S Cl
Clockk Switch
S i h bit
bi
„ Cuando el BIT OSCSEN este en 0 y T1OSCEN este en 1:
„ 1 = Utilice el oscilador del timer 1.
1
„ 0 = Utilice el oscilador primario.
„ Si el oscilador del Timer1 no esta habilitado,, cualquier
q escritura
en el BIT SCS es ignorada y se utiliza el oscilador principal
Diagramas de Tiempo de
Transiciones

El contador de programa, se incrementa cuando ocurre


la octava transición de estabilización del Timer 1
Diagramas de Tiempo de
Transiciones

Para la transición entre el oscilador de timer1 y OSC1, existe


un tiempo de estabilización de 1024 ciclos de osc1, antes de
comenzar a contar los 8 periodos de sincronización de reloj,
reloj
después de lo cual el reloj del micro funciona con OSC1.
Diagramas de Tiempo de
Transiciones
Diagramas de Tiempo de
V
L
Transiciones
A
D
I
„ Cuando la transición de oscilador es
M
I
entre ell timer1
i 1 y OSC1,
OSC1 existe
i un
R
tiempo de estabilización de 1024 ciclos
T d osc1 y luego
de l un tiempo necesario
para que el PLL enganche la frecuencia
R
U

de reloj de OSC1, antes de comenzar a


J
I

contar los 8 periodos de sincronización


L
L

de reloj, después de lo cual el reloj del


O

A
R micro comienza a funcionar con OSC1.
I
A
S
Retardos Considerados al iniciar
V
L
el microcontrolador.
A
D
I
„ Al iniciar el procesador se definen 3 retardos.
M
I
„ El primero es dado por el PWRT el cual provee un
R retardo promedio de 72 ms. para la estabilización
T
de la circuitería
ci c ite ía interna.
inte na
R
U
„ El segundo temporizador es el OST (Oscillator
J Start up Timer) que espera a que el oscilador
Start-up
utilizado se estabilice.
I
L
L
O
„ La secuencia de retardo es PWR más OST
OST.
A
„ Al utilizar el PLL, aparece un tercer retardo (TPLL )
R utilizado para esperar que el PLL enganche la
I
A frecuencia de entrada (2 ms típico).
S retardo=PWRT+OST+TPLL
V
L
Fuentes de Reset
A
D
I
„ La familia PIC18FXXX Posee los siguientes
M
I
tipos de reset:
R
„ Power-on Reset (POR)
T „ MCLR Reset Durante el funcionamiento normal
R
U „ MCLR Reset Durante el modo SLEEP
J
I „ WDT Reset durante operación normal
L
L „ Programmable Brown-out Reset (BOR)
O
„ Instrucción de RESET.
A
R „ Reset debido al llenado del Stack.
Reset debido al vaciado del Stack.
I
A „
S
V
L
Organización de la memoria
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Organización de la memoria
A
D
I
„ El PIC18FXX2 posee un contador de
M
I programa de 21 bits que permite ubicar
una capacidad de memoria de 2Mega
R

Palabras
T
R
U
J
I
„ L posiciones
Las i i de
d memoria i mas allá
llá de
d
L
L la memoria física construida se leen
como 0.
O

A
R
I
A
S
V
L
Organización de la memoria
A
D
I
„ El PIC18F452 posee 32 K Bytes de
M
I memoria FLASH de programa,
agrupados de a 2 Bytes, con el fin de
R

contener instrucciones complejas.


T
R
U
J
I
„ P llo tanto
Por t t estet di
dispositivo
iti puede
d
L
L almacenar 16mil instrucciones simples.
O

A
„ El vector de RESET se halla en la
R
I
dirección 0000h y el de interrupciones
A
S
en las posiciones 0008h y 0018h.
V
L
Organización de la memoria
A
D
I Hay un stack de 31 niveles, lo
M que permite tener 31 posibles
I
R
sub rutinas anidadas.

T
Existen
E isten dos vectores
ecto es de
R interrupciones, para manejo de
U interrupciones de alta y baja
J
I
prioridad.
L
L
32K de memoria en pasos de 2
O en dos
dos, para un total de 16K de
palabras. De 7FFF en adelante
A
R
no existe memoria
I i
implementada
l t d físicamente
fí i t y se
A lee como 0.
S
V
L
Organización
g de la memoria (Pila)
A
D
I
„ El Stack de los PIC18FXX2 posee 31 palabras
M
I
de 21 bits, direccionadas por un apuntador de
R Stack de 5 bits.
T
R
„ Cada vez que se produce una interrupción o
U
J
un llamada a subrutina, el apuntador del Pila
I se incrementa en 1 y el valor del contador de
L
L programa es almacenado en una de las
palabras de 21 bits.
O

A
R
I
A
S
V
L
Organización
g de la memoria (Pila)
A
D
I
„ Cuando ocurre una instrucción de tipo return,
M
I
retfie
f o retlw el dato almacenado en la
R posición actual que indica el apuntador de
T programa, es cargado d all contador
d ded
programa y el apuntador de la Pila se
R
U

d
disminuye en 1.
J
I
L
L „ El apuntador de programa se puede leer y
escribir y la dirección ubicada en el inicio de
O

la Pila puede ser leída y escrita a través de


A
R
I
A
los registros SFR.
S
V
L
Registro STKPTR
A
D
I
M
I
R

T
R
„ BIT 7 STKOVF: Bandera de Pila llena
U
„ 1 = Pila llena o rebosada.
J „ 0 = Pila sin llenar
BIT 6 STKUNF: Bandera de pila vacía.
I
L „
L „ 1 = Ocurrió un vaciado de la p
pila.
O
„ 0 = No ha ocurrido un vaciado de la pila.
A
R
„ BIT 5 Sin implementar: Leído como '0'
I „ BIT 44-0
0 SP4:SP0:
SP4 SP0 Bits
Bit dde dirección
di ió de
d la
l
A
S
pila
V
L
Organización
g de la memoria (Pila)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Organización
g de la memoria (Pila)
A
D „ La cabecera de la Pila puede ser leída y
I
M
escrita a través de los registros TOSU
escrita, TOSU, TOSH
I y TOSL, que mantienen el contenido
R
apuntado por el registro STKPTR.
T
„ Después de un call, rcall o una interrupción,
este valor puede ser modificado por SW y
R
U
J
cuando se genere el retorno de la subrutina
subrutina,
se puede dirigir su regreso a un lugar
I
L
L
diferente definido por el usuario. Solo se
debe tener en cuenta deshabilitar las
O

A
R
interrupciones globales.
I
A
S
V
L
Organización
g de la memoria (Pila)
A
D
I „ El registro
g STKPTR es el apuntador
p
de la Pila.
M
I
R

T
R
„ El BIT STKFUL indica
i di ell llenado
ll d de
d
U
J
la p
pila y el BIT STKUNF el vaciado
de la pila.
I
L
L
O
„ C
Cuandod se produce
d un RESET,
S ell
valor del apuntador de la pila es 0.
A
R
I
A
S
V
L
Organización
g de la memoria (Pila)
A
D
„ Después de que el contador de
programa es almacenado en la pila 31
I
M
I
R
veces, sin extraer ningún valor, el BIT
STKFUL se coloca en 1.1 El BIT STKFUL
es borrado por SW o por un POR.
T
R
U
J „ (BIT STVREN en 1) Cuando se
almacena una dirección en la posición
I
L
L
O
31 la pila se desborda, se reinicia el
microprocesador, el BIT STKFUL se
coloca en 1 y se mantiene así,, también
A
R
I
A el apuntador de la pila se coloca en 0.
S
V
L
Organización
g de la memoria (Pila)
A
D
„ (BIT STVREN en 0) cuando se
d b d la
desborda l pila
il ell BIT STKFUL se
I
M

pone en 1, cualquier dato adicional


I
R

T a escribirse
ibi en la
l pila,
il no
sobrescribe la posición 31, si no
R
U

que se omite,
it y ell registro
i t STKPTR,
STKPTR
J
I
L
L se mantiene apuntando a la
O
posición
ó 31.
3
A
R
I
A
S
V
L
Organización
g de la memoria (Pila)
A
D
„ Cuando la pila se vacía, la próxima
i t
instrucción
ió que requiera
i extraer
t un
I
M

dato de ella, retorna el valor de 0 al


I
R

T contador
t d d de programa y coloca
l ell
BIT STKUNF en 1 hasta que ocurra
R
U

un POR o un se b borre por software.


ft
J
I
L
L
O

A
R
I
A
S
V
L
Instrucciones PUSH y POP
A
D
I
„ La instrucción PUSH, es utilizada para
M
I colocar en la cabecera de la pila el valor
actual del contador de programa,
R

produciendo un incremento en STKPTR.


T
R
U
J
I
„ S puede
Se d incluir
i l i una dirección
di ió de
d
L
L retorno cualquiera en la pila utilizando
PUSH y cargando ese valor en TOSU,
O

TOSH y TOSL
A
R
I
A
S
V
L
Instrucciones PUSH y POP
A
D
I
„ La instrucción POP, se utiliza para
M
I descartar el valor ubicado en la
cabecera de la pila y reemplazarlo por
R

el valor ubicado previo a este, sin


T
R
U
J
I
producir ningún traumatismo en el
L
L
sistema.
Con la instrucción POP se produce un
O
„

p
decremento en el apuntador de la pila.
p
A
R
I
A
S
V
L
Contador de Programa
A
D
I
„ El contador de programa (PC) esta
M
I
conformado
f d por llos registros
i PCL,
PCL PCH
R
y PCU.
T
R
„ El registro PCL puede ser leído y escrito
U
J
directamente.
Los registros PCH y PCU pueden ser
I
L „
L
O leídos y escritos solo a través de los
A registros PCLATH y PCLATU
R
I
A
S
V
L
Temporización / Instrucciones
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Temporización / Instrucciones
A
D „ La entrada de reloj es dividida internamente
I
M
en cuatro señales desfasadas 900. Q1,
Q1 Q2,
Q2 Q3
I y Q4.
El contador de programa es incrementado
R
„
T
R
cada flanco subida de Q1.
U
„ La búsqueda de una instrucción es realizada
d Q1 a Q4, pero es colocada
de l d en ell registro
J
I
L
L
de instrucción cada Q4
O „ Las instrucciones son decodificadas y
A
ejecutadas en el periodo de tiempo de Q1 a
R Q4.
I
A
S
Instrucciones en la Memoria de
V
L
programa
g
A
D
I
„ Las instrucciones para el PIC18F452 son
M
I de 16 bits, y su byte menos significativo
es siempre almacenado en una
R

dirección par.
T
R
U
J
I
„ El BIT menos significativo
i ifi ti del
d l contador
t d
L
L de programa es siempre 0, por lo que el
incremento de las direcciones se hace
O

de dos en dos.
A
R
I
A
S
Instrucciones en la Memoria de
V
L
programa
g
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Instrucciones de 32 bits
A
D
I
„ Los microcontroladores PIC18FXX2, posee 4
M
I
instrucciones de dos palabras de longitud (32
R bits), ellas son MOVFF, CALL, GOTO y LFSR.
T
R
„ La segunda palabra de esas instrucciones
U
J
posee los 4 BITS mas significativos en 1 y se
I comporta como un tipo especial de NOP.
L
L
O
„ Los otros 12 BITS de la segunda palabra
A
contienen los datos a ser utilizados por la
R instrucción.
I
A
S
V
L
Instrucciones de 32 bits
A
D
I
„ Cuando la primer palabra es ejecutada,
M
I
l datos
los d contenidos
id en la l segunda
d son
R
accedidos.
T
R
„ Pero si el PC accede primero la segunda
U
J
palabra,, esta se ejecuta
p j como un NOP.
Esto es útil cuando previamente a una
I
L „
L
O instrucción de dos palabras,
palabras existe una
A instrucción de salto condicional.
R
I
A
S
V
L
Instrucciones de 32 bits
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Memoria de Datos
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Memoria de Datos
A
D
I
„ La memoria de datos esta dividida en
M
I 16 bancos, cada uno de 256 Bytes.
R

T
„ Los bancos 6 al 14 no están
R
U
implementados y se leen como 0.
La zona de FSR se halla localizada en el
J
I „
L
L
O
p
banco 15 después de la posición
p F80h
A
(de la mitad hacia el final)
R
I
A
S
V
L
Memoria de Datos (Direccionamiento)
A
D
I
„ Se pueden identificar 3 formas de
M
I acceder la memoria de programa de los
PIC18FXX2.
R

T
R
U
„ Direccionamiento indirecto: requiere el uso
J de los registros FSRn (12 BITS) y el
correspondiente registro indirecto INDFn).
I
L
L
O „ Direccionamiento directo: requiere el uso
A del registro BSR, el cual en sus BITS 0 a 3
contiene la dirección del banco escogido.
escogido
R
I
A
S
V
L
Memoria de Datos (Direccionamiento)
A
D „ Otra forma de direccionamiento directo es:
Para asegurar que los registros (SFR Y GPR) sean
I
M „
I accedidos en un solo ciclo de instrucción,
R
independiente del Banco apuntado por el registro
T
BSR Existe el ACCESS BANK,
BSR, BANK el cual esta formado
R por una parte del banco 0 y un segmento del
U banco 15
Un BIT en la instrucción especifica si la operación
J
I „
L a utilizar se hace a través del ACCESS BANK o con
L
el registro
g BSR,, a ese BIT se le denomina “a”
O
(access bit) por defecto vale 0 y apunta al ACCESS
A BANK
R
I
A
S
V
L
Memoria de Datos (Registros FSR)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Memoria de Datos (Registros FSR)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
El registro BSR
A
D „ El registro BSR<3:0> contiene los 4 bits mas
I
M
significativos de los 12-BITS de direcciones de la
I memoria RAM y se utilizan para seleccionar el banco
R
de trabajo.
T „ Los BITS BSR<7:4> se leen como ’0’s.
R
U „ La instrucción MOVLB se utiliza para ayudar en la
J
I
selección del banco
banco.
L „ La instrucción MOVFF ignora el registro BSR, ya que
L
O
los 12
12-BITS
BITS de dirección se hayan incluidos en la
instrucción.
A
R „ Cada banco posee un tamaño de 256 bytes.
I
A
S
V
L
Direccionamiento Indirecto.
A
D
„ El direccionamiento indirecto se realiza
utilizando dos registros,
registros el FSRn y el INDFn.
INDFn
I
M
I
R „ El registro FSR es utilizado como un puntero
T
a una localidad de memoria que va a ser
R
U
escrita o leída.
J
I
„ El direccionamiento indirecto es posible
L utilizando el registro INDF, ya que cualquier
instrucción que lo utilice,
utilice accede
L
O

A
directamente a la posición de memoria
R apuntada por FSR.
I
A
S
V
L
Direccionamiento Indirecto.
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Multiplicador Hardware
A
D
I
„ El multiplicador HW que se posee es de 8
M
I
bits.
R
„ El resultado se almacena en dos registros
T
R
PRODH y PRODL
U
J
„ La multiplicación de 8x8 se realiza en 1 ciclo
I
L
de instrucción.
El multiplicador HW permite a este dispositivo
L
O „

A
realizar operaciones en las que se usa DSPs
R
I
A
S
V
L
Puertos
A
D
„ Los puertos de los PIC de la familia 18 en
general constan de 3 registros para su
I
M
I
R
operación.
T
„ El registro TRIS,
TRIS el cual controla la dirección
R
U
de funcionamiento del puerto.
J
I
„ El registro PORT,
PORT que lee los niveles de
L entrada en el puerto.
L
O „ El registro LAT
LAT, el cual es el LATCH de salida
A del puerto.
R
I
A
S
V
L
Puertos
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Puerto A
A
D „ Este puerto se comporta como I/O digital y como
I entrada analógica
M
I „ El registro TRISA, configura este puerto como
R entrada o salida.
T
„ Si un pin
i se va a utilizar
tili como canall analógico,
ló i
R previamente se debe haber configurado como
U entrada en TRISA
J
I „ Existe el registro LATA, que permite el acceso I/O al
L latch del puerto.
El pin RA4 es de colector abierto
abierto.
L
O „

„ Para configurarlo sus pines como analógicos o


A
R
digitales, se recurre al registro ADCON1
I
A
S
V
L
Puerto A (18f452)
A
D
I
M
I PIN Tipo Entrada Función
R RA0/AN0 TTL Pin I/O ó entrada analógica 0.

T
RA1/AN1 TTL Pin I/O ó entrada analógica 1
R RA2/AN2 TTL Pin I/O ó entrada analógica 2
U
/
RA3/AN3 TTL Pin I/O
/ ó entrada analógica
g 3
J
I RA4/T0CKI Colector Abierto Pin I/O ó entrada del timer 0, con entrada
L tipo Schmit Trigger
L
RA5/AN4
/ TTL Pin I/O
/ ó entrada analógica
g 4
O
RA6/OSC2/CLKO TTL Entrada del oscilador 2, o salida de frecuencia
A de reloj.
R
I
A
S
Puerto A (18f4520)
RA0/AN0 TTL/ANA I/O digital o entrada analógica, LATA<0> no afectado por entrada digital

RA1/AN1 TTL/ANA I/O digital o entrada analógica, LATA<1> no afectado por entrada digital

RA2/AN2/VREF-/CVREF TTL/ANA I/O digital o entrada analógica, LATA<2> no afectado por entrada digital

RA3/AN3/VREF+ TTL/ANA I/O digital o entrada analógica, LATA<3> no afectado por entrada digital

RA4/T0CKI/C1OUT Colector Abierto I/O digital, o entrada de Timer 0

I/O digital o entrada analógica, LATA<5> no afectado por entrada digital,


RA5/AN4/SS/ HLVDIN/C2OUT TTL/ANA selección de entrada modo esclavo para SSP (MSSP module).

I/O digital o entrada analógica, LATA<6> no afectado por entrada digital,


OSC2/CLKO/RA6 TTL/ANA retroalimentación de la salida del oscilador principal (XT, HS and LP modes).

I/O digital o entrada analógica, LATA<7> no afectado por entrada digital,


OSC1/CLKI/RA7 TTL/ANA entrada del oscilador principal y entrada del reloj principal.
V
L
Puerto A
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Registros
g asociados con PORTA
Registros asociados con PORTA
(18F4520)
V
L
Puerto B
A
PIN Tipo Entrada Función
D
I
RB0/INT0 TTL, Schmit Trigger Pin I/O ó entrada de interrupción
M
para la
l Interrupcion
I t i Externa 0.
I RB1/INT1 TTL, Schmit Trigger Pin I/O ó entrada de interrupción
R para la Interrupcion Externa 1.
RB2/INT2 TTL, Schmit Trigger Pin I/O ó entrada de interrupción
T
R
para la Interrupcion Externa 2.
U RB3/CCP2 TTL, Schmit Trigger Pin I/O ó pin del módulo CCP2, cuando
J para modo
d CCP2 ell bit CCP2MX esta
t en 1
I
RB4 TTL Pin I/O, y entrada de interrupción por
L
cambio de estado en PORTB.
L
O RB5/PGM TTL, Schmit Trigger
TTL Pin I/O,
I/O y entrada de interrupción por
para prog. Serial cambio de estado en PORTB.
A RB6/PGC TTL, Schmit Trigger Pin I/O, y entrada de interrupción por
R
para prog.
prog Serial cambio
ca b o de estado en
e PORTB.
O
I
A
RB7/PGD TTL, Schmit Trigger Pin I/O, y entrada de interrupción por
para prog. serial cambio de estado en PORTB.
S
V
L
Puerto B
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Puerto B
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Puerto C
A
D PIN Tipo Entrada Función
I
RC0/T1OSO/T1CKI TTL Schmit Trigger
TTL, Pin I/O ó salida del oscilador de timer1 o
M
entrada de reloj
I
R
RC1/T1OSI/CCP2 TTL, Schmit Trigger Pin I/O ó Salida del módulo CCP2
RC2/CCP1 TTL Schmit Trigger
TTL, Pin I/O ó pin del módulo CCP1
T
R
RC3/SCK/SCL TTL, Schmit Trigger Pin I/O ó utilizado para el reloj serial de los
módulos SPI e I2C
U
J RC4/SDI/SDA TTL Schmit Trigger
TTL, Pin I/O o entrada de datos para SPI o I/O
I para I2C
L RC5/SDO TTL, Schmit Trigger Pin I/O, o salida del puerto serial síncrono
L
O
RC6/TX/CK TTL Schmit Trigger
TTL, Pin I/O o TX del módulo USART
RC7/RX/DT TTL, Schmit Trigger Pin I/O o RX del módulo USART
A
R
I
A
S
V
L
Puerto C
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Puerto D
A
D PIN Tipo Entrada Función
I
RD0/PSP0 TTL Schmit Trigger
TTL, Pin I/O ó puerto paralelo esclavo bit 0
M
I RD1/PSP1 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 1
R
RD2/PSP2 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 2
T RD3/PSP3 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 3
R
U
J
RD4/PSP4
/ TTL,, Schmit Trigger
gg Pin I/O
/ óp
puerto p
paralelo esclavo bit 4
I
L RD5/PSP5 TTL, Schmit Trigger Pin I/O, ó puerto paralelo esclavo bit 5
L
RD6/PSP6 TTL Schmit Trigger
TTL, Pin I/O ó puerto paralelo esclavo bit 6
O

RD7/PSP7 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 7
A
R
I Todos los pines son schimit trigger cuando se trabaja como puerto paralelo esclavo
A
S
V
L
Puerto D
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Puerto E
A
D PIN Tipo Entrada Función
I
RE0/RD/AN5 TTL, Schmit Trigger
TTL Pin I/O Pin de control del puerto paralelo
M
Para control de puerto esclavo y entrada A/D.
I
paralelo esclavo BIT RD
R
1 = No lectura.
T 0 = Lee PORTD si CS es 1.
R RE1/WR/AN6 TTL, Schmit Trigger Pin I/O Pin de control del puerto paralelo
U
Para control de puerto esclavo y entrada A/D.
J paralelo
l l esclavo
l BIT WR
I
1 = No escritura
L
0 = Escribe en PORTD si CS es 1
L
O RE2/CS/AN7 TTL, Schmit Trigger
TTL Pin I/O Pin de control del puerto paralelo
Para control de puerto esclavo y entrada A/D.
A paralelo esclavo BIT CS
R 1 = Dispositivo no seleccionado
I 0 = Dispositivo no seleccionado
A
S
V
L
Puerto E
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Registro TRISE
A
D
I
M
I
R
„ Bit 7 IBF: Bit de Buffer de entrada lleno
T
R „ 1 = Una palabra ha sido recibida y espera ser
U
J
leída.
e da
I
L
„ 0 = Ninguna palabra recibida.
L
O „ Bit 6 OBF: Bit de Buffer de salida lleno
lleno.
A „ 1 = El buffer mantiene una palabra escrita
R
previamente.
I
A „ 0 = El buffer de salida ha sido leído.
S
V
L
Registro TRISE
A
D „ Bit 5 IBOV: Rebose del Buffer de entrada.
I
M „ 1 = Ha
H ocurridoid una escritura,
it cuando
d una palabra
l b previa
i no
I ha sido leída. (debe ser clareado por SW)
R
„ 0 = No ha ocurrido un desborde
Bit 4 PSPMODE: Selección del puerto paralelo
T
R
„
U
esclavo
J
I „ 1 = Modo puerto paralelo esclavo.
L
L
„ 0 = Modo general de I/O
O
„ bit 3 Sin Implementar
A
R
„ bit 2,1 y 0 TRISE: Bits de control de dirección.
I „ 1 = Entrada
d
A
S
„ 0 = Salida
V
L
El registro de estado
A
D
I
„ El registro de estado se utiliza para
M
I mostrar el estado aritmético de la ALU.
R

T
„ Se recomienda utilizar solamente las
R
U
instrucciones BCF, BSF, SWAPF, MOVFF
J
I
y MOVWF para cambiarbi ell contenido
t id del
d l
L
L registro de estado, ya que estas
instrucciones no alteran las banderas Z,
O

C,, DC,, OV,, o N


A
R
I
A
S
V
L
El registro de estado
A
D
I
M
I
R

BIT 7-5 Sin implementar.


T
R „
U
J „ BIT 4 N: BIT Negativo,
Negativo utilizado para indicar
I
L cuando un resultado de una operación
aritmética fue negativo (Complemento a 2)2).
L
O

A „ 1 = Resultado negativo.
R
I „ 0 = Resultado positivo
positivo.
A
S
V
L
El registro de estado
A
D
I
„ BIT OV: BIT de desbordamiento. Este bit es
M
I
utilizado para aritmética
é con signo
R (complemento a 2).
T „ 1 = Desborde ocurrió
R
U „ 0 = No ocurrió un desborde
J
I
L
„ BIT 2 Z: Bit de 0
L „ 1 = El resultado de una operación
p aritmética o
O
lógica es 0.
A
R „ 0 = El resultado de una operación aritmética o
I
A
lógica no es 0.
S
V
L
El registro de estado
A
D
I
„ BIT 1 DC: carry del cuarto al quinto bit.
M
I
„ Funciona con ADDWF, ADDLW, SUBLW, y SUBWF
R
„ 1 = Hay carry del 4 al 5 bit.
T
„ 0 = No hay carry del 4 al 5 bit
R
U
J
„ BIT 0 C: Bit de carry.
y
I
L
„ Funciona con ADDWF, ADDLW, SUBLW, y SUBWF
L
O
„ 1 = Ocurrió carryy
„ 0 = No Ocurrió carry
A
R
I
A
S
V
L
Registro RCON (Reset Control)
A
D
I
M
I
R

T
R
„ BIT 7 IPEN: Bit que habilita la prioridad en las
U interrupciones.
1 = Prioridad en interrupciones habilitada.
J
I „
L
L
„ 0 = Prioridad en interrupciones deshabilitada.
O „ BIT 6
6-5
5 Sin implementar
A „ BIT 4 RI: Bandera de la instrucción RESET
1 = La instrucción RESET no ha sido ejecutada.
ejecutada
R
I
„
A „ 0 = La instrucción RESET fue ejecutada.
S
V
L
Registro RCON (Reset Control)
A
D
I
„ BIT 3 TO: Bandera del Perro Guardián.
1 = Después de un power-up, CLRWDT, o
M
I „

SLEEP
R

T
R „ 0 = A WDT reset ocurrió
U
J
I
„ BIT 2 PD: Bandera de detección de
L
L apagado del procesador.
O
„ 1 = Después de un power-up o CLRWDT.
A
R
I
„ 0 = Debido a la ejecución de la instrucción
A SLEEP.
S
V
L
Registro RCON (Reset Control)
A
D
I
„ BIT 1 POR: Bit de estado de Power-on Reset
M
I
„ 1 = Un Power-on Reset no ha ocurrido
R
„ 0 = Un Power-on Reset ocurrió
T
„ Debe ser colocado en 1 después de que un Power-
R
U on Reset ha ocurrido)
J
I „ BIT 0 BOR: Bit de estado de un Brown-out
Reset (Bajón de voltaje)
L
L
O
„ 1 = Un Brown-out Reset no ha ocurrido.
A
R „ 0 = Un Brown-out Reset ocurrió.
Debe ser colocado en 1 después de que un
I
A „
S
Brown-out Reset ha ocurrido)
V
L
Interrupciones
A
D
I
„ Los microcontroladores de gama alta
M
I
poseen niveles
i l de d interrupción.
i ió
R
„ El vector de alto nivel de interrupciones
p
T
R
se halla en la posición 0x08h y el de
U
J
j prioridad
baja p en la posición
p 0x18h.
Una interrupción de alta prioridad,
I
L „
L
O interrumpe la ejecución de una de baja
A prioridad.
R
I
A
S
V
L
Interrupciones
A
D „ Los registros asociados con el manejo de
I
M
interrupciones son los siguientes:
I
„ RCON
R
„ INTCON, INTCON2, INTCON3, que en general,
T
R
manejan las interrupciones externas y de TIMER 0.
U „ PIR1, PIR2, que manejan las banderas que activan
las interrupciones debidas a periféricos.
é
J
I
L
L
„ PIE1, PIE2, que son los registros habilitadores de las
O interrupciones de periféricos
A
„ IPR1, IPR2, que activan los niveles de prioridad de
R p
las interrupciones.
I
A
S
V
L
Interrupciones
A
D „ Cada fuente de interrupción, a excepción de INT0,
I
M
posee 3 bits para su control.
control
I „ Una bandera que indica que la interrupción ocurrió.
R
„ Bit habilitador de la interrupción
T „ Bit que permite asignar el nivel de prioridad de la
R interrupción.
U
J „ Nota: Se recomienda no utilizar la instrucción
I
L
MOVFF, para modificar alguno de los registros de
L control, mientras las interrupciones estén habilitadas,
O ya que esto
t puede
d generar di disparos de
d
A
interrupciones aleatorios.
R
I
A
S
V
L
Interrupciones. Registro RCON
A
D
I
M
I
R

T
R „ Bit IPEN: Bit habilitador de niveles de
prioridad de las interrupciones.
interrupciones
U
J
I
L
L
„ 1 = Habilita los niveles de prioridad de las
O interrupciones
interrupciones.
A
R
„ 0 = Deshabilita los niveles de prioridad de
I
A
l interrupciones.
las i i
S
V
L
Interrupciones. Registro RCON
A
D
I
„ bit 6-5 Sin implementar
M
I „ bit 4 RI: bit indicador de que se generó una
R
instrucción de RESET.
T
R
„ 1 = La instrucción RESET no se ha ejecutado.
U
J
„ 0 = La instrucción RESET se ejecutó
j
I
L
„ bit 3 TO: bit de rebose del Watchdog
L
O
„ 1 = Después del encendido
encendido, instrucción CLRWDT
o instrucción SLEEP.
A
R „ 0 = Haa ocurrido
ocu do unu rebose
ebose del
de WDT
I
A
S
V
L
Interrupciones. Registro RCON
A
D
I
„ bit 2 PD: Bit de detección de ausencia de
M
I
voltaje.
R
„ 1 = Después del encendido o por el uso de la
T instrucción
ó CLRWDT.
R
U „ 0 = Por la ejecución de la instrucción SLEEP.
J
I „ bit 1 POR: Bit de estado del Power-on Reset.
L
L „ 1 = Un Power-on Reset no ha ocurrido.
O
„ 0 = Un Power-on Reset ocurrió. Debe ser puesta
A
R
en 1 después de que un Power-on Reset occurre.
I
A
S
V
L
Interrupciones. Registro RCON
A
D
I
„ bit 0 BOR: bit de estado de Brown-out
M
I Reset. (Disminución del nivel de voltaje)
R

„ 1 = No ha ocurrido un Brown
Brown-out
out Reset.
T
R
U
„ 0 = Ha ocurrido un Brown-out Reset.
J
I
„ D b ser puesta
Debe t en 1 d
después
é dde que un
L
L
Brown-out Reset ocurre.
O

A
R
I
A
S
I t
Interrupciones.
i R
Registro
i t INTCON
V (18F452, 18F4520)
L
A
D
I
M
I
R

Bit 7 GIE/GIEH: Habilitador global de


T
R „

interrupciones.
U
J
I
L „ Si IPEN = 0: (Bit 7 RCON)
L
O
„ 1 = Habilita todas las interrupciones sin máscara
„ 0 = Deshabilita todas las interrupciones
A
R „ Si IPEN = 1: ((Bit 7 RCON))
I
A
„ 1 = Habilita todas las interrupciones de alta prioridad.
S „ 0 = Deshabilita todas las interrupciones.
Interrupciones Registro INTCON
Interrupciones.
V (18F452, 18F4520)
L
A
D „ Bit 6 PEIE/GIEL: Habilitador de Interrupciones de
periféricos
I
M

„ Si IPEN = 0: (Bit 7 RCON)


I
R

„ 1 = Habilita todas las interrupciones de periféricos


T
R
sin máscara.
„ 0 = Deshabilita todas las interrupciones de
U
J
I periféricos
„ Si IPEN = 1: (Bit 7 RCON)
L
L

„ 1 = Habilita todas las interrupciones de periféricos


é
O

A de baja prioridad.
„ 0 = Deshabilita todas las interrupciones de
R
I
A periféricos de baja prioridad
S
Interrupciones Registro INTCON
Interrupciones.
V (18F452, 18F4520)
L
A
D „ Bit 5 TMR0IE: Interrupción de rebose de TMR0
„ 1 = Habilita la interrupción por rebose de TMR0.
TMR0
I
M
I „ 0 = Deshabilita la interrupción por rebose de TMR0.
R
„ Bit 4 INT0IE: Interrupción
p Externa INT0
„ 1 = Habilita la INT0
T
R
U „ 0 = Deshabilita la INT0
J
I
„ Bit 3 RBIE: Interrupción por cambio de estado en PORTB
L
„ 1 = Habilita la interrupción por cambio de estado en
PORTB
L
O

„ 0 = Deshabilita la interrupción por cambio de estado


A
R
en PORTB
I
A
S
Interrupciones Registro INTCON
Interrupciones.
V (18F452, 18F4520)
L
A
D „ Bit 2 TMR0IF: Bandera de Interrupción por rebose
I de TMR0
M
I
„ 1 = El TMR0 se ha rebosado (se debe borrar por SW)
R „ 0 = TMR0 no se ha rebosado.
T
„ Bit 1 INT0IF: Bandera de INT0
R „ 1 = Ha ocurrido INT0 (debe ser borrada por SW)
U „ 0 = INT0 no ha ocurrido.
Bit 0 RBIF: Bandera de interrupción por cambio de
J
I „
L estado en PORTB.
L
„ 1 = Ha ocurrido un cambio de estado en uno de los pines
O
RB4 a RB7
A „ 0 = No ha ocurrido un cambio de estado en RB4 a RB7.
R
I
A
S
Interrupciones Reg.
Interrupciones. Reg INTCON2
V (18F452, 18F4520)
L
A
D
I
M
I
R

T
„ Bit 7 RBPU: Bit habilitador de las
resistencias Pull-up.
R
U
J
„ 1 = Todas
T d lasl resistencias
i t i pull-ups
ll
deshabilitadas.
I
L
L
„ 0 = Las resistencias ppull-ups
p estan habilitadas.
O

„ Bit 6 INTEDG0: Selección del flanco de la


A
R
Interrupción Externa 0
I „ 1 = Flanco de subida.
A
S „ 0 = Flanco de bajada.
Interrupciones Reg.
Interrupciones. Reg INTCON2
V (18F452, 18F4520)
L
A
D
I
„ Bit 5 INTEDG1: Selección del flanco de
M
I la Interrupción Externa 1
R

„ 1 = Flanco de subida.
T
R
U
„ 0 = Flanco de bajada.
J
I „ Bit 4 INTEDG2:
INTEDG2 Selección
S l ió del
d l flanco
fl de
d
la Interrupción Externa 2
L
L
O

A
„ 1 = Flanco de subida
R
I
„ 0 = Flanco de bajada.
bajada
Bit 3 Sin Implementar
A
S „
Interrupciones Reg.
Interrupciones. Reg INTCON2
V (18F452, 18F4520)
L
A
D
„ Bit 2 TMR0IP: Bit de prioridad de la
interrupción por rebose de TMR0.
TMR0
I
M
I
R „ 1 = Alta prioridad
T
„ 0 = Baja prioridad
R
U
„ Bit 1 Sin implementar
J
I
„ Bit 0 RBIP:
RBIP Bit de
d prioridad
i id d de
d la
l interrupción
i t ió
L
L
de cambios de estado en PORTB
O „ 1 = Alta prioridad.
prioridad
A „ 0 = Baja prioridad.
R
I
A
S
Interrupciones Reg.
Interrupciones. Reg INTCON3
V (18F452, 18F4520)
L
A
D
I
M
I
R

Bit 7 INT2IP: Bit de prioridad de INT2


T
R „
U
J „ 1 = Alta prioridad.
prioridad
I
L „ 0 = Baja prioridad.
L
O „ Bit 6 INT1IP: Bit de prioridad de INT1
A „ 1 = Alta prioridad.
R
I „ 0 = Baja
B j prioridad.
i id d
A
S
Interrupciones Reg.
Interrupciones. Reg INTCON3
V (18F452, 18F4520)
L
A
D
I
„ Bit 5 Sin implementar
M
I
R
„ Bit 4 INT2IE: Bit habilitador de INT2
T
„ 1 = Habilita INT2.
INT2
0 = Deshabilita INT2.
R
U „
J
I
L
„ Bit 3 INT1IE: Bit habilitador de INT1
L
O
„ 1 = Habilita INT1.
A „ 0 = Deshabilita INT1.
R
I
A
„ Bit 2 Si
Sin implementar
i l t
S
Interrupciones Reg.
Interrupciones. Reg INTCON3
V (18F452, 18F4520)
L
A
D
I
„ Bit 1 INT2IF: Bandera que indica que ocurrió
M
I
INT2
R
„ 1 = Ha ocurrido INT2 (debe ser borrada por SW)
T „ 0 = No ha ocurrido INT2
R
U
J
„ Bit 0 INT1IF: Bandera q
que indica que
q ocurrió
I
L
INT1
L „ 1 = Ha ocurrido INT1 ((debe ser borrada por
p SW))
O

„ 0 = No ha ocurrido INT1
A
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR1
V (18F452, 18F4520)
L
A
D
I
M
I
R

T
„ Bit 7 PSPIF(1): Bandera de interrupción de
R lectura/escritura del puerto paralelo esclavo.
U
„ 1 = Una operación de lectura o escritura ha
J
I
ocurrido.(debe
d (d b ser borrada
b d por SW))
L „ 0 = No ha ocurrido lectura o escritura.
Bit 6 ADIF: Bandera de interrupción por fin de
L
O
„
conversión del A/D
A
R
„ 1 = Conversión A/D completa (Debe ser borrada por
I SW)
A
„ 0 = La conversión A/D esta incompleta.
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR1
V (18F452, 18F4520)
L
A
D
„ Bit 5 RCIF: Bandera de interrupción por
recepción en el USART.
USART
I
M
I
R „ 1 = El buffer de recepción, RCREG, esta lleno
(Debe ser borrada por SW)
T
R „ 0 = El buffer de RX del USART esta vacío.
Bit 4 TXIF: Bandera de interrupción por TX
U
J „
I
L
del USART
L
O
„ 1 = El buffer de TX del USART (TXREG), esta
vacío (Se borra cuando se escribe en TXREG)
0 = El buffer de TX del USART esta lleno.
A
R
„
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR1
V (18F452, 18F4520)
L
A
D
I
„ Bit 3 SSPIF: Bandera de interrupción
M
I del puerto serial síncrono
R

„ 1 = Una TX/RX se ha completado (debe


ser borrada por SW)
T
R
U
J
I
„ 0 = Esperando una TX o RX.
RX
L
L
O

A
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR1
V (18F452, 18F4520)
L
A
D „ Bit 2 CCP1IF: Bandera de interrupción del
I
M
módulo CCP1
CCP1.
I „ Modo Captura:
R
„ 1 = Se ha producida la captura del valor de TMR1 (debe
T
ser borrada
b d por SW)
R „ 0 = No ha ocurrido una captura de TMR1.
U
J
„ Modo Compara:
p
I „ 1 = Se ha dado una comparación con TMR1 (debe ser
L borrada por SW)
L
„ 0 = No ha ocurrido una comparación
p con TMR1.
O
„ Modo PWM:
A
„ No utilizado en este modo.
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR1
V (18F452, 18F4520)
L
A
D
„ Bit 1 TMR2IF: Se ha producido una igualdad
entre TMR2 y PR2.
PR2
I
M
I
R „ 1 = Ha ocurrido una igualdad entre TMR2 y PR2
(debe ser borrada por SW)
T
R „ 0 = No hay igualdad entre TMR2 y PR2
Bit 0 TMR1IF: Bandera de interrupción por
U
J „
I
L
rebose de TMR1.
L
O
„ 1 = El TMR1 se ha rebosado (debe ser borrada
por SW)
0 = El TMR1 no se ha rebosado
A
R
„
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR2
V (18F452)
L
A
D
I
M
I
R

T
„ Bit 7
7-5
5 Sin implementar
Bit 4 EEIF: Bandera de interrupción por
R
U „

Escritura/Lectura
/ en EEPROM o FLASH
J
I
L
L „ 1 = La operación de escritura se ha completado
O
(d b ser borrada
(debe b d por SW)
S )
A
„ 0 = La operación de escritura no ha terminado o
R
I no se
ehha iniciado.
ini i do
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR2
V (18F452)
L
A
D
I
„ Bit 3 BCLIF: Interrupción por colisión en el
M
I
bus
R
„ 1 = Ocurrió una colisión
T „ 0 = No ha ocurrido una colisión.
R
U
J
„ Bit 2 LVDIF: Interrupción
p por
p detección de
I
L
bajo voltaje.
L „ 1 = Una condición de bajo j voltaje
j ha ocurrido
O

„ 0 = El voltaje del dispositivo se mantiene por


A
R encima del valor de activación de la interrupción.
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR2
V (18F452)
L
A
D „ Bit 1 TMR3IF: Bandera de rebose de TMR3
1 = El TMR3 se ha rebosado
I
M „
I
R
„ 0 = El TMR3 No se ha rebosado
„ Bit 0 CCP2IF: Bandera de interrupción del
T
R
módulo CCP2
U
„ Modo Captura:
J
I
„ 1 = Una captura de TMR1 ha ocurrido.
L „ 0 = No ha ocurrido captura de TMR1
L
O
„ Modo Compara:
„ 1 = Ha ocurrido un evento de comparación con TMR1.
A
„ 0 = No ha habido eventos de comparación con TMR1.
R
I „ Modo PWM
A „ No usado en este modo
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR2
V (18F4520)
L
A
D
I
M
I
R

Bit 7 OSCFIF: Bandera indicadora de


T
R „
U
J
I
fallo del oscilador.
oscilador
L
L
„ 1 = El oscilador del dispositivo falló. Se ha
O
realizado
li d un cambio bi a INTOSC.
INTOSC (Debe
(D b ser
A
R
borrada por software)
I
A
„ 0 = El reloj trabaja sin problemas.
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR2
V (18F4520)
L
A
D „ Bit 6 CMIF: Bandera de interrupción por
I
M comparación
comparación.
I
R
„ 1 = La entrada del comparador ha cambiado (Debe ser
borrada p
por software))
T
R
„ 0 = La entrada del comparador no ha cambiado.
U
„ Bit 5 Sin implementar: Se lee como ‘0’
J
I „ Bit 4 EEIF: Bandera de interrupción por
L
L Escritura/Lectura en EEPROM o FLASH
O
„ 1 = La operación de escritura se ha completado (debe ser
A borrada por SW)
R
„ 0 = La operación de escritura no ha terminado o no se ha
I
A iniciado.
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR2
V (18F4520)
L
A
D „ Bit 3 BCLIF: Interrupción por colisión en el
I
M
bus
I „ 1 = Ocurrió una colisión
R
„ 0 = No ha ocurrido una colisión.
T
R
„ Bit 2 HLVDIF: Interrupción por detección de
U alto o bajo voltaje.
J
I „ 1 = Una condición de bajo o alto voltaje ha
L ocurrido. La dirección es determinada por el bit 7
L
O
((VDIRMAG)) del registro
g HLVDCON.
„ 0 = El voltaje del dispositivo se mantiene por
A encima del valor de activación de la interrupción.
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR2
V (18F4520)
L
A
D „ Bit 1 TMR3IF: Bandera de rebose de TMR3
1 = El TMR3 se ha rebosado
I
M „
I
R
„ 0 = El TMR3 No se ha rebosado
„ Bit 0 CCP2IF: Bandera de interrupción del
T
R
módulo CCP2
U
„ Modo Captura:
J
I
„ 1 = Una captura de TMR1 ha ocurrido.
L „ 0 = No ha ocurrido captura de TMR1
L
O
„ Modo Compara:
„ 1 = Ha ocurrido un evento de comparación con TMR1.
A
„ 0 = No ha habido eventos de comparación con TMR1.
R
I „ Modo PWM
A „ No usado en este modo
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIE1
V (18F452, 18F4520)
L
A
D
I
M
I
R

T
„ PSPIE(1): Habilita la interrupción de
R
U
lectura/escritura del puerto paralelo esclavo
J „ 1 = Habilita la interrupción
I
L „ 0 = Deshabilita la interrupción.
L
O
„ Bit 6 ADIE:
ADIE Habilita
H bilit la
l interrupción
i t ió por fin
fi
A de conversión del A/D.
R
I „ 1 = Habilita la interrupción
ó del A/D.
A
S „ 0 = Deshabilita la interrupción del A/D.
Int Periféricos
Int. Periféricos. Reg
Reg. PIE1
V (18F452, 18F4520)
L
A
D
I
„ Bit 5 RCIE: Habilita la interrupción por
M
I recepción del módulo USART.
R

„ 1 = Habilita la interrupción
T
R
U
„ 0 = Deshabilita la interrupción
J
I „ Bit 4 TXIE:
TXIE Habilita
H bilit la
l interrupción
i t ió por
transmisión del módulo USART
L
L
O

A
„ 1 = Habilita la interrupción
R
I
„ 0 = Deshabilita la interrupción
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIE1
V (18F452, 18F4520)
L
A
D „ Bit 3 SSPIE: Habilita la interrupción del puerto serial
I síncrono.
„ 1 = Habilita la interrupción del MSSP
M
I
R „ 0 = Deshabilita la interrupción del MSSP

T
„ Bit 2 CCP1IE: Habilita la interrupción del módulo CCP1.
CCP1
R „ 1 = Habilita la interrupción del CCP1

„ 0 = Deshabilita la interrupción
U
J
I „ Bit 1 TMR2IE: Habilita la interrupción por igualdad de
L TMR2 con PR2.
„ 1 = Habilita la interrupción
L
O
„ 0 = Deshabilita la interrupción.
A
„ Bit 0 TMR1IE: Habilita la interrupción por rebose de
R
I
TMR1
A „ 1 = Habilita la interrupción de TMR1

„ 0 = Deshabilita la interrupción de TMR1


S
Int Periféricos
Int. Periféricos. Reg
Reg. PIE2
V (18F452)
L
A
D
I
M
I
R

T
„ Bit 7-5 Sin implementar
R „ Bit 4 EEIE: Habilita la interrupción por fin
U
J
de escritura en memoria EEPROM/FLASH.
I
L
„ 1 = Habilitada
L „ 0 = Deshabilitada
O
„ Bit 3 BCLIE: Habilita la interrupción por
A
R
colisión de datos en el BUS
I „ 1 = Habilitada
H bilit d
A
S
„ 0 = Deshabilitada
Int Periféricos
Int. Periféricos. Reg
Reg. PIE2
V (18F452)
L
A
D „ Bit 2 LVDIE: Habilita la Interrupción por detección
I de bajo voltaje.
M
I
„ 1 = Habilitada
R „ 0 = Deshabilitada.
„ Bit 1 TMR3IE: Habilita la interrupción por desborde
de TMR3.
T
R
U „ 1 = Habilita la interrupción
J
I
„ 0 = Deshabilita
h b l la l interrupción
ó
L „ Bit 0 CCP2IE: Habilita la interrupción del módulo
L
CCP2
O
„ 1 = Habilita la interrupción
A „ 0 = Deshabilita la interrupción
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIE2
V (18F4520)
L
A
D
I
M
I
R

T
R
U
„ Bit 7 OSCFIE: Bit habilitador de interrupción por fallo
J de oscilador
I
L
„ 1 = Habilitado
L „ 0 = deshabilitado
O
„ Bit 6 CMIE: Bit habilitador de interrupción por
comparación
A
R
I
„ 1 = Habilitado
A
S „ 0 = Deshabilitado
Int Periféricos
Int. Periféricos. Reg
Reg. PIE2
V (18F4520)
L
A
D
I
„ Bit 5 Sin implementar se lee como ‘0’
M
I
„ Bit 4 EEIE: Habilita la interrupción
ó por fin
f de
R escritura en memoria EEPROM/FLASH.
T „ 1 = Habilitada
H bilit d
R
U
„ 0 = Deshabilitada
J
I
„ Bit 3 BCLIE:
BCLIE Habilita
H bilit la
l interrupción
i t ió por
L
L
colisión de datos en el BUS
O „ 1 = Habilitada
A „ 0 = Deshabilitada
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIE2
V (18F4520)
L
A
D „ Bit 2 HLVDIE: Habilita la Interrupción por detección
I
M de alto o bajo voltaje.
voltaje
I
R
„ 1 = Habilitada
„ 0 = Deshabilitada.
Deshabilitada
T
R „ Bit 1 TMR3IE: Habilita la interrupción por desborde
U
J
de TMR3.
I „ 1 = Habilita la interrupción
L
L „ 0 = Deshabilita la interrupción
Bit 0 CCP2IE: Habilita la interrupción del módulo
O
„
A
CCP2
R
I „ 1 = Habilita
H bili lal interrupción
i ió
A
S
„ 0 = Deshabilita la interrupción
Prioridad de Int.
Int Reg.
Reg IPR1
V (18F452, 18F4520)
L
A
D
I
M
I
R

T „ Bit 7 PSPIP(1): Prioridad de Interrupción


ó
del puerto paralelo esclavo
R
U
J
I
„ 1 = Alta
l prioridad
d d
L
L
„ 0 = Baja prioridad
O
„ Bit 6 ADIP:
ADIP Prioridad
P i id d de
d Interrupción
I t ió del
d l
A conversor A/D
R
I „ 1 = Alta prioridad
p io idad
A
S
„ 0 = Baja prioridad
Prioridad de Int.
Int Reg.
Reg IPR1
V (18F452, 18F4520)
L
A
D „ Bit 5 RCIP: Prioridad de Interrupción del
I
M
módulo USART en RX.RX
I „ 1 = Alta prioridad
R
„ 0 = Baja
j prioridad
p
T
R
„ Bit 4 TXIP: Prioridad de Interrupción del
U módulo USART en TX.
J
I „ 1 = Alta prioridad
L
L
„ 0 = Baja prioridad
O „ Bit 3 SSPIP: Prioridad de Interrupción del
A puerto serial síncrono
R
I
„ 1 = Alta prioridad
A „ 0 = Baja prioridad
S
Prioridad de Int.
Int Reg.
Reg IPR1
V (18F452, 18F4520)
L
A
D „ Bit 2 CCP1IP: Prioridad de Interrupción del módulo
I
M
CCP
I
„ 1 = Alta prioridad
R
„ 0 = Baja prioridad
T
R „ Bit 1 TMR2IP: Prioridad de Interrupción del TMR2
„ 1 = Alta p
prioridad
U
J
I
„ 0 = Baja prioridad
L
L „ Bit 0 TMR1IP: Prioridad de Interrupción del TMR1.
O
„ 1 = Alta prioridad

„ 0 = Baja prioridad
A
R
I
A
S
Prioridad de Int.
Int Reg.
Reg IPR2
V (18F452)
L
A
D
I
M
I
R

T
„ Bit 7-5 Sin implementar
R „ Bit 4 EEIP: Prioridad de Interrupción por fin
U
J
de escritura en EPROM/FLASH
I
L
„ 1 = Alta prioridad
L „ 0 = Baja prioridad
O
„ Bit 3 BCLIP: Prioridad de Interrupción por
A
R
colisión en Bus de datos.
I „ 1 = Alta
Alt prioridad
p io id d
A
S
„ 0 = Baja prioridad
Prioridad de Int.
Int Reg.
Reg IPR2
V (18F452)
L
A
D „ Bit 2 LVDIP: Prioridad de Interrupción por
I
M
detección de bajo voltaje
I „ 1 = Alta prioridad
R
„ 0 = Baja
j prioridad
p
T
R
„ Bit 1 TMR3IP: Prioridad de Interrupción por
U rebose de TMR3
J
I „ 1 = Alta prioridad
L
L
„ 0 = Baja prioridad
O „ Bit 0 CCP2IP: Prioridad de Interrupción de
A módulo CCP2
R
I
„ 1 = Alta prioridad
A „ 0 = Baja prioridad
S
Prioridad de Int.
Int Reg.
Reg IPR2
V (18F4520)
L
A
D
I
M
I
R

T
R
U
„ Bit 7 OSCFIP: Bit de prioridad de interrupción por
J fallo de oscilador.
oscilador
I
L
„ 1 = Alta prioridad
L „ 0 = Baja
j prioridad
p
O
„ Bit 6 CMIP: Bit de prioridad de interrupción por
comparación analógica.
A
R
I
„ 1 = Alta prioridad.
A
S „ 0 = Baja prioridad.
Prioridad de Int.
Int Reg.
Reg IPR2
V (18F4520)
L
A
D
I
„ Bit 5 Sin implementar
M
I
„ Bit 4 EEIP: Prioridad de Interrupción
ó por fin
f
R de escritura en EPROM/FLASH
T „ 1 = Alta
Alt prioridad
i id d
R
U
„ 0 = Baja prioridad
J
I
„ Bit 3 BCLIP:
BCLIP Prioridad
P i id d de
d Interrupción
I t ió por
L
L
colisión en Bus de datos.
O „ 1 = Alta prioridad
A „ 0 = Baja prioridad
R
I
A
S
Prioridad de Int.
Int Reg.
Reg IPR2
V (18F4520)
L
A
D „ Bit 2 HLVDIP: Prioridad de Interrupción por
I
M detección de bajo o alto voltaje
I
R
„ 1 = Alta prioridad
„ 0 = Baja prioridad
T
R „ Bit 1 TMR3IP: Prioridad de Interrupción por rebose
U
J
de TMR3
I „ 1 = Alta prioridad
L
L „ 0 = Baja prioridad
Bit 0 CCP2IP: Prioridad de Interrupción de módulo
O
„
A
CCP2
R
I „ 1 = Alta
Al prioridad
i id d
A
S
„ 0 = Baja prioridad
V
L
Memoria FLASH de Programa
A
D „ La memoria de programa puede ser leída y escrita
I
M durante el funcionamiento normal.
normal
I
R „ Posee un tamaño de 32K Bytes con capacidad para
T
16K Instrucciones
R
„ Durante la escritura o lectura de la memoria de
U
J programa se cesará la búsqueda de instrucciones,
instrucciones
I
L
hasta que la operación este completa.
L
O
„ La memoria de programa no puede ser accedida
durante la lectura o escritura, es por ello que el
A
R
código no puede ser ejecutado.
I
A
S
V
L
Memoria FLASH de Programa
A
D
I
„ Cualquier instrucción inválida que se
M
I escriba, será ejecutada como un NOP
R

T
„ Ya que la memoria de programa es de
R
U
16 bits de ancho y la RAM tiene 8 bits;
J
I
l instrucciones
las i t i TBLRD (Lectura)
(L t ) y
L
L TBLWT (escritura), mueven datos
entre esas dos memorias, utilizando el
O

g
registro TABLAT.
A
R
I
A
S
V
L
Memoria FLASH de Programa
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Registro EECON1 y EECON2
A
D
I
„ El registro EECON1 es el registro de
M
I control de acceso a memoria FLASH o
EEPROM.
R

T
R
U
„ El registro EECON2 no existe
J
I
fí i
físicamente,
t y solo
l se utiliza
tili en
L
L operaciones de escritura o borrado de
la memoria.
O

A
R
I
„ Cualquier lectura a EECON2,
EECON2 obtiene
A
S
como resultado un 0.
V
L
Registro EECON1 (Dir. 0FA6h )
A
D
I
M
I
R

T
„ BIT 7 EEPGD: Bit de selección de la
memoria FLASH o EEPROM.
R
U
J
I
„ 1 = El acceso es a la
l memoria
i FLASH.
FLASH
L „ 0 = El acceso es a la memoria EEPROM.
BIT 6 CFGS: Acceso a memoria FLASH/EE o
L
O „

A
registros de configuración.
R „ 1 = Acceso a los registros
g de configuración
g
I
A
„ 0 = Acceso a la memoria FLASH o EEPROM.
S
V
L
Registro EECON1 (Dir. 0FA6h )
A
D „ BIT 5 Sin implementar.
BIT 4 FREE: bit de selección de borrado de la
I
M „
I
R
memoria FLASH.
„ 1 = Borra la memoria FLASH apuntada por
T
R
TBLPTR en el próximo comando WR.
U „ 0 = Se realiza escritura únicamente.
BIT 3 WRERR: Error en una operación
ó d
de
J
I „
L
L
escritura de la memoria FLASH/EEPROM
O „ 1 = Una operación de escritura fue
prematuramente terminada.
A
R „ 0 = Operación de escritura completa.
I
A
S
V
L
Registro EECON1 (Dir. 0FA6h )
A
D
I
„ BIT 2 WREN: Bit de habilitación de escritura
M
I
en la memoria FLASH/EEPROM.
R
„ 1 = Permite ciclos de escritura.
T „ 0 = Inhibe los ciclos de escritura.
R
U
J
„ BIT 1 WR: Bit de control de escritura
I
L
„ 1 = Inicializa el borrado/escritura de la memoria
L EEPROM/FLASH, este bit se coloca en 0
O
nuevamente por HW.
A
R
„ 0 = El ciclo de escritura esta completo.
I
A
S
V
L
Registro EECON1 (Dir. 0FA6h )
A
D
I
„ BIT 0 RD: Bit de control de lectura.
1 = Inicializa la lectura de la EEPROM, este
M
I „

bit se coloca en 0 ppor HW. El bit RD no


R

T
R puede puesto en 1 cuando EEPGD = 1, lo
U
J
cual sugiere
g que
q la memoria FLASH,, no
I
L
puede ser leída utilizando este bit.
L
O
„ 0 = No se inicializa la lectura de la
A
EEPROM.
R
I
A
S
V
L
Registro TABLAT y TBLPTR
A
D
I
„ El registro TABLAT es de 8 bits y se utiliza
M
I
para almacenar datos durante la
R transferencia de información entre la RAM y
T l memoria de
la d programa.
R
U
J
„ El registro TBLPTR apunta a las direcciones
I de memoria de programa a acceder, apunta
L
L de a byte por vez.
O

A
„ El registro TBLPTR, es utilizado por las
R instrucciones TBLRD y TBLWT; ellas pueden
I
A actualizar el TBLPTR de 4 formas diferentes.
S
V
L
Registro TBLPTR
A
D
I
M
I
R

T
R
U
J
I
L
L
O
„ La lectura accede a memoria cada byte
y
A
„ La escritura accede a memoria cada 8 Bytes
El borrado se hace en paquetes de 64 Bytes.
Bytes
R
I „
A
S
Operaciones que auto modifican
V
L
TBLPTR
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Lectura de la Memoria FLASH
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Lectura de la Memoria FLASH
A
D
I
„ Cuando se hace una lectura de memoria. Se
M
I
debe Cargar TBLPTR con la dirección ó a leer
R (dirección par).
T
R
„ Cuando se ejecuta la instrucción TBLRD, se
U
J
mueve un byte de la instrucción a el registro
I TABLAT.
L
L
O
„ El que sea el byte bajo o alto, depende de si
A
el bit menos significativo de la dirección
R escogida es 0
I
A
S
V
L
Borrado de la Memoria FLASH
A
D
„ El TBLPTR no tiene en cuenta los 6 bits
menos significativos a la hora de hacer un
I
M
I
R
borrado, solo los 16 mas altos, por lo tanto el
T
borrado de la memoria FLASH
FLASH, solo se hace
R en bloques de 64 bytes o 32 instrucciones.
U
J „ Los 16 bits mas significativos apuntan a la
I
L dirección de inicio del bloque de 64 bytes a
L
O
borrar.
A
„ El registro EECON1 controla la operación de
R borrado.
I
A
S
V
L
Borrado de la Memoria FLASH
A
D
I
„ El bit EEPGD se debe poner en 1, así
M
I como WREN también debe estar en 1
para habilitar la operación de escritura
R

(Borrar es escribir FF).


T
R
U
J
I
„ El bit FREE se coloca
l en 1 para iniciar
i i i lal
L
L operación de borrado
O

A
R
I
A
S
Borrado de la Memoria FLASH
V
L
(Secuencia a utilizar)
A
D
„ Cargar el STKPTR con la dirección de inicio a
borrar (Recordar que es en paquetes de 64
I
M
I
R
bytes, por tanto los 6 bits menos
T
significativos son 0)
R
U
„ Poner en 1 el bit EEPGD de EECON1.
J
I
„ Borrar el bit CFGS del registro EECON1
L
L
„ Poner en 1 los bits WREN y FREE para
O habilitar escritura y borrado respectivamente.
respectivamente
A
R
„ Deshabilitar las interrupciones.
I
A
S
Borrado de la Memoria FLASH
V
L
(Secuencia a utilizar)
A
D
I
„ Escribir 55h en el EECON2.
M
I „ Escribir AAh en el EECON2.
Poner en 1 el bit WR
WR. Esto comenzará el
R

„
ciclo de borrado
T
R
U
J
I
„ La CPU queda parada durante el tiempo
L
L
que tarde el borrado de la memoria que
O
son 2 mili segundos aproximadamente.
aproximadamente
A
R
„ Habilitar las interrupciones.
I
A
S
V
L
Escritura en memoria Flash.
A
D
I
„ La escritura en la memoria FLASH, se
M
I realiza en paquetes de 8 bytes o 4
instrucciones.
R

T
R
U
„ Debido a que el registro TABLAT es de
J
I
1 byte,
b t una operaciónió de
d escritura
it en
L
L FLASH, requiere el uso de 8 veces la
instrucción TBLWT.
O

A
R
I
A
S
Escritura en memoria Flash.
Escritura en memoria Flash
Flash.
V (Secuencia de Programación)
g
L
A
D
I
„ Secuencia de programación de la
M
I memoria FLASH.
R

„ Almacenar el bloque de 64 bytes donde se


va a modificar los datos, en la memoria
T
R

RAM.
U
J
I
L „ Actualizar los valores en la RAM si es
necesario
necesario.
L
O

A „ Cargar el apuntador del programa con la


R
I di
dirección
ió a ser borrada.
b d
A
S
Escritura en memoria Flash
Flash.
V (Secuencia de Programación)
g
L
A
D
I
„ Borrar el bloque de memoria FLASH.
M
I „ Cargar el apuntador del programa con la
R
dirección de inicio a ser escrita.
Escribir los primeros 8 bytes en los
T
R „
U
J
registros de sujeción.
Utilizar la instrucción (TBLWT* + o
I
L „

TBLWT+*)).
TBLWT+
L
O

A „ Poner en 1 el BIT EEPGD, para apuntar a


la memoria de programa
programa.
R
I
A
S
Escritura en memoria Flash
Flash.
V (Secuencia de Programación)
g
L
A
D
I
„ Borrar el BIT CFGS para acceder a la
M
I
memoria de programa y poner en 1 el BIT
R WREN para habilitar la escritura.
T
R
„ Deshabilite las interrupciones.
U
J
„ Escriba 55h en el registro EECON2.
Escriba AAh en el registro EECON2.
I
L „
L
O „ Coloque en 1 el BIT WR,
WR para comenzar el
A ciclo de escritura.
R
I
A
S
Escritura en memoria Flash
Flash.
V (Secuencia de Programación)
g
L
A
D
I
M
I „ La CPU se detiene cerca de 2 milisegundos
R
mientras se escribe
Re – habilite las interrupciones.
T
R „
U
J „ Repita este ciclo 7 veces
I
L
L
„ Para escribir los 64 bytes
O

A
R
I
A
S
Escritura en memoria Flash
Flash.
V (Secuencia de Programación)
g
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Memoria EEPROM de datos
A
D
I
„ La memoria EEPROM, no puede ser
M
I
direccionada normalmente, para acceder a
R
ella se hace a través de unos registros
g
T
R
especiales
EECON1 (Registro de configuración)
U
J „

EECON2 (Registro de configuración)


I
L „

EEDATA (Registro de transferencia de


L
O „

A
datos)
R
I
„ EEADR (Registro de direccionamiento)
A
S
V
L
Memoria EEPROM de datos
A
D
I
„ Los datos en la EEPROM, se
M
I sobrescriben y el tiempo de acceso de
escritura o lectura tiene un tiempo
R

típico de 4 milisegundos
T
R
U
J
I
„ D bid a que ell registro
Debido i t EEADR es ded 8
L
L bits, la capacidad en EEPROM es de 256
bytes.
O

A
R
I
A
S
V
L
Memoria EEPROM de datos
A
D
I
M
I
R

T
R
„ BIT 7 EEPGD: bit de selección de la memoria FLASH o
U EEPROM
J „ 1 = Acceso
A a la
l memoria
i FLASH
I
L
„ 0 = Acceso a la memoria EEPROM.
L „ BIT 6 CFGS: Acceso a la memoria FLASH/EEPROM o a los
O registros de
d configuración
f ó ddell PIC
C
A
„ 1 = Acceso a los registros de Configuración
R „ 0 = Acceso a la memoria FLASH o EEPROM
I
A
S
V
L
Memoria EEPROM de datos
A
D
I
„ BIT 5 Sin implementar
M
I
„ BIT 4 FREE: Habilitación
ó del ciclo de borrado
R en la memoria FLASH
T „ 1 = Borra
B lla memoriai FLASH (64 bytes)
b t ) apuntada
t d
R
por TBLPTR en el próximo comando WR
U
J „ 0 = Solo para escritura.
escritura
I
L „ BIT 3 WRERR: Bit de Error
L
O „ 1 = Una operación de escritura ha sido
interrumpida.
A
R „ 0 = Operación
p de escritura completa.
p
I
A
S
V
L
Memoria EEPROM de datos
A
D „ BIT 2 WREN: Bit de habilitación de escritura en
I FLASH o EEPROM
M
I
„ 1 = ciclos de escritura permitidos
R „ 0 = No permite escritura en la memoria EEPROM
T
„ BIT WR: bit de control de escritura
R „ 1 = Inicializa un ciclo de escritura en EEPROM o FLASH.
U Cuando la operación termina, el bit es borrado por HW y no
J se puede por software
software.))
I
„ 0 = El ciclo de escritura en EEPROM finalizó
L
L „ BIT 0 RD: bit de control de lectura.
O
„ 1 = Lee la memoria EEPROM. Es borrado por HW y
A no por SW. Este bit no se puede poner en 1 si EEPGD
R = 1.))
I
A
„ 0 = No se inicia la lectura de la EEPROM
S
Lectura de la memoria EEPROM
V
L
de datos
A
D
I
„ Para la lectura de la memoria EEPROM,
M
I se escribe la dirección a leer en EEADR.
R

T
„ Poner en 0 el bit EEPGD (bit 7 EECON1)
Poner en 0 el bit CFGS (bit 6 EECON1)
R
U „
J
I
L
„ Poner en 1 el bit RD (bit 0 EECON1)
El dato leído se almacena en el registro
L
O „
A
R
EEDATA
I
A
S
Escritura en la memoria EEPROM
V
L
de datos
A
D „ Para la Escritura en la memoria EEPROM, se escribe
I
M la dirección a acceder en el registro EEADR
EEADR.
I
R „ Poner en 0 el bit EEPGD (bit 7 EECON1)
T
„ P
Poner en 0 ell bit CFGS (bit 6 EECON1)
R
U
„ Poner en 1 el bit WREN (bit 0 EECON1) con el fin de
J habilitar el acceso en modo escritura.
escritura
I
L „ Poner en 1 el bit WR, para comenzar la escritura.
L
O „ El dato leído se almacena en el registro EEDATA
A „ Al finalizar la escritura en la memoria EEPROM, se
R
I
genera una interrupción
interrupción, al ponerse el 1 el bit EEIF
A del registro PIR2
S
Módulo conversión A/D
V (18F452)
L
A
D
I
„ El conversor analógico digital posee una
M
I resolución de 10 bits.
R

T
„ Controlado por los registros ADCON1 y
R
U
ADCON0.
El resultado de la conversión
ó es
J
I „
L
L
O
g
almacenado en los registros ADRESL y
A
ADRESH.
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
„ Bit 5-3 CHS2:CHS0: Selección del
M
I
canall analógico
ló i
R
„ 000 = canal 0, (RA0)
T
R
„ 001 = canal 1, (RA1)
U
J
„ 010 = canal 2,, (RA2)
( )
I
L
„ 011 = canal 3, (RA3)
L
O „ 100 = canal 4,
4 (RA5)
A „ 101 = canal 5, (RE0)
110 = canal 6,
6 (RE1)
R
I „

111 = canal 7, (RE2)


A
S „
Módulo conversión A/D
V (18F452)
L
A
D
„ Bit 2 GO/DONE: Estado de la conversión
A/D Debe estar habilitado el bit ADON
A/D.
I
M
I
R „ 1 = Conversión A/D en progreso (Colocando este
bit en 1,
1 se inicia la conversión A/D.
A/D Se borra por
HW, cuando la conversión termina.)
T
R
U
J
„ 0 = La conversión A/D no esta en p progreso.
g
I
L
„ Bit 1 Sin implementar
L
O
„ Bit 0 ADON: Enciende el módulo A/D
„ 1 = El módulo A/D esta encendido
A
R „ 0 = El módulo A/D
/ esta apagado
p g y no consume
I
A
corriente.
S
Módulo conversión A/D
V (18F452)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
„ Bit 7 ADFM: Formato del resultado de la
conversión A/D.
A/D
I
M
I
R „ 1 = Justificado a la derecha. Los 6 bits mas
significativos del registro ADRESH son cero.
cero
T
R „ 0 = Justificado a la izquierda. Los 6 bits menos
U
J
g
significativos del registro
g ADRESL son cero.
I
L
„ Bit 6 ADCS2: selección del tiempo de
L conversión del módulo A/D, trabaja
j en asocio
con los bits ADCS1 y ADCS0 del registro
O

A
R
ADCON0
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D „ Cuando el procesador se encuentra en modo
I
SLEEP y se desea realizar una conversión
conversión, se
debe utilizar como base de tiempo el oscilador
M
I
R RC del conversor A/D.
T „ El conversor analógico
ló i digital
di it l funciona
f i por
R
U
conversiones sucesivas.
J „ Un RESET en el dispositivo,
dispositivo obliga el apagado del
I
conversor A/D y cualquier conversión en proceso
es abortada.
L
L
O
„ Cada pin del microcontrolador que se use como
A entrada analógica, debe ser configurado como
R
I
entrada en el respectivo registro TRIS
A
S
Módulo conversión A/D (Pasos)
V (18F452)
L
A
D
I
„ Los pasos para realizar una conversión
M
I
A/D son llos siguientes:
i i
R
„ 1. Configuración
g del módulo A/D.
/
Se configuran los pines que serán entradas
T
R „
U
J
analógicas
g o digitales
g (ADCON1).
( )
I
L
„ Se selecciona el canal de entrada al
L
O
módulo A/D/ ((ADCON0). )
A
„ Se selecciona el reloj de conversión A/D
R ((ADCON0).)
I
A „ Se enciende el módulo A/D (ADCON0).
S
Módulo conversión A/D (Pasos)
V (18F452)
L
A
D „ 2. Configuración de interrupciones para el
I
M
módulo A/D (opcional)
I „ Borrar el bit ADIF en el registro PIR1
R
„ Poner en 1 el bit ADIE en el registro PIE1.
T „ Poner en 1 el bit GIE y el PEIE en el registro
R
U
INTCON.
J „ 3. Esperar el tiempo de adquisición en el
3
I
L
condensador de sujeción interno.
L
„ 4. Comenzar la conversión,, colocando en 1 el
bit GO/DONE del registro (ADCON0), este bit
O

A no se debe poner en 1 al mismo tiempo que


R
I
instrucción que enciende el módulo A/D
A (ADON = 1)
S
Módulo conversión A/D (Pasos)
V (18F452)
L
A
D „ 5. Esperar que la conversión A/D concluya
cuando:
I
M
I
R
„ El bit GO/DONE se ponga en 0 ó la interrupción del
conversor A/D
/ se dé.
T
R
„ 6. Leer el resultado en los registros ADRESH y
U ADRESL y borrar el bit ADIF si es necesario.
J
I „ 7. Para conversiones sucesivas, se deben esperar
L
L
2 TAD’s antes de que el nuevo tiempo de
O adquisición comience
comience. Se entiende por un TAD,
TAD el
A tiempo que demora la conversión de 1 bit y no
R
I
puede ser menor a 1.6 micro segundos
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
„ Los bits ADCS0, ADCS1 y ADCS2, permiten
M
I
escoger el oscilador para la conversión
ó A/D
R que tiene relación directa con el TAD.
T
R
„ El TAD se obtiene así:
U
J
„ TAD = 1/(FOSC/n)
( ) ó TOSC * n donde TOSC =
I 1/FOSC.
L
L „ Si el valor de ADCS0, ADCS1, ADCS2 es de 101, el
O
valor del TAD será de (16 * TOSC)
A
R
„ Si se desea trabajar con el oscilador RC interno del
I módulo
ód l A/D,
A/D ell valor
l del
d l TAD será
á de
d 2 micro
i
segundos.
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
„ El módulo A/D de este micro consta de
M
I 13 canales analógicos. El resultado de
la conversión es de 10 bits.
R

T
R
U
„ Cinco registros conforman este módulo.
ADRESH, ADRESL, registros de control
J
I „
L
L
O
ADCON0,, ADCON1 y ADCON2.
A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R

T
R
U
„ Bit 1 GO/DONE: Bit de estado de la conversión A/D
J „ Cuando ADON = 1:
I
„ 1 = Conversión A/D en progreso.
L
L
„ 0 = Conversor A/D desocupado
O
„ Bit 0 ADON: Bit habilitador
h b l d de d módulo
ód l A/D
/
A „ 1 = Módulo A/D habilitado
R
„ 0 = Módulo A/D deshabilitado
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D „ Bit 7-6 Sin implementar
I „ Bit 5-2 CHS3:CHS0: Selección del canal analógico
g
M „ 0000 = Canal 0 (AN0/RA0)
I
„ 0001 = Canal 1 (AN1/RA1)
R
„ 0010 = Canal 2 (AN2/RA2)
„ 0011 = C
Canall 3 (AN3/RA3)
T
„ 0100 = Canal 4 (AN4/RA5)
R
U
„ 0101 = Canal 5 (AN5/RE0)
J
„ 0110 = Canal 6 ((AN6/RE1)
/ )
I
„ 0111 = Canal 7 (AN7/RE2)
L „ 1000 = Canal 8 (AN8/RB2)
L „ 1001 = Canal 9 (AN9/RB3)
O „ 1010 = Canal 10 (AN10/RB1)
„ 1011 = Canal 11 (AN11/RB4)
A „ 1100 = Canal 12 (AN12/RB0)
R „ 1101 = Sin implementar
p
I „ 1110 = Sin implementar
A „ 1111 = Sin implementar
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R

Bit 7-6 Sin implementar, se lee como ‘0’


T
„
R
U „ Bit 5 VCFG1: Configuración de Voltaje de referencia (VREF-)
J
I „ 1 = VREF- (AN2)
L
„ 0 = VSS
L
O
„ Bit 4 VCFG0: Configuración
ó de Voltaje de referencia (VREF+)
A „ 1 = VREF+ (AN3)
R
„ 0 = VDD
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R

T
R
U
„ Bit 7 ADFM: Selección del formato del
J
I
resultado
es ltado del mód
módulo
lo A/D
1 = Justificado a la derecha
L
L „
O

„ 0 = Justificado a la izquierda
A
R
I
„ Bit 6 Sin implementar
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
„ Bit 5-3 ACQT2:ACQT0: Bit de selección del
M
I
tiempo de adquisición
ó
R
„ 111 = 20 TAD
T „ 110 = 16 TAD
R
U „ 101 = 12 TAD
J
I „ 100 = 8 TAD
L
L „ 011 = 6 TAD
O
„ 010 = 4 TAD
A
R „ 001 = 2 TAD
000 = 0 TAD
I
A „
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
„ bit 2-0 ADCS2:ADCS0: Bit de selección del
M
I
reloj para la conversión
ó A/D (TAD).
R
„ 111 = Uso del temporizador RC interno
T „ 110 = FOSC/64
R
U „ 101 = FOSC/16
J
I „ 100 = FOSC/4
L
L „ 011 = Uso del temporizador RC interno
O
„ 010 = FOSC/32
A
R „ 001 = FOSC/8
000 = FOSC/2
I
A „
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
„ Pasos para realizar una conversión A/D.
M
I
„ 1. Configuración del módulo A/D
R
„ Configurar los pines analógicos y los voltajes de
T referencia (ADCON1)
R
U „ Seleccionar canal de entrada (ADCON0)
J
I „ Escoger el tiempo de adquisición (ADCON2)
Seleccionar el tiempo de conversión TAD’s
L
L „
O
(ADCON2)
A „ Habilitar el módulo A/D (ADCON0)
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D „ 2. Configurar las interrupciones A/D
I
M
„ Borrar el bit ADIF
I „ Poner en 1el bit ADIE
R
„ Poner en 1 el bit GIE.
T „ 3. Esperar a que transcurra el tiempo de adquisición si es
R
necesario
U
J „ 4 Comenzar la conversión
4. conversión. Colocando en 1 el bit GO/DONE del
I (ADCON0)
L
L „ 5. Esperar a que la conversión A/D termine.
O
„ Cuando GO/DONE se pone en 0 ó se da una interrupción A/D
A „ 6. leer el resultado de la conversión en (ADRESH:ADRESL) y
R
borrar el bit ADIF
ADIF, si es necesario
necesario.
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Temporizador Timer 0
A
D „ Las características que posee el Timer0 son las
I siguientes:
M
I „ Se puede seleccionar un modo de trabajo a 8 o 16
R bits
T
„ S puede
Se d leer
l y escribir
ibi en él.
él
R
„ Posee un pre escalador propio de 8 bits.
U
J „ Selección de fuente de reloj externa (Pin RA4 T0CKI)
I o interna Fosc/4
L
L „ Genera una interrupción cuando se desborda en
O modo de 8 o 16 bits.
bits
A
„ El timer 0 es controlado por el registro T0CON
R
I
A
S
V
L
Temporizador Timer 0 Reg. T0CON
A
D
I
M
I
R

T „ Bit 7 TMR0ON: Bit de control ON/OFF del Timer0


R
U „ 1 = Habilita el Timer0
J
I „ 0 = Detiene el Timer0
L
L „ Bit 6 T08BIT: Bit de selección de Timer0 en modo
O
8 bits o 16 bits
„ 1 = Timer0 en modo 8 bits
A
R
I
„ 0 = Timer0 en modo 16 bits
A
S
V
L
Temporizador Timer 0 Reg. T0CON
A
D „ Bit 5 T0CS: Bit de selección de la fuente de reloj de
I
M
Timer0
Timer0.
I „ 1 = Transiciones en el pin T0CKI (RA4)
R
„ 0 = Reloj interno de Instrucciones (FOSC/4)
T „ Bit 4 T0SE: Bit de tipo de flanco para incremento de
Timer0.
R
U
J „ 1 = Incremento por flanco de bajada
bajada.
I
L
„ 0 = Incremento por flanco de subida.
L
O
„ Bit 3 PSA: Bit de asignación
g del Pre escalador
„ 1 = Pre escalador no asignado a Timer0.
A
„ 0 = Pre escalador asignado a Timer0.
R
I
A
S
V
L
Temporizador Timer 0 Reg. T0CON
A
D
„ Bit 2-0 T0PS2:T0PS0: Bits de selección del
pre escalador
escalador.
I
M
I
R „ 111 = 1:256
T
„ 110 = 1:128
R
„ 101 = 1:64
U
J „ 100 = 1:32
I
L „ 011 = 1:16
L
O
„ 010 = 1:8
A
„ 001 = 1:4
R „ 000 = 1:2
I
A
S
V
L
Temporizador Timer 0
A
D „ Si no se asigna preescalador a TMRO, el registro de
I
M él se incrementa cada ciclo de reloj
reloj.
I
R „ Si el registro TMR0L es escrito, el conteo no se
T
reanuda hasta dos ciclos de instrucción después.
reanuda, después
R
„ Si se utilizan instrucciones como:
U
J „ clrf TMR0
TMR0, movwf TMR0 ó bsf TMR0,
TMR0 el pre escalador es
I
puesto a 0, aunque la asignación del pre escalador no
L
L
cambia.
O
„ La interrupción
ó de TMR0, no puede sacar al
A procesador de un SLEEP, ya que en este caso el
oscilador interno esta parado
parado.
R
I
A
S
V
L
Temporizador Timer 0
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Temporizador Timer 0
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Temporizador Timer 0
A
D
I
„ El registro TMR0H se actualiza solo
M
I cuando se hace una lectura de TMR0L,
esto con el fin de leer los 16 bits de
R

TMR0.
T
R
U
J
I
„ L parte
La t alta
lt d
de TMR0,
TMR0 solo l se carga en
L
L el registro TMR0H cuando se hace una
escritura en TMR0L, esto con el fin de
O

transferir los 16 bits a la vez


A
R
I
A
S
V
L
Temporizador Timer 1
A
D „ El Timer1 es un temporizador de 16 bits posee los
registros TMR1H y TMR1L
TMR1L.
I
M
I
R
„ Selección de fuente de reloj interna o externa.
T
„ Puede conectarse un oscilador en los pines de
R entrada de Timer1 con el fin de tener una base de
U
J tiempo precisa independiente del reloj interno.
La interrupción se genera por rebose
I
L
„
L
O
„ Un evento especial del módulo CCP
CCP, lo coloca en 0
A
R
I
A
S
V
L
Temporizador Timer 1
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Temporizador Timer1 Reg. T1CON
A
D
„ Bit 7 RD16: Modo de lectura escritura de 16-
bits
I
M
I
R „ 1 = Habilita la lectura y escritura del Timer1 en
una operación de 1616-bits
bits.
T
R „ 0 = Habilita la lectura y escritura del Timer1 en
U
J
p
dos operaciones de 8-bits.
I
L
„ Cuando RD16 vale 1, la parte alta del timer 1
L es transferida a TMR1H a través de un buffer.
Esto ocurre solo cuando TMR1L es leído, así
O

A
R
se transfieren los 16 bits al tiempo.
I
A
S
V
L
Temporizador Timer1 Reg. T1CON
A
D
„ Para realizar una escritura de 16 bits a el
Timer 1 1, se carga TMR1H con el valor
I
M
I
R
deseado y a continuación se escribe TMR1L,
T
en ese instante se hace la transferencia de 16
R bits a la vez.
U
J „ Bit 6 Sin implementar
I
L „ Bit 5-4 T1CKPS1:T1CKPS0: Bits del pre
escalador de Timer1
L
O

A
„ 11 = 1:8
R
I
„ 10 = 1:4
A „ 01 = 1:2
S
„ 00 = 1:1
V
L
Temporizador Timer1 Reg. T1CON
A
D „ Bit 3 T1OSCEN: Bit habilitador del Oscilador
I
M
de Timer1.
Timer1
„ 1 = Oscilador de Timer1 habilitado
I
R

„ 0 = Oscilador de Timer1 apagado


T
R „ Bit 2 T1SYNC: Sincronización de reloj
U
J
externo con el reloj interno
„ Cuando TMR1CS = 1:
I
L

„ 1 = No sincronice la señal de reloj externa


L
O

„ 0 = Sincronice la señal de reloj externa


A
R „ Cuando TMR1CS = 0:
I
A „ Se ignora, ya que se esta usando el reloj
S
interno
V
L
Temporizador Timer1 Reg. T1CON
A
D
I
„ Bit 1 TMR1CS: Bit de selección de la fuente
M
I
de reloj de Timer1.
R
„ 1 = Reloj externo, entrada por
T RC0/T1OSO/T13CKI
/ / ((cuenta cada
d fl
flanco de
d
R
U
subida)
J
I
„ 0 = Reloj
R l j Interno
I t (FOSC/4)
L
L
„ Bit 0 TMR1ON: Bit de encendido del Timer1
O
„ 1 = Habilita el conteo en Timer1
A
R
„ 0 = Detiene el conteo en Timer1
I
A
S
V
L
Temporizador Timer1. Oscilador
A
D
I
„ El oscilador externo para Timer1 se ubica
M
I
entre los pines T1OSO y T1OSI (RC0 y RC1)
R
„ El oscilador de cuarzo que se conecta a estos
T
R
pines no debe exceder los 200 KHz.
U
J
„ Los condensadores sugeridos son de 33 pF.
Una alta capacitancia incrementa la
I
L „

estabilidad pero aumenta el tiempo de


estabilidad,
L
O

A
arranque del oscilador
R
I
A
S
V
L
Temporizador Timer 1
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Temporizador Timer 2
A
D „ El Timer2 se caracteriza por lo siguiente
Un registro TMR2 de 8 bits
I
M „
Un registro PR2, que controla el máximo
I
R „

T
conteo de TMR2.
TMR2
R „ Un pre escalador de (1:1, 1:4, 1:16)
U
J „ Un post escalador (1:1 a 1:16)
Se genera una interrupción al igualarse TMR2
I
L „
L
O
con PR2.
„ TMR2 es utilizado como base de tiempo para
el control del módulo PWM
A
R
I
A
S
V
L
Temporizador Timer 2
A
D
I
„ El pre escalador y el post escalador son
M
I puestos a su valor mínimo, cuando:
R

„ Se escribe en el registro TMR2.


T
R
U
„ Se escribe en el registro T2CON
J
I
„ P un RESET
Por
El valor de TMR2 no se pone en 0 si
L
L „
O
T2CON es modificado.
A
R
I
A
S
V
L
Temporizador Timer 2
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Temporizador Timer2 Reg. T2CON
A
D „ Bit 7 Sin implementar
I
M
„ Bit 6 a 3 TOUTPS3:TOUTPS0: Timer2 Post
I escalador
R „ 0000 = 1:1 Post escalador
T
„ 0001 = 1:2
1 2 Post
P t escalador
l d
R „ 1111 = 1:16 Post escalador
U
J
„ Bit 2 TMR2ON: Bit de encendido
I „ 1 = Timer2 encendido
L „ 0 = Timer2 apagado
Bit 1 a 0 T2CKPS1:T2CKPS0: Timer2 Pre escalador
L
O
„
„ 00 = Pre escalador en 1
A
„ 01 = Pre escalador en 4
R
I „ 1x = Pre escalador en 16
A
S
V
L
Temporizador Timer2
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Temporizador Timer 3
A

El temporizador Timer3 posee las siguientes


D
I „
M
I
características:
R
„ 16 – bits de tamaño, conformado por dos
T registros de 8 bits
R
U
J
„ Uso de oscilador externo.
I
L
„ Interrupción por rebose del temporizador, al
L pasar de FFFFh a 0000h
O
„ Se puede borrar por un disparo del módulo
A
R CCP.
I
A
S
V
L
Temporizador Timer 3
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Temporizador Timer 3 Reg. T3CON
A
D
I
„ Bit 7 RD16: Habilita el modo de lectura
M
I escritura de 16 bits
R

„ 1 = Habilita la lectura escritura del Timer3


en una operación de 16 bits. El TMR3H, se
T
R

actualiza al leer o escribir en el TMR3L


U
J
I
L „ 0 = Habilita la lectura escritura del Timer3
en dos operaciones de 8 bitsbits.
L
O

A
R
I
A
S
V
L
Temporizador Timer 3 Reg. T3CON
A
D
I
„ Bit 6-3 T3CCP2:T3CCP1:Uso del Timer3 y
M Ti
Timer11 para trabajar
t b j con ell módulo
ód l CCPx.
CCP
I
R „ 1x = Timer3 es la fuente de reloj para el

T módulo
ód l CCP en modo d captura
t y comparación.ió
R
U „ 01 = Timer3 es la fuente de reloj para el

módulo
ód l CCP2 y Timer1 es lal fuente
f de
d reloj
l
J
I
L
L
para el módulo CCP1
„ 00 = Timer1 es la fuente de reloj para el
O

A
R
módulo CCP en modo captura y comparación.
I
A
S
V
L
Temporizador Timer 3 Reg. T3CON
A
D „ Bit 5-4 T3CKPS1:T3CKPS0: Pre escalador del
I
M Timer3
I
R
„ 11 = 1:8
„ 10 = 1:4
T
R
„ 01 = 1:2
U
„ 00 = 1:1
J
I „ Bit 2 T3SYNC: Bit para sincronización de la fuente
L
L de reloj externa de Timer3.
O
„ Cuando TMR3CS = 1:
A „ 1 = No sincronice el reloj externo con el interno
R
„ 0 = sincronice el reloj externo con el interno
I
A „ Cuando TMR3CS = 0:
S
„ Es ignorado.
V
L
Temporizador Timer 3 Reg. T3CON
A
D
I
„ Bit 1 TMR3CS: Selección de la fuente
M
I
d reloj
de l j de
d Timer3
Ti 3
R
„ 1 = Fuente de reloj externa proveniente
T del oscilador de Timer1 o del pin T1CKI
R
U
J
„ 0 = Fuente de reloj interna (FOSC/4)
I
L
„ Bit 0 TMR3ON: Encendido de Timer3
L
O
„ 1 = Habilita Timer3
A
„ 0 = Detiene Timer3
R
I
A
S
V
L
Temporizador Timer3
A
D
I
„ Para que el reset debido al evento de
M
I disparo del módulo CCP funcione, el
TIMER3, debe estar configurado con
R

reloj interno o externo con


T
R
U
J
I
sincronización
sincronización.
L
L „ El evento de disparo coloca en 0 el
timer 3 pero no genera una
O

p
interrupción.
A
R
I
A
S
V
L
Temporizador Timer3
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Modulo CCP
A
D „ El módulo CCP1 y CCP2, constan de 1 registro de
I control CCPxCON y 2 registros de 8 bits auxiliares
M
I
(CCPRxL y CCPRxH) para el manejo del módulo.
R „ Los modos de trabajo son captura, comparación y
T
PWM
PWM.
R „ Este módulo hace uso de los temporizadores
U Timer1, Timer2 y Timer3
J
I
L
L
O

A
R
I
A
S
V
L
Modulo CCP (Registro de control)
A
D
I
M
I
R

T
R
U
J „ Bit 7-6 Sin implementar
I
L
L
„ Bit 5-4 DCxB1:DCxB0: bit 0 y 1 de el ciclo de
O
t b j PWM,
trabajo PWM no usadod en modod captura
t y
A comparación
R
I
A
S
V
L
Modulo CCP (Registro de control)
A
D
„ Bit 3-0 CCPxM3:CCPxM0: Bits de selección del modo de trabajo
I „ 0000 = Modulo CCP apagado
M „ 0001 = Reservado
I „ 0010 = Modo compara, pulso a la salida al darse la igualdad (CCPxIF se
R coloca en 1)
„ 0011 = Reservado
T „ 0100 = Moda captura, cada flanco de bajada.
R „ 0101 = Modo captura, cada flanco de subida.
U „ 0110 = Modo captura, cada 4 flancos de subida.
J „ 0111 = Modo captura
captura, cada 16 flancos de subida.
subida
I „ 1000 = Modo compara, coloca el pin CCP en estado alto cuando se produce
L la igualdad (CCPIF se coloca en 1)
L „ 1001 = Modo compara, coloca el pin CCP en estado alto al darse la
O i
igualdad
ld d (CCPIF se coloca
l en 1)
„ 1010 = Modo compara, el pin CCP no cambia, CCPIF se coloca en 1 cuando
A la igualdad se da.
R „ 1011 = Modo compara, se genera un evento trigger al producirse la
I i
igualdad
ld d (CCPIF se coloca
l en 1)
A „ 11xx = Modo PWM
S
V
L
Modulo CCP (Modo de Captura)
A
D „ En modo de captura los registros CCPR1H:CCPR1L, capturan el
I
valor de los 16 bits de los registros de TMR1 o TMR3,
TMR3 cuando un
M
I
evento en el pin RC2/CCP1 ocurre.
R
„ Los eventos son:
T „ Cada flanco de bajada
R „ Cada flanco de subida
U
J
„ Cada 4 flancos
a cos de subida
sub da
I „ Cada 16 flancos de subida
L
L
„ El pin del módulo CCPP debe ser configurado como entrada
O „ El timer 1 y 3 deben estar sincronizados con el reloj interno, si
A
están contando pulsos externos.
R „ Si se realiza un cambio de configuración del modo de trabajo
I
A
del módulo CPP, se debe apagar el módulo. Ya que si no se
S hace se puede generar una falsa interrupción.
V
L
Modulo CCP (Modo de Captura)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Modulo CCP (Modo de Captura)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Modulo CCP (Modo Compara)
A
D „ En modo compara, los 16 bits de los registros CCPR1 o (CCPR2)
I
son comparados constantemente con el valor de TMR1 o TMR3
TMR3.
M
I „ Cuando el valor de CCPRx se hace igual al de un Timer, ocurre
R
lo siguiente en los pines RC2/CCP1 o RC1/CCP2:
T „ Se pone en estado alto
R „ Se pone en estado bajo
U
J
„ Cambia
Ca b a de estado (Alto
( to a Bajo
ajo o Bajo
ajo a Alto)
to)
I „ Se mantiene sin cambios
L
L
„ El timer 1 y 3 deben estar sincronizados con el reloj interno, si
O están contando pulsos externos
externos.
A
„ Si se realiza un cambio de configuración del modo de trabajo
R del módulo CPP, se debe apagarg el módulo. Ya que si no se
I hace se puede generar una falsa interrupción
A
S
V
L
Modulo CCP (Modo Compara)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Modulo CCP (Modo Compara)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D „ El modo PWM, posee una resolución de 10 bits.
I
M „ Al borrar el registro CCPxCON
CCPxCON, la salida del módulo
I
PWM se pone en su estado por defecto (0).
R
„ El registro Timer 2 es utilizado como base de tiempo
T
R
para la operación de este módulo.
U „ El pos escalador de TMR2 no se utiliza.
J
I „ El periodo PWM esta dado por:
L
L
„ Periodo PWM = [PR2 + 1] * 4* TOSC*(Pre escalador TMR2)
O „ El ciclo
i l de
d trabajo
t b j o tiempo
ti de
d cresta
t esta
t dado
d d por:
A „ Tiempo Cresta PWM = (CCPR1L:CCP1CON<5:4>)*TOSC
R (
*(Pre escalador de TMR2))
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D „ Como Configurar el módulo PWM
I
M „ Seleccione el periodo de trabajo mediante el registro
I
PR2.
R
„ Seleccione el tiempo de cresta de PWM mediante el
T
R
registro CCPR1L y los bits 5 y 4 de CCP1CON.
U „ Configure el pin de salida del módulo CPP como
salida.
J
I
L
L
„ Configure el preescalador de Timer2 en el registro
O T2CON
T2CON.
A
„ Configure el módulo CPP para modo de trabajo PWM.
R
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Modulo de Comunicación serial
V
L
USART
A
D
I
„ El módulo de comunicación serial puede
M
I ser configurado de la siguiente manera:
R

„ Sistema asíncrono full duplex.


T
R
U
„ Sistema sincrónico half-duplex (Maestro).
J
I
„ Si t
Sistema sincrónico
i ó i half-duplex
h lf d l (Esclavo).
(E l )
El módulo USART cuenta con dos
L
L „
O

A
registro de configuración.
R
I
„ Registro de control de transmisión TXSTA.
TXSTA
Registro de control de recepción RCSTA.
A
S „
Modulo de Comunicación serial
V
L
USART (Registro
g TXSTA)
A
D
I
M
I
R

T
R
U
„ Bit 7 CSRC: Selección de la fuente de reloj.
J „ Modo Asíncrono:
I
L „ No se tiene en cuenta
L
O
„ Modo sincrónico:
„ 1 = Modo maestro (reloj generado internamente por el
A BRG)
R
I
„ 0 = Modo Esclavo (reloj de fuente externa)
A
S
Modulo de Comunicación serial
V
L
USART (Registro
g TXSTA)
A
D „ Bit 6 TX9: Habilitador de transmisión de 9-bit.
1 = 9 bits para transmitir.
transmitir
I
M „
I
R
„ 0 = 8 bits para transmitir.
„ Bit 5 TXEN: Habilitación de Transmisión
T
R „ 1 = Transmisión habilitada
U
J
„ 0 = Transmisión deshabilitada
I „ Bit 4 SYNC: Selección del modo de trabajo
L
L USART
O
„ 1 = Modo
d sincrónico
i ó i
A „ 0 = Modo asíncrono
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Registro
g TXSTA)
A
D „ Bit 3 Sin implementar
I
M „ Bit 2 BRGH: Modo de selección
ó de trabajo del Baud
I
R Rate Generator
„ Modo asíncrono:
T
R „ 1 = Alta velocidad
U
„ 0 = Baja velocidad
J
I „ Modo Sincrónico:
L
„ No utilizado en este modo
L
O „ Bit 1 TRMT
TRMT: Estado
E t d ddell registro
i t ded corrimiento
i i t
A „ 1 = TSR vacío
R
I
„ 0 = TSR lleno
A
S
„ Bit 0 TX9D: Noveno bit de datos a ser transmitido
Modulo de Comunicación serial
V
L
USART (Registro
g RCSTA)
A
D
I
M
I
R

T
R „ Bit 7 SPEN: Habilitador de puerto serial
U
J „ 1 = Puerto serial habilitado
0 = Puerto serial deshabilitado
I
L
„
L
O
„ Bit 6 RX9: Habilita la recepción de noveno bit.
bit
A
„ 1 = Se van a recibir 9 bits.
R „ 0 = Se van a recibir 8 bits.
I
A
S
Modulo de Comunicación serial
V
L
USART (Registro
g RCSTA)
A
D
I
„ Bit 5 SREN: Habilitación de recepción
M
I simple.
R

„ Modo asíncrono:
T
R „ No se tiene en cuenta
U
J
I
„ Modo sincrónico - Maestro:
L „ 1 = Habilita una recepción simple
L
O „ 0 = Deshabilita
D h bilit lal recepción
ió simple.
i l
A
R
„ Modo sincrónico - Esclavo:
I
A
„ No se tiene en cuenta
S
Modulo de Comunicación serial
V
L
USART (Registro
g RCSTA)
A
D
I
„ bit 4 CREN: Habilita la recepción
M
I continua.
R

„ Modo asíncrono:
T
R „ 1 = Habilita el receptor
U
J „ 0 = Deshabilita el receptor
I
L „ Modo sincrónico:
L
O „ 1 = Habilita
H bilit la
l recepción
ió continua,
ti hasta
h t que ell
A bit CREN se borre (CREN sobrescribe SREN)
0 = Deshabilita la recepción continua
continua.
R
I
„
A
S
Modulo de Comunicación serial
V
L
USART (Registro
g RCSTA)
A
D „ bit 3 ADDEN: Habilita la detección de direcciones
I
„ Modo asíncrono con noveno bit en 1 (RX9 = 1):
M
I
„ 1 = Habilita la detección de direcciones, habilita la interrupción
R
y lee el buffer de recepción cuando RSR<8> se pone en 1
„ 0 = Deshabilita la detección de direcciones, todos los bytes son
T
recibidos
b d y ell noveno bit
b se pueded usar como bitb ded paridad
d d
R „ bit 2 FERR: Bit de error de Encuadre
U
J
„ 1 = Error de encuadre
I „ 0 = No hay error de encuadre
L
L
„ bit 1 OERR: Bit de error de desborde
O „ 1 = Error de desborde
„ 0 = No hay error de desborde
bit 0 RX9D: Noveno bit en recepción
A
R „
I
A
S
Modulo de Comunicación serial
V
L
USART (Tasa de transferencia)
A
D „ Existen dos modos para calcular la tasa de transferencia de
I
puerto serial USART.
USART Modo alta y baja velocidad.
velocidad
M
I „ El bit BRGH <TXSTA 2>, permite escoger el modo, mientras
R
que el registro SPBRG contiene la tasa de transferencia
T
escogida.
id En
E las
l ecuaciones
i “X” es ell valor
l ded SPBRG
R „ Modo asíncrono baja velocidad.
U
J
„ Tasa de transferencia = FOSC/(64(X+1))
I
„ Modo asíncrono alta velocidad.
L
L „ Tasa de transferencia = FOSC/(16(X+1))
O
„ Modo sincrónico baja velocidad.
A „ Tasa de transferencia = FOSC/(4(X+1))
R
„ Modo sincrónico alta velocidad
velocidad.
I
A „ No aplica
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono)
A
D „ En modo asíncrono el USART utiliza el estándar de no
I
M retorno a cero NRZ
NRZ.
I
R „ Se utiliza un bit de inicio, 8 o 9 bits de datos y un bit
T
de parada
parada.
R
„ El USART transmite y recibe primero el bit menos
U
J significativo
I
L „ El TX y RX pueden funcionar independientemente,
L
O
aunque utilizan la misma tasa de transferencia.
A
„ No se soporta bit de paridad por HW, aunque se
R puede realizar por
p p SW.
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
„ El registro TSR es actualizado con el
M
I valor contenido en TXREG, cuando la
transferencia de datos ha finalizado; es
R

decir cuando el bit de parada de un


T
R
U
J
I
dato previo ha sido transmitido.
transmitido
L
L „ TXTREG se actualiza por SW.
O

A
„ Una vez que TXREG transfiere sus datos
R
I
a TSR,
TSR queda vacío y se produce una
A
S
interrupción.
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
„ La bandera TXIF se pone en 1, independiente
M
I
del estado de TXIE y no puede ser borrada
R por SW. Solo se borra cuando un nuevo valor
T h sido
ha d cargado
d en TXREG.
R
U
J
„ El bit TRMT, muestra el estado del registro de
I corrimiento TSR, colocándose en 1 cuando
L
L TSR esta vacío.
O

A
„ La bandera TXIF solo se pone en 1 cuando el
R bit TXEN esta en 1
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D „ Para configurar la transmisión se requiere:
I
M „ 1 Inicializar
1. I i i li ell SPBRG para la
l tasa
t de
d transferencia
t f i
I
deseada. Con el bit BRGH se escoge si se desea alta o
R
baja
j velocidad.
T
R
„ 2. Habilitar el puerto seria asíncrono colocando en 0 el bit
U SYNC y poniendo en 1 el bit SPEN.
J
I „ 3. Si se desean interrupciones colocar en 1 el bit TXIE.
L
L
„ 4. Si se desea transmisión de noveno bit, colocar en 1 el
O bit TX9
TX9.
A „ 5. Habilitar la transmisión colocando en 1 el bit TXEN el
R
cual colocará en 1 el bit TXIF.
I
A „ 6. Cargar el dato a transmitir en TXREG.
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono RX)
A
D „ Para habilitar una recepción asíncrona se requiere:
I
M
„ 1 Inicializar el SPBRG para la tasa de transferencia deseada
1. deseada.
I Con el bit BRGH se escoge si se desea alta o baja velocidad.
R
„ 2. Habilitar el puerto serial asíncrono colocando en 0 el bit SYNC
T y poniendo en 1 el bit SPEN.
R
U
„ 3. Si se desean interrupciones colocar en 1 el bit RCIE.
J „ 4 Si se desea recepción de noveno bit
4. bit, colocar en 1 el bit RX9
RX9.
I
L
„ 5. Habilitar la recepción colocando el bit CREN en 1.
L
„ 6. La bandera RCIF se p pondrá en 1 cuando la recepción
p se
O
complete y se generará una interrupción si el bit RCIE fue
A puesto en 1.
R
I
„ 7 Leer el dato recibido del registro RCREG.
7. RCREG
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono RX)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono RX)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S

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