Está en la página 1de 362

MICROCONTROLADORES GAMA

ALTA Y ARQUITECTURAS
MIXTAS
Departamento de Electrnica

Instrumentacin

y Control.
Profesor:
Ing. Vladimir Trujillo Arias.

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

Qu
Qu
Q
Qu

es
es
es
es

un
un
un
un
n

microprocesador
microcontrolador
DSP
Dispositivo
Dispositi o Lgico Config
Configurable
able

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
p
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 l i

I
A
S

Arquitectura
q
Capacidades de computo
Memoria
Perifricos especiales
Mdulos

HW
Set de instrucciones

Lenguaje Ensamblador
Compiladores C
Simuladores (MPLAB y PROTEUS)

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
Procesadores en Sistemas de
Telecomunicaciones y Sistemas
Industriales

CAPITULO 6.
6 Proyecto Final
Final.

Evolucin de los Sistemas


Digitales

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),
(Microelectrnica) primeros
circuitos integrados Digitales.
Circuitos Integrados Monolticos

Evolucin de los Sistemas


Digitales

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
g el semiconductor: Silicio,, Arseniuro de
Galio, Silicio Germanio
Segn el Transistor: Bipolares, CMOS, BICMOS
S ell nmero
Segn

de
d transistores:
i
SSI MSI
SSI,
MSI, LSI,
LSI
VLSI, ULSI y GLSI.

Evolucin de los Sistemas


Digitales

L
A
D
I

Clasificacin:

M
I
R

Segn la forma en que se realiza el diseo


visto por el desarrollador:

T
R

U
J
I
L
L
O
A
R
I
A
S

Los Circuitos Integrados


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

Evolucin de los Sistemas


Digitales

L
A
D
I
M
I

Segn el nmero de transistores:

Nivel
e de Integracin
teg ac

# de
Transistores

# de
Ao
o
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

L
A
D
I
M
I
R

Circuitos Integrados Digitales


Monolticos ((CIDM)) Normalizados

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
alterar.
(Contadores, sumadores, etc.)
CIDM normalizados Programables.
Programables

Programables de Arquitectura Fija.


Programables de Arquitectura Configurable.

Evolucin de los Sistemas


Digitales

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, en el
que las conexiones entre los elementos que lo
componen, no pueden ser modificadas. Pueden
ser Combinacionales o secuenciales.
Los combinacionales se definen mediante una
tabla de verdad que rige su comportamiento,
como el caso de las memorias de acceso aleatorio.
L secuenciales
Los
i l poseen una CPU,
CPU que sigue
i
un
programa almacenado en memoria.(Aqu se Hallan
los Microprocesadores y Microcontroladores)

Evolucin de los Sistemas


Digitales

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
p
es la de modificar su funcin o
comportamiento, utilizando una parte de los
elementos que los componen y/o cambiando la
interconexin entre ellos.
P
Poseen
un elevado
l
d contenido
t id de
d elementos
l
t lgicos
l i
en su interior.
Utilizados especialmente en el diseo de sistemas
electrnicos
l t i
digitales
di it l complejos,
l j
en aplicaciones
li i
de paralelismo o en aquellos casos en que los
dispositivos existentes no son los adecuados.
FPGAs PLDs
FPGAs,

Evolucin de los Sistemas


Digitales

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 por el usuario. Estos
dispositivos se fabrican por peticin de un
usuario y en grandes cantidades,
especialmente
i l
t para produccin
d i en serie.
i
Requieren de potentes herramientas de
desarrollo electrnico con el fin de ser
diseados por el que los requiere.

El Microprocesador

Definicin: Es el dispositivo encargado de realizar clculos aritmticos y


lgicos y que temporiza y controla las operaciones de los
elementos de un sistema.

dems

Partes:
- Unidad de control.
- Unidad Aritmtico-lgica (ALU).
- Registros: - Contador de programa (program counter).
counter)
- Registros generales.
- Registro de estado.
- Stack.

Reloj de funcionamiento:
- Ciclo de reloj: seal de reloj a la entrada del procesador.
- Ciclo de mquina: periodo de ejecucin de una operacin completa del
p
procesador.
- Ciclo de instruccin: periodo que se requiere para ejecutar una
determinada
instruccin.

El Microprocesador

Controlador y
Microcontrolador

Recibe el nombre de controlador el


p
que
q se emplea
p
para
p
el
dispositivo
gobierno de uno o varios procesos.
Ejemplos:
j
Horno, Automvil.
Arquitectura Cambiante en el tiempo.

Discreto
Integrado Microprocesador.
Integrados Microcontrolador.

El Microcontrolador
Caractersticas:

Este circuito integrado programable contiene todos los


componentes de un computador .

No alcanzan el nivel de procesamiento de por ejemplo, un 8086,


aunque poseen la
l ventaja
t j d
de poder
d ttrabajar
b j sin
i memoria
i
externa .

El microcontrolador es un computador dedicado. En su memoria


slo reside un programa destinado a gobernar una aplicacin
determinada, una vez programado y configurado el
microcontrolador solamente sirve para gobernar dicha tarea.

El Microcontrolador

Es un computador completo, aunque de limitadas prestaciones,


que est contenido en el chip de un circuito integrado y se
destina a g
gobernar una sola tarea.

El alto nivel de integracin reduce notablemente la cantidad de


componentes externos y los costos de desarrollo
desarrollo, mejora el
desempeo del sistema, reduce la interferencia
electromagntica, minimiza el consumo de potencia y agiliza el
tiempo
p de realizacin

El nmero de productos que utilizan uno o varios


microcontroladores aumenta de forma exponencial
exponencial.

El Microcontrolador
A it t
Arquitectura
Interna:
I t

Procesador.
Memoria no voltil para contener el programa.
Memoria de lectura y escritura para guardar los datos.
Lneas de E/S para los controladores de perifricos:

Comunicacin paralelo.

C
Comunicacin
i
i serie.
i

Diversas puertas de comunicacin (USB...)


Recursos auxiliares:

Circuito de reloj
reloj,

Temporizadores

Perro guardin (watchdog)

Conversores A/D y D/A

Comparadores analgicos

Proteccin ante fallos de la alimentacin

Estado de reposo o de bajo consumo

El Microcontrolador

El mercado de los
microcontroladores

Comunicaciones: 30%
Consumo g
general: 27%
Automocin: 18%
Informtica: 15%
Industria: 10%

Que microcontrolador Emplear

Costos
Aplicacin

Procesamiento de datos
Entrada y salida
Consumo de energa (CMOS)
Memoria
Ancho de Palabra
Diseo de la placa

Los ms populares

Atmel
AVR
Freescale (antes Motorola)

683xx, 68HCS12, 68HCSX12, 68HC12, 68HC16, 68HC05,


68HC08 68HC11,
68HC08,
68HC11 HCS08

Hitachi, Ltd
Holtek
Intel

MCS-48 (familia 8048),


8048) MCS51 (familia 8051),
8051) 8xC251

Los ms populares

National Semiconductor
Microchip

NEC
Parallax
Texas Instruments

Familia 10f2xx,
10f2xx 12Cxx de 12 bits Familia 12Fxx,
12Fxx 16Cxx y
16Fxx de 14 bits (PIC16F87X) 18Cxx y 18Fxx de 16 bits
AVR

TMS370 MSP430
TMS370,

Zilog
Silabs

Recursos Comunes a Todos


Arquitectura Von Newman

Recursos Comunes a Todos


Arquitectura Hardvard

Recursos Comunes a Todos

Arquitectura
A
it t
H
Harvard
dE
Extendida
t did o Super
S
Harvard ARChitecture (SHARC).

Esta arquitectura incluye una memoria


) la cual es utilizada
de cach ((Reserva),
para almacenar instrucciones y datos
que sern reutilizadas por la CPU,
lib
liberando
d as los
l dos
d buses
b
de
d la
l
arquitectura Hardvard y permitindoles
ser utilizados en la bsqueda y
almacenamiento de datos, mientras se
ejecutan las instrucciones en cach

Recursos Comunes a Todos

Arquitectura
A
it t
H
Harvard
dE
Extendida
t did o Super
S
Harvard ARChitecture (SHARC).

Recursos Comunes a Todos

Arquitectura
A
it t
H
Harvard
dE
Extendida
t did o Super
S
Harvard ARChitecture (SHARC).

Recursos Comunes a Todos

Arquitectura
A
it t
H
Harvard
dE
Extendida
t did o Super
S
Harvard ARChitecture (SHARC).

Recursos Comunes a Todos

Arquitectura Von Newman Modificada.

La arquitectura Von Neuman modificada, permite


mltiple acceso a memoria por instruccin,
valindose de un truco simple que consiste en hacer
el reloj de acceso a memoria ms rpido que el de
instrucciones.
Por ejemplo el DSP32C de Lucent con reloj de 80Mhz
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 de mquina siendo posible entonces realizar
cuatro accesos a memoria por cada ejecucin de
instruccin

Recursos Comunes a Todos


CPU

CISC Aprox. 80 instrucciones


Arquitectura Von Neuman
RISC Aprox. 30 instrucciones.
Arquitectura Hardvard
SISC Diseos especficos (Controladores
Empotrados o embebidos)

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.

Recursos Comunes a Todos


Memoria

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
i cuando
d se precisan
i
series
i muy grandes,
d
con el fin de disminuir costos de fabricacin.
OTP. Este modelo de memoria solo puede grabarse
una vez por parte
t del
d l usuario,
i utilizando
tili
d ell mismo
i
procedimiento que con la memoria EPROM.
Posteriormente no se puede borrar. Su bajo precio y
la sencillez de la grabacin aconsejan este tipo de
memoria para prototipos finales y series de
produccin cortas.

Recursos Comunes a Todos


Memoria

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.
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
consumo,
que las 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 muy recomendables en aplicaciones en las
concretas.
que sea necesario modificar el programa a lo largo de la vida
del producto

Recursos Comunes a Todos


Puertas de entrada y salida

Puertas de entrada y salida

Recursos Comunes a Todos


Reloj

Cristal
RC
Externo
Velocidad
l d d vs. Energa

Recursos Especiales
Perro Guardin

Correccin de fallos
o bloqueos
Refresco para evitar
acciones
Temporizacin
Reset

Recursos Especiales
Timers

Conteos de impulsos externos


Retardos de software

Recursos Especiales
Brownout

Se trata de un circuito que resetea al


microcontrolador cuando el voltaje de
alimentacin (VDD) es inferior a un
voltaje mnimo ((brownout).
brownout ). Mientras
el voltaje de alimentacin sea inferior al
de brownout el dispositivo se mantiene
reseteado, comenzando a funcionar
normalmente cuando sobrepasa dicho
valor.

Recursos Especiales

Estado de reposo o bajo consumo


Conversor A/D
/
D/A
/
Comparador Analgico
Modulador PWM

Recursos Especiales
Puertas de comunicacin

UART, adaptador de comunicacin serie


asncrona.
USART,
USART adaptador
d t d de
d comunicacin
i i serie
i
sncrona y asncrona
Puerta paralela esclava para poder conectarse
con los buses de otros microprocesadores.
USB (Universal Serial Bus), que es un moderno
b serie
bus
i para los
l PC.
PC
Bus I 2 C, que es un interfaz serie de dos hilos
desarrollado por Philips.
CAN (Controller Area Network), para permitir la
adaptacin con redes industriales

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/AMD
(Microprocesadores)
TEXAS
((Microcontroladores y DSP))
ALTERA
(PLDS, FPGAS DSPS)
XILINX
((PLDS,
S, FPGAS
G S DSPS)
S S)
MICROCHIP (Microprocesadores)

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

INTEL.
En la actualidad ofrecen arquitecturas
revolucionarias multiprocesador.
Intel Core2 Quad Processor

Estado del Arte y Tendencias

INTEL.
Q9000 series Q6000 series
Manufacturing Process 45nm 65nm
L2 Shared
h d Cache1
h 12 MB / 6 MB 8 MB
System Bus 1333 MHz 1066 MHz

Estado del Arte y Tendencias

AMD
Processor AMD Athlon
Athlon X2 Dual-Core
Model Number BE-2400
Frequency (MHZ)
(
) 2300
L2 Cache Size (KB)
65nm SOI Wattage (W) 45 W System
Bus (MHZ) 2000

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,
bajo con
una CPU de tipo RISC de 16 bits
Poseen una serie de p
perifricos analgicos
g
y
digitales, para mediciones precisas..
Incluyen ADCs, DACs, amplificadores
operacionales comparadores
operacionales,
comparadores, drivers LCD y
sistemas supervisorios de nivel de 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
32-bits
bits RISC
Manejan velocidades de reloj por encima de los 60 MHz
La memoria de p
programa
g
puede
p
alcanzar hasta 1MB
Posee alta integracin con una gran variedad 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 de Alto rendimiento TMS320C6000

I
M
I

T
R
U
J

I
L
L
O
A
R
I
A
S

Con velocidades por encima de 1 GHz.


GHz
Los TMS320C64x y los TMS320C62x poseen ALUs que trabajan 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. Como reproductores
personales de audio
audio, receptores GPS
GPS,
equipos mdicos porttiles, telefona
celular y cmaras digitales.
celular,
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.
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.8-V, 2.5-V & 3.3-V

MAX

Bajo consumo y densidad moderada.


Soporta
p
voltajes
j 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
l portafolio
f l de
d IP.

STRATIX II (Alta Densidad)

A
R

Soporta Nios II embedded processor


Multiplicadores digitales 18x18 para DSPs Embebidos
Amplio
p o portafolio
po a o o 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.5 a 3.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. Y procesadores de
diversos tipos que corren sobre sus
plataformas hardware.
Processor Central
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

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)
(DAG s)
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
j
que
q
poseen, (operaciones en paralelo).
El DSP tiene caractersticas diseadas p
para
soportar tareas de altas prestaciones,
repetitivas y numricamente intensas.
Microprocesadores de propsito general y
microcontroladores no estn especializados
para ninguna
i
aplicacin
li i en especial.
i l

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.
Acceso a mltiples arquitecturas de
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
Retardos
Manejo de matrices y arreglos de datos.
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.
rendimiento
Almacenamiento del resultado.

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 de valores de lugares consecutivos de


memoria
i
Copia de datos de memoria a memoria
Multiplicacin y suma en paralelo.
Acceso mltiple a memoria
Registros temporales
Eficiente
f
generacin
de direcciones.
Caractersticas especiales como retardos o
direccionamiento cclico

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.
MIPs

I
L

L
O
A
R
I
A
S

Uso de cristal de 40 Mhz.


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.
Tres pines para manejo de
interrupciones externas.
Manejo de
d niveles
l de
d corriente de
d 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
3, (no lo posee la gama media),
media)
de 16 bits (65535 conteos).
Dos mdulos de
Captura/Comparacin/PWM.
Mdulo
d l de
d comunicacin
seriall 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. (18F452)
Se poseen 3 bits
(FOSC2, FOSC1 y
FOSC0) para lla
configuracin del
tipo
p de oscilador a
utilizar.

LP Cristal de baja potencia.


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 Relojj externo.
ECIO
Reloj externo con pin I/O
habilitado

Oscilador en modo HS,, XT,, LP


. (18F452)

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

Una capacitancia elevada,


incrementa la estabilidad del
oscilador, pero tambin incrementa
los tiempos de inicio del oscilador
interno.

Oscilador en modo RC .
(18F452)
Con el Oscilador en modo,
/ esta disponible
p
RC,, FREC/4
en el pin OSC2.
Si FREC/4 no se necesita, se
recomienda utilizar el modo
RCIO, para ahorrar
corriente.
El modo
d RCIO,
RCIO es igual
i
l all
modo RC, con la diferencia
que el pin
p OSC2 se
de q
comporta como un pin de
I/O normal (RA6).

Oscilador Externo. (18F452)

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 utilizar el


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

PLL. (18F452)

PLL. (18F452)

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 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
h ll logrado
l
d por parte de
d l ell
enganche al cudruplo de la frecuencia de
entrada
entrada.

Cambio de Fuente de Reloj.


j
(18F452)

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 se hace en el BIT
OSCSEN del
d l registro
i t de
d configuracin.
fi
i
El BIT OSCSEN se selecciona antes de
programar el PIC
PIC, para que se pueda producir
el cambio de oscilador.

Registro OSCON (18F452)

V
L
A
D
I
M
I
R
T
R

U
J

I
L
L
O

BIT 7 a 1 No utilizados
BIT 0 SCS: System Clock Switch bit

Cuando el BIT OSCSEN este en 0 y T1OSCEN este en 1:

A
R

I
A
S

1 = Utilice el oscilador del timer 1.


0 = Utilice el oscilador primario.

Si el oscilador del Timer1 no esta habilitado


habilitado, cualquier escritura
en el BIT SCS es ignorada y se utiliza el oscilador principal

Diagramas de Tiempo de
Transiciones (18F452)

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

El contador de programa, se incrementa cuando ocurre


la octava transicin de estabilizacin del Timer 1

Diagramas de Tiempo de
Transiciones (18F452)

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

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


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

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

Diagramas de Tiempo de
Transiciones (18F452)

Diagramas de Tiempo de
Transiciones (18F452)

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 el timer1 y OSC1, existe un
tiempo de estabilizacin de 1024 ciclos
de osc1 y luego un tiempo necesario
para que ell PLL enganche
h la
l frecuencia
f
i
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.

Oscilador. (18F4550)

L
A
D

I
M
I
R

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

El PIC18F4550 puede operar en 12 modos


de oscilador.
M d XT Cristal
Modo
C i t l Resonador.
R
d
XTPLL Cristal Resonador con PLL.
HS Cristal de alta velocidad.
velocidad
HSPLL Cristal de alta velocidad con PLL.
EC Reloj externo con salida de FOSC/4.
FOSC/4
ECIO Reloj externo con I/O en RA6
ECPLL Reloj externo con PLL

Oscilador. (18F4550)

L
A
D
I
M

I
R
T
R

U
J
I
L
L
O
A
R
I
A
S

ECIO Reloj externo con I/O en RA6 y PLL.


INTHS Oscilador Interno, usado como fuente
del micro
micro. Y oscilador HS usado como fuente
de reloj para USB.
INTXT Oscilador Interno, usado como fuente
d l micro.
del
i
Y oscilador
il d XT usado
d como fuente
f
t de
d
reloj para USB.
INTIO Oscilador Interno,, usado como fuente
del micro. Y oscilador EC usado como fuente de
reloj para USB 12. INTCKO Oscilador Interno,
usado como fuente del micro. Y oscilador EC
usado como fuente de reloj para USB y FOSC/4
saliendo por RA6

Oscilador en modo HS,, XT,, LP


. (18F4550)

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

Una capacitancia elevada,


incrementa la estabilidad del
oscilador, pero tambin incrementa
los tiempos de inicio del oscilador
interno.

Arquitectura del Oscilador.


(18F4550)
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S

Oscilador. (18F4550)

L
A
D
I
M

I
R
T
R

U
J
I
L
L
O
A
R
I

Oscilador Interno.
Existen 2 fuentes de reloj internas, que
permiten el no uso de oscilador,
oscilador cuando USB
esta deshabilitado.
La fuente principal (INTOSC) con 8 MHz con
postescalador
t
l d que genera frecuencias
f
i de
d 31
kHz a 4 MHz
La otra fuente de relojj es el oscilador RC
(INTRC) con frecuencia nominal de 31 kHz.
Tambin es usado como fuente de reloj para
mdulos como:

A
S

Power-up Timer
Watchdog Timer

Oscilador. (18F4550)

L
A
D
I
M

I
R

T
R
U

J
I
L

L
O
A
R
I
A
S

Oscilador Interno.
Existen 4 modos de trabajo que determinan la
fuente de reloj del USB
USB.
INTHS: El reloj de USB proviene del oscilador
principal en modo HS.
INTXT: El reloj de USB proviene del oscilador
principal en modo XT.
INTCKO: El reloj de USB proviene del oscilador
externo con entrada en OSC1/CLKI; OSC2/CLKO es
la salida de FOSC/4.
INTIO: El reloj de USB proviene del oscilador
externo con entrada en OSC1/CLKI; OSC2/CLKO
funciona como un pin I/O digital (RA6).

Oscilador. (18F4550)

L
A
D
I
M
I
R
T
R
U

bit 7 INTSRC:
INTSRC S
Seleccin
l
i d
dell O
Oscilador.
il d

I
L
L
O

A
R
I
A
S

1 = reloj de 31.25 kHz derivado del reloj de 8


MHz de INTOSC
0 = reloj de 31 kHz derivado del reloj RC
interno INTRC.

bit 6-5 Sin implementar.

Oscilador. (18F4550)

L
A
D
I
M
I
R
T
R
U
J

bit 4-0 TUN4:TUN0: bits de


sntonizacin

I
L
L
O
A
R
I
A
S

01111 = Mxima
M i
frecuencia.
f
i

00001
0000
00000 = frecuencia central. El oscilador corre
a la frecuencia calibrada en fbrica.
11111

10000 = Frecuencia mnima.

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 interna.
El segundo temporizador es el OST (Oscillator
Start-up Timer) que espera a que el oscilador
utilizado se estabilice.

La secuencia de retardo es PWR ms 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
Brown out Reset (BOR)
Instruccin de RESET.
Reset debido al llenado del Stack.
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
Las posiciones de memoria mas all de
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.
Por lo tanto este dispositivo puede
almacenar 16mil instrucciones simples.
simples
El vector de RESET se halla en la
direccin 0000h y el de interrupciones
en las posiciones 0008h y 0018h.

Organizacin
g
de la memoria
18f452

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
b rutinas
ti
anidadas.
id d
Existen dos vectores de
interrupciones,
p
, para
p
manejo
j de
interrupciones de alta y baja
prioridad.
32K de memoria en pasos de 2
en dos, para un total de 16K de
palabras. De 7FFF en adelante
no existe memoria
implementada fsicamente y se
lee como 0.

Organizacin de la memoria
18f4550

Organizacin 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 de la memoria (Pila)


18F452 y 18F4550

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 o retlw el dato almacenado en la
posicin actual que indica el apuntador de
programa, es cargado al contador de
programa y ell apuntador
t d de
d la
l Pila
Pil se
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
g
STKPTR
18F452 y 18F4550

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
Pil llena
ll
o rebosada.
b
d
0 = Pila sin llenar

1 = Ocurri un vaciado de la pila.


0 = No ha ocurrido un vaciado de la pila.

BIT 5 Sin implementar:


p
Ledo como '0'
BIT 4-0 SP4:SP0: Bits de direccin de la
pila

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 (Pila)


18F452 y 18F4550

Organizacin de la memoria (Pila)


18F452 y 18F4550

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, TOSH
y TOSL
TOSL, que mantienen el contenido
apuntado por el registro STKPTR.
Despus de un call, rcall o una interrupcin,
este
t valor
l puede
d ser modificado
difi d por SW y
cuando se genere el retorno de la subrutina,
se puede dirigir su regreso a un lugar
dif
diferente
definido
d fi id por ell usuario.
i Solo
S l se
debe tener en cuenta deshabilitar las
interrupciones
p
globales.
g

Organizacin de la memoria (Pila)


18F452 y 18F4550

L
A
D
I

M
I
R
T
R

U
J
I
L
L
O
A
R
I
A
S

El registro STKPTR es el apuntador


de la Pila.
Pila
El BIT STKFUL indica el llenado de
la pila y el BIT STKUNF el vaciado
de la p
pila.
Cuando se produce un RESET, el
valor del apuntador de la pila es 0.
0

Organizacin 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
veces,
valor, el BIT
STKFUL se coloca en 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
l pila
l se desborda,
d b d se reinicia ell
microprocesador, el BIT STKFUL se
coloca en 1 y se mantiene as,
as tambin
el apuntador de la pila se coloca en 0.

Organizacin 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


pila el BIT STKFUL se
desborda la p
pone en 1, cualquier dato adicional
a escribirse en la pila, no
sobrescribe la posicin 31,
31 si no
que se omite, y el registro STKPTR,
se mantiene apuntando a la
posicin 31.

Organizacin 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


que requiera
q
extraer un
instruccin q
dato de ella, retorna el valor de 0 al
contador de programa y coloca el
BIT STKUNF en 1 hasta que ocurra
un POR o un se borre por software.

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.
Se puede incluir una direccin de
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
decremento en el apuntador de la pila.
pila

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


por los registros
g
PCL, PCH
conformado p
y PCU.
El registro
g
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, Q2, Q3
y Q4
Q4.
El contador de programa es incrementado
cada flanco subida de Q1.
La bsqueda de una instruccin es realizada
de Q1 a Q4, pero es colocada en el registro
de instruccin
st ucc cada Q
Q4
Las instrucciones son decodificadas y
ejecutadas en el periodo de tiempo de Q1 a
Q4
Q4.

Instrucciones en la Memoria de
programa

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 del contador
de programa es siempre 0
0, por lo que el
incremento de las direcciones se hace
de dos en dos
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

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.
L otros 12 BITS de
Los
d la
l segunda
d palabra
l b
contienen los datos a ser utilizados por la
instruccin
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,


g
son
los datos contenidos en la segunda
accedidos.
Pero si el PC accede primero la segunda
g
palabra, esta se ejecuta como un NOP.
Esto es til cuando previamente a una
instruccin de dos 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 18F452

Memoria de Datos 18F4550


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

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.
En el caso del 18F4550 los bancos 4 al 7
estn implementados para el uso del
protocolo
t
l USB,
USB pero cuando
d este
t protocolo
t
l
no se usa sirven como memoria de
propsito general.
general
La zona de FSR se halla localizada en el
banco
ba
co 15
5 despus de la
a pos
posicin
c F80h
80 (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.

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,
instruccin
independiente del Banco apuntado por el registro
BSR, Existe el ACCESS BANK, el cual esta formado
por una parte
p
p
del banco 0 y un segmento
g
del
banco 15
Un BIT en la instruccin especifica si la operacin
a utilizar se hace a travs del ACCESS BANK o con
ell registro BSR, a ese BIT se le
l denomina
d
a

(access bit) por defecto vale 0 y apunta al ACCESS
BANK

Memoria de Datos RAM USB

Cuando el modulo USB esta habilitado, la


memoria en esos bancos se usa como un buffer
USB.
USB
Esta memoria es compartida entre el ncleo del
micro y el mdulo USB, permitiendo la
transferencia de datos entre los dos.
El banco 4 de memoria RAM, se utiliza para el
manejo
j del
d l USB,
USB cuando
d este
t mdulo
d l esta
t
activo, y no puede ser usado para otros
propsitos
p
p
en este tiempo.
p

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

18F452

(Registros FSR)

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

18F452

(Registros FSR)

Memoria de Datos (Registros


FSR) 18F4550

Memoria de Datos (Registros


FSR) 18F4550

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.
L instruccin
La
i t
i MOVLB se utiliza
tili para ayudar
d en la
l
seleccin del banco.
La instruccin MOVFF ignora
g
el registro
g
BSR,, ya
y que
q
los 12-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, el FSRn y el INDFn.
El registro FSR es utilizado como un puntero
a una localidad de memoria que va a ser
escrita o leda.
leda
El direccionamiento indirecto es posible
utilizando el registro
g
INDF,, ya
y que
q cualquier
q
instruccin que lo utilice, accede
directamente a la posicin de memoria
apuntada por FSR.
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 sencillas tipo DSP

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.
i
El registro TRIS, el cual controla la direccin
de funcionamiento del puerto.
puerto
El registro PORT, que lee los niveles de
entrada en el p
puerto.
El registro 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 se va a utilizar como canal analgico,
previamente se debe haber configurado
p
g
como
entrada en TRISA
Existe el registro LATA, que permite el acceso I/O al
puerto.
latch del p
El pin RA4 es de colector 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
po Entrada
t ada

Funcin
u c

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 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 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

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

Registros asociados con PORTA


Puerto A (18f452)

Puerto A (18f4550)

L
A

Pin

Funcin

RA0/AN0

RA0

I/O
Type

Descripcin

I
M
I
R
T
R

RA1/AN1
RA2/AN2/
VREF-/CVREF

U
J
I
L

RA3/AN3/
VREF+

DIG/TTL Entrada o salida digital.

AN0

ANA

RA1

DIGTTL

AN1

ANA

RA2

Canal 0 de entrada A/D y entrada del comparador C1(


C1(-).
). (configuracion por defecto)
Entrada o salida digital.
Canal 1 de entrada A/D y entrada del comparador C2(-). (configuracin por defecto)

DIG/TTL Entrada o salida digital.

AN2

ANA

Canal 2 de entrada A/D y entrada del comparador C2(


C2(+).
). (configuracin por defecto)

VREF-

ANA

Referencia de voltaje para el A/D y voltaje de referencia del comparador; entrada baja

CVREF

ANA

Referencia del voltaje de salida del comparador.

RA3

DIG/TTL Entrada o salida digital.

AN3

ANA

Canal 3 de entrada A/D y entrada del comparador C1(+). (configuracin por defecto)

VREF+

ANA

Referencia de voltaje para el A/D y voltaje de referencia del comparador; entrada alta

A
R
I
A
S

RA4/T0CKI/
C1OUT/RCV

RA4
T0CKI

DIG/Sch Entrada o salida digital.


mit
Schmit Entrada de reloj del timer 0

C1OUT

DIG

Salida del comparador 1, tiene prioridad sobre los datos en el puerto

RCV

TTL

Transeiver externo USB (Entrada RCV)

Puerto A (18f4550)

L
A
D
I

Pin

Funcin I/O Type Description

M
I
R
T

RA5/AN4/S
S/
HLVDIN/C
2OUT

RA5

DIG/TTL Entrada o salida digital.


digital

AN4

ANA

Canal 4 de entrada A/D (Configuracin por defecto).

SS

TTL

Entrada esclava para e modo SSP (MSSP module).


module)

C2OUT

DIG

Salida del comparador 2.

U
J
I
L
L
O
A
R
I
A
S

OSC2/CLK
O/ RA6

OSC2
CLKO
RA6
VREF+

ANA
DIG

Conexin del oscilador principal (Modo XT y HS)


Salida de reloj (FOSC/4); habilitado en modo EC, ECPLL y INTCKO.

DIG/TTL Entrada y Salida Digital, nicamente disponible en modo ECIO, ECPIO y INTIO.
ANA

Voltaje de referencia del A/D y el comparador (entrada alta).

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

Puerto A (18f4550)

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

Puerto B 18F452

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

Puerto B 18F452

Puerto B 18F4550

L
A
D
I

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

Es un puerto de 8 bits, con resistencias


pull up internas.
Al iniciar el micro, los pines RB4:RB0
estn configurados como entradas
analgicas y RB7:RB5 son entradas
digitales
digitales.

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

Puerto B 18F4550
Pin

Functio
n

RB0/AN12
/
INT0/FLT
0/
SDI/SDA

RB0

RB1/AN10
/
INT1/SCK
/ SCL

I
L
L
O

RB2/AN8/
INT2/VM
O

A
R
I
A
S

RB3/AN9/
CCP2/VPO

I/O

I/O Type

OUT/IN DIG/TTL

Description
Entrada o salida digital

AN12

IN

ANA

Entrada A/D canal 12

INT0

IN

ST

Interrupcin externa 0

SDI

IN

ST

Entrada modulo SPI (Modulo MSSP).

SDA

OUT/IN

RB1
AN10

DIG/I2C/SM
B
OUT/IN DIG/TTL
IN
ANA

INT1

IN

ST

SCK

OUT/IN

DIG/ST

SCL

OUT/IN

RB2

DIG/I2C/SM
B
OUT/IN DIG/TTL

Salida I2C y Entrada I2C (Modulo MSSP)


Entrada o salida digital
E t d A/D canall 10
Entrada
Interrupcin externa 1
Salida de reloj SPI y Entrada de reloj SPI (Modulo MSSP).
Salida de reloj I2C y Entrada de reloj I2C (Modulo MSSP)
Entrada o salida digital

AN8

IN

ANA

Entrada A/D canal 8

INT2

IN

ST

Interrupcin externa 2

VMO

OUT

DIG

Transceiver Externo USB VMO salida de datos

RB3
AN9

OUT/IN DIG/TTL
IN
ANA

Entrada o salida digital


Entrada A/D canal 9

CCP2

OUT/IN

DIG/ST

Salida de comparacin y PWM y entrada de captura de CCP2

VPO

OUT

DIG

Transceiver Externo USB

Puerto B 18F4550

V
L
A
D
I
M
I
R

Pin

Function

I/O
/

I/O
/ Type
yp

Description
p

RB4/AN11/
KBI0/CSSPP

RB4

OUT/IN

DIG/TTL

Entrada o salida digital

AN11

IN

ANA

Entrada A/D canal 11.

KBI0

IN

TTL

Interrupcin
p
por
p cambio de estado

CSSPP(4)

OUT

DIG

SPP chip select control output.

RB5

OUT/IN

KBI1

IN

RB6

OUT/IN

KBI2

IN

RB7

OUT/IN
/

KBI3

IN

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

RB5/KBI1/
PGM
RB6/KBI2/
PGC
RB7/KBI3/
/
/
PGD

DIG/TTL
TTL
DIG/TTL
TTL
DIG/TTL
/
TTL

Entrada o salida digital


Interrupcin
p
por
p cambio de estado
Entrada o salida digital
Interrupcin por cambio de estado
Entrada o salida digital
g
Interrupcion por cambio de estado

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

Puerto B 18F4550

Puerto C 18F452

L
A
D
I
M
I
R
T
R

PIN

Tipo Entrada

Funcin

RC0/T1OSO/T1CKI

TTL, Schmit Trigger

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

Pin I/O pin del mdulo CCP1

RC3/SCK/SCL

TTL, Schmit Trigger

Pin I/O utilizado para el reloj serial de los


mdulos
d l SPI e I2C

RC4/SDI/SDA

TTL, Schmit Trigger

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


para I2C

RC5/SDO

TTL,, Schmit Trigger


gg

Pin I/O,, o salida del puerto


p
serial sncrono

RC6/TX/CK

TTL, Schmit Trigger

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 18F452

Puerto C 18F4550

L
A
D
I

M
I
R
T

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

Es un Puerto de 7 bits.
El pin RC3 no est implementado
Los pines RC4 y RC5 no tienen TRIS
asociado
asociado.
El pin RC3 tiene uso para USB

V
L
A
D
I
M

Puerto C 18F4550
Pin

Funcin

I/O

I/O Type

Descripcin

RC0/T1OSO/
T13CKI

RC0
T1OSO
T13CKI
RC1
T1OSI
CCP2(1)
UOE
RC2
CCP1

OUT/IN
OUT
IN
OUT/IN
IN
OUT/IN
OUT
OUT/IN
OUT/IN

DIG/ST
ANA
ST
DIG/ST
ANA
DIG/ST
DIG
DIG/ST
DIG/ST

Entrada y salida digital


Salida del oscilador de timer 1
Entrada de conteo del timer 1 y 3
Entrada y salida digital
Entrada del oscilador de timer 1
Salida de CCP2 y PWM
PWM. Entrada en modo captura CCP2
External USB transceiver OE output.
Entrada y salida digital
Salida de ECCP1 modo compara y PWM, entrada ECCP1 modo captura

RC4/D-/VM
RC4/D
/VM

P1A(3)
RC4
D-

RC5/D+/VP

VM
RC5
D+

OUT
IN
OUT
IN
IN
IN
OUT
IN
IN
OUT/IN
OUT
OUT/IN

DIG
TTL
XCVR
XCVR
TTL
TTL
XCVR
XCVR
TTL
DIG/ST
DIG
DIG/ST

OUT/IN
IN
OUT
IN
OUT

DIG/ST
ST
DIG
ST
DIG

Salida ECCP1 y PWM Ensanchado, canal A


Entrada digital
USB bus differential minus line output (internal transceiver).
USB bus differential minus line input (internal transceiver).
External USB transceiver VM input.
Entrada digital
USB bus differential plus line output (internal transceiver).
USB bus differential plus line input (internal transceiver).
transceiver)
External USB transceiver VP input.
Entrada y salida digital
Transmisor serial asincrono (EUSART module)
Salida Reloj serial sincrnico (EUSART module)
Entrada Reloj serial sincrnico (EUSART module)
E t d y salida
Entrada
lid digital
di it l
Recepcin serial asncrona (EUSART module).
Salida de datos del Puerto serial sincrnico (EUSART module).
Entrada de datos del Puerto serial sincrnico
SPI data output (MSSP module)

RC1/T1OSI/
CCP2/UOE

I
R

RC2/CCP1/
P1A

T
R
U
J
I
L
L
O

RC6/TX/CK

A
R
I
A
S

RC7/RX/DT/
SDO

VP
RC6
TX
CK
RC7
RX
DT
SDO

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

Puerto C 18F4550

Puerto D 18F452

L
A
D
I
M
I
R
T

PIN

Tipo Entrada

Funcin

RD0/PSP0

TTL, Schmit Trigger

Pin I/O puerto paralelo esclavo bit 0

RD1/PSP1

TTL Schmit Trigger


TTL,

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

Pin I/O puerto paralelo esclavo bit 4

RD5/PSP5

TTL, Schmit Trigger

Pin I/O, puerto paralelo esclavo bit 5

RD6/PSP6

TTL, Schmit Trigger

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 18F452

Puerto D 18F4550

L
A
D
I

M
I
R

T
R
U

J
I
L
L
O
A
R
I
A
S

Es un puerto de 8 bits
Todos los pines del puerto D tiene
entrada tipo schmit trigger.
Todos los pines del puerto D poseen
resistencia pull up.
Ell puerto D puede
d ser configurado
f
d
como un puerto paralelo de
comunicacin
de
d 8 bits
b de
d ancho
h (SPP).
(S )

Puerto D 18F4550
Pin

Function

I/O

RD0/SPP
0

RD0

OUT/IN

RD1/SPP
1
RD2/SPP
2
RD3/SPP
3
RD4/SPP
4
RD5/SPP
5/P1B
RD6/SPP
6/P1C
RD7/SPP
7/P1D

SPP0
RD1

OUT/IN

I/O Type

Description

DIG/ST

Entrada o salida digital

/
DIG/ST

Entrada o salida 0 del SPP

DIG/ST

Entrada o salida digital

SPP1
RD2
SPP2
RD3
SPP3
RD4
SPP4
RD5
SPP5

OUT/IN
OUT/IN
OUT/IN
OUT/IN
OUT/IN
OUT/IN
OUT/IN
OUT/IN
OUT/IN
OUT/IN

DIG/ST
DIG/ST
DIG/ST
DIG/ST
DIG/ST
DIG/ST
DIG/ST
DIG/ST
DIG/ST

Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada

P1B
RD6
SPP6
P1C

OUT
OUT/IN
OUT/IN
OUT

DIG
DIG/ST
DIG/ST
DIG

Salida de ECCP1 Enhanced PWM canal B


Entrada o salida digital
Entrada o salida 6 del SPP
Salida de ECCP1 Enhanced PWM canal C

RD7
SPP7
P1D

OUT/IN
OUT/IN
OUT

DIG/ST
DIG/ST
DIG

Entrada o salida digital


Entrada o salida 7 del SPP
Salida de ECCP1 Enhanced PWM canal D

o
o
o
o
o
o
o
o
o

salida
salida
salida
salida
salida
salida
salida
salida
salida

1 del SPP
digital
2 del SPP
digital
3 del SPP
digital
4 del SPP
digital
5 del SPP

Puerto D 18F4550

Puerto E 18F452

L
A
D
I
M

PIN

Tipo Entrada

Funcin

RE0/RD/AN5

TTL, Schmit Trigger


puerto
Para control de p
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


TTL
Para control de puerto
paralelo esclavo

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


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 18F452

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.

R
I
A
S

1 = Una palabra ha sido recibida y espera ser


leda.
0 = Ninguna palabra recibida.

1 = El buffer mantiene una palabra escrita


previamente
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 ocurrido una escritura, cuando una palabra previa no


ha sido leda
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
0 = Salida

Puerto E 18F4550

V
L

Pin

Functi I/O
on

RE0/AN
5/
CK1SPP

RE0

OUT/ DIG/ST
IN

Entrada y salida digital

AN5

IN

ANA

Entrada A/D canal 5

CK1S
PP
RE1

OUT

DIG

SPP clock 1 output (SPP enabled).

OUT/ DIG/ST
IN

Entrada y salida digital

AN6

IN

ANA

Entrada A/D canal 6

CK2S
PP
RE2

OUT

DIG

SPP clock 2 output (SPP enabled).

OUT/ DIG/ST
IN

Entrada y salida digital

AN7

IN

ANA

Entrada A/D canal 7.

OESP
P
MCLR

OUT

DIG

SPP enable output (SPP enabled).

IN

ST

External Master Clear input; enabled when MCLRE Configuration bit is set.

VPP

IN

ANA

High-voltage detection, used for ICSP mode entry detection. Always available
regardless of pin mode.

RE3

IN

ST

PORTE<3> data input; enabled when MCLRE Configuration bit is clear.

A
D
I
M
I
R
T

J
I
L

RE1/AN
6/
CK2SPP

RE2/AN
7/
OESPP

L
O
A
R
I
A
S

MCLR/V
PP/ RE3

I/O Type

Description

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

Puerto E 18F4550

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

Diagrama de pines 18F4550

Registro ADCON1 18F4550

L
A
D
I
M
I
R
T
R
U

I
L
L
O

bit 7-6 Sin implementar


bit 5 VCFG0: Referencia de voltaje (VREF- )

bit 4 VCFG0: Referencia de voltaje (VREF + )

R
I
A
S

1 = VREF- (AN2)
0 = VSS

1 = VREF+ (AN3)
0 = VDD

bit 3-0 PCFG3:PCFG0: Configuracin de los


pines para el A/D

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

Registro ADCON1 18F452

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

Registro ADCON1 18F4550

Registro CMCON 18F4550

L
A
D
I
M
I
R

bit 7 C2OUT: bit de salida del comparador 2

1 = C2 VIN+ < C2 VIN0 = C2 VIN+ > C2 VINbit

6 C1OUT: bit de salida del comparador 1

Cuando C1INV = 0:

1 = C2 VIN+ > C2 VIN


VIN0 = C2 VIN+ < C2 VINWhen

Caunado C2INV = 1:

L
O

Cuando C2INV = 0:

1 = C1 VIN+ > C1 VIN0 = C1 VIN+ < C1 VINWhen

Cuando C1INV = 1:

1 = C1 VIN+ < C1 VIN0 = C1 VIN+ > C1 VINbit

Registro CMCON 18F4550

L
A
D

I
M
I
R

T
R
U
J

I
L
L
O
A
R
I
A
S

5 C2INV: Inversin de la salida del Comparador 2


1 = C2 salida invertida
0 = C2 salida no invertida
bit 4 C1INV: Inversin de la salida del Comparador 1
1 = C1 salida invertida
0 = C1 salida no invertida
bit 3 CIS: Comparator Input Switch bit
When CM2:CM0 = 110:
1 = C1 VIN- connects to RA3/AN3/VREF+ C2 VIN- connects
to RA2/AN2/VREF-/CVREF
0 = C1 VIN- connects to RA0/AN0 C2 VIN- connects to
RA1/AN1
bit 2-0 CM2:CM0: Modo de trabajo del comparador

Registro CMCON 18F4550

Registro CMCON 18F4550

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,
BCF BSF,
BSF SWAPF,
SWAPF MOVFF
y MOVWF para cambiar el contenido del
registro de estado
estado, ya que estas
instrucciones no alteran las banderas Z,
C DC,
C,
DC OV,
OV o N

El registro
g
de estado 18f452 y
18F4550

V
L
A
D
I
M
I
R
T
R

U
J
I
L
L
O
A

BIT 7-5 Sin implementar.


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

R
I
A
S

1 = Resultado negativo.
0 = Resultado 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
l d de
d una operacin
i aritmtica
i i 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.

Funciona con ADDWF, ADDLW, SUBLW, y SUBWF


1 = Ocurri
carry
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


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

BIT 6-5 Sin implementar


BIT 4 RI: Bandera de la instruccin RESET

1 = La instruccin
RESET no ha sido 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.
procesador

A
R
I
A
S

1 = Despus de un power
power-up
up, CLRWDT,
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
R
th
ha ocurrido)
id )

1 = Un Brown-out Reset no ha ocurrido.


0 = Un Brown
Brown-out
out Reset ocurri
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 de interrupcin.
p
p
El vector de alto nivel de interrupciones
se halla en la posicin 0x08h y el de
baja prioridad en la posicin 0x18h.
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
las interrupciones.
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.

Una bandera que indica que la interrupcin ocurri.


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
control,
habilitadas,
ya que esto puede generar disparos de
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.

I
L
L

O
A
R
I
A
S

1 = Habilita los niveles de p


prioridad de las
interrupciones.
0 = Deshabilita los niveles de p
prioridad de
las interrupciones.

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 q
que se gener
g
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

1 = Despus del encendido, instruccin CLRWDT


o instruccin SLEEP.
0 = Ha ocurrido un rebose del 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
P lla ejecucin
j
i de
d la
l instruccin
i t
i SLEEP.
SLEEP
1 = Un Power-on
Power on Reset no ha ocurrido
ocurrido.
0 = Un Power-on Reset ocurri. Debe ser puesta
p
de que
q un Power-on Reset occurre.
en 1 despus

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-out Reset.


0 = Ha ocurrido un Brown
Brown-out
out Reset.
Reset
Debe ser puesta en 1 despus de que un
Brown-out
Brown
out Reset ocurre.

Interrupciones Registro INTCON


Interrupciones.
(18F452, 18F4550)

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

Bit 7 GIE/GIEH:
/
Habilitador g
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


(18F452, 18F4550)

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


(18F452, 18F4550)

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.
0 = Deshabilita la interrupcin por rebose de TMR0.
TMR0
Bit 4 INT0IE: Interrupcin Externa INT0
1 = Habilita la INT0
0 = Deshabilita la INT0
Bit 3 RBIE: Interrupcin por cambio de estado en PORTB
1 = Habilita la interrupcin
p
por
p cambio de estado en
PORTB
0 = Deshabilita la interrupcin por cambio de estado
en PORTB

Interrupciones. Registro INTCON


V

(18F452, 18F4550)

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


p SW))
0 = TMR0 no se ha rebosado.
1 = Ha ocurrido INT0 ((debe ser borrada por
p 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. INTCON2


(18F452, 18F4550)

V
L
A
D
I
M
I
R
T
R

U
J

Bit 7 RBPU: Bit habilitador de las


resistencias Pull-up.
Pull up

I
L
L

A
R
I

Bit 6 INTEDG0: Seleccin del flanco de la


Interrupcin Externa 0

A
S

1 = Todas las resistencias pull-ups


deshabilitadas.
0 = Las resistencias pull-ups
ll
estan habilitadas.
h bl d

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

Las resistencias pull up se utilizan para forzar a un nivel alto


una entrada de un componente lgico. Sirve por ejemplo
cuando necesitas leer el estado de un interruptor o una tecla.
Cuando la tecla se activa se lleva a un estado lgico
determinado, pero cuando est abierta est "al aire" y los
circuitos lgicos hacen una interpretacin indeterminada. La
resistencia pull up fuerza a nivel lgico alto cuando est
abierta y permite que se lleve a nivel bajo al cerrarse sin
producir un cortocircuito.
Tambin puede servir cuando se conecta una entrada a una
salida de colector abierto. El pull up suple la resistencia
faltante del driver de colector abierto
abierto.
Todos los pines del puerto B de los PIC tienen resistencias
pull up y se activan borrando !RBPU de OPTION_REG.

Interrupciones. Reg. INTCON2


V

(18F452, 18F4550)

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: Seleccin del flanco de


la Interrupcin Externa 2

A
R

I
A
S

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

1 = Flanco de subida
0 = Flanco
Fl
de
d bajada.
b j d

Bit 3 Sin Implementar

Interrupciones. Reg. INTCON2


V

(18F452, 18F4550)

L
A
D
I

Bit 2 TMR0IP: Bit de prioridad de la


interrupcin por rebose de TMR0.

T
R
U
J
I
L
L

Bit 1 Sin implementar


Bit 0 RBIP: Bit de prioridad de la interrupcin
de cambios de estado en PORTB

R
I
A
S

1 = Alta prioridad
0 = Baja prioridad

1 = Alta prioridad.
0 = Baja prioridad.

Interrupciones. Reg. INTCON3


V

(18F452, 18F4550)

L
A
D
I
M
I
R
T
R

Bit 7 INT2IP: Bit de p


prioridad de INT2

J
I

L
L
O
A

Bit 6 INT1IP: Bit de prioridad de INT1

R
I
A
S

1 = Alta prioridad.
0 = Baja prioridad.

1 = Alta prioridad.
0 = Baja prioridad.

Interrupciones. Reg. INTCON3


V

(18F452, 18F45550)

L
A
D
I

M
I
R

T
R

U
J
I
L

A
R
A
S

1 = Habilita INT2.
0 = Deshabilita INT2.
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 Sin implementar

Interrupciones. Reg. INTCON3


V

(18F452, 18F4550)

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 que indica que ocurri


INT1

A
R
I
A
S

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


0 = No ha ocurrido INT2

1 = Ha
H ocurrido
id INT1 (debe
(d b ser borrada
b
d por SW)
0 = No ha ocurrido INT1

Int. Perifricos. Reg. PIR1


V

(18F452, 18F4550)

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 ser borrada 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. Reg. PIR1


V

(18F452, 18F4550)

L
A
D
I

Bit 5 RCIF: Bandera de interrupcin por


recepcin en el 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. Reg. PIR1


V

(18F452, 18F4550)

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 p
por SW))
0 = Esperando una TX o RX.

Int. Perifricos. Reg. PIR1


V

(18F452, 18F4550)

L
A
D
I
M
I

Bit 2 CCP1IF: Bandera de interrupcin del


mdulo CCP1.

Modo Captura:

T
R
U
J

Modo Compara:

L
L

A
R
I
A
S

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


ser borrada por SW)
0 = No
o ha
a ocurrido
ocu do una
u a captura
cap u a de TMR1.
1 = Se ha dado una comparacin con TMR1 (debe ser
borrada por SW)
0 = No ha ocurrido una comparacin con TMR1.

Modo PWM:

No utilizado en este modo.

Int. Perifricos. Reg. PIR1


V

(18F452, 18F4550)

L
A
D
I

Bit 1 TMR2IF: Se ha producido una igualdad


entre TMR2 y 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 hayy igualdad
g
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. Reg. PIR2


V

(18F452)

L
A
D
I
M
I
R
T

R
U
J
I

Bit 7-5 Sin implementar


Bit 4 EEIF:
EEIF Bandera
B d
d
de interrupcin
i t
i por
Escritura/Lectura en EEPROM o FLASH

L
L

O
A
R
I
A
S

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. 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 por deteccin de


bajo voltaje.

A
R
I
A
S

1 = Ocurri una colisin


0 = No ha ocurrido una colisin.

1 = Una
U condicin
di i de
d bajo
b j voltaje
l j ha
h ocurrido
id
0 = El voltaje del dispositivo se mantiene por
encima del valor de activacin de la interrupcin.

Int. Perifricos. 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. Reg. PIR2


(18F4550)

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

Bit 7 OSCFIF: Bandera indicadora de


fallo del oscilador.

O
A
R
I
A
S

1 = El oscilador del dispositivo fall.


fall Se ha
realizado un cambio a INTOSC. (Debe ser
borrada p
por software))
0 = El reloj trabaja sin problemas.

Int. Perifricos. Reg. PIR2


V

(18F4550)

L
A
D

I
M
I

Bit 6 CMIF: Bandera de interrupcin por


comparacin.

T
R
U

L
L
O
A

USBIF: USB Bit de interrupcin USB


USB.

I
S

1 = El mdulo USB ha generado una interrupcin


0 = No hay interrupciones USB

Bit 4 EEIF:
EEIF Bandera
B d
d
de interrupcin
i t
i por
Escritura/Lectura en EEPROM o FLASH

R
A

1 = La entrada del comparador ha cambiado (Debe ser


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

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


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

Int. Perifricos. Reg. PIR2


V

(18F4550)

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
l o bajo
b j voltaje.
l j

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 p
por el bit 7
(VDIRMAG) del registro HLVDCON.
0 = El voltaje del dispositivo se mantiene por
encima del valor de activacin de la interrupcin.

Int. Perifricos. Reg. PIR2


V

(18F4550)

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. Reg. PIE1


V

(18F452, 18F4550)

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: Habilita la interrupcin por fin


de conversin del A/D.

A
S

1 = Habilita la interrupcin
0 = Deshabilita la interrupcin.
p

1 = Habilita la interrupcin del A/D.


0 = Deshabilita la interrupcin del A/D.

Int. Perifricos. Reg. PIE1


V

(18F452, 18F4550)

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: Habilita la interrupcin 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
D h bilit la
l interrupcin
i t
i

Int. Perifricos. Reg. PIE1


(18F452, 18F4550)

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.
1 = Habilita la interrupcin
p
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
p
por
p rebose de
TMR1
1 = Habilita la interrupcin de TMR1
0 = Deshabilita la interrupcin de TMR1

Int. Perifricos. 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
0 = Deshabilitada

Int. Perifricos. 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 la 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. Reg. PIE2


V

(18F4550)

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. Reg. PIE2


V

(18F4550)

L
A
D
I

USBIE: Bit habilitador de la interrupcin


USB.

T
R
U

J
I
L

O
A
R
I
A
S

Bit 4 EEIE: Habilita la interrupcin por fin de


escritura en memoria EEPROM/FLASH.

1 = Habilitado
0 = Deshabilitado

1 = Habilitada
0 = Deshabilitada

Bit 3 BCLIE: Habilita la interrupcin por


colisin de datos en el BUS

1 = Habilitada
0 = Deshabilitada

Int. Perifricos. Reg. PIE2


V

(18F4550)

L
A
D

I
M
I

Bit 2 HLVDIE: Habilita la Interrupcin por deteccin


de alto o bajo voltaje.

T
R

U
J
I

Bit 1 TMR3IE: Habilita la interrupcin


p
por
p desborde
de TMR3.

L
O
A
R
I
A
S

1 = Habilitada
H bilit d
0 = Deshabilitada.

1 = Habilita la interrupcin
0 = Deshabilita la interrupcin

Bit 0 CCP2IE: Habilita la interrupcin del mdulo


CCP2

1 = Habilita la interrupcin
0 = Deshabilita la interrupcin

Prioridad de Int. Reg. IPR1


V

(18F452, 18F4550)

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: Prioridad de Interrupcin del


conversor A/D

R
I
A
S

1 = Alta prioridad
0 = Baja prioridad

1 = Alta prioridad
0 = Baja prioridad

Prioridad de Int. Reg. IPR1


V

(18F452, 18F4520)

L
A
D

I
M
I

Bit 5 RCIP: Prioridad de Interrupcin del


mdulo USART en RX.

T
R

U
J
L

L
O
A
R
I
A
S

Bit 4 TXIP: Prioridad de Interrupcin del


mdulo
d l USART en TX.
TX

1 = Alta prioridad
0 = Baja prioridad

1 = Alta prioridad
0 = Baja prioridad

Bit 3 SSPIP: Prioridad de Interrupcin del


puerto serial sncrono

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

Prioridad de Int. 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
p
del TMR2
1 = Alta prioridad
0 = Baja prioridad
Bit 0 TMR1IP:
TMR1IP Prioridad
P i id d de
d Interrupcin
I t
i del
d l TMR1.
TMR1
1 = Alta prioridad
0 = Baja prioridad

Prioridad de Int. 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 prioridad
0 = Baja prioridad

Prioridad de Int. 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
b
de
d TMR3

1 = Alta prioridad
0 = Baja prioridad

1 = Alta prioridad
0 = Baja prioridad

Bit 0 CCP2IP: Prioridad de Interrupcin de


mdulo CCP2

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

Prioridad de Int. Reg. IPR2


V

(18F4550)

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.
1 = Alta prioridad
0 = Baja prioridad

Bit 6 CMIP: Bit de prioridad de interrupcin por


comparacin analgica.

1 = Alta prioridad.
0 = Baja prioridad.

Prioridad de Int. Reg. IPR2


V

(18F4550)

L
A
D
I

I
R
T
R

USBIP: Bit de prioridad interrupcin USB.

U
J
I

Bit 4 EEIP: Prioridad de Interrupcin por fin


de escritura en EPROM/FLASH

L
O

A
R
I
A
S

1 = Alta prioridad
0 = Baja prioridad

1 = Alta prioridad
0 = Baja prioridad

Bit 3 BCLIP: Prioridad de Interrupcin por


colisin en Bus de datos.

1 = Alta prioridad
0 = Baja prioridad

Prioridad de Int. Reg. IPR2


V

(18F4550)

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


p
por
p rebose
de TMR3

L
O
A
R
I
A
S

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

1 = Alta prioridad
0 = Baja prioridad

Bit 0 CCP2IP: Prioridad de Interrupcin de mdulo


CCP2

1 = Alta prioridad
0 = Baja prioridad

Temporizador Timer 0
V

18F452, 18F4550

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
Se puede leer y escribir en l.
Posee un pre escalador propio de 8 bits
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.
El timer 0 es controlado por el registro T0CON

Temporizador Timer 0 Reg.


Reg T0CON
V

18F452, 18F4550

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
b l ell 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.


Reg T0CON
V

18F452, 18F4550

L
A
D

I
M
I

R
T

R
U
J

L
O

R
I
A
S

1 = Incremento por flanco de bajada.


0 = Incremento por flanco de subida.

Bit 3 PSA: Bit de asignacin


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
Timer0.

I
L

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


Timer0.

1 = Pre escalador no asignado a Timer0.


0 = Pre escalador asignado a Timer0.

Temporizador Timer 0 Reg.


Reg T0CON
V

18F452, 18F4550

L
A
D
I
M

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


pre 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
p
Timer 0
18F452, 18F4550

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.
Si el registro TMR0L es escrito, el conteo no se
reanuda, hasta dos ciclos de instruccin despus.
Si se utilizan instrucciones como:

clrf TMR0, movwf TMR0 bsf TMR0, el pre escalador es


puesto a 0, aunque la asignacin del pre escalador no
cambia
cambia.

La interrupcin de TMR0, no puede sacar al


procesador de un SLEEP, ya que en este caso el
oscilador interno esta parado.

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

Temporizador
p
Timer 0
18F452, 18F4550

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

Temporizador
p
Timer 0
18F452, 18F4550

Temporizador
p
Timer 0
18F452, 18F4550

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.
La parte alta de TMR0, solo 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
p
Timer 1
18F452, 18F4550

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.
S l i de
Seleccin
d fuente
f
t de
d reloj
l j interna
i t
o externa.
t
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, 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
p
Timer 1
18F452, 18F4550

Temporizador Timer1 Reg.


Reg T1CON
V

18F452, 18F4550

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-bits.
0 = Habilita la lectura y escritura del Timer1 en
dos operaciones de 8-bits.

Cuando RD16 vale 1, la parte alta del timer 1


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

Temporizador Timer1 Reg.


Reg T1CON
V

18F452, 18F4550

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, se carga TMR1H con el valor
d
deseado
d y a continuacin
ti
i se escribe
ib TMR1L,
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 p
pre
escalador de Timer1

11
10
01
00

=
=
=
=

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

Temporizador Timer1 Reg.


Reg T1CON
V

18F452, 18F4550

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.
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
N sincronice
i
i la
l seal
l de
d reloj
l j externa
0 = Sincronice la seal de reloj externa
Cuando TMR1CS = 0:
Se ignora, ya que se esta usando el reloj
interno

Temporizador Timer1 Reg.


Reg T1CON
V

18F452, 18F4550

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 flanco de
subida)
0 = Reloj Interno (FOSC/4)

Bit 0 TMR1ON: Bit de encendido del Timer1

1 = Habilita el conteo en Timer1


0 = Detiene el conteo en Timer1

Temporizador Timer1
Timer1. Oscilador
V

18F452, 18F4550

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
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
p
Timer 1
18F452, 18F4550

Temporizador
p
Timer 2
18F452, 18F4550

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
U registro
Un
i t PR2,
PR2 que controla
t l ell mximo
i
conteo de 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.
PR2
TMR2 es utilizado como base de tiempo para
el control del mdulo PWM

Temporizador
p
Timer 2
18F452, 18F4550

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
Por un RESET
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
p
Timer 2
18F452, 18F4550

Temporizador Timer2 Reg.


Reg T2CON
V

18F452, 18F4550

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
p g

Bit 1 a 0 T2CKPS1:T2CKPS0: Timer2 Pre escalador

0000 = 1:1 Post escalador


0001 = 1:2 Post escalador
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
p
Timer2
18F452, 18F4550

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
p
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.

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


Timer1 para trabajar con el mdulo CCPx.
1x = Timer3 es la fuente de reloj para el
mdulo CCP en modo captura y comparacin.
01 = Timer3
Ti
3 es la
l fuente
f
t de
d reloj
l j para ell
mdulo CCP2 y Timer1 es la fuente de reloj
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
18
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
Timer3.

11
10
01
00

1 = No sincronice el reloj externo con el interno


0 = sincronice
i
i ell reloj
l j externo con ell interno
i

Cuando TMR3CS = 0:

Es ignorado.

Temporizador Timer 3 Reg. T3CON

L
A
D
I

M
I
R

Bit 1 TMR3CS: Seleccin de la fuente


de relojj de Timer3

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.
El evento de disparo coloca en 0 el
timer 3 pero no genera una
interrupcin
interrupcin.

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

Temporizador Timer3

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
ADCON0.
El resultado de la conversin es
almacenado en los registros ADRESL y
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


g
canal analgico

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,
5,
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

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, se inicia la conversin A/D. Se borra por
HW, cuando la conversin termina.)
0 = La conversin A/D no esta en progreso.

Bit 1 Sin implementar


Bit 0 ADON: Enciende
d ell mdulo
d l A/D
/

1 = El mdulo A/D esta encendido


0 = El mdulo A/D esta apagado 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.

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.
0 = Justificado a la izquierda.
q
Los 6 bits menos
significativos del registro ADRESL son cero.

Bit 6 ADCS2: seleccin del tiempo de


conversin del mdulo A/D,
A/D trabaja 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, se
debe utilizar como base de tiempo el oscilador
RC del conversor A/D.
El conversor analgico digital funciona por
aproximaciones sucesivas
sucesivas.
Un RESET en el dispositivo, obliga a el apagado
del conversor A/D y cualquier conversin en
proceso es abortada
abortada.
Cada pin del micro controlador 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


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

U
J
I
L

L
O
A

R
I
A
S

Se configuran
g
los pines
p
que
q sern entradas
analgicas o digitales (ADCON1).
Se selecciona el canal de entrada al
mdulo
d l A/D (ADCON0)
(ADCON0).
Se selecciona el reloj de conversin A/D
(ADCON0)
(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
INTCON.

3. Esperar el tiempo de adquisicin en el


condensador de sujecin interno.
4 Comenzar
4.
C
la
l conversin,
i colocando
l
d en 1 ell
bit GO/DONE del registro (ADCON0), este bit
no se debe poner en 1 al mismo tiempo que
i
instruccin
i que enciende
i d ell mdulo
d l 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 TAD
TADss antes de que el nuevo tiempo de
adquisicin comience. Se entiende por un TAD, el
tiempo que demora la conversin de 1 bit y no
puede ser menor a 1
1.6
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,
ADCS0 ADCS1,
ADCS1 ADCS2 es de 101,
101 el
valor del TAD ser de (16 * TOSC)
Si se desea trabajar
j con el oscilador RC interno del
mdulo A/D, el valor del TAD ser de 2 micro
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

(18F4550)

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
mdulo.
ADRESH, ADRESL, registros de control
ADCON0 ADCON1 y ADCON2.
ADCON0,
ADCON2

Mdulo conversin A/D


V

(18F4550)

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 de mdulo A/D

1 = Mdulo A/D habilitado


0 = Mdulo
Md l A/D deshabilitado
d h bilit d

Mdulo conversin A/D


(18F4550)

V
L
A
D

M
I
R
T
R
U

Bit 7-6 Sin implementar


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

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

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

Canal 0 (AN0/RA0)
C
Canall 1 (AN1/RA1)
Canal 2 (AN2/RA2)
Canal 3 (AN3/RA3)
Canal 4 (AN4/RA5)
C
Canall 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
Sin implementar
Sin implementar

Mdulo conversin A/D


(18F4550)

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

(18F4550)

Mdulo conversin A/D


V

(18F4550)

L
A
D
I
M
I
R
T
R
U

J
I

Bit 7 ADFM: Seleccin del formato del


resultado del mdulo A/D

L
O

A
R
I
A
S

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

Bit 6 Si
Sin implementar
i l
t

Mdulo conversin A/D


V

(18F4550)

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

(18F4550)

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

(18F4550)

Mdulo conversin A/D


V

(18F4550)

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)
S l i
Seleccionar
canall de
d entrada
t d (ADCON0)
Escoger el tiempo de adquisicin (ADCON2)
Seleccionar el tiempo de conversin TAD
TADss
(ADCON2)
Habilitar el mdulo A/D (ADCON0)

Mdulo conversin A/D


(18F4550)

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. Colocando en 1 el bit GO/DONE del
(ADCON0)
5 Esperar a que la conversin A/D termine.
5.
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
b
borrar
ell bit ADIF,
ADIF sii es necesario.
i

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

(18F4550)

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

(18F4550)

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

(18F4550)

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

(18F4550)

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
p
acceder a
ella se hace a travs de unos registros
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
d direccionamiento)
d
)

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 tiene un tiempo tpico de 4
milisegundos
Debido a que el registro EEADR es de 8
bits la capacidad en EEPROM es de 256
bits,
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 la memoria FLASH


0 = Acceso a la memoria EEPROM.

BIT 6 CFGS:
CFGS Acceso
A
a la
l memoria
i FLASH/EEPROM o a los
l
registros de configuracin del PIC

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 la memoria FLASH (64 bytes) apuntada


por TBLPTR en el prximo comando WR
0 = Solo para escritura.

1 = Una operacin de escritura ha sido


interrumpida.
0 = Operacin de escritura completa.
completa

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

I
A
S

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.)
0 = El ciclo de escritura en EEPROM finaliz

BIT 0 RD: bit de control de lectura.


lectura

A
R

1 = ciclos de escritura p
permitidos
0 = No permite escritura en la memoria EEPROM

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.
Poner en 0 el bit EEPGD (bit 7 EECON1)
Poner en 0 el bit CFGS (bit 6 EECON1)
Poner en 1 el bit WREN (bit 0 EECON1) con el fin de
habilitar el acceso en modo escritura.
Poner en 1 el bit WR,, para
p
comenzar la escritura.
El dato ledo se almacena en el registro EEDATA
Al finalizar la escritura en la memoria EEPROM, se
genera una interrupcin,
i
i all ponerse ell 1 ell bit
bi EEIF
del registro PIR2

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, consta de 1 registro de


control CCPxCON y 2 registros de 8 bits auxiliares
((CCPRxL y CCPRxH)) para
p
el manejo
j del mdulo.
Los modos de trabajo son captura, comparacin y
PWM.
Este mdulo hace uso de los temporizadores
p
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
5 4 DCxB1:DCxB0: bit 0 y 1 de el ciclo de
trabajo PWM, no usado en modo captura 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
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,
p
, cada flanco de subida.
0110 = Modo captura, cada 4 flancos de subida.
0111 = Modo captura, cada 16 flancos de 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
igualdad (CCPIF se coloca en 1)
1010 = Modo compara, el pin CCP no cambia, CCPIF se coloca en 1 cuando
la igualdad se da.
1011 = Modo compara
compara, se genera un evento trigger al producirse la
igualdad (CCPIF se coloca 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, cuando un
evento en el p
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 de subida
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.
Cuando el valor de CCPRx se hace igual al de un Timer,
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 de estado (Alto a Bajo o Bajo a Alto)
Se mantiene sin cambios

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


interno si
estn contando pulsos externos.
Si se realiza un cambio de configuracin del modo de trabajo
del mdulo CPP,
CPP se debe apagar el mdulo.
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, la salida del mdulo
PWM se pone en su estado por defecto (0)
(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


4* TOSC
TOSC*(Pre
(Pre escalador TMR2)

El ciclo de trabajo o tiempo de cresta esta dado por:

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


*(Pre escalador de TMR2)

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
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.
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
half-duplex
duplex (Maestro).
(Maestro)
Sistema sincrnico half-duplex (Esclavo).

El mdulo USART cuenta con dos


registro de configuracin.

Registro
R
i t de
d control
t l de
d transmisin
t
i i TXSTA.
TXSTA
Registro de control de recepcin RCSTA.

Modulo de Comunicacin serial


USART (Registro TXSTA)

L
A
D
I
M
I
R
T
R
U
J

Bit 7 CSRC: Seleccin de la fuente de reloj.


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 TXSTA)

L
A
D

M
I

T
U

J
L
L
O
A
R
I
A
S

1 = 9 bits para transmitir.


0 = 8 bits para transmitir.
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 sincrnico
0 = Modo asncrono

Modulo de Comunicacin serial


USART (Registro 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: Estado del registro de corrimiento

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 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.

1 = Se van a recibir 9 bits.


0 = Se van a recibir 8 bits
bits.

Modulo de Comunicacin serial


USART (Registro 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
p
simple
p
0 = Deshabilita la recepcin simple.

Modo sincrnico - Esclavo:

No se tiene en cuenta

Modulo de Comunicacin serial


USART (Registro 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 la recepcin continua, hasta que el


bit CREN se borre (CREN sobrescribe SREN)
0 = Deshabilita la recepcin
continua.

Modulo de Comunicacin serial


USART (Registro 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
l ell buffer
b ff de
d recepcin
cuando
d RSR<8>
8 se pone en 1
0 = Deshabilita la deteccin de direcciones, todos los bytes son
recibidos y el noveno bit se puede usar como bit de paridad

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. Modo alta y baja velocidad.
El bit BRGH <TXSTA 2>,
2> permite escoger el modo,
modo mientras
que el registro SPBRG contiene la tasa de transferencia
escogida. En las ecuaciones X es el valor de SPBRG
Modo asncrono baja velocidad
velocidad.

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

M d sincrnico
Modo
i i alta
lt velocidad.
l id d

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.
Se utiliza un bit de inicio, 8 o 9 bits de datos y un bit
de 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 SW
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.
TXTREG se actualiza por SW
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
ha sido cargado en TXREG.
El bit TRMT, muestra el estado del registro de
corrimiento TSR, colocndose en 1 cuando
TSR esta vaco
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 el SPBRG para la tasa de transferencia
deseada Con el bit BRGH se escoge si se desea alta o
deseada.
baja 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
4.
bit, colocar en 1 el
bit TX9.
5. Habilitar la transmisin colocando en 1 el bit TXEN el
c al colocar
cual
coloca en 1 el bit TXIF.
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.
Con el bit BRGH se escoge si se desea alta o baja velocidad
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
3.
RCIE.
4. Si se desea recepcin de noveno bit, colocar en 1 el bit RX9.
5. Habilitar la recepcin colocando el bit CREN en 1.
6. La bandera RCIF se pondr en 1 cuando la recepcin se
complete y se generar una interrupcin si el bit RCIE fue
puesto en 1.
7. Leer el dato recibido del registro 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)

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.
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,
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;
las instrucciones TBLRD (Lectura) y
TBLWT (escritura),
(escritura) mueven datos
entre esas dos memorias, utilizando el
registro TABLAT.
TABLAT

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
fsicamente, y solo se utiliza 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
EEPROM.

1 = El acceso es a la memoria 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 de configuracin


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
FLASH.

T
R

U
J
I
L
L
O

BIT 3 WRERR: Error en una operacin de


escritura
esc
tu a de la
a memoria
e o a FLASH/EEPROM
S /
O

A
R
I
A
S

1 = Borra la memoria FLASH apuntada por


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

1 = Una operacin de escritura fue


prematuramente terminada.
0 = Operacin de escritura completa
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
EEPROM/FLASH,
nuevamente por HW.
0 = El ciclo de escritura esta completo.
p

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,


EEPROM este
bit se coloca en 0 por HW. El bit RD no
puede puesto en 1 cuando EEPGD = 1, lo
cual sugiere que 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
la memoria de programa.
El registro TBLPTR apunta a las direcciones
de memoria de programa a acceder, apunta
de a byte por vez
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

LLa lectura
l t
accede
d a memoria
i cada
d byte
b t
La escritura accede a memoria cada 8 Bytes
El borrado se hace en paquetes de 64 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 ell byte
b
bajo
b j o alto,
l depende
d
d de
d sii
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
b
borrado,
d solo
l los
l 16 mas altos,
lt
por lo
l tanto
t t ell
borrado de la memoria FLASH, solo se hace
en bloques
q
de 64 bytes
y
o 32 instrucciones.
Los 16 bits mas significativos apuntan a la
direccin de inicio del bloque de 64 bytes a
b
borrar.
El registro EECON1 controla la operacin de
borrado
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 en 1 para iniciar la
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
b t
bytes,
por ttanto
t llos 6 bit
bits menos
significativos son 0)
Poner en 1 el bit EEPGD de EECON1
EECON1.
Borrar el bit CFGS del registro EECON1
Poner en 1 los bits WREN y FREE para
habilitar escritura y borrado 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. 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.
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, una operacin de escritura en
FLASH requiere el uso de 8 veces la
FLASH,
instruccin TBLWT.

Escritura en memoria Flash.

Escritura en memoria Flash


Flash.
V

(Secuencia de Programacin)

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.
Cargar el apuntador del programa con la
direccin a ser borrada.

Escritura en memoria Flash


Flash.
V

(Secuencia de Programacin)

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
g el apuntador
p
del programa
p g
con la
direccin de inicio a ser escrita.
Escribir los p
primeros 8 bytes
y
en los
registros de sujecin.
Utilizar la instruccin (TBLWT* + o
TBLWT+*).
Poner en 1 el BIT EEPGD, para apuntar a
la memoria de programa.

Escritura en memoria Flash


Flash.
V

(Secuencia de Programacin)

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, para comenzar el
ciclo de escritura.

Escritura en memoria Flash


Flash.
V

(Secuencia de Programacin)

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


g
mientras se escribe
Re habilite las interrupciones.
p
Repita este ciclo 7 veces
Para
a a escribir
esc b los
os 6
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)

Modulo USB 18F45550

L
A
D
I

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

La familia PIC18FX455/X550 posee una


interface USB de full-speed
full speed and low
lowspeed.
Esta diseada para permitir la
comunicacin entre cualquier HOST y el
microcontrolador

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