Está en la página 1de 319

MICROCONTROLADORES GAMA

ALTA Y ARQUITECTURAS
MIXTAS
Departamento de Electrnica Instrumentacin
y Control.
Cont ol
Profesor:
Ing Vladimir Trujillo Arias.
Ing.

Contenido.

L
A
D
I
M
I
R

CAPITULO 1. Introduccin

T
R

Evolucin de los sistemas digitales


Estado del Arte
Tendencias
Conceptos generales de procesadores

L
O
A
R
I
A
S

Qu
Q
Qu
Qu
Qu

es
es
es
es

un
un
n
un
un

microprocesador
microcontrolador
mic ocont olado
DSP
Dispositivo Lgico Configurable

Terminologa
utilizada en la arquitectura de
procesadores

Contenido.

L
A
D
I
M
I

CAPITULO 2. Conceptos Bsicos de


Microcontroladores Gama Alta

T
R
U
J
I
L
L
O
A
R
I
A
S

Familias de Microcontroladores de Altas


prestaciones
Arquitecturas de Microcontroladores de
Gama Alta

Contenido.

L
A
D

I
M

CAPITULO 3. Microcontroladores PIC de Gama Alta.


Familia 18

U
J
I
L
L
O

CAPITULO 4. Herramientas de programacin y


simulacin

I
A
S

Arquitectura
Capacidades de computo
Memoria
Perifricos especiales
Mdulos HW
Set de inst
instrucciones
cciones

Lenguaje Ensamblador
Compiladores C
Simuladores
S
u ado es (MPLAB
(
y PROTEUS)
O US)

Contenido.

L
A
D
I

CAPITULO 5. Arquitecturas Mixtas

I
R

T
R

U
J

I
L
L
O
A
R
I
A
S

Introduccin
Sistemas Multiprocesadores
Arquitecturas Electrnicas Paralelas
P
Procesadores
d
en Sistemas
Si t
d
de
Telecomunicaciones y Sistemas
I d ti l
Industriales

CAPITULO 6. Proyecto
y
Final.

Evolucin de los Sistemas


Digitales
g

L
A
D
I

M
I
R
T

R
U
J
I
L
L
O
A
R
I
A
S

La aparicin del transistor, condujo a su


uso como conmutador (lgica binaria).
Aparicin de tcnicas de integracin
electrnica (Microelectrnica), primeros
circuitos
i it integrados
i t
d Digitales.
Di it l
Circuitos Integrados
g
Monolticos

Evolucin de los Sistemas


Digitales
g

L
A
D
I

Clasificacin:

M
I
R

Segn la forma en que se realizan


fsicamente:

T
R

U
J
I
L
L
O
A
R
I
A
S

Segn el semiconductor: Silicio, Arseniuro de


Galio,, Silicio Germanio
Segn el Transistor: Bipolares, CMOS, BICMOS
Segn
g el nmero de transistores: SSI,, MSI,, LSI,,
VLSI, ULSI y GLSI.

Evolucin de los Sistemas


Digitales
g

L
A
D
I

Clasificacin:

M
I
R

Segn la forma en que se realiza el diseo


visto p
por el desarrollador:

T
R

U
J
I
L
L
O
A
R
I
A
S

Los Circuitos Integrados Digitales Monolticos


((CIDM)) Normalizados
Los Circuitos Integrados Digitales Monolticos
(CIDM) especificados por el usuario.

Evolucin de los Sistemas


Digitales
g

L
A
D
I
M
I

Segn el nmero de transistores:

Nivel de Integracin

# de
Transistores

# de
Ao
compuertas

Pequea
escala de integracin
SSI

10 a 100

1 a 10

Mediana escala de integracin MSI

100 a 1000

10 a 100

Gran escala de integracin LSI

1000 a 10000

100 a 1000

Muy Gran escala de integracin


VLSI

10K a 100K

1K a 10K

1960
1965
1970
1978

Ultra Gran escala de integracin


ULSI

100K a 1M

10K a 100K

1985

>100.000

1995

R
T
R
U
J
I
L
L
O
A
R
I
A
S

Giga Gran escala de integracin


GLSI

>1.000.000

Evolucin de los Sistemas


Digitales
g

L
A
D
I
M
I
R

Circuitos Integrados Digitales


M
Monolticos
l i
(CIDM) Normalizados
N
li d

T
R
U
J
I
L
L
O
A
R
I
A
S

CIDM normalizados de funcin fija. Los


cuales poseen una arquitectura predefinida
y su comportamiento no se puede alterar.
(C t d
(Contadores,
sumadores,
d
etc.)
t )
CIDM normalizados Programables.

Programables
bl de
d Arquitectura Fija.
Programables de Arquitectura Configurable.

Evolucin de los Sistemas


Digitales
g

L
A
D

I
M
I
R
T
R
U

J
I
L
L
O
A
R
I
A
S

CIDM normalizados Programables de Arquitectura


Fija Caracterizados por poseer un Hardware
Fija.
Hardware, en el
que las conexiones entre los elementos que lo
componen, no pueden ser modificadas. Pueden
ser Combinacionales
C bi
i
l o secuenciales.
i l
Los combinacionales se definen mediante una
tabla de verdad que rige su comportamiento,
comportamiento
como el caso de las memorias de acceso aleatorio.
Los secuenciales p
poseen una CPU,, que
q sigue
g un
programa almacenado en memoria.(Aqu se Hallan
los Microprocesadores y Microcontroladores)

Evolucin de los Sistemas


Digitales
g

L
A
D

I
M
I
R
T
R
U

J
I
L

L
O
A
R
I
A
S

CIDM normalizados Programables de Arquitectura


Configurable. La caracterstica principal de estos
dispositivos es la de modificar su funcin o
comportamiento, utilizando una parte de los
elementos que los componen y/o cambiando la
interconexin entre ellos.
Poseen un elevado contenido de elementos lgicos
en su interior
interior.
Utilizados especialmente en el diseo de sistemas
electrnicos digitales complejos, en aplicaciones
d paralelismo
de
l li
o en aquellos
ll casos en que los
l
dispositivos existentes no son los adecuados.
FPGAs,
FPGA
s, PLDs
PLD s

Evolucin de los Sistemas


Digitales
g

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Los Circuitos Integrados Digitales Monolticos


(CIDM) especificados
f
por el usuario. Estos
dispositivos se fabrican por peticin de un
usuario y en grandes
d cantidades,
d d
especialmente para produccin en serie.
Requieren de potentes herramientas de
desarrollo electrnico con el fin de ser
diseados por el que los requiere.

Estado del Arte y Tendencias

L
A
D
I

M
I
R
T
R

U
J

I
L
L
O
A
R
I
A
S

Las empresas lderes a nivel mundial, en


sistemas embebidos de uso general son:
INTEL
(Microprocesadores)
TEXAS
(Microcontroladores y DSP)
ALTERA
(PLDS
(PLD
S, FPGAS
FPGA S DSPS)
DSP S)
XILINX
(PLDS, FPGAS DSPS)
MICROCHIP
C OC
(
(Microprocesadores)
d
)

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Estado del Arte y Tendencias

L
A
D
I

M
I
R

T
R
U

INTEL.
A nivel de Procesadores producen
dispositivos para:
Computadores de escritorio

J
I

L
L
O
A
R
I
A
S

Intel Pentium 4 Extreme Edition


Intel Pentium 4
Intel Celeron

Estado del Arte y Tendencias

L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Procesadores para computador de escritorio

Pentium 4 XE

Pentium 4

Celeron

Hyper-Threading
yp
g

Hyper-Threading
yp
g

No Hyper-Threading
yp
g

Dos niveles de Cach


hasta de 2MB

Un nivel de cach de
hasta 2 MB

Un nivel de cach de
hasta 256 K

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

Bus Frontal de 800 MHz

Bus Frontal de 400 MHz

Tecnologa de procesador
de 90 nm

Tecnologa de procesador
de 130 nm

Bus Frontal de 1066 MHz


Tecnologa de procesador
de 90 nm

Estado del Arte y Tendencias

L
A
D
I

Computadores Porttiles

I
R

R
U

J
I
L
L
O
A
R
I
A
S

Intel Pentium M
Mobile Intel Pentium 4
Intel Celeron M
Mobile Intel Celeron

Servidores

Intel Itanium 2
Intel Xeon Processor
Intel Pentium 4 processor

Estado del Arte y Tendencias

L
A
D
I
M
I

Procesadores para computadores porttiles.


Procesador Intel
Pentium M

Intel
Pentium 4
mobile

Tecnologa
l de
d
procesador de 90 nm

Tecnologa
l de
d Tecnologa
l de
d
procesador
procesador de 90
de 90 nm
nm

Tecnologa
l de
d
procesador de 130
nm

Un nivel
U
i l de
d Cach
C h hasta
h t
de 2MB

Un nivel
U
i l de
d
Cach hasta
de 1MB

Un nivel
U
i l de
d Cach
C h
hasta de 1MB

Un nivel
U
i l de
d Cach
C h
hasta de 256kB

Velocidad
hasta 3.46
GHz

Velocidad hasta 1.5


15
GHz velocidad para
ultra bajo consumo
de 1 Ghz

Velocidad hasta 2.5


25
GHz velocidad para
ultra bajo consumo
de 800 Mhz

Bus Frontal
de 533 MHz

Bus Frontal de 400


MHz

Bus Frontal de 400


MHz

R
T
R
U
J
I
L
L
O
A
R
I
A
S

Velocidad de 2.13 GHz


con velocidad para ultra
bajo consumo de 1.2
Gh
Ghz
Bus Frontal de 533 MHz

Intel Celeron M
Processor

Mobile Intel
Celeron
Processor

Estado del Arte y Tendencias

L
A
D
I

Procesadores para servidores.


Intel Pentium 4 con
tecnologa HyperThreading

Intel Itanium 2 Permite Intel Xeon Permite


trabajo multiprocesador trabajo multiprocesador
o procesador dual
o procesador dual

Tecnologa de procesador
de 90 nm

Tecnologa de procesador
de 90 nm

Un nivel de Cach hasta


de 2MB

Tres niveles de Cach 32k, Tres niveles de Cach ??k,


256k y hasta de 9MB en el 1M y hasta de 8MB en el
nivel 3
nivel 3

Velocidad hasta 3.46 GHz

Velocidad hasta 1.6 GHz

Velocidad hasta 3.66 GHz

Bus Frontal de 800 MHz

Bus Frontal de 400 MHz


con 128 bits de ancho y
BW de I/O de 6.4 Ghz

Bus Frontal de 677 MHz


con 128 bits de ancho y
BW de I/O de 14 Ghz

M
I
R
T
R
U
J
I
L
L

R
I
A
S

Tecnologa de procesador
de 90 nm

Estado del Arte y Tendencias

L
A
D
I

Procesadores para equipos de red.

I
R
T
R
U
J
I
L

Procesadores para equipos Inalmbricas

L
O
A
R
I
A
S

Intel IXP4XX que son procesadores utilizados para


dispositivos de comunicaciones, como
en tado es gate
enrutadores,
gateways,
a s Cont
Control
ol ind
industrial
st ial y
aplicaciones de automatizacin, telemetra e
instrumentacin lectores RDIF
instrumentacin,
RDIF.

Intel PCA
PCA. Diseado funcionar en equipos de
comunicaciones mviles, como PDA, celulares y
equipos similares.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Estado del Arte y Tendencias

L
A
D

I
M
I
R
T
R

U
J
I

L
L
O
A
R
I
A
S

Microcontroladores Texas Instruments


Familia MSP430
Poseen un manejo de potencia muy bajo, con
una CPU de tipo RISC de 16 bits
Poseen una serie de perifricos analgicos y
digitales, para mediciones precisas..
Incluyen ADCs, DACs, amplificadores
operacionales, comparadores, drivers LCD y
sistemas supervisorios de nivel de voltaje.
voltaje
Ultra-bajo consumo de potencia.

Estado del Arte y Tendencias

L
A
D

I
M
I
R

T
R
U
J

I
L
L
O
A
R
I
A
S

Microcontroladores Texas Instruments Familia


TMS470
Poseen una CPU tipo RISC de 32-bits RISC
Manejan velocidades de reloj por encima de los 60 MHz
La memoria de programa puede alcanzar hasta 1MB
Posee
osee alta
a ta integracin
teg ac co
con u
una
ag
gran
a variedad
a edad de
perifricos.
Ampliamente utilizado en aplicaciones de:
- Industria automotriz
- Sistemas Industriales
- Aplicaciones generales de sistemas embebidos

Estado del Arte y Tendencias

L
A
D

Procesadores Digitales de seales

DSP d
de Alt
Alto rendimiento
di i t TMS320C6000

I
M
I

T
R
U
J

I
L
L
O
A
R
I
A
S

Con velocidades por encima de 1 GHz.


Los TMS320C64x y los TMS320C62x p
poseen ALUs que
q trabajan
j con
punto fijo
Los TMS320C67x manejan punto flotante
Utilizados en aplicaciones donde se manejen seales de gran ancho
de banda.
ptimos para aplicaciones de digitalizacin de audio e imgenes
Rendimiento del orden de 1200 a 8000 MIPS para punto fijo y de
600 a 1350 MFLOPS (Millones de operaciones de coma flotante por
segundo) para punto flotante

Estado del Arte y Tendencias

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

DSP TMS320C5000 Alta eficiencia


de energa.
Estos DSPs son optimizados para
elaborar equipos porttiles de uso
personal.
l Como
C
reproductores
d t
personales de audio, receptores GPS,
equipos mdicos porttiles, telefona
g
celular,, y cmaras digitales.

Estado del Arte y Tendencias

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

DSP TMS320C2000 Optimizado


para Control.
Optimizados para trabajo en tcnicas
de control digital.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Estado del Arte y Tendencias

L
A
D
I
M
I

PLD (Programable Logic Device)


MAX II (CPLD)

R
U

J
I
L
L
O
A
R
I
A
S

Bajo consumo de energa, alta densidad


Utiliza memoria FLASH
Soporta voltajes de 1
1.8
8-V
V, 2.5
2 5-V
V & 3.3
3 3-V
V

MAX

Bajo
B
j consumo y densidad
d
id d moderada.
d d
Soporta voltajes de 2.5-V, 3.3-V o 5.0-V

Estado del Arte y Tendencias

L
A
D

I
M

T
R

U
J

FPGA (Field Programable Gate Array)


CICLONE II

CICLONE

L
L

A
S

Soporta Nios II embedded processor


Amplio portafolio de IP.

STRATIX II (Alta Densidad)

A
R

Soporta Nios II embedded processor


Multiplicadores digitales 18x18 para DSP
DSPss Embebidos
Amplio portafolio de IP.

Soporta Nios II embedded processor


Interfaces de I/O de alta velocidad
Amplio portafolio de IP.

Estado del Arte y Tendencias

L
A
D

STRATIX (Alta Densidad)

M
I

Soporta Nios II embedded processor


Bloques para DSP
Interfaces de I/O de alta velocidad
Amplio portafolio de IP.

U
J
I
L
L
O
A
R
I
A
S

STRATIX GX (Alta Densidad)

Todas las caractersticas de los otros STRATIX


Transceptores de 3.125-Gbps
Amplio portafolio de IP

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Estado del Arte y Tendencias

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Estado del Arte y Tendencias

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Estado del Arte y Tendencias

L
A
D
I

SPARTAN 3 E (FPGA)

I
R
T

R
U
J
I
L

VIRTEX 4 ((FPGA))
COOL RUNNER (CPLD)

L
O
A
R
I
A
S

Posee alrededor de 1.2 millones de


compuertas
Tecnologa de 90nm

Soporta voltajes de 1
1.5
5a3
3.3V
3V en sus
sistemas I/O

Estado del Arte y Tendencias

L
A
D
I

M
I
R

T
R
U
J
I
L
L
O
A
R
I
A
S

IP CORE
Herramientas de desarrollo para diseo
de controladores
controladores. Y procesadores de
diversos tipos que corren sobre sus
plataformas
l t f
h
hardware.
d
Processor Central.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Estado del Arte y Tendencias

L
A
D
I

M
I
R
T

R
U
J
I
L
L
O
A
R
I
A
S

Microcontroladores de Gama Media de


la familia 16FXXX
Microcontroladores de Gama Alta de la
familia 18FXXXX
Procesadores digitales de Seales
30FXXX

Conceptos Generales de
procesadores

L
A
D

EL MICROPROCESADOR.

Definicin: Es el dispositivo encargado de realizar clculos

I
M
I

aritmticos y lgicos y que temporiza y controla las operaciones


d llos d
de
dems
elementos
l
t d
de un sistema.
i t

R
T
R
U
J
I
L
L
O
A
R
I
A
S

Partes:
- Unidad
U id d de
d control.
t l
- Unidad Aritmtico-lgica (ALU).
- Registros:
- Contador de programa.
programa
- Registros generales.
- Registro de estado.
- Stack.

Conceptos Generales de
procesadores

L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Reloj de funcionamiento:
-C
Ciclo
c o de reloj:
e oj se
seal
a de reloj
e oj a la
ae
entrada
t ada de
del p
procesador.
ocesado
- Ciclo de mquina: periodo de ejecucin de una operacin
completa del procesador.
- Ciclo
Ci l de
d instruccin:
i t
i periodo
i d que se requiere
i
para
ejecutar una determinada instruccin.

Conceptos Generales de
procesadores

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

MICROCONTROLADOR
Un microcontrolador es un circuito
integrado de alta escala de integracin
que incorpora la mayor parte de los
elementos
l
t que conforman
f
un
controlador.

Conceptos Generales de
procesadores

L
A
D

Caractersticas:

I
M
I

T
R
U

J
I
L
L
O
A
R
I
A
S

Este circuito integrado programable contiene todos los


componentes de un computador .
No alcanzan el nivel de p
procesamiento de p
por ejemplo,
j p , un 8086,,
aunque poseen la ventaja de poder trabajar sin memoria
externa .
El microcontrolador es un computador dedicado. En su memoria
slo
l reside
id un programa d
destinado
ti d a gobernar
b
una aplicacin
li
i
determinada, una vez programado y configurado el
microcontrolador solamente sirve para gobernar dicha tarea.
Es un computador completo,
completo aunque de limitadas prestaciones
prestaciones,
que est contenido en el chip de un circuito integrado y se
destina a gobernar una sola tarea.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Conceptos Generales de
procesadores

DSP Definicin

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Estrictamente hablando, el trmino DSP se


aplica a cualquier chip que trabaje con
seales representadas de forma digital.
Un Procesador Digital de Seales es un tipo
de microprocesador o microcontrolador,
increblemente rpido y poderoso para
operaciones repetitivas en las que se realicen
un gran nmero de sumas y multiplicaciones.

Que hace a un DSP un DSP?

L
A
D
I

M
I
R
T
R
U

J
I
L
L
O
A
R
I
A
S

Capacidad de realizar operaciones de


multiplicacin y acumulacin (MACs) en
slo un ciclo de reloj.
Manejo de aplicaciones en tiempo real
Arquitectura que soporte un flujo de
datos a alta velocidad hacia y desde la
unidad de clculo y memoria.

Que hace a un DSP un DSP?

L
A
D
I

M
I
R
T

R
U
J
I
L
L
O
A
R
I
A
S

Unidades DMA (Direct Memory Acess)


Generadores de direcciones (DAGs)
Mecanismo efectivo de saltos para
ejecucin de loops
Alta velocidad de procesamiento de
operaciones aritmticas

Diferencias entre
Microcontrolador y DSP

L
A
D
I
M
I

R
T
R

U
J
I
L
L
O
A
R
I
A
S

Estructura de memoria que poseen.


Cantidad de unidades de ejecucin que
poseen, (operaciones en paralelo).
El DSP tiene caractersticas diseadas para
soportar tareas de altas prestaciones,
repetitivas y numricamente intensas.
Microprocesadores de propsito general y
microcontroladores no estn especializados
para ninguna aplicacin en especial.
especial

Requerimientos HW y
Operaciones Comunes

L
A
D
I
M
I

Los DSPs tienen en comn ciertas


caractersticas como:

T
R
U
J

I
L
L
O
A
R
I
A
S

Capacidad aritmtica especializada de alta


velocidad
Buena capacidad de transferencia de datos
hacia el mundo real.
A
Acceso
a mltiples
lti l arquitecturas
it t
de
d
memoria.

Requerimientos HW y
Operaciones Comunes

L
A
D
I
M
I

Las operaciones tpicas en los DSPs


son:

T
R
U
J
I
L
L
O
A
R
I
A
S

Sumas
Multiplicacin
R t d
Retardos
Manejo de matrices y arreglos de datos.

Requerimientos HW y
Operaciones Comunes

L
A
D
I
M
I

La suma y Multiplicacin. Requiere


el uso de:

T
R
U
J
I
L
L
O
A
R
I
A
S

Dos operandos
Alto rendimiento.
Al
Almacenamiento
i t del
d l resultado.
lt d

Requerimientos HW y
Operaciones Comunes

L
A
D
I
M

Manejo de Arreglos

I
R
T
R

U
J
I
L
L
O

A
R
I
A
S

Bsqueda
B
d de
d valores
l
de
d lugares
l
consecutivos
i
de
d
memoria
Copia de datos de memoria a memoria
Multiplicacin y suma en paralelo.
Acceso mltiple a memoria
Registros temporales
Eficiente g
generacin de direcciones.
Caractersticas especiales como retardos o
direccionamiento cclico

V
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
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Arquitectura Hardvard

Arquitectura
A
i
Harvard
H
d Extendida
E
did o Super
S
Harvard ARChitecture (SHARC).

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Esta arquitectura incluye una memoria


d cach
de
h (Reserva),
(R
) la
l cuall es utilizada
ili d
para almacenar instrucciones y datos
que sern
reutilizadas
l d por la
l CPU,
liberando as los dos buses de la
arquitectura Hardvard y permitindoles

ser utilizados en la bsqueda y


almacenamiento de datos, mientras se
j
las instrucciones en cach
ejecutan

V
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
Harvard ARChitecture (SHARC).

V
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
Harvard ARChitecture (SHARC).

V
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
Harvard ARChitecture (SHARC).

Arquitectura Von Newman


Modificada.

L
A
D

I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

La arquitectura Von Neuman modificada, permite


mltiple acceso a memoria por instruccin
instruccin,
valindose de un truco simple que consiste en hacer
el reloj de acceso a memoria ms rpido que el de
i
instrucciones.
i
Por ejemplo el DSP32C de Lucent con reloj de 80Mhz,
tiene un ciclo de instruccin compuesto por cuatro
estados de mquina. Mientras que el acceso a
memoria de este DSP es posible realizarlo cada
estado
d de
d mquina
i siendo
i d posible
ibl entonces realizar
li
cuatro accesos a memoria por cada ejecucin de
instruccin

CPU

V
L
A
D
I

M
I
R
T

R
U
J
I
L
L
O
A
R
I
A
S

CISC Aprox. 80 instrucciones


Arquitectura Von Neuman
RISC Aprox.
Aprox 30 instrucciones.
instrucciones
Arquitectura Hardvard
SISC Diseos especficos

(Controladores
p
o embebidos))
Empotrados

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Segmentacin

Ortogonalidad

L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

La ortogonalidad de las instrucciones


hace posible ejecutar cualquier
operacin, sobre cualquier registro,
utilizando cualquier modo de
direccionamiento
direccionamiento.

Memoria

V
L
A
D

I
M
I
R

T
R
U
J
I
L
L
O
A
R
I
A
S

RAM. Los datos que manejan los programas varan


continuamente, y esto exige que la memoria utilizada
para ello debe ser de lectura y escritura.
ROM. En este tipo de memoria el programa se graba
en el chip durante el proceso de fabricacin mediante
el uso de mscaras. Se aconseja este tipo de
memoria cuando se precisan series muy grandes,
con el fin de disminuir costos de fabricacin
fabricacin.
OTP. Este modelo de memoria solo puede grabarse
una vez por parte del usuario, utilizando el mismo
procedimiento
di i
que con la
l memoria
i EPROM.
EPROM
Posteriormente no se puede borrar. Su bajo precio y
la sencillez de la g
grabacin aconsejan
j este tipo
p de
memoria para prototipos finales y series de
produccin cortas.

Memoria

V
L
A
D

I
M
I
R
T
R

U
J
I
L
L
O
A
R
I
A
S

EPROM. La grabacin de esta memoria se realiza mediante


un dispositivo fsico gobernado desde un computador
personal. En la superficie de la cpsula del microcontrolador
existe una ventana de cristal por la que se puede someter el
chip a rayos ultravioletas para producir su borrado y
emplearla nuevamente
nuevamente.
EEPROM. La grabacin es similar a las memorias OTP y
EPROM, pero el borrado se hace elctricamente. Puede
puede ser programada y borrada muchas veces
FLASH. Se trata de una memoria no voltil, de bajo
consumo, que se puede escribir y borrar en circuito al igual
que las EEPROM
EEPROM, pero suelen disponer de mayor capacidad
que ests ultimas. El borrado slo es posible con bloques
completos y no se puede realizar sobre posiciones
concretas. Son muyy recomendables en aplicaciones
p
en las
que sea necesario modificar el programa a lo largo de la vida
del producto

La Gama Alta de los PIC


(18F452)

Caractersticas Generales

L
A
D
I

M
I
R
T

R
U
J

Cdigo compatible con la familia 16 y


17 de los PIC
Reloj que puede trabajar por encima de
10 MIPs.

I
L

L
O
A
R
I
A
S

Uso de
d cristall de
d 40 Mhz.
h
Cristales de 4 Mhz a 10 Mhz utilizando un
multiplicador de frecuencia PLL.

Instrucciones de 16 bits con bus de


datos de 8 bits.

Caractersticas Generales

L
A
D
I

M
I
R

T
R
U

J
I
L
L
O
A
R
I
A
S

Prioridad de interrupciones
Multiplicador hardware de 8 x 8 que
funciona en un solo ciclo de mquina.
mquina
Tres pines para manejo de
interrupciones externas.
Manejo de niveles de corriente de 25
mA. en modo fuente y sumidero

Caractersticas Generales

L
A
D
I

M
I
R

T
R
U

J
I
L
L
O
A
R
I
A
S

Timer 1 de 16 bits, Timer 2 de 8 bits.


Timer 3, (no lo posee la gama media),
de 16 bits (65535 conteos)
conteos).
Dos mdulos de
Captura/Comparacin/PWM.

Mdulo de comunicacin serial con


soporte para RS-485 y RS-232

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Caractersticas Generales

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Caractersticas Generales

Oscilador.
Se poseen 3 bits
(FOSC2 FOSC1 y
(FOSC2,
FOSC0) para la
configuracin del
tipo de oscilador a
utilizar.

LP Cristal de baja potencia.


XT Cristal resonador de cuarzo
HS Cristal resonador de alta velocidad
(por encima de 8 Mhz.)
HS + PLL Cristal de alta velocidad con PLL
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

Oscilador en modo HS, XT, LP

L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Una capacitancia
p
elevada,
incrementa la estabilidad del
oscilador, pero tambin incrementa
los tiempos de inicio del oscilador
interno.

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.
g
al
El modo RCIO,, es igual
modo RC, con la diferencia
de que el pin OSC2 se
comporta
t como un pin
i de
d
I/O normal (RA6).

Oscilador Externo.

L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Cuando se utiliza el oscilador externo,, se puede


p
utilizar el
modo EC, el cual se tiene FREC/4 por el pin OSC2.
Tambin se puede tomar el modo ECIO, para ahorro de
corriente,
i
ell cuall OSC2 queda
d como un pin
i de
d propsito
i
general (RA6)

PLL

PLL

L
A
D
I

M
I
R

T
R
U
J
I
L
L
O
A
R
I
A
S

El PLL se utiliza solo cuando el oscilador se ha


configurado
f
en modo HS.
Si la programacin del cristal se ha realizado
en otro modo, el PLL no se habilita y la
fuente de reloj directa proviene de OSC1.
Existe un timer que bloquea el PLL, hasta que
no se halla logrado por parte de l el
enganche al cudruplo de la frecuencia de
entrada
entrada.

Cambio de Fuente de Reloj.

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Los PIC 18Fxx2 permiten cambiar el uso del


oscilador de alta velocidad, por uno de baja
velocidad (como el oscilador de 32Khz de
timer1)) esa seleccin
l
se hace
h
en ell BIT
OSCSEN del registro de configuracin.
El BIT OSCSEN se selecciona antes de
programar el PIC, para que se pueda producir
el cambio de oscilador.

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 transicin de estabilizacin del Timer 1

Diagramas de Tiempo de
Transiciones

Para la transicin entre el oscilador de timer1 y OSC1, existe


un tiempo de estabilizacin de 1024 ciclos de osc1, antes de
comenzar a contar los 8 periodos de sincronizacin de reloj,
reloj
despus de lo cual el reloj del micro funciona con OSC1.

Diagramas de Tiempo de
Transiciones

Diagramas de Tiempo de
Transiciones

L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Cuando la transicin de oscilador es


entre ell timer1
i
1 y OSC1,
OSC1 existe
i
un
tiempo de estabilizacin de 1024 ciclos
d osc1 y luego
de
l
un tiempo necesario
para que el PLL enganche la frecuencia
de reloj de OSC1, antes de comenzar a
contar los 8 periodos de sincronizacin
de reloj, despus de lo cual el reloj del
micro comienza a funcionar con OSC1.

Retardos Considerados al iniciar


el microcontrolador.

L
A
D
I
M
I

Al iniciar el procesador se definen 3 retardos.

R
T
R
U

J
I
L
L
O
A
R
I
A
S

El primero es dado por el PWRT el cual provee un


retardo promedio de 72 ms. para la estabilizacin
de la circuitera
ci c ite a interna.
inte na
El segundo temporizador es el OST (Oscillator
Start up Timer) que espera a que el oscilador
Start-up
utilizado se estabilice.

La secuencia de retardo es PWR ms OST


OST.
Al utilizar el PLL, aparece un tercer retardo (TPLL )
utilizado para esperar que el PLL enganche la
frecuencia de entrada (2 ms tpico).
retardo=PWRT+OST+TPLL

Fuentes de Reset

L
A
D
I
M
I

La familia PIC18FXXX Posee los siguientes


tipos de reset:

R
U

J
I

L
L

A
R
I
A
S

Power-on Reset (POR)


MCLR Reset Durante el funcionamiento normal
MCLR Reset Durante el modo SLEEP
WDT Reset durante operacin normal
Programmable Brown-out Reset (BOR)
Instruccin de RESET.
Reset debido al llenado del Stack.
Reset debido al vaciado del Stack.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Organizacin de la memoria

Organizacin de la memoria

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

El PIC18FXX2 posee un contador de


programa de 21 bits que permite ubicar
una capacidad de memoria de 2Mega
Palabras
L posiciones
Las
i i
de
d memoria
i mas all
ll de
d
la memoria fsica construida se leen
como 0.

Organizacin de la memoria

L
A
D
I

M
I
R
T
R
U
J
I

L
L
O
A
R
I
A
S

El PIC18F452 posee 32 K Bytes de


memoria FLASH de programa,
agrupados de a 2 Bytes, con el fin de
contener instrucciones complejas.
P llo tanto
Por
t t este
t di
dispositivo
iti puede
d
almacenar 16mil instrucciones simples.
El vector de RESET se halla en la
direccin 0000h y el de interrupciones
en las posiciones 0008h y 0018h.

Organizacin de la memoria

L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Hay un stack de 31 niveles, lo


que permite tener 31 posibles
sub rutinas anidadas.
Existen
E
isten dos vectores
ecto es de
interrupciones, para manejo de
interrupciones de alta y baja
prioridad.
32K de memoria en pasos de 2
en dos
dos, para un total de 16K de
palabras. De 7FFF en adelante
no existe memoria
i
implementada
l
t d fsicamente
f i
t y se
lee como 0.

Organizacin
g
de la memoria (Pila)

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

El Stack de los PIC18FXX2 posee 31 palabras


de 21 bits, direccionadas por un apuntador de
Stack de 5 bits.
Cada vez que se produce una interrupcin o
un llamada a subrutina, el apuntador del Pila
se incrementa en 1 y el valor del contador de
programa es almacenado en una de las
palabras de 21 bits.

Organizacin
g
de la memoria (Pila)

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Cuando ocurre una instruccin de tipo return,


retfie
f o retlw el dato almacenado en la
posicin actual que indica el apuntador de
programa, es cargado
d all contador
d de
d
programa y el apuntador de la Pila se
d
disminuye
en 1.
El apuntador de programa se puede leer y
escribir y la direccin ubicada en el inicio de
la Pila puede ser leda y escrita a travs de
los registros SFR.

Registro STKPTR

L
A
D
I
M
I
R
T
R

BIT 7 STKOVF: Bandera de Pila llena

I
L

A
R
I
A
S

BIT 6 STKUNF: Bandera de pila vaca.

1 = Pila llena o rebosada.


0 = Pila sin llenar

1 = Ocurri un vaciado de la p
pila.
0 = No ha ocurrido un vaciado de la pila.

BIT 5 Sin implementar: Ledo como '0'


BIT 4
4-0
0 SP4:SP0:
SP4 SP0 Bits
Bit d
de direccin
di
i de
d la
l
pila

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Organizacin
g
de la memoria (Pila)

Organizacin
g
de la memoria (Pila)

L
A
D

I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

La cabecera de la Pila puede ser leda y


escrita a travs de los registros TOSU
escrita,
TOSU, TOSH
y TOSL, que mantienen el contenido
apuntado por el registro STKPTR.
Despus de un call, rcall o una interrupcin,
este valor puede ser modificado por SW y
cuando se genere el retorno de la subrutina
subrutina,
se puede dirigir su regreso a un lugar
diferente definido por el usuario. Solo se
debe tener en cuenta deshabilitar las
interrupciones globales.

Organizacin
g
de la memoria (Pila)

L
A
D
I

M
I
R
T
R

U
J
I
L
L
O
A
R
I
A
S

El registro
g
STKPTR es el apuntador
p
de la Pila.
El BIT STKFUL indica
i di ell llenado
ll
d de
d
la p
pila y el BIT STKUNF el vaciado
de la pila.
C
Cuando
d se produce
d
un RESET,
S
ell
valor del apuntador de la pila es 0.

Organizacin
g
de la memoria (Pila)

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Despus de que el contador de


programa es almacenado en la pila 31
veces, sin extraer ningn valor, el BIT
STKFUL se coloca en 1.
1 El BIT STKFUL
es borrado por SW o por un POR.
(BIT STVREN en 1) Cuando se
almacena una direccin en la posicin
31 la pila se desborda, se reinicia el
microprocesador, el BIT STKFUL se
coloca en 1 y se mantiene as,, tambin
el apuntador de la pila se coloca en 0.

Organizacin
g
de la memoria (Pila)

L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(BIT STVREN en 0) cuando se


d b d la
desborda
l pila
il ell BIT STKFUL se
pone en 1, cualquier dato adicional
a escribirse
ibi
en la
l pila,
il no
sobrescribe la posicin 31, si no
que se omite,
it y ell registro
i t STKPTR,
STKPTR
se mantiene apuntando a la
posicin
31.
3

Organizacin
g
de la memoria (Pila)

L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Cuando la pila se vaca, la prxima


i t
instruccin
i que requiera
i
extraer
t
un
dato de ella, retorna el valor de 0 al
contador
t d d
de programa y coloca
l
ell
BIT STKUNF en 1 hasta que ocurra
un POR o un se b
borre por software.
ft

Instrucciones PUSH y POP

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

La instruccin PUSH, es utilizada para


colocar en la cabecera de la pila el valor
actual del contador de programa,
produciendo un incremento en STKPTR.
S puede
Se
d incluir
i l i una direccin
di
i de
d
retorno cualquiera en la pila utilizando
PUSH y cargando ese valor en TOSU,
TOSH y TOSL

Instrucciones PUSH y POP

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

La instruccin POP, se utiliza para


descartar el valor ubicado en la
cabecera de la pila y reemplazarlo por
el valor ubicado previo a este, sin
producir ningn traumatismo en el
sistema.
Con la instruccin POP se produce un
p
de la pila.
p
decremento en el apuntador

Contador de Programa

L
A
D
I

M
I
R
T
R

U
J
I
L
L
O
A
R
I
A
S

El contador de programa (PC) esta


conformado
f
d por llos registros
i
PCL,
PCL PCH
y PCU.
El registro PCL puede ser ledo y escrito
directamente.
Los registros PCH y PCU pueden ser
ledos y escritos solo a travs de los
registros PCLATH y PCLATU

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Temporizacin / Instrucciones

Temporizacin / Instrucciones

L
A
D

I
M
I
R

T
R
U
J

I
L
L
O
A
R
I
A
S

La entrada de reloj es dividida internamente


en cuatro seales desfasadas 900. Q1,
Q1 Q2,
Q2 Q3
y Q4.
El contador de programa es incrementado
cada flanco subida de Q1.
La bsqueda de una instruccin es realizada
d Q1 a Q4, pero es colocada
de
l
d en ell registro
de instruccin cada Q4
Las instrucciones son decodificadas y
ejecutadas en el periodo de tiempo de Q1 a
Q4.

Instrucciones en la Memoria de
programa
g

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Las instrucciones para el PIC18F452 son


de 16 bits, y su byte menos significativo
es siempre almacenado en una
direccin par.
El BIT menos significativo
i ifi ti del
d l contador
t d
de programa es siempre 0, por lo que el
incremento de las direcciones se hace
de dos en dos.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Instrucciones en la Memoria de
programa
g

Instrucciones de 32 bits

L
A
D
I

M
I
R
T
R

U
J
I
L
L
O
A
R
I
A
S

Los microcontroladores PIC18FXX2, posee 4


instrucciones de dos palabras de longitud (32
bits), ellas son MOVFF, CALL, GOTO y LFSR.
La segunda palabra de esas instrucciones
posee los 4 BITS mas significativos en 1 y se
comporta como un tipo especial de NOP.
Los otros 12 BITS de la segunda palabra
contienen los datos a ser utilizados por la
instruccin.

Instrucciones de 32 bits

L
A
D
I

M
I
R
T
R

U
J
I
L
L
O
A
R
I
A
S

Cuando la primer palabra es ejecutada,


l datos
los
d
contenidos
id en la
l segunda
d son
accedidos.
Pero si el PC accede primero la segunda
palabra,, esta se ejecuta
p
j
como un NOP.
Esto es til cuando previamente a una
instruccin de dos palabras,
palabras existe una
instruccin de salto condicional.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Instrucciones de 32 bits

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Memoria de Datos

Memoria de Datos

L
A
D
I

M
I
R
T

R
U
J
I
L
L
O
A
R
I
A
S

La memoria de datos esta dividida en


16 bancos, cada uno de 256 Bytes.
Los bancos 6 al 14 no estn
implementados y se leen como 0.
La zona de FSR se halla localizada en el
p
de la posicin
p
F80h
banco 15 despus
(de la mitad hacia el final)

Memoria de Datos

(Direccionamiento)

L
A
D
I
M
I
R

Se pueden identificar 3 formas de


acceder la memoria de programa de los
PIC18FXX2.

T
R

U
J
I
L
L
O
A
R
I
A
S

Direccionamiento indirecto: requiere el uso


de los registros FSRn (12 BITS) y el
correspondiente registro indirecto INDFn).
Direccionamiento directo: requiere el uso
del registro BSR, el cual en sus BITS 0 a 3
contiene la direccin del banco escogido.
escogido

Memoria de Datos

(Direccionamiento)

L
A
D
I
M

Otra forma de direccionamiento directo es:

I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Para asegurar que los registros (SFR Y GPR) sean


accedidos en un solo ciclo de instruccin,
independiente del Banco apuntado por el registro
BSR Existe el ACCESS BANK,
BSR,
BANK el cual esta formado
por una parte del banco 0 y un segmento del
banco 15
Un BIT en la instruccin especifica si la operacin
a utilizar se hace a travs del ACCESS BANK o con
el registro
g
BSR,, a ese BIT se le denomina a
(access bit) por defecto vale 0 y apunta al ACCESS
BANK

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Memoria de Datos

(Registros FSR)

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Memoria de Datos

(Registros FSR)

El registro BSR

L
A
D

I
M
I
R
T

R
U

J
I
L

L
O
A
R
I
A
S

El registro BSR<3:0> contiene los 4 bits mas


significativos de los 12-BITS de direcciones de la
memoria RAM y se utilizan para seleccionar el banco
de trabajo.
Los BITS BSR<7:4> se leen como 0s.
La instruccin MOVLB se utiliza para ayudar en la
seleccin del banco
banco.
La instruccin MOVFF ignora el registro BSR, ya que
los 12
12-BITS
BITS de direccin se hayan incluidos en la
instruccin.
Cada banco posee un tamao de 256 bytes.

Direccionamiento Indirecto.

L
A
D
I

M
I
R

T
R
U
J
I
L
L
O
A
R
I
A
S

El direccionamiento indirecto se realiza


utilizando dos registros,
registros el FSRn y el INDFn.
INDFn
El registro FSR es utilizado como un puntero
a una localidad de memoria que va a ser
escrita o leda.
El direccionamiento indirecto es posible
utilizando el registro INDF, ya que cualquier
instruccin que lo utilice,
utilice accede
directamente a la posicin de memoria
apuntada por FSR.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Direccionamiento Indirecto.

Multiplicador Hardware

L
A
D
I

M
I
R

T
R
U
J

I
L
L
O
A
R
I
A
S

El multiplicador HW que se posee es de 8


bits.
El resultado se almacena en dos registros
PRODH y PRODL
La multiplicacin de 8x8 se realiza en 1 ciclo
de instruccin.
El multiplicador HW permite a este dispositivo
realizar operaciones en las que se usa DSPs

Puertos

L
A
D
I

M
I
R
T

R
U
J
I

L
L
O
A
R
I
A
S

Los puertos de los PIC de la familia 18 en


general constan de 3 registros para su
operacin.
El registro TRIS,
TRIS el cual controla la direccin
de funcionamiento del puerto.
El registro PORT,
PORT que lee los niveles de
entrada en el puerto.
El registro LAT
LAT, el cual es el LATCH de salida
del puerto.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Puertos

Puerto A

L
A
D

I
M
I

R
T

R
U
J
I

L
L
O
A
R
I
A
S

Este puerto se comporta como I/O digital y como


entrada analgica
El registro TRISA, configura este puerto como
entrada o salida.
Si un pin
i se va a utilizar
tili
como canall analgico,
l i
previamente se debe haber configurado como
entrada en TRISA
Existe el registro LATA, que permite el acceso I/O al
latch del puerto.
El pin RA4 es de colector abierto
abierto.
Para configurarlo sus pines como analgicos o
digitales, se recurre al registro ADCON1

Puerto A (18f452)

L
A
D
I
M
I

PIN

Tipo Entrada

Funcin

RA0/AN0

TTL

Pin I/O entrada analgica 0.

RA1/AN1

TTL

Pin I/O entrada analgica 1

RA2/AN2

TTL

Pin I/O entrada analgica 2

/
RA3/AN3

TTL

Pin I/O
/ entrada analgica
g
3

RA4/T0CKI

Colector Abierto

Pin I/O entrada del timer 0, con entrada


tipo Schmit Trigger

RA5/AN4
/

TTL

Pin I/O
/ entrada analgica
g
4

RA6/OSC2/CLKO

TTL

Entrada del oscilador 2, o salida de frecuencia


de reloj.

T
R
U
J
I
L
L
O
A
R
I
A
S

Puerto A (18f4520)
RA0/AN0

TTL/ANA

I/O digital o entrada analgica, LATA<0> no afectado por entrada digital

RA1/AN1

TTL/ANA

I/O digital o entrada analgica, LATA<1> no afectado por entrada digital

RA2/AN2/VREF-/CVREF

TTL/ANA

I/O digital o entrada analgica, LATA<2> no afectado por entrada digital

RA3/AN3/VREF+

TTL/ANA

I/O digital o entrada analgica, LATA<3> no afectado por entrada digital

RA4/T0CKI/C1OUT

Colector Abierto

I/O digital, o entrada de Timer 0

RA5/AN4/SS/ HLVDIN/C2OUT

TTL/ANA

I/O digital o entrada analgica, LATA<5> no afectado por entrada digital,


seleccin de entrada modo esclavo para SSP (MSSP module).

OSC2/CLKO/RA6

TTL/ANA

I/O digital o entrada analgica, LATA<6> no afectado por entrada digital,


retroalimentacin de la salida del oscilador principal (XT, HS and LP modes).

OSC1/CLKI/RA7

TTL/ANA

I/O digital o entrada analgica, LATA<7> no afectado por entrada digital,


entrada del oscilador principal y entrada del reloj principal.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Puerto A

Registros
g
asociados con PORTA

Registros asociados con PORTA


(18F4520)

Puerto B

PIN

Tipo Entrada

Funcin

RB0/INT0

TTL, Schmit Trigger


para la
l Interrupcion
I t
i

Pin I/O entrada de interrupcin


Externa 0.

RB1/INT1

TTL, Schmit Trigger


para la Interrupcion

Pin I/O entrada de interrupcin


Externa 1.

RB2/INT2

TTL, Schmit Trigger


para la Interrupcion

Pin I/O entrada de interrupcin


Externa 2.

RB3/CCP2

TTL, Schmit Trigger


para modo
d CCP2

Pin I/O pin del mdulo CCP2, cuando


ell bit CCP2MX esta
t en 1

RB4

TTL

Pin I/O, y entrada de interrupcin por


cambio de estado en PORTB.

RB5/PGM

TTL, Schmit Trigger


TTL
para prog. Serial

Pin I/O,
I/O y entrada de interrupcin por
cambio de estado en PORTB.

RB6/PGC

TTL, Schmit Trigger


para prog.
prog Serial

Pin I/O, y entrada de interrupcin por


cambio
ca
b o de estado en
e PORTB.
O

RB7/PGD

TTL, Schmit Trigger


para prog. serial

Pin I/O, y entrada de interrupcin por


cambio de estado en PORTB.

A
D
I
M
I
R
T
R
U
J
I
L
L

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

Puerto B

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Puerto B

Puerto C

L
A
D
I
M
I
R
T
R

PIN

Tipo Entrada

Funcin

RC0/T1OSO/T1CKI

TTL Schmit Trigger


TTL,

Pin I/O salida del oscilador de timer1 o


entrada de reloj

RC1/T1OSI/CCP2

TTL, Schmit Trigger

Pin I/O Salida del mdulo CCP2

RC2/CCP1

TTL Schmit Trigger


TTL,

Pin I/O pin del mdulo CCP1

RC3/SCK/SCL

TTL, Schmit Trigger

Pin I/O utilizado para el reloj serial de los


mdulos SPI e I2C

RC4/SDI/SDA

TTL Schmit Trigger


TTL,

Pin I/O o entrada de datos para SPI o I/O


para I2C

RC5/SDO

TTL, Schmit Trigger

Pin I/O, o salida del puerto serial sncrono

RC6/TX/CK

TTL Schmit Trigger


TTL,

Pin I/O o TX del mdulo USART

RC7/RX/DT

TTL, Schmit Trigger

Pin I/O o RX del mdulo USART

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

Puerto C

Puerto D

L
A
D
I
M
I
R
T

PIN

Tipo Entrada

Funcin

RD0/PSP0

TTL Schmit Trigger


TTL,

Pin I/O puerto paralelo esclavo bit 0

RD1/PSP1

TTL, Schmit Trigger

Pin I/O puerto paralelo esclavo bit 1

RD2/PSP2

TTL, Schmit Trigger

Pin I/O puerto paralelo esclavo bit 2

RD3/PSP3

TTL, Schmit Trigger

Pin I/O puerto paralelo esclavo bit 3

RD4/PSP4
/

TTL,, Schmit Trigger


gg

Pin I/O
/ p
puerto p
paralelo esclavo bit 4

RD5/PSP5

TTL, Schmit Trigger

Pin I/O, puerto paralelo esclavo bit 5

RD6/PSP6

TTL Schmit Trigger


TTL,

Pin I/O puerto paralelo esclavo bit 6

RD7/PSP7

TTL, Schmit Trigger

Pin I/O puerto paralelo esclavo bit 7

R
U
J
I
L
L
O
A
R
I
A
S

Todos los pines son schimit trigger cuando se trabaja como puerto paralelo esclavo

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Puerto D

Puerto E

L
A
D
I
M

PIN

Tipo Entrada

Funcin

RE0/RD/AN5

TTL, Schmit Trigger


TTL
Para control de puerto
paralelo esclavo

Pin I/O Pin de control del puerto paralelo


esclavo y entrada A/D.
BIT RD
1 = No lectura.
0 = Lee PORTD si CS es 1.

RE1/WR/AN6

TTL, Schmit Trigger


Para control de puerto
paralelo
l l esclavo
l

Pin I/O Pin de control del puerto paralelo


esclavo y entrada A/D.
BIT WR
1 = No escritura
0 = Escribe en PORTD si CS es 1

RE2/CS/AN7

TTL, Schmit Trigger


TTL
Para control de puerto
paralelo esclavo

Pin I/O Pin de control del puerto paralelo


esclavo y entrada A/D.
BIT CS
1 = Dispositivo no seleccionado
0 = Dispositivo no seleccionado

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

Puerto E

Registro TRISE

V
L
A
D
I
M
I
R

Bit 7 IBF: Bit de Buffer de entrada lleno

R
U
J
I

L
L
O
A

Bit 6 OBF: Bit de Buffer de salida lleno


lleno.

R
I
A
S

1 = Una palabra ha sido recibida y espera ser


leda.
e da
0 = Ninguna palabra recibida.

1 = El buffer mantiene una palabra escrita


previamente.
0 = El buffer de salida ha sido ledo.

Registro TRISE

L
A
D

Bit 5 IBOV: Rebose del Buffer de entrada.

M
I
R

T
R

U
J
L

L
O

R
I
A
S

Bit 4 PSPMODE: Seleccin del puerto paralelo


esclavo

1 = Ha
H ocurrido
id una escritura,
it
cuando
d una palabra
l b previa
i no
ha sido leda. (debe ser clareado por SW)
0 = No ha ocurrido un desborde

1 = Modo puerto paralelo esclavo.


0 = Modo general de I/O

bit 3 Sin Implementar


bit 2,1 y 0 TRISE: Bits de control de direccin.

1 = Entrada
d
0 = Salida

El registro de estado

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

El registro de estado se utiliza para


mostrar el estado aritmtico de la ALU.
Se recomienda utilizar solamente las
instrucciones BCF, BSF, SWAPF, MOVFF
y MOVWF para cambiar
bi ell contenido
t id del
d l
registro de estado, ya que estas
instrucciones no alteran las banderas Z,
C,, DC,, OV,, o N

El registro de estado

V
L
A
D
I
M
I
R
T
R

U
J
I
L
L
O
A

BIT 7-5 Sin implementar.


BIT 4 N: BIT Negativo,
Negativo utilizado para indicar
cuando un resultado de una operacin
aritmtica fue negativo (Complemento a 2)
2).

R
I
A
S

1 = Resultado negativo.
0 = Resultado positivo
positivo.

El registro de estado

L
A
D
I

M
I
R
T

BIT OV: BIT de desbordamiento. Este bit es


utilizado para aritmtica

con signo
(complemento a 2).

R
U

J
I
L
L

BIT 2 Z: Bit de 0

O
A
R
I
A
S

1 = Desborde ocurri
0 = No ocurri un desborde

1 = El resultado de una operacin


p
aritmtica o
lgica es 0.
0 = El resultado de una operacin aritmtica o
lgica no es 0.

El registro de estado

L
A
D
I

BIT 1 DC: carry del cuarto al quinto bit.

I
R

R
U
J
I
L
L
O
A
R
I
A
S

Funciona con ADDWF, ADDLW, SUBLW, y SUBWF


1 = Hay carry del 4 al 5 bit.
0 = No hay carry del 4 al 5 bit

BIT 0 C: Bit de carry.


y

Funciona con ADDWF, ADDLW, SUBLW, y SUBWF


1 = Ocurri carryy
0 = No Ocurri carry

Registro RCON (Reset Control)

V
L
A
D
I
M
I
R
T
R

U
J

I
L

L
O

R
I
A
S

BIT 7 IPEN: Bit que habilita la prioridad en las


interrupciones.
1 = Prioridad en interrupciones habilitada.
0 = Prioridad en interrupciones deshabilitada.

BIT 6
6-5
5 Sin implementar
BIT 4 RI: Bandera de la instruccin RESET

1 = La instruccin RESET no ha sido ejecutada.


ejecutada
0 = La instruccin RESET fue ejecutada.

Registro RCON (Reset Control)

L
A
D
I

BIT 3 TO: Bandera del Perro Guardin.

I
R
T

R
U
J
I
L
L

BIT 2 PD: Bandera de deteccin de


apagado del procesador.

A
R
I
A
S

1 = Despus de un power-up, CLRWDT, o


SLEEP
0 = A WDT reset ocurri

1 = Despus de un power-up o CLRWDT.


0 = Debido a la ejecucin de la instruccin
SLEEP.

Registro RCON (Reset Control)

L
A
D
I

BIT 1 POR: Bit de estado de Power-on Reset

I
R

R
U
J
I
L
L

BIT 0 BOR: Bit de estado de un Brown-out


Reset (Bajn de voltaje)

A
R
I
A
S

1 = Un Power-on Reset no ha ocurrido


0 = Un Power-on Reset ocurri
Debe ser colocado en 1 despus de que un Poweron Reset ha ocurrido)

1 = Un Brown-out Reset no ha ocurrido.


0 = Un Brown-out Reset ocurri.
Debe ser colocado en 1 despus de que un
Brown-out Reset ha ocurrido)

Interrupciones

L
A
D
I

M
I
R

T
R
U
J
I
L
L
O
A
R
I
A
S

Los microcontroladores de gama alta


poseen niveles
i l de
d interrupcin.
i
i
El vector de alto nivel de interrupciones
p
se halla en la posicin 0x08h y el de
j prioridad
p
en la posicin
p
0x18h.
baja
Una interrupcin de alta prioridad,
interrumpe la ejecucin de una de baja
prioridad.

Interrupciones

L
A
D

I
M
I
R

T
R
U

J
I
L
L

O
A
R
I
A
S

Los registros asociados con el manejo de


interrupciones son los siguientes:
RCON
INTCON, INTCON2, INTCON3, que en general,
manejan las interrupciones externas y de TIMER 0.
PIR1, PIR2, que manejan las banderas que activan
las interrupciones debidas a perifricos.

PIE1, PIE2, que son los registros habilitadores de las


interrupciones de perifricos
IPR1, IPR2, que activan los niveles de prioridad de
p
las interrupciones.

Interrupciones

L
A
D

I
M
I

R
U
J
I
L
L
O
A
R
I
A
S

Cada fuente de interrupcin, a excepcin de INT0,


posee 3 bits para su control.
control

Una bandera que indica que la interrupcin ocurri.


Bit habilitador de la interrupcin
Bit que permite asignar el nivel de prioridad de la
interrupcin.

Nota: Se recomienda no utilizar la instruccin


MOVFF, para modificar alguno de los registros de
control, mientras las interrupciones estn habilitadas,
ya que esto
t puede
d generar di
disparos de
d
interrupciones aleatorios.

Interrupciones. Registro RCON

L
A
D
I
M
I
R
T
R
U
J

Bit IPEN: Bit habilitador de niveles de


prioridad de las interrupciones.
interrupciones

I
L
L

O
A
R
I
A
S

1 = Habilita los niveles de prioridad de las


interrupciones
interrupciones.
0 = Deshabilita los niveles de prioridad de
l interrupciones.
las
i
i

Interrupciones. Registro RCON

L
A
D
I
M
I

R
T

R
U

J
I
L
L
O

bit 6-5 Sin implementar


bit 4 RI: bit indicador de que se gener una
instruccin de RESET.

bit 3 TO: bit de rebose del Watchdog

A
R
I
A
S

1 = La instruccin RESET no se ha ejecutado.


0 = La instruccin RESET se ejecut
j

1 = Despus del encendido


encendido, instruccin CLRWDT
o instruccin SLEEP.
0 = Ha
a ocurrido
ocu do un
u rebose
ebose del
de WDT

Interrupciones. Registro RCON

L
A
D
I

M
I
R

bit 2 PD: Bit de deteccin de ausencia de


voltaje.

T
R

U
J
I

bit 1 POR: Bit de estado del Power-on Reset.

L
L

A
R
I
A
S

1 = Despus del encendido o por el uso de la


instruccin
CLRWDT.
0 = Por la ejecucin de la instruccin SLEEP.
1 = Un Power-on Reset no ha ocurrido.
0 = Un Power-on Reset ocurri. Debe ser puesta
en 1 despus de que un Power-on Reset occurre.

Interrupciones. Registro RCON

L
A
D
I
M
I

bit 0 BOR: bit de estado de Brown-out


Reset. (Disminucin del nivel de voltaje)

T
R
U
J
I
L
L
O
A
R
I
A
S

1 = No ha ocurrido un Brown
Brown-out
out Reset.
0 = Ha ocurrido un Brown-out Reset.
D b ser puesta
Debe
t en 1 d
despus
d
de que un
Brown-out Reset ocurre.

I t
Interrupciones.
i
R
Registro
i t INTCON
(18F452, 18F4520)

V
L
A
D
I
M
I
R
T
R
U
J

Bit 7 GIE/GIEH: Habilitador global de


interrupciones.

I
L

Si IPEN = 0: (Bit 7 RCON)

A
R
I
A
S

1 = Habilita todas las interrupciones sin mscara


0 = Deshabilita todas las interrupciones

Si IPEN = 1: ((Bit 7 RCON))

1 = Habilita todas las interrupciones de alta prioridad.


0 = Deshabilita todas las interrupciones.

Interrupciones Registro INTCON


Interrupciones.
(18F452, 18F4520)

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Bit 6 PEIE/GIEL: Habilitador de Interrupciones de


perifricos
Si IPEN = 0: (Bit 7 RCON)
1 = Habilita todas las interrupciones de perifricos
sin mscara.
0 = Deshabilita todas las interrupciones de
perifricos
Si IPEN = 1: (Bit 7 RCON)
1 = Habilita todas las interrupciones de perifricos

de baja prioridad.
0 = Deshabilita todas las interrupciones de
perifricos de baja prioridad

Interrupciones Registro INTCON


Interrupciones.
(18F452, 18F4520)

V
L
A
D

I
M
I
R

T
R
U
J
I
L
L
O
A
R
I
A
S

Bit 5 TMR0IE: Interrupcin de rebose de TMR0


1 = Habilita la interrupcin por rebose de TMR0.
TMR0
0 = Deshabilita la interrupcin por rebose de TMR0.
Bit 4 INT0IE: Interrupcin
p
Externa INT0
1 = Habilita la INT0
0 = Deshabilita la INT0
Bit 3 RBIE: Interrupcin por cambio de estado en PORTB
1 = Habilita la interrupcin por cambio de estado en
PORTB
0 = Deshabilita la interrupcin por cambio de estado
en PORTB

Interrupciones Registro INTCON


Interrupciones.
V

(18F452, 18F4520)

L
A
D

I
M

R
T

Bit 2 TMR0IF: Bandera de Interrupcin por rebose


de TMR0

Bit 1 INT0IF: Bandera de INT0

J
I
L
L
O
A
R
I
A
S

1 = El TMR0 se ha rebosado (se debe borrar por SW)


0 = TMR0 no se ha rebosado.
1 = Ha ocurrido INT0 (debe ser borrada por SW)
0 = INT0 no ha ocurrido.

Bit 0 RBIF: Bandera de interrupcin por cambio de


estado en PORTB.

1 = Ha ocurrido un cambio de estado en uno de los pines


RB4 a RB7
0 = No ha ocurrido un cambio de estado en RB4 a RB7.

Interrupciones Reg.
Interrupciones.
Reg INTCON2
(18F452, 18F4520)

V
L
A
D
I
M
I
R
T
R

U
J

Bit 7 RBPU: Bit habilitador de las


resistencias Pull-up.

I
L
L

A
R
I

Bit 6 INTEDG0: Seleccin del flanco de la


Interrupcin Externa 0

A
S

1 = Todas
T d las
l resistencias
i t
i pull-ups
ll
deshabilitadas.
0 = Las resistencias p
pull-ups
p estan habilitadas.

1 = Flanco de subida.
0 = Flanco de bajada.

Interrupciones Reg.
Interrupciones.
Reg INTCON2
V

(18F452, 18F4520)

L
A
D
I

M
I

Bit 5 INTEDG1: Seleccin del flanco de


la Interrupcin Externa 1

T
R

U
J
I

L
L

Bit 4 INTEDG2:
INTEDG2 Seleccin
S l i del
d l flanco
fl
de
d
la Interrupcin Externa 2

A
R

I
A
S

1 = Flanco de subida.
0 = Flanco de bajada.

1 = Flanco de subida
0 = Flanco de bajada.
bajada

Bit 3 Sin Implementar

Interrupciones Reg.
Interrupciones.
Reg INTCON2
V

(18F452, 18F4520)

L
A
D
I

Bit 2 TMR0IP: Bit de prioridad de la


interrupcin por rebose de TMR0.
TMR0

T
R
U
J
I
L
L

Bit 1 Sin implementar


Bit 0 RBIP:
RBIP Bit de
d prioridad
i id d de
d la
l interrupcin
i t
i
de cambios de estado en PORTB

R
I
A
S

1 = Alta prioridad
0 = Baja prioridad

1 = Alta prioridad.
prioridad
0 = Baja prioridad.

Interrupciones Reg.
Interrupciones.
Reg INTCON3
V

(18F452, 18F4520)

L
A
D
I
M
I
R
T
R

Bit 7 INT2IP: Bit de prioridad de INT2

J
I

L
L
O
A

Bit 6 INT1IP: Bit de prioridad de INT1

R
I
A
S

1 = Alta prioridad.
prioridad
0 = Baja prioridad.

1 = Alta prioridad.
0 = Baja
B j prioridad.
i id d

Interrupciones Reg.
Interrupciones.
Reg INTCON3
V

(18F452, 18F4520)

L
A
D
I

M
I
R

T
R

U
J
I
L

A
R
A
S

1 = Habilita INT2.
INT2
0 = Deshabilita INT2.

Bit 3 INT1IE: Bit habilitador de INT1

Bit 5 Sin implementar


Bit 4 INT2IE: Bit habilitador de INT2

1 = Habilita INT1.
0 = Deshabilita INT1.

Bit 2 Si
Sin implementar
i l
t

Interrupciones Reg.
Interrupciones.
Reg INTCON3
V

(18F452, 18F4520)

L
A
D
I

M
I

Bit 1 INT2IF: Bandera que indica que ocurri


INT2

R
U
J
I
L
L

Bit 0 INT1IF: Bandera q


que indica que
q ocurri
INT1

A
R
I
A
S

1 = Ha ocurrido INT2 (debe ser borrada por SW)


0 = No ha ocurrido INT2

1 = Ha ocurrido INT1 ((debe ser borrada por


p SW))
0 = No ha ocurrido INT1

Int Perifricos
Int.
Perifricos. Reg
Reg. PIR1
V

(18F452, 18F4520)

L
A
D
I
M
I
R
T

R
U

Bit 7 PSPIF(1): Bandera de interrupcin de


lectura/escritura del puerto paralelo esclavo.

J
I

L
L
O
A
R

Bit 6 ADIF: Bandera de interrupcin por fin de


conversin del A/D

I
A
S

1 = Una operacin de lectura o escritura ha


ocurrido.(debe
d (d b ser borrada
b
d por SW))
0 = No ha ocurrido lectura o escritura.

1 = Conversin A/D completa (Debe ser borrada por


SW)
0 = La conversin A/D esta incompleta.

Int Perifricos
Int.
Perifricos. Reg
Reg. PIR1
V

(18F452, 18F4520)

L
A
D
I

Bit 5 RCIF: Bandera de interrupcin por


recepcin en el USART.
USART

R
T

R
U
J
I
L
L
O
A
R
I
A
S

1 = El buffer de recepcin, RCREG, esta lleno


(Debe ser borrada por SW)
0 = El buffer de RX del USART esta vaco.

Bit 4 TXIF: Bandera de interrupcin por TX


del USART

1 = El buffer de TX del USART (TXREG), esta


vaco (Se borra cuando se escribe en TXREG)
0 = El buffer de TX del USART esta lleno.

Int Perifricos
Int.
Perifricos. Reg
Reg. PIR1
V

(18F452, 18F4520)

L
A
D
I
M
I

Bit 3 SSPIF: Bandera de interrupcin


del puerto serial sncrono

T
R
U
J
I
L
L
O
A
R
I
A
S

1 = Una TX/RX se ha completado (debe


ser borrada por SW)
0 = Esperando una TX o RX.
RX

Int Perifricos
Int.
Perifricos. Reg
Reg. PIR1
V

(18F452, 18F4520)

L
A
D
I
M
I

Bit 2 CCP1IF: Bandera de interrupcin del


mdulo CCP1
CCP1.

Modo Captura:

T
R
U
J

Modo Compara:
p

L
L

A
R
I
A
S

1 = Se ha producida la captura del valor de TMR1 (debe


ser borrada
b
d por SW)
0 = No ha ocurrido una captura de TMR1.
1 = Se ha dado una comparacin con TMR1 (debe ser
borrada por SW)
0 = No ha ocurrido una comparacin
p
con TMR1.

Modo PWM:

No utilizado en este modo.

Int Perifricos
Int.
Perifricos. Reg
Reg. PIR1
V

(18F452, 18F4520)

L
A
D
I

Bit 1 TMR2IF: Se ha producido una igualdad


entre TMR2 y PR2.
PR2

R
T

R
U
J
I
L
L
O
A
R
I
A
S

1 = Ha ocurrido una igualdad entre TMR2 y PR2


(debe ser borrada por SW)
0 = No hay igualdad entre TMR2 y PR2

Bit 0 TMR1IF: Bandera de interrupcin por


rebose de TMR1.

1 = El TMR1 se ha rebosado (debe ser borrada


por SW)
0 = El TMR1 no se ha rebosado

Int Perifricos
Int.
Perifricos. Reg
Reg. PIR2
V

(18F452)

L
A
D
I
M
I
R
T

R
U
J
I

Bit 7
7-5
5 Sin implementar
Bit 4 EEIF: Bandera de interrupcin por
Escritura/Lectura
/
en EEPROM o FLASH

L
L

O
A
R
I
A
S

1 = La operacin de escritura se ha completado


(d b ser borrada
(debe
b
d por SW)
S )
0 = La operacin de escritura no ha terminado o
no se
eh
ha iniciado.
ini i do

Int Perifricos
Int.
Perifricos. Reg
Reg. PIR2
V

(18F452)

L
A
D
I

M
I

Bit 3 BCLIF: Interrupcin por colisin en el


bus

R
U
J
I
L
L

Bit 2 LVDIF: Interrupcin


p
por
p deteccin de
bajo voltaje.

A
R
I
A
S

1 = Ocurri una colisin


0 = No ha ocurrido una colisin.

1 = Una condicin de bajo


j voltaje
j ha ocurrido
0 = El voltaje del dispositivo se mantiene por
encima del valor de activacin de la interrupcin.

Int Perifricos
Int.
Perifricos. Reg
Reg. PIR2
V

(18F452)

L
A
D

M
I

T
R
U
J

Bit 1 TMR3IF: Bandera de rebose de TMR3


1 = El TMR3 se ha rebosado
0 = El TMR3 No se ha rebosado

Bit 0 CCP2IF: Bandera de interrupcin del


mdulo CCP2

Modo Captura:

L
O

Modo Compara:

R
I
A
S

1 = Una captura de TMR1 ha ocurrido.


0 = No ha ocurrido captura de TMR1
1 = Ha ocurrido un evento de comparacin con TMR1.
0 = No ha habido eventos de comparacin con TMR1.

Modo PWM

No usado en este modo

Int Perifricos
Int.
Perifricos. Reg
Reg. PIR2
(18F4520)

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L

Bit 7 OSCFIF: Bandera indicadora de


fallo del oscilador.
oscilador

O
A
R
I
A
S

1 = El oscilador del dispositivo fall. Se ha


realizado
li d un cambio
bi a INTOSC.
INTOSC (Debe
(D b ser
borrada por software)
0 = El reloj trabaja sin problemas.

Int Perifricos
Int.
Perifricos. Reg
Reg. PIR2
V

(18F4520)

L
A
D

I
M
I

R
T

R
U
J
I
L
L
O

Bit 6 CMIF: Bandera de interrupcin por


comparacin
comparacin.

Bit 5 Sin implementar: Se lee como 0


Bit 4 EEIF: Bandera de interrupcin por
Escritura/Lectura en EEPROM o FLASH

A
R
I
A
S

1 = La entrada del comparador ha cambiado (Debe ser


borrada p
por software))
0 = La entrada del comparador no ha cambiado.

1 = La operacin de escritura se ha completado (debe ser


borrada por SW)
0 = La operacin de escritura no ha terminado o no se ha
iniciado.

Int Perifricos
Int.
Perifricos. Reg
Reg. PIR2
V

(18F4520)

L
A
D

I
M
I

Bit 3 BCLIF: Interrupcin por colisin en el


bus

T
R
U
J
I

Bit 2 HLVDIF: Interrupcin por deteccin de


alto o bajo voltaje.

L
L
O

A
R
I
A
S

1 = Ocurri una colisin


0 = No ha ocurrido una colisin.

1 = Una condicin de bajo o alto voltaje ha


ocurrido. La direccin es determinada por el bit 7
((VDIRMAG)) del registro
g
HLVDCON.
0 = El voltaje del dispositivo se mantiene por
encima del valor de activacin de la interrupcin.

Int Perifricos
Int.
Perifricos. Reg
Reg. PIR2
V

(18F4520)

L
A
D

M
I

T
R
U
J

Bit 1 TMR3IF: Bandera de rebose de TMR3


1 = El TMR3 se ha rebosado
0 = El TMR3 No se ha rebosado

Bit 0 CCP2IF: Bandera de interrupcin del


mdulo CCP2

Modo Captura:

L
O

Modo Compara:

R
I
A
S

1 = Una captura de TMR1 ha ocurrido.


0 = No ha ocurrido captura de TMR1
1 = Ha ocurrido un evento de comparacin con TMR1.
0 = No ha habido eventos de comparacin con TMR1.

Modo PWM

No usado en este modo

Int Perifricos
Int.
Perifricos. Reg
Reg. PIE1
V

(18F452, 18F4520)

L
A
D
I
M
I
R
T

R
U
J

PSPIE(1): Habilita la interrupcin de


lectura/escritura del puerto paralelo esclavo

I
L

L
O
A
R
I

Bit 6 ADIE:
ADIE Habilita
H bilit la
l interrupcin
i t
i por fin
fi
de conversin del A/D.

A
S

1 = Habilita la interrupcin
0 = Deshabilita la interrupcin.

1 = Habilita la interrupcin
del A/D.
0 = Deshabilita la interrupcin del A/D.

Int Perifricos
Int.
Perifricos. Reg
Reg. PIE1
V

(18F452, 18F4520)

L
A
D
I

M
I

Bit 5 RCIE: Habilita la interrupcin por


recepcin del mdulo USART.

T
R

U
J
I
L
L

Bit 4 TXIE:
TXIE Habilita
H bilit la
l interrupcin
i t
i por
transmisin del mdulo USART

O
A
R
I
A
S

1 = Habilita la interrupcin
0 = Deshabilita la interrupcin

1 = Habilita la interrupcin
0 = Deshabilita la interrupcin

Int Perifricos
Int.
Perifricos. Reg
Reg. PIE1
(18F452, 18F4520)

V
L
A
D

I
M
I
R
T

R
U
J
I

L
L
O
A
R
I
A
S

Bit 3 SSPIE: Habilita la interrupcin del puerto serial


sncrono.
1 = Habilita la interrupcin del MSSP
0 = Deshabilita la interrupcin del MSSP
Bit 2 CCP1IE: Habilita la interrupcin del mdulo CCP1.
CCP1
1 = Habilita la interrupcin del CCP1
0 = Deshabilita la interrupcin
Bit 1 TMR2IE: Habilita la interrupcin por igualdad de
TMR2 con PR2.
1 = Habilita la interrupcin
0 = Deshabilita la interrupcin.
Bit 0 TMR1IE: Habilita la interrupcin por rebose de
TMR1
1 = Habilita la interrupcin de TMR1
0 = Deshabilita la interrupcin de TMR1

Int Perifricos
Int.
Perifricos. Reg
Reg. PIE2
V

(18F452)

L
A
D
I
M
I
R
T
R

U
J
I

L
O
A
R
I
A
S

Bit 7-5 Sin implementar


Bit 4 EEIE: Habilita la interrupcin por fin
de escritura en memoria EEPROM/FLASH.

1 = Habilitada
0 = Deshabilitada

Bit 3 BCLIE: Habilita la interrupcin por


colisin de datos en el BUS

1 = Habilitada
H bilit d
0 = Deshabilitada

Int Perifricos
Int.
Perifricos. Reg
Reg. PIE2
V

(18F452)

L
A
D

I
M

R
T

R
U

I
L
O

R
I
A
S

1 = Habilita la interrupcin
0 = Deshabilita
h b l la
l interrupcin

Bit 0 CCP2IE: Habilita la interrupcin del mdulo


CCP2

1 = Habilitada
0 = Deshabilitada.

Bit 1 TMR3IE: Habilita la interrupcin por desborde


de TMR3.

J
L

Bit 2 LVDIE: Habilita la Interrupcin por deteccin


de bajo voltaje.

1 = Habilita la interrupcin
0 = Deshabilita la interrupcin

Int Perifricos
Int.
Perifricos. Reg
Reg. PIE2
V

(18F4520)

L
A
D
I
M
I
R
T
R
U

J
I

L
L

A
R
I
A
S

Bit 7 OSCFIE: Bit habilitador de interrupcin por fallo


de oscilador
1 = Habilitado
0 = deshabilitado

Bit 6 CMIE: Bit habilitador de interrupcin por


comparacin

1 = Habilitado
0 = Deshabilitado

Int Perifricos
Int.
Perifricos. Reg
Reg. PIE2
V

(18F4520)

L
A
D
I
M
I

T
R

U
J
I
L
L

Bit 5 Sin implementar se lee como 0


Bit 4 EEIE: Habilita la interrupcin
por fin
f de
escritura en memoria EEPROM/FLASH.

Bit 3 BCLIE:
BCLIE Habilita
H bilit la
l interrupcin
i t
i por
colisin de datos en el BUS

R
I
A
S

1 = Habilitada
H bilit d
0 = Deshabilitada

1 = Habilitada
0 = Deshabilitada

Int Perifricos
Int.
Perifricos. Reg
Reg. PIE2
V

(18F4520)

L
A
D

I
M
I

Bit 2 HLVDIE: Habilita la Interrupcin por deteccin


de alto o bajo voltaje.
voltaje

T
R

U
J
I

Bit 1 TMR3IE: Habilita la interrupcin por desborde


de TMR3.

L
O
A
R
I
A
S

1 = Habilitada
0 = Deshabilitada.
Deshabilitada

1 = Habilita la interrupcin
0 = Deshabilita la interrupcin

Bit 0 CCP2IE: Habilita la interrupcin del mdulo


CCP2

1 = Habilita
H bili la
l interrupcin
i
i
0 = Deshabilita la interrupcin

Prioridad de Int.
Int Reg.
Reg IPR1
V

(18F452, 18F4520)

L
A
D
I
M
I
R
T

R
U
J

I
L

L
O
A

Bit 7 PSPIP(1): Prioridad de Interrupcin

del puerto paralelo esclavo

Bit 6 ADIP:
ADIP Prioridad
P i id d de
d Interrupcin
I t
i del
d l
conversor A/D

R
I
A
S

1 = Alta
l prioridad
d d
0 = Baja prioridad

1 = Alta prioridad
p io idad
0 = Baja prioridad

Prioridad de Int.
Int Reg.
Reg IPR1
V

(18F452, 18F4520)

L
A
D

I
M
I

Bit 5 RCIP: Prioridad de Interrupcin del


mdulo USART en RX.
RX

T
R

U
J
L

L
O
A
R
I
A
S

Bit 4 TXIP: Prioridad de Interrupcin del


mdulo USART en TX.

1 = Alta prioridad
0 = Baja
j prioridad
p

1 = Alta prioridad
0 = Baja prioridad

Bit 3 SSPIP: Prioridad de Interrupcin del


puerto serial sncrono

1 = Alta prioridad
0 = Baja prioridad

Prioridad de Int.
Int Reg.
Reg IPR1
V

(18F452, 18F4520)

L
A
D

I
M
I
R
T
R

U
J
I
L
L
O
A
R
I
A
S

Bit 2 CCP1IP: Prioridad de Interrupcin del mdulo


CCP
1 = Alta prioridad
0 = Baja prioridad
Bit 1 TMR2IP: Prioridad de Interrupcin del TMR2
1 = Alta p
prioridad
0 = Baja prioridad
Bit 0 TMR1IP: Prioridad de Interrupcin del TMR1.
1 = Alta prioridad
0 = Baja prioridad

Prioridad de Int.
Int Reg.
Reg IPR2
V

(18F452)

L
A
D
I
M
I
R
T
R

U
J
I

L
O
A
R
I
A
S

Bit 7-5 Sin implementar


Bit 4 EEIP: Prioridad de Interrupcin por fin
de escritura en EPROM/FLASH

1 = Alta prioridad
0 = Baja prioridad

Bit 3 BCLIP: Prioridad de Interrupcin por


colisin en Bus de datos.

1 = Alta
Alt prioridad
p io id d
0 = Baja prioridad

Prioridad de Int.
Int Reg.
Reg IPR2
V

(18F452)

L
A
D

I
M
I

Bit 2 LVDIP: Prioridad de Interrupcin por


deteccin de bajo voltaje

T
R

U
J
L

L
O
A
R
I
A
S

Bit 1 TMR3IP: Prioridad de Interrupcin por


rebose de TMR3

1 = Alta prioridad
0 = Baja
j prioridad
p

1 = Alta prioridad
0 = Baja prioridad

Bit 0 CCP2IP: Prioridad de Interrupcin de


mdulo CCP2

1 = Alta prioridad
0 = Baja prioridad

Prioridad de Int.
Int Reg.
Reg IPR2
V

(18F4520)

L
A
D
I
M
I
R
T
R
U

J
I

L
L

A
R
I
A
S

Bit 7 OSCFIP: Bit de prioridad de interrupcin por


fallo de oscilador.
oscilador
1 = Alta prioridad
0 = Baja
j prioridad
p

Bit 6 CMIP: Bit de prioridad de interrupcin por


comparacin analgica.

1 = Alta prioridad.
0 = Baja prioridad.

Prioridad de Int.
Int Reg.
Reg IPR2
V

(18F4520)

L
A
D
I
M
I

T
R

U
J
I
L
L

Bit 5 Sin implementar


Bit 4 EEIP: Prioridad de Interrupcin
por fin
f
de escritura en EPROM/FLASH

Bit 3 BCLIP:
BCLIP Prioridad
P i id d de
d Interrupcin
I t
i por
colisin en Bus de datos.

R
I
A
S

1 = Alta
Alt prioridad
i id d
0 = Baja prioridad

1 = Alta prioridad
0 = Baja prioridad

Prioridad de Int.
Int Reg.
Reg IPR2
V

(18F4520)

L
A
D

I
M
I

Bit 2 HLVDIP: Prioridad de Interrupcin por


deteccin de bajo o alto voltaje

T
R

U
J
I

Bit 1 TMR3IP: Prioridad de Interrupcin por rebose


de TMR3

L
O
A
R
I
A
S

1 = Alta prioridad
0 = Baja prioridad

1 = Alta prioridad
0 = Baja prioridad

Bit 0 CCP2IP: Prioridad de Interrupcin de mdulo


CCP2

1 = Alta
Al prioridad
i id d
0 = Baja prioridad

Memoria FLASH de Programa

L
A
D

I
M
I
R

T
R
U

J
I
L
L
O
A
R
I
A
S

La memoria de programa puede ser leda y escrita


durante el funcionamiento normal.
normal
Posee un tamao de 32K Bytes con capacidad para
16K Instrucciones
Durante la escritura o lectura de la memoria de
programa se cesar la bsqueda de instrucciones,
instrucciones
hasta que la operacin este completa.
La memoria de programa no puede ser accedida
durante la lectura o escritura, es por ello que el
cdigo no puede ser ejecutado.

Memoria FLASH de Programa

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Cualquier instruccin invlida que se


escriba, ser ejecutada como un NOP
Ya que la memoria de programa es de
16 bits de ancho y la RAM tiene 8 bits;
l instrucciones
las
i t
i
TBLRD (Lectura)
(L t ) y
TBLWT (escritura), mueven datos
entre esas dos memorias, utilizando el
g
TABLAT.
registro

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Memoria FLASH de Programa

Registro EECON1 y EECON2

L
A
D
I

M
I
R
T
R
U

J
I
L
L
O
A
R
I
A
S

El registro EECON1 es el registro de


control de acceso a memoria FLASH o
EEPROM.
El registro EECON2 no existe
f i
fsicamente,
t y solo
l se utiliza
tili en
operaciones de escritura o borrado de
la memoria.
Cualquier lectura a EECON2,
EECON2 obtiene
como resultado un 0.

Registro EECON1 (Dir. 0FA6h )

L
A
D
I
M
I
R
T
R

U
J

L
L
O
A
R
I
A
S

BIT 7 EEPGD: Bit de seleccin de la


memoria FLASH o EEPROM.

1 = El acceso es a la
l memoria
i FLASH.
FLASH
0 = El acceso es a la memoria EEPROM.

BIT 6 CFGS: Acceso a memoria FLASH/EE o


registros de configuracin.

1 = Acceso a los registros


g
de configuracin
g
0 = Acceso a la memoria FLASH o EEPROM.

Registro EECON1 (Dir. 0FA6h )

L
A
D

I
M

I
R

BIT 5 Sin implementar.


BIT 4 FREE: bit de seleccin de borrado de la
memoria FLASH.

T
R

U
J
I
L
L
O

BIT 3 WRERR: Error en una operacin


d
de
escritura de la memoria FLASH/EEPROM

A
R
I
A
S

1 = Borra la memoria FLASH apuntada por


TBLPTR en el prximo comando WR.
0 = Se realiza escritura nicamente.

1 = Una operacin de escritura fue


prematuramente terminada.
0 = Operacin de escritura completa.

Registro EECON1 (Dir. 0FA6h )

L
A
D
I

M
I

BIT 2 WREN: Bit de habilitacin de escritura


en la memoria FLASH/EEPROM.

R
U
J
I
L

BIT 1 WR: Bit de control de escritura

L
O
A
R
I
A
S

1 = Permite ciclos de escritura.


0 = Inhibe los ciclos de escritura.

1 = Inicializa el borrado/escritura de la memoria


EEPROM/FLASH, este bit se coloca en 0
nuevamente por HW.
0 = El ciclo de escritura esta completo.

Registro EECON1 (Dir. 0FA6h )

L
A
D
I

BIT 0 RD: Bit de control de lectura.

M
I

R
T
R
U
J
I
L
L
O
A
R
I
A
S

1 = Inicializa la lectura de la EEPROM, este


bit se coloca en 0 p
por HW. El bit RD no
puede puesto en 1 cuando EEPGD = 1, lo
cual sugiere
g
que
q la memoria FLASH,, no
puede ser leda utilizando este bit.
0 = No se inicializa la lectura de la
EEPROM.

Registro TABLAT y TBLPTR

L
A
D
I

M
I
R
T
R
U
J

I
L
L
O
A
R
I
A
S

El registro TABLAT es de 8 bits y se utiliza


para almacenar datos durante la
transferencia de informacin entre la RAM y
l memoria de
la
d programa.
El registro TBLPTR apunta a las direcciones
de memoria de programa a acceder, apunta
de a byte por vez.
El registro TBLPTR, es utilizado por las
instrucciones TBLRD y TBLWT; ellas pueden
actualizar el TBLPTR de 4 formas diferentes.

Registro TBLPTR

L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

La lectura accede a memoria cada byte


y
La escritura accede a memoria cada 8 Bytes
El borrado se hace en paquetes de 64 Bytes.
Bytes

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Operaciones que auto modifican


TBLPTR

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Lectura de la Memoria FLASH

Lectura de la Memoria FLASH

L
A
D
I

M
I
R
T
R

U
J
I
L
L
O
A
R
I
A
S

Cuando se hace una lectura de memoria. Se


debe Cargar TBLPTR con la direccin
a leer
(direccin par).
Cuando se ejecuta la instruccin TBLRD, se
mueve un byte de la instruccin a el registro
TABLAT.
El que sea el byte bajo o alto, depende de si
el bit menos significativo de la direccin
escogida es 0

Borrado de la Memoria FLASH

L
A
D
I

M
I
R
T
R
U
J

I
L
L
O
A
R
I
A
S

El TBLPTR no tiene en cuenta los 6 bits


menos significativos a la hora de hacer un
borrado, solo los 16 mas altos, por lo tanto el
borrado de la memoria FLASH
FLASH, solo se hace
en bloques de 64 bytes o 32 instrucciones.
Los 16 bits mas significativos apuntan a la
direccin de inicio del bloque de 64 bytes a
borrar.
El registro EECON1 controla la operacin de
borrado.

Borrado de la Memoria FLASH

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

El bit EEPGD se debe poner en 1, as


como WREN tambin debe estar en 1
para habilitar la operacin de escritura
(Borrar es escribir FF).
El bit FREE se coloca
l
en 1 para iniciar
i i i la
l
operacin de borrado

Borrado de la Memoria FLASH


V

(Secuencia a utilizar)

L
A
D
I

M
I
R
T
R
U
J
I
L
L

O
A
R
I
A
S

Cargar el STKPTR con la direccin de inicio a


borrar (Recordar que es en paquetes de 64
bytes, por tanto los 6 bits menos
significativos son 0)
Poner en 1 el bit EEPGD de EECON1.
Borrar el bit CFGS del registro EECON1
Poner en 1 los bits WREN y FREE para
habilitar escritura y borrado respectivamente.
respectivamente
Deshabilitar las interrupciones.

Borrado de la Memoria FLASH


V

(Secuencia a utilizar)

L
A
D
I
M
I

T
R
U
J
I

L
L
O
A
R
I
A
S

Escribir 55h en el EECON2.


Escribir AAh en el EECON2.
Poner en 1 el bit WR
WR. Esto comenzar el
ciclo de borrado
La CPU queda parada durante el tiempo
que tarde el borrado de la memoria que
son 2 mili segundos aproximadamente.
aproximadamente
Habilitar las interrupciones.

Escritura en memoria Flash.

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

La escritura en la memoria FLASH, se


realiza en paquetes de 8 bytes o 4
instrucciones.
Debido a que el registro TABLAT es de
1 byte,
b t una operacin
i de
d escritura
it
en
FLASH, requiere el uso de 8 veces la
instruccin TBLWT.

Escritura en memoria Flash.

Escritura en memoria Flash


Flash.
V

(Secuencia de Programacin)
g

L
A
D
I
M
I

Secuencia de programacin de la
memoria FLASH.

T
R
U
J
I
L

L
O
A
R
I
A
S

Almacenar el bloque de 64 bytes donde se


va a modificar los datos, en la memoria
RAM.
Actualizar los valores en la RAM si es
necesario
necesario.
Cargar el apuntador del programa con la
di
direccin
i a ser borrada.
b
d

Escritura en memoria Flash


Flash.
V

(Secuencia de Programacin)
g

L
A
D
I
M
I

R
T
R

U
J
I
L

L
O
A
R
I
A
S

Borrar el bloque de memoria FLASH.


Cargar el apuntador del programa con la
direccin de inicio a ser escrita.
Escribir los primeros 8 bytes en los
registros de sujecin.
Utilizar la instruccin (TBLWT* + o
TBLWT+*)).
TBLWT+
Poner en 1 el BIT EEPGD, para apuntar a
la memoria de programa
programa.

Escritura en memoria Flash


Flash.
V

(Secuencia de Programacin)
g

L
A
D
I

M
I
R
T
R
U
J

I
L

L
O
A
R
I
A
S

Borrar el BIT CFGS para acceder a la


memoria de programa y poner en 1 el BIT
WREN para habilitar la escritura.
Deshabilite las interrupciones.
Escriba 55h en el registro EECON2.
Escriba AAh en el registro EECON2.
Coloque en 1 el BIT WR,
WR para comenzar el
ciclo de escritura.

Escritura en memoria Flash


Flash.
V

(Secuencia de Programacin)
g

L
A
D
I
M
I

R
T
R

U
J

I
L
L
O
A
R
I
A
S

La CPU se detiene cerca de 2 milisegundos


mientras se escribe
Re habilite las interrupciones.
Repita este ciclo 7 veces
Para escribir los 64 bytes

Escritura en memoria Flash


Flash.
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(Secuencia de Programacin)
g

Memoria EEPROM de datos

L
A
D
I
M
I
R
T
R
U
J
I
L

La memoria EEPROM, no puede ser


direccionada normalmente, para acceder a
ella se hace a travs de unos registros
g
especiales

L
O

A
R
I
A
S

EECON1
(Registro de configuracin)
EECON2
(Registro de configuracin)
EEDATA
(Registro de transferencia de
datos)
EEADR (Registro de direccionamiento)

Memoria EEPROM de datos

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Los datos en la EEPROM, se


sobrescriben y el tiempo de acceso de
escritura o lectura tiene un tiempo
tpico de 4 milisegundos
D bid a que ell registro
Debido
i t EEADR es de
d 8
bits, la capacidad en EEPROM es de 256
bytes.

Memoria EEPROM de datos

L
A
D
I
M
I
R
T
R

U
J

L
L
O
A
R
I
A
S

BIT 7 EEPGD: bit de seleccin de la memoria FLASH o


EEPROM

1 = Acceso
A
a la
l memoria
i FLASH
0 = Acceso a la memoria EEPROM.

BIT 6 CFGS: Acceso a la memoria FLASH/EEPROM o a los


registros de
d configuracin
f
d
dell PIC
C

1 = Acceso a los registros de Configuracin


0 = Acceso a la memoria FLASH o EEPROM

Memoria EEPROM de datos

L
A
D
I
M
I

BIT 5 Sin implementar


BIT 4 FREE: Habilitacin
del ciclo de borrado
en la memoria FLASH

T
R
U

J
I
L

BIT 3 WRERR: Bit de Error

L
O

A
R
I
A
S

1 = Borra
B
lla memoria
i FLASH (64 bytes)
b t ) apuntada
t d
por TBLPTR en el prximo comando WR
0 = Solo para escritura.
escritura

1 = Una operacin de escritura ha sido


interrumpida.
0 = Operacin
p
de escritura completa.
p

Memoria EEPROM de datos

L
A
D

I
M

R
T

BIT 2 WREN: Bit de habilitacin de escritura en


FLASH o EEPROM

BIT WR: bit de control de escritura

R
U
J
I

L
L
O

A
R
I
A
S

1 = ciclos de escritura permitidos


0 = No permite escritura en la memoria EEPROM

1 = Inicializa un ciclo de escritura en EEPROM o FLASH.


Cuando la operacin termina, el bit es borrado por HW y no
se puede por software
software.))
0 = El ciclo de escritura en EEPROM finaliz

BIT 0 RD: bit de control de lectura.


1 = Lee la memoria EEPROM. Es borrado por HW y
no por SW. Este bit no se puede poner en 1 si EEPGD
= 1.))
0 = No se inicia la lectura de la EEPROM

Lectura de la memoria EEPROM


de datos

L
A
D
I

M
I
R
T
R
U

J
I
L

L
O
A
R
I
A
S

Para la lectura de la memoria EEPROM,


se escribe la direccin a leer en EEADR.
Poner en 0 el bit EEPGD (bit 7 EECON1)
Poner en 0 el bit CFGS (bit 6 EECON1)
Poner en 1 el bit RD (bit 0 EECON1)
El dato ledo se almacena en el registro
EEDATA

Escritura en la memoria EEPROM


de datos

L
A
D

I
M
I
R

R
U

J
I
L

L
O

R
I
A
S

Para la Escritura en la memoria EEPROM, se escribe


la direccin a acceder en el registro EEADR
EEADR.
Poner en 0 el bit EEPGD (bit 7 EECON1)
P
Poner
en 0 ell bit CFGS (bit 6 EECON1)
Poner en 1 el bit WREN (bit 0 EECON1) con el fin de
habilitar el acceso en modo escritura.
escritura
Poner en 1 el bit WR, para comenzar la escritura.
El dato ledo se almacena en el registro EEDATA
Al finalizar la escritura en la memoria EEPROM, se
genera una interrupcin
interrupcin, al ponerse el 1 el bit EEIF
del registro PIR2

Mdulo conversin A/D


V

(18F452)

L
A
D
I

M
I
R
T

R
U
J
I
L
L
O
A
R
I
A
S

El conversor analgico digital posee una


resolucin de 10 bits.
Controlado por los registros ADCON1 y
ADCON0.
El resultado de la conversin
es
g
ADRESL y
almacenado en los registros
ADRESH.

Mdulo conversin A/D


V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(18F452)

Mdulo conversin A/D


V

(18F452)

L
A
D
I
M
I
R
T
R
U
J
I
L
L

Bit 5-3 CHS2:CHS0: Seleccin del


canall analgico
l i

R
I

A
S

000
001
010
011
100
101
110
111

=
=
=
=
=
=
=
=

canal
canal
canal
canal
canal
canal
canal
canal

0,
1,
2,,
3,
4,
4
5,
6,
6
7,

(RA0)
(RA1)
(RA2)
(
)
(RA3)
(RA5)
(RE0)
(RE1)
(RE2)

Mdulo conversin A/D


V

(18F452)

L
A
D
I

Bit 2 GO/DONE: Estado de la conversin


A/D Debe estar habilitado el bit ADON
A/D.

R
T
R
U

J
I
L
L
O
A
R
I
A
S

1 = Conversin A/D en progreso (Colocando este


bit en 1,
1 se inicia la conversin A/D.
A/D Se borra por
HW, cuando la conversin termina.)
0 = La conversin A/D no esta en p
progreso.
g

Bit 1 Sin implementar


Bit 0 ADON: Enciende el mdulo A/D

1 = El mdulo A/D esta encendido


0 = El mdulo A/D
/ esta apagado
p g
y no consume
corriente.

Mdulo conversin A/D


V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(18F452)

Mdulo conversin A/D


V

(18F452)

L
A
D
I

Bit 7 ADFM: Formato del resultado de la


conversin A/D.
A/D

R
T

R
U
J
I
L
L
O
A
R
I
A
S

1 = Justificado a la derecha. Los 6 bits mas


significativos del registro ADRESH son cero.
cero
0 = Justificado a la izquierda. Los 6 bits menos
g
del registro
g
ADRESL son cero.
significativos

Bit 6 ADCS2: seleccin del tiempo de


conversin del mdulo A/D, trabaja
j en asocio
con los bits ADCS1 y ADCS0 del registro
ADCON0

Mdulo conversin A/D


V

(18F452)

L
A
D

I
M
I
R
T

R
U
J

I
L
L
O
A
R
I
A
S

Cuando el procesador se encuentra en modo


SLEEP y se desea realizar una conversin
conversin, se
debe utilizar como base de tiempo el oscilador
RC del conversor A/D.
El conversor analgico
l i digital
di it l funciona
f
i
por
conversiones sucesivas.
Un RESET en el dispositivo,
dispositivo obliga el apagado del
conversor A/D y cualquier conversin en proceso
es abortada.
Cada pin del microcontrolador que se use como
entrada analgica, debe ser configurado como
entrada en el respectivo registro TRIS

Mdulo conversin A/D (Pasos)


V

(18F452)

L
A
D
I

M
I
R
T
R

Los pasos para realizar una conversin


A/D son llos siguientes:
i i
1. Configuracin
g
del mdulo A/D.
/

U
J
I
L

L
O
A

R
I
A
S

Se configuran los pines que sern entradas


analgicas
g
o digitales
g
(ADCON1).
(
)
Se selecciona el canal de entrada al
mdulo A/D
/ ((ADCON0).
)
Se selecciona el reloj de conversin A/D
((ADCON0).
)
Se enciende el mdulo A/D (ADCON0).

Mdulo conversin A/D (Pasos)


V

(18F452)

L
A
D

I
M
I

R
U
J

I
L
L
O
A
R
I
A
S

2. Configuracin de interrupciones para el


mdulo A/D (opcional)

Borrar el bit ADIF en el registro PIR1


Poner en 1 el bit ADIE en el registro PIE1.
Poner en 1 el bit GIE y el PEIE en el registro
INTCON.

3. Esperar el tiempo de adquisicin en el


3
condensador de sujecin interno.
4. Comenzar la conversin,, colocando en 1 el
bit GO/DONE del registro (ADCON0), este bit
no se debe poner en 1 al mismo tiempo que
instruccin que enciende el mdulo A/D
(ADON = 1)

Mdulo conversin A/D (Pasos)


V

(18F452)

L
A
D

I
M
I

R
T
R

U
J
I
L
L
O
A
R
I
A
S

5. Esperar que la conversin A/D concluya


cuando:

El bit GO/DONE se ponga en 0 la interrupcin del


conversor A/D
/ se d.

6. Leer el resultado en los registros ADRESH y


ADRESL y borrar el bit ADIF si es necesario.
7. Para conversiones sucesivas, se deben esperar
2 TADs antes de que el nuevo tiempo de
adquisicin comience
comience. Se entiende por un TAD,
TAD el
tiempo que demora la conversin de 1 bit y no
puede ser menor a 1.6 micro segundos

Mdulo conversin A/D


V

(18F452)

L
A
D
I

M
I
R
T
R
U
J

Los bits ADCS0, ADCS1 y ADCS2, permiten


escoger el oscilador para la conversin
A/D
que tiene relacin directa con el TAD.
El TAD se obtiene as:

I
L
L

O
A
R
I
A
S

TAD = 1/(FOSC/n)
(
) TOSC * n donde TOSC =
1/FOSC.
Si el valor de ADCS0, ADCS1, ADCS2 es de 101, el
valor del TAD ser de (16 * TOSC)
Si se desea trabajar con el oscilador RC interno del
mdulo
d l A/D,
A/D ell valor
l del
d l TAD ser
de
d 2 micro
i
segundos.

Mdulo conversin A/D


V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(18F452)

Mdulo conversin A/D


V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(18F452)

Mdulo conversin A/D


V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(18F452)

Mdulo conversin A/D


V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(18F452)

Mdulo conversin A/D


V

(18F4520)

L
A
D
I

M
I
R
T
R
U

J
I
L
L
O
A
R
I
A
S

El mdulo A/D de este micro consta de


13 canales analgicos. El resultado de
la conversin es de 10 bits.
Cinco registros conforman este mdulo.
ADRESH, ADRESL, registros de control
ADCON0,, ADCON1 y ADCON2.

Mdulo conversin A/D


V

(18F4520)

L
A
D
I
M
I
R
T
R
U

Bit 1 GO/DONE: Bit de estado de la conversin A/D

L
O
A
R
I
A
S

Cuando ADON = 1:

1 = Conversin A/D en progreso.


0 = Conversor A/D desocupado

Bit 0 ADON: Bit habilitador


h b l d de
d mdulo
d l A/D
/

1 = Mdulo A/D habilitado


0 = Mdulo A/D deshabilitado

Mdulo conversin A/D


(18F4520)

V
L
A
D

M
I
R
T
R
U

Bit 7-6 Sin implementar


Bit 5-2 CHS3:CHS0: Seleccin del canal analgico
g

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=

Canal 0 (AN0/RA0)
Canal 1 (AN1/RA1)
Canal 2 (AN2/RA2)
C
Canall 3 (AN3/RA3)
Canal 4 (AN4/RA5)
Canal 5 (AN5/RE0)
Canal 6 ((AN6/RE1)
/
)
Canal 7 (AN7/RE2)
Canal 8 (AN8/RB2)
Canal 9 (AN9/RB3)
Canal 10 (AN10/RB1)
Canal 11 (AN11/RB4)
Canal 12 (AN12/RB0)
Sin implementar
p
Sin implementar
Sin implementar

Mdulo conversin A/D


(18F4520)

V
L
A
D
I
M
I
R
T
R
U

J
I
L
L
O
A
R
I
A
S

Bit 7-6 Sin implementar, se lee como 0


Bit 5 VCFG1: Configuracin de Voltaje de referencia (VREF-)
1 = VREF- (AN2)
0 = VSS
Bit 4 VCFG0: Configuracin
de Voltaje de referencia (VREF+)
1 = VREF+ (AN3)
0 = VDD

Mdulo conversin A/D


V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(18F4520)

Mdulo conversin A/D


V

(18F4520)

L
A
D
I
M
I
R
T
R
U

J
I

Bit 7 ADFM: Seleccin del formato del


resultado
es ltado del md
mdulo
lo A/D

L
O

A
R
I
A
S

1 = Justificado a la derecha
0 = Justificado a la izquierda

Bit 6 Sin implementar

Mdulo conversin A/D


V

(18F4520)

L
A
D
I
M
I

Bit 5-3 ACQT2:ACQT0: Bit de seleccin del


tiempo de adquisicin

R
U

J
I

L
L

A
R
I
A
S

111
110
101
100
011
010
001
000

=
=
=
=
=
=
=
=

20 TAD
16 TAD
12 TAD
8 TAD
6 TAD
4 TAD
2 TAD
0 TAD

Mdulo conversin A/D


V

(18F4520)

L
A
D
I
M
I

bit 2-0 ADCS2:ADCS0: Bit de seleccin del


reloj para la conversin
A/D (TAD).

R
U

J
I

L
L

A
R
I
A
S

111
110
101
100
011
010
001
000

=
=
=
=
=
=
=
=

Uso del temporizador RC interno


FOSC/64
FOSC/16
FOSC/4
Uso del temporizador RC interno
FOSC/32
FOSC/8
FOSC/2

Mdulo conversin A/D


V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(18F4520)

Mdulo conversin A/D


V

(18F4520)

L
A
D
I
M
I
R

Pasos para realizar una conversin A/D.

T
R
U

J
I
L
L

O
A
R
I
A
S

1. Configuracin del mdulo A/D


Configurar los pines analgicos y los voltajes de
referencia (ADCON1)
Seleccionar canal de entrada (ADCON0)
Escoger el tiempo de adquisicin (ADCON2)
Seleccionar el tiempo de conversin TADs
(ADCON2)
Habilitar el mdulo A/D (ADCON0)

Mdulo conversin A/D


(18F4520)

V
L
A
D

M
I

R
T

R
U
J

I
L
L
O
A
R
I
A
S

2. Configurar las interrupciones A/D

Borrar el bit ADIF


Poner en 1el bit ADIE
Poner en 1 el bit GIE.

3. Esperar a que transcurra el tiempo de adquisicin si es


necesario
4 Comenzar la conversin
4.
conversin. Colocando en 1 el bit GO/DONE del
(ADCON0)
5. Esperar a que la conversin A/D termine.
Cuando GO/DONE se pone en 0 se da una interrupcin A/D
6. leer el resultado de la conversin en (ADRESH:ADRESL) y
borrar el bit ADIF
ADIF, si es necesario
necesario.

Mdulo conversin A/D


V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(18F4520)

Mdulo conversin A/D


V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(18F4520)

Mdulo conversin A/D


V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(18F4520)

Mdulo conversin A/D


V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

(18F4520)

Temporizador Timer 0

L
A
D

I
M
I

R
T
R
U
J

I
L
L

O
A
R
I
A
S

Las caractersticas que posee el Timer0 son las


siguientes:
Se puede seleccionar un modo de trabajo a 8 o 16
bits
S puede
Se
d leer
l
y escribir
ibi en l.
l
Posee un pre escalador propio de 8 bits.
Seleccin de fuente de reloj externa (Pin RA4 T0CKI)
o interna Fosc/4
Genera una interrupcin cuando se desborda en
modo de 8 o 16 bits.
bits
El timer 0 es controlado por el registro T0CON

Temporizador Timer 0 Reg. T0CON

L
A
D
I
M
I
R
T

R
U
J
I
L
L
O
A
R
I
A
S

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


1 = Habilita el Timer0
0 = Detiene el Timer0
Bit 6 T08BIT: Bit de seleccin de Timer0 en modo
8 bits o 16 bits
1 = Timer0 en modo 8 bits
0 = Timer0 en modo 16 bits

Temporizador Timer 0 Reg. T0CON

L
A
D

I
M
I

R
T

R
U
J

L
O

R
I
A
S

1 = Incremento por flanco de bajada


bajada.
0 = Incremento por flanco de subida.

Bit 3 PSA: Bit de asignacin


g
del Pre escalador

1 = Transiciones en el pin T0CKI (RA4)


0 = Reloj interno de Instrucciones (FOSC/4)

Bit 4 T0SE: Bit de tipo de flanco para incremento de


Timer0.

I
L

Bit 5 T0CS: Bit de seleccin de la fuente de reloj de


Timer0
Timer0.

1 = Pre escalador no asignado a Timer0.


0 = Pre escalador asignado a Timer0.

Temporizador Timer 0 Reg. T0CON

L
A
D
I
M

Bit 2-0 T0PS2:T0PS0: Bits de seleccin del


pre escalador
escalador.

I
R
T
R
U
J

I
L
L
O
A
R
I
A
S

111
110
101
100
011
010
001
000

=
=
=
=
=
=
=
=

1:256
1:128
1:64
1:32
1:16
1:8
1:4
1:2

Temporizador Timer 0

L
A
D

I
M
I
R

T
R
U

J
I
L
L
O
A
R
I
A
S

Si no se asigna preescalador a TMRO, el registro de


l se incrementa cada ciclo de reloj
reloj.
Si el registro TMR0L es escrito, el conteo no se
reanuda hasta dos ciclos de instruccin despus.
reanuda,
despus
Si se utilizan instrucciones como:

clrf TMR0
TMR0, movwf TMR0 bsf TMR0,
TMR0 el pre escalador es
puesto a 0, aunque la asignacin del pre escalador no
cambia.

La interrupcin
de TMR0, no puede sacar al
procesador de un SLEEP, ya que en este caso el
oscilador interno esta parado
parado.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Temporizador Timer 0

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Temporizador Timer 0

Temporizador Timer 0

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

El registro TMR0H se actualiza solo


cuando se hace una lectura de TMR0L,
esto con el fin de leer los 16 bits de
TMR0.
L parte
La
t alta
lt d
de TMR0,
TMR0 solo
l se carga en
el registro TMR0H cuando se hace una
escritura en TMR0L, esto con el fin de
transferir los 16 bits a la vez

Temporizador Timer 1

L
A
D

I
M
I
R
T

R
U
J
I
L
L
O
A
R
I
A
S

El Timer1 es un temporizador de 16 bits posee los


registros TMR1H y TMR1L
TMR1L.
Seleccin de fuente de reloj interna o externa.
Puede conectarse un oscilador en los pines de
entrada de Timer1 con el fin de tener una base de
tiempo precisa independiente del reloj interno.
La interrupcin se genera por rebose
Un evento especial del mdulo CCP
CCP, lo coloca en 0

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Temporizador Timer 1

Temporizador Timer1 Reg. T1CON

L
A
D
I

Bit 7 RD16: Modo de lectura escritura de 16bits

R
T

R
U
J
I
L
L
O
A
R
I
A
S

1 = Habilita la lectura y escritura del Timer1 en


una operacin de 16
16-bits
bits.
0 = Habilita la lectura y escritura del Timer1 en
p
de 8-bits.
dos operaciones

Cuando RD16 vale 1, la parte alta del timer 1


es transferida a TMR1H a travs de un buffer.
Esto ocurre solo cuando TMR1L es ledo, as
se transfieren los 16 bits al tiempo.

Temporizador Timer1 Reg. T1CON

L
A
D
I

M
I
R
T
R
U
J

I
L
L
O
A
R
I
A

Para realizar una escritura de 16 bits a el


Timer 1
1, se carga TMR1H con el valor
deseado y a continuacin se escribe TMR1L,
en ese instante se hace la transferencia de 16
bits a la vez.
Bit 6 Sin implementar
Bit 5-4 T1CKPS1:T1CKPS0: Bits del pre
escalador de Timer1

11
10
01
00

=
=
=
=

1:8
1:4
1:2
1:1

Temporizador Timer1 Reg. T1CON

L
A
D

I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Bit 3 T1OSCEN: Bit habilitador del Oscilador


de Timer1.
Timer1
1 = Oscilador de Timer1 habilitado
0 = Oscilador de Timer1 apagado
Bit 2 T1SYNC: Sincronizacin de reloj
externo con el reloj interno
Cuando TMR1CS = 1:
1 = No sincronice la seal de reloj externa
0 = Sincronice la seal de reloj externa
Cuando TMR1CS = 0:
Se ignora, ya que se esta usando el reloj
interno

Temporizador Timer1 Reg. T1CON

L
A
D
I

M
I
R

Bit 1 TMR1CS: Bit de seleccin de la fuente


de reloj de Timer1.

T
R
U
J

I
L
L
O
A
R
I
A
S

1 = Reloj externo, entrada por


RC0/T1OSO/T13CKI
/
/
((cuenta cada
d fl
flanco de
d
subida)
0 = Reloj
R l j Interno
I t
(FOSC/4)

Bit 0 TMR1ON: Bit de encendido del Timer1

1 = Habilita el conteo en Timer1


0 = Detiene el conteo en Timer1

Temporizador Timer1. Oscilador

L
A
D
I

M
I
R

T
R
U
J
I
L
L
O
A
R
I
A
S

El oscilador externo para Timer1 se ubica


entre los pines T1OSO y T1OSI (RC0 y RC1)
El oscilador de cuarzo que se conecta a estos
pines no debe exceder los 200 KHz.
Los condensadores sugeridos son de 33 pF.
Una alta capacitancia incrementa la
estabilidad pero aumenta el tiempo de
estabilidad,
arranque del oscilador

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Temporizador Timer 1

Temporizador Timer 2

L
A
D

I
M
I
R

T
R

U
J
I
L

L
O
A
R
I
A
S

El Timer2 se caracteriza por lo siguiente


Un registro TMR2 de 8 bits
Un registro PR2, que controla el mximo
conteo de TMR2.
TMR2
Un pre escalador de (1:1, 1:4, 1:16)
Un post escalador (1:1 a 1:16)
Se genera una interrupcin al igualarse TMR2
con PR2.
TMR2 es utilizado como base de tiempo para
el control del mdulo PWM

Temporizador Timer 2

L
A
D
I
M
I

El pre escalador y el post escalador son


puestos a su valor mnimo, cuando:

T
R
U
J
I
L
L
O
A
R
I
A
S

Se escribe en el registro TMR2.


Se escribe en el registro T2CON
P un RESET
Por
El valor de TMR2 no se pone en 0 si
T2CON es modificado.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Temporizador Timer 2

Temporizador Timer2 Reg. T2CON

L
A
D
I
M

I
R

R
U
J

Bit 7 Sin implementar


Bit 6 a 3 TOUTPS3:TOUTPS0: Timer2 Post
escalador

Bit 2 TMR2ON: Bit de encendido

L
O

R
I
A
S

1 = Timer2 encendido
0 = Timer2 apagado

Bit 1 a 0 T2CKPS1:T2CKPS0: Timer2 Pre escalador

0000 = 1:1 Post escalador


0001 = 1:2
1 2 Post
P t escalador
l d
1111 = 1:16 Post escalador

00 = Pre escalador en 1
01 = Pre escalador en 4
1x = Pre escalador en 16

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Temporizador Timer2

Temporizador Timer 3

V
L
A
D
I

M
I
R

T
R
U
J
I
L

L
O

A
R
I
A
S

El temporizador Timer3 posee las siguientes


caractersticas:
16 bits de tamao, conformado por dos
registros de 8 bits
Uso de oscilador externo.
Interrupcin por rebose del temporizador, al
pasar de FFFFh a 0000h
Se puede borrar por un disparo del mdulo
CCP.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Temporizador Timer 3

Temporizador Timer 3 Reg. T3CON

L
A
D
I
M
I

Bit 7 RD16: Habilita el modo de lectura


escritura de 16 bits

T
R
U
J
I
L
L
O
A
R
I
A
S

1 = Habilita la lectura escritura del Timer3


en una operacin de 16 bits. El TMR3H, se
actualiza al leer o escribir en el TMR3L
0 = Habilita la lectura escritura del Timer3
en dos operaciones de 8 bits
bits.

Temporizador Timer 3 Reg. T3CON

L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Bit 6-3 T3CCP2:T3CCP1:Uso del Timer3 y


Ti
Timer1
1 para trabajar
t b j con ell mdulo
d l CCPx.
CCP
1x = Timer3 es la fuente de reloj para el
mdulo
d l CCP en modo
d captura
t
y comparacin.
i
01 = Timer3 es la fuente de reloj para el
mdulo
d l CCP2 y Timer1 es la
l fuente
f
de
d reloj
l
para el mdulo CCP1
00 = Timer1 es la fuente de reloj para el
mdulo CCP en modo captura y comparacin.

Temporizador Timer 3 Reg. T3CON

L
A
D

I
M
I

Bit 5-4 T3CKPS1:T3CKPS0: Pre escalador del


Timer3

R
U

J
I
L
L
O

1:8
1:4
1:2
1:1

Cuando TMR3CS = 1:

I
S

=
=
=
=

Bit 2 T3SYNC: Bit para sincronizacin de la fuente


de reloj externa de Timer3.

11
10
01
00

1 = No sincronice el reloj externo con el interno


0 = sincronice el reloj externo con el interno

Cuando TMR3CS = 0:

Es ignorado.

Temporizador Timer 3 Reg. T3CON

L
A
D
I

M
I
R

Bit 1 TMR3CS: Seleccin de la fuente


d reloj
de
l j de
d Timer3
Ti
3

T
R
U

J
I
L
L
O
A
R
I
A
S

1 = Fuente de reloj externa proveniente


del oscilador de Timer1 o del pin T1CKI
0 = Fuente de reloj interna (FOSC/4)

Bit 0 TMR3ON: Encendido de Timer3

1 = Habilita Timer3
0 = Detiene Timer3

Temporizador Timer3

L
A
D
I

M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Para que el reset debido al evento de


disparo del mdulo CCP funcione, el
TIMER3, debe estar configurado con
reloj interno o externo con
sincronizacin
sincronizacin.
El evento de disparo coloca en 0 el
timer 3 pero no genera una
p
interrupcin.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Temporizador Timer3

Modulo CCP

L
A
D

I
M
I
R

T
R
U
J
I
L
L
O
A
R
I
A
S

El mdulo CCP1 y CCP2, constan de 1 registro de


control CCPxCON y 2 registros de 8 bits auxiliares
(CCPRxL y CCPRxH) para el manejo del mdulo.
Los modos de trabajo son captura, comparacin y
PWM
PWM.
Este mdulo hace uso de los temporizadores
Timer1, Timer2 y Timer3

Modulo CCP

(Registro de control)

L
A
D
I
M
I
R
T
R
U
J

I
L
L
O
A
R
I
A
S

Bit 7-6 Sin implementar


Bit 5-4 DCxB1:DCxB0: bit 0 y 1 de el ciclo de
t b j PWM,
trabajo
PWM no usado
d en modo
d captura
t
y
comparacin

Modulo CCP

(Registro de control)

L
A
D

Bit 3-0 CCPxM3:CCPxM0: Bits de seleccin del modo de trabajo

L
L

A
R

I
A
S

0000 = Modulo CCP apagado


0001 = Reservado
0010 = Modo compara, pulso a la salida al darse la igualdad (CCPxIF se
coloca en 1)
0011 = Reservado
0100 = Moda captura, cada flanco de bajada.
0101 = Modo captura, cada flanco de subida.
0110 = Modo captura, cada 4 flancos de subida.
0111 = Modo captura
captura, cada 16 flancos de subida.
subida
1000 = Modo compara, coloca el pin CCP en estado alto cuando se produce
la igualdad (CCPIF se coloca en 1)
1001 = Modo compara, coloca el pin CCP en estado alto al darse la
i
igualdad
ld d (CCPIF se coloca
l
en 1)
1010 = Modo compara, el pin CCP no cambia, CCPIF se coloca en 1 cuando
la igualdad se da.
1011 = Modo compara, se genera un evento trigger al producirse la
i
igualdad
ld d (CCPIF se coloca
l
en 1)
11xx = Modo PWM

Modulo CCP

(Modo de Captura)

L
A
D

I
M
I
R

En modo de captura los registros CCPR1H:CCPR1L, capturan el


valor de los 16 bits de los registros de TMR1 o TMR3,
TMR3 cuando un
evento en el pin RC2/CCP1 ocurre.
Los eventos son:

J
I
L
L
O

A
R
I
A
S

Cada
Cada
Cada
Cada

flanco de bajada
flanco de subida
4 flancos
a cos de subida
sub da
16 flancos de subida

El pin del mdulo CCPP debe ser configurado como entrada


El timer 1 y 3 deben estar sincronizados con el reloj interno, si
estn contando pulsos externos.
Si se realiza un cambio de configuracin del modo de trabajo
del mdulo CPP, se debe apagar el mdulo. Ya que si no se
hace se puede generar una falsa interrupcin.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo CCP

(Modo de Captura)

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo CCP

(Modo de Captura)

Modulo CCP

(Modo Compara)

L
A
D

I
M
I

En modo compara, los 16 bits de los registros CCPR1 o (CCPR2)


son comparados constantemente con el valor de TMR1 o TMR3
TMR3.
Cuando el valor de CCPRx se hace igual al de un Timer, ocurre
lo siguiente en los pines RC2/CCP1 o RC1/CCP2:

J
I
L
L

O
A
R
I
A
S

Se pone en estado alto


Se pone en estado bajo
Cambia
Ca
b a de estado (Alto
( to a Bajo
ajo o Bajo
ajo a Alto)
to)
Se mantiene sin cambios

El timer 1 y 3 deben estar sincronizados con el reloj interno, si


estn contando pulsos externos
externos.
Si se realiza un cambio de configuracin del modo de trabajo
del mdulo CPP, se debe apagar
g el mdulo. Ya que si no se
hace se puede generar una falsa interrupcin

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo CCP

(Modo Compara)

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo CCP

(Modo Compara)

Modulo CCP

(Modo PWM)

L
A
D

I
M

I
R

T
R
U

J
I

L
O
A
R
I
A
S

El modo PWM, posee una resolucin de 10 bits.


Al borrar el registro CCPxCON
CCPxCON, la salida del mdulo
PWM se pone en su estado por defecto (0).
El registro Timer 2 es utilizado como base de tiempo
para la operacin de este mdulo.
El pos escalador de TMR2 no se utiliza.
El periodo PWM esta dado por:

Periodo PWM = [PR2 + 1] * 4* TOSC*(Pre escalador TMR2)

El ciclo
i l de
d trabajo
t b j o tiempo
ti
de
d cresta
t esta
t dado
d d por:

Tiempo Cresta PWM = (CCPR1L:CCP1CON<5:4>)*TOSC


(
escalador de TMR2))
*(Pre

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo CCP

(Modo PWM)

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo CCP

(Modo PWM)

Modulo CCP

(Modo PWM)

L
A
D

I
M

I
R

T
R
U

J
I
L
L

O
A
R
I
A
S

Como Configurar el mdulo PWM


Seleccione el periodo de trabajo mediante el registro
PR2.
Seleccione el tiempo de cresta de PWM mediante el
registro CCPR1L y los bits 5 y 4 de CCP1CON.
Configure el pin de salida del mdulo CPP como
salida.
Configure el preescalador de Timer2 en el registro
T2CON
T2CON.
Configure el mdulo CPP para modo de trabajo PWM.

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo CCP

(Modo PWM)

Modulo de Comunicacin serial


USART

L
A
D
I

M
I

El mdulo de comunicacin serial puede


ser configurado de la siguiente manera:

T
R

U
J

I
L
L
O
A
R
I
A
S

Sistema asncrono full duplex.


Sistema sincrnico half-duplex (Maestro).
Si t
Sistema
sincrnico
i i half-duplex
h lf d l (Esclavo).
(E l
)

El mdulo USART cuenta con dos


registro de configuracin.

Registro de control de transmisin TXSTA.


TXSTA
Registro de control de recepcin RCSTA.

Modulo de Comunicacin serial


USART (Registro
g
TXSTA)

L
A
D
I
M
I
R
T
R
U
J

Bit 7 CSRC: Seleccin de la fuente de reloj.

L
L
O

Modo Asncrono:

Modo sincrnico:

A
R
I
A
S

No se tiene en cuenta

1 = Modo maestro (reloj generado internamente por el


BRG)
0 = Modo Esclavo (reloj de fuente externa)

Modulo de Comunicacin serial


USART (Registro
g
TXSTA)

L
A
D

M
I

T
U

J
L
L
O
A
R
I
A
S

1 = 9 bits para transmitir.


transmitir
0 = 8 bits para transmitir.

Bit 5 TXEN: Habilitacin de Transmisin

Bit 6 TX9: Habilitador de transmisin de 9-bit.

1 = Transmisin habilitada
0 = Transmisin deshabilitada

Bit 4 SYNC: Seleccin del modo de trabajo


USART

1 = Modo
d sincrnico
i i
0 = Modo asncrono

Modulo de Comunicacin serial


USART (Registro
g
TXSTA)

L
A
D

I
M

I
R

Bit 3 Sin implementar


Bit 2 BRGH: Modo de seleccin
de trabajo del Baud
Rate Generator

T
R

I
L

I
A
S

No utilizado en este modo

Bit 1 TRMT
TRMT: Estado
E t d d
dell registro
i t de
d corrimiento
i i t

1 = Alta velocidad
0 = Baja velocidad

Modo Sincrnico:

L
O

Modo asncrono:

1 = TSR vaco
0 = TSR lleno

Bit 0 TX9D: Noveno bit de datos a ser transmitido

Modulo de Comunicacin serial


USART (Registro
g
RCSTA)

L
A
D
I
M
I
R
T
R

Bit 7 SPEN: Habilitador de puerto serial

J
I

L
L
O
A
R
I
A
S

1 = Puerto serial habilitado


0 = Puerto serial deshabilitado

Bit 6 RX9: Habilita la recepcin de noveno bit.


bit

1 = Se van a recibir 9 bits.


0 = Se van a recibir 8 bits.

Modulo de Comunicacin serial


USART (Registro
g
RCSTA)

L
A
D
I
M
I

Bit 5 SREN: Habilitacin de recepcin


simple.

T
R

U
J
I

Modo asncrono:

Modo sincrnico - Maestro:

L
O
A
R
I
A
S

No se tiene en cuenta
1 = Habilita una recepcin simple
0 = Deshabilita
D h bilit la
l recepcin
i simple.
i l

Modo sincrnico - Esclavo:

No se tiene en cuenta

Modulo de Comunicacin serial


USART (Registro
g
RCSTA)

L
A
D
I
M
I

bit 4 CREN: Habilita la recepcin


continua.

T
R

Modo asncrono:

J
I
L
L
O

Modo sincrnico:

A
R
I
A
S

1 = Habilita el receptor
0 = Deshabilita el receptor

1 = Habilita
H bilit la
l recepcin
i continua,
ti
hasta
h t que ell
bit CREN se borre (CREN sobrescribe SREN)
0 = Deshabilita la recepcin continua
continua.

Modulo de Comunicacin serial


USART (Registro
g
RCSTA)

L
A
D

bit 3 ADDEN: Habilita la deteccin de direcciones

Modo asncrono con noveno bit en 1 (RX9 = 1):

I
R

T
R

I
L
L

bit 2 FERR: Bit de error de Encuadre

A
R
I
A
S

1 = Error de encuadre
0 = No hay error de encuadre

bit 1 OERR: Bit de error de desborde

1 = Habilita la deteccin de direcciones, habilita la interrupcin


y lee el buffer de recepcin cuando RSR<8> se pone en 1
0 = Deshabilita la deteccin de direcciones, todos los bytes son
recibidos
b d y ell noveno bit
b se puede
d usar como bit
b de
d paridad
d d

1 = Error de desborde
0 = No hay error de desborde

bit 0 RX9D: Noveno bit en recepcin

Modulo de Comunicacin serial


USART (Tasa de transferencia)

L
A
D

I
M
I

R
T
R

J
I

R
I
A
S

Tasa de transferencia = FOSC/(16(X+1))

Modo sincrnico baja velocidad.

Tasa de transferencia = FOSC/(64(X+1))

Modo asncrono alta velocidad.

L
O

Existen dos modos para calcular la tasa de transferencia de


puerto serial USART.
USART Modo alta y baja velocidad.
velocidad
El bit BRGH <TXSTA 2>, permite escoger el modo, mientras
que el registro SPBRG contiene la tasa de transferencia
escogida.
id En
E las
l ecuaciones
i
X es ell valor
l de
d SPBRG
Modo asncrono baja velocidad.

Tasa de transferencia = FOSC/(4(X+1))

Modo sincrnico alta velocidad


velocidad.

No aplica

Modulo de Comunicacin serial


USART (Modo asncrono)

L
A
D

I
M
I
R

T
R
U

J
I
L

L
O
A
R
I
A
S

En modo asncrono el USART utiliza el estndar de no


retorno a cero NRZ
NRZ.
Se utiliza un bit de inicio, 8 o 9 bits de datos y un bit
de parada
parada.
El USART transmite y recibe primero el bit menos
significativo
El TX y RX pueden funcionar independientemente,
aunque utilizan la misma tasa de transferencia.
No se soporta bit de paridad por HW, aunque se
puede realizar por
p
p SW.

Modulo de Comunicacin serial


USART (Modo asncrono TX)

L
A
D
I

M
I
R
T
R
U
J
I
L
L

O
A
R
I
A
S

El registro TSR es actualizado con el


valor contenido en TXREG, cuando la
transferencia de datos ha finalizado; es
decir cuando el bit de parada de un
dato previo ha sido transmitido.
transmitido
TXTREG se actualiza por SW.
Una vez que TXREG transfiere sus datos
a TSR,
TSR queda vaco y se produce una
interrupcin.

Modulo de Comunicacin serial


USART (Modo asncrono TX)

L
A
D
I

M
I
R
T
R
U
J

I
L
L
O
A
R
I
A
S

La bandera TXIF se pone en 1, independiente


del estado de TXIE y no puede ser borrada
por SW. Solo se borra cuando un nuevo valor
h sido
ha
d cargado
d en TXREG.
El bit TRMT, muestra el estado del registro de
corrimiento TSR, colocndose en 1 cuando
TSR esta vaco.
La bandera TXIF solo se pone en 1 cuando el
bit TXEN esta en 1

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo de Comunicacin serial


USART (Modo asncrono TX)

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo de Comunicacin serial


USART (Modo asncrono TX)

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo de Comunicacin serial


USART (Modo asncrono TX)

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo de Comunicacin serial


USART (Modo asncrono TX)

Modulo de Comunicacin serial


USART (Modo asncrono TX)

L
A
D

I
M

I
R
T
R

U
J
I
L
L

O
A

R
I
A
S

Para configurar la transmisin se requiere:


1 Inicializar
1.
I i i li
ell SPBRG para la
l tasa
t
de
d transferencia
t
f
i
deseada. Con el bit BRGH se escoge si se desea alta o
baja
j velocidad.
2. Habilitar el puerto seria asncrono colocando en 0 el bit
SYNC y poniendo en 1 el bit SPEN.
3. Si se desean interrupciones colocar en 1 el bit TXIE.
4. Si se desea transmisin de noveno bit, colocar en 1 el
bit TX9
TX9.
5. Habilitar la transmisin colocando en 1 el bit TXEN el
cual colocar en 1 el bit TXIF.
6. Cargar el dato a transmitir en TXREG.

Modulo de Comunicacin serial


USART (Modo asncrono RX)

L
A
D
I
M

I
R

T
R
U
J
I
L
L
O

A
R
I
A
S

Para habilitar una recepcin asncrona se requiere:


1 Inicializar el SPBRG para la tasa de transferencia deseada
1.
deseada.
Con el bit BRGH se escoge si se desea alta o baja velocidad.
2. Habilitar el puerto serial asncrono colocando en 0 el bit SYNC
y poniendo en 1 el bit SPEN.
3. Si se desean interrupciones colocar en 1 el bit RCIE.
4 Si se desea recepcin de noveno bit
4.
bit, colocar en 1 el bit RX9
RX9.
5. Habilitar la recepcin colocando el bit CREN en 1.
6. La bandera RCIF se p
pondr en 1 cuando la recepcin
p
se
complete y se generar una interrupcin si el bit RCIE fue
puesto en 1.
7 Leer el dato recibido del registro RCREG.
7.
RCREG

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo de Comunicacin serial


USART (Modo asncrono RX)

V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Modulo de Comunicacin serial


USART (Modo asncrono RX)

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

También podría gustarte