Está en la página 1de 362

MICROCONTROLADORES GAMA

ALTA Y ARQUITECTURAS
MIXTAS

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

„ Familias de Microcontroladores de Altas


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

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

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

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

físicamente:
R

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

visto por el desarrollador:


R

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

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

A los Microprocesadores y Microcontroladores)


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

A
R
I
A
S
El Microprocesador
„ Definición: Es el dispositivo encargado de realizar cálculos aritméticos y
lógicos y que temporiza y controla las operaciones de los demás
elementos de un sistema.
„ Partes:
- Unidad de control.
- Unidad Aritmético-lógica (ALU).
- Registros: - Contador de programa (program counter).
counter)
- Registros generales.
- Registro de estado.
- Stack.
„ Reloj de funcionamiento:
- Ciclo de reloj: señal de reloj a la entrada del procesador.
- Ciclo de máquina: periodo de ejecución de una operación completa del
p
procesador.
- Ciclo de instrucción: periodo que se requiere para ejecutar una
determinada instrucción.
El Microprocesador
Controlador y
Microcontrolador
„ Recibe el nombre de controlador el
p
dispositivo que
q se emplea
p para
p el
gobierno de uno o varios procesos.
„ Ejemplos:
j Horno, Automóvil.
„ Arquitectura Cambiante en el tiempo.
„ Discreto
„ Integrado Microprocesador.
„ Integrados Microcontrolador.
El Microcontrolador
Características:

„ 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


sólo reside un programa destinado a gobernar una aplicación
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 integración reduce notablemente la cantidad de


componentes externos y los costos de desarrollo
desarrollo, mejora el
desempeño del sistema, reduce la interferencia
electromagnética, minimiza el consumo de potencia y agiliza el
tiempo
p de realización

„ El número 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 volátil para contener el programa.
„ Memoria de lectura y escritura para guardar los datos.
„ Líneas de E/S para los controladores de periféricos:
„ Comunicación paralelo.
„ C
Comunicación
i ió serie.
i
„ Diversas puertas de comunicación (USB...)
„ Recursos auxiliares:
„ Circuito de reloj
reloj,
„ Temporizadores
„ Perro guardián (watchdog)
„ Conversores A/D y D/A
„ Comparadores analógicos
„ Protección ante fallos de la alimentación
„ Estado de reposo o de bajo consumo
El Microcontrolador
El mercado de los
microcontroladores
„ Comunicaciones: 30%
„ Consumo g general: 27%
„ Automoción: 18%
„ Informática: 15%
„ Industria: 10%
Que microcontrolador Emplear
„ Costos
„ Aplicación
„ Procesamiento de datos
„ Entrada y salida
„ Consumo de energía (CMOS)
„ Memoria
„ Ancho de Palabra
„ Diseño de la placa
Los más 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 más populares
„ National Semiconductor
„ Microchip
„ Familia 10f2xx,
10f2xx 12Cxx de 12 bits Familia 12Fxx,
12Fxx 16Cxx y
16Fxx de 14 bits (PIC16F87X) 18Cxx y 18Fxx de 16 bits
AVR
„ NEC
„ Parallax
„ Texas Instruments
„ 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
dEExtendida
t did o Super
S
Harvard ARChitecture (SHARC).

„ Esta arquitectura incluye una memoria


de caché ((Reserva),) la cual es utilizada
para almacenar instrucciones y datos
que serán reutilizadas por la CPU,
lib
liberando
d asíí los
l dos
d buses
b de
d la
l
arquitectura Hardvard y permitiéndoles
ser utilizados en la búsqueda y
almacenamiento de datos, mientras se
ejecutan las instrucciones en caché
Recursos Comunes a Todos
Arquitectura
A it t H
Harvard
dEExtendida
t did o Super
S
Harvard ARChitecture (SHARC).
Recursos Comunes a Todos
Arquitectura
A it t H
Harvard
dEExtendida
t did o Super
S
Harvard ARChitecture (SHARC).
Recursos Comunes a Todos
Arquitectura
A it t H
Harvard
dEExtendida
t did o Super
S
Harvard ARChitecture (SHARC).
Recursos Comunes a Todos
Arquitectura Von Newman Modificada.
„ La arquitectura Von Neuman modificada, permite
múltiple acceso a memoria por instrucción,
valiéndose de un truco simple que consiste en hacer
el reloj de acceso a memoria más rápido que el de
instrucciones.
„ Por ejemplo el DSP32C de Lucent con reloj de 80Mhz
80Mhz,
tiene un ciclo de instrucción compuesto por cuatro
estados de máquina. Mientras que el acceso a
memoria de este DSP es posible realizarlo cada
estado de máquina siendo posible entonces realizar
cuatro accesos a memoria por cada ejecución de
instrucción
Recursos Comunes a Todos
CPU

„ CISC Aprox. 80 instrucciones


Arquitectura Von Neuman
„ RISC Aprox. 30 instrucciones.
Arquitectura Hardvard
„ SISC Diseños específicos (Controladores
Empotrados o embebidos)
V
L
Segmentación
A
D
I
M
I
R

T
R
U
J
I
L
L
O

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

utilizando cualquier modo de


T
R
U
J
I
direccionamiento.
L
L
O

A
R
I
A
S
Recursos Comunes a Todos
Memoria
„ RAM. Los datos que manejan los programas varían
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 fabricación mediante
el uso de máscaras. Se aconseja este tipo de
memoria i cuando
d se precisan
i series
i muy grandes,
d
con el fin de disminuir costos de fabricación.
„ OTP. Este modelo de memoria solo puede grabarse
una vez por partet 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 grabación aconsejan este tipo de
memoria para prototipos finales y series de
producción cortas.
Recursos Comunes a Todos
Memoria
„ EPROM. La grabación de esta memoria se realiza mediante
un dispositivo físico gobernado desde un computador
personal. En la superficie de la cápsula 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 grabación es similar a las memorias OTP y
EPROM, pero el borrado se hace eléctricamente. Puede
puede ser programada y borrada muchas veces
„ FLASH. Se trata de una memoria no volátil, de bajo
consumo que se puede escribir y borrar en circuito al igual
consumo,
que las EEPROM, pero suelen disponer de mayor capacidad
que estás ultimas. El borrado sólo 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. Energía
í
Recursos Especiales
Perro Guardián
„ Corrección de fallos
o bloqueos
„ Refresco para evitar
acciones
„ Temporización
„ 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
alimentación (VDD) es inferior a un
voltaje mínimo ((“brownout”).
brownout ). Mientras
el voltaje de alimentación 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 Analógico
„ Modulador PWM
Recursos Especiales
Puertas de comunicación
„ • UART, adaptador de comunicación serie
asíncrona.
„ • USART,
USART adaptador
d t d de d comunicación
i ió serie i
síncrona y asíncrona
„ • 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
adaptación con redes industriales
V
L
Estado del Arte y Tendencias
A
D
I
„ Las empresas líderes a nivel mundial, en
M
I
sistemas embebidos de uso general son:
R
„ INTEL/AMD (Microprocesadores)
TEXAS ((Microcontroladores y DSP))
T
R „
U
J „ ALTERA (PLD’S, FPGA’S DSP’S)
I
L
L
„ XILINX ((PLD’S,
S, FPGA’S
G S DSP’S)
S S)
O
„ MICROCHIP (Microprocesadores)
A
R
I
A
S
V
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
„ INTEL.
M
I
R
„ En la actualidad ofrecen arquitecturas
T
revolucionarias multiprocesador.
Intel® Core™2 Quad Processor
R
U „
J
I
L
L
O

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

Poseen una serie de pperiféricos analógicos


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

„ Manejan velocidades de reloj por encima de los 60 MHz


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

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

celular y cámaras digitales.


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

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

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

T
R
U
J
I
L
L
O

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

Utiliza memoria FLASH


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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

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

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

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

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

„ Capacidad aritmética especializada de alta


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

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

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

„ Dos operandos
T
R
U
„ Alto rendimiento.
rendimiento
J
I
„ Almacenamiento del resultado.
L
L
O

A
R
I
A
S
Requerimientos HW y
V
L
Operaciones Comunes
A
D
I
„ Manejo de Arreglos
M „ Búsqueda de valores de lugares consecutivos de
I
R
memoria i
„ Copia de datos de memoria a memoria
T
R „ Multiplicación y suma en paralelo.
U
J „ Acceso múltiple a memoria
I
L
„ Registros temporales
L
O
„ Eficiente
f generación
ó de direcciones.
„ Características especiales como retardos o
A
R
direccionamiento cíclico
I
A
S
La Gama Alta de los PIC
(18F452)
V
L
Características Generales
A
D
I
„ Código compatible con la familia 16 y
M
I 17 de los PIC
R

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

A
R
I
„ Instrucciones de 16 bits con bus de
A
S
datos de 8 bits.
V
L
Características Generales
A
D
I
„ Prioridad de interrupciones
M
I
R
„ Multiplicador hardware de 8 x 8 que
T
funciona en un solo ciclo de máquina.
Tres pines para manejo de
R
U „

interrupciones externas.
J
I
L
L
O
„ Manejo ded niveles
l de
d corriente de
d 25
A mA. en modo fuente y sumidero
R
I
A
S
V
L
Características Generales
A
D
I
„ Timer 1 de 16 bits, Timer 2 de 8 bits.
M
I
R
„ Timer 3
3, (no lo posee la gama media),
media)
T
de 16 bits (65535 conteos).
Dos módulos de
R
U „

Captura/Comparación/PWM.
J
I
L
L
O
„ Módulo
ód l de
d comunicaciónó seriall con
A soporte para RS-485 y RS-232
R
I
A
S
V
L
Características Generales
A
D
I
M
I
R

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L Una capacitancia elevada,
O
incrementa la estabilidad del
A oscilador, pero también incrementa
R los tiempos de inicio del oscilador
I
A
interno.
S
Oscilador en modo RC .
(18F452)
Con el Oscilador en modo,
RC,, FREC/4
/ esta disponible
p
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
de qque el pin
p OSC2 se
comporta como un pin de
I/O normal (RA6).
V
L
Oscilador Externo. (18F452)
A
D
I Cuando se utiliza el oscilador externo, se puede utilizar el
modo EC,, el cual se tiene FREC/4
/ ppor el pin
p OSC2.
M
I
R
También se puede tomar el modo ECIO, para ahorro de
T corriente, el cual OSC2 queda como un pin de propósito
R
U
general (RA6)
J
I
L
L
O

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

A
R
I
A
S
V
L
Registro OSCON (18F452)
A
D
I
M
I
R

BIT 7 a 1 No utilizados
R
„
U
J
„
I
BIT 0 SCS: System Clock Switch bit
L „ Cuando el BIT OSCSEN este en 0 y T1OSCEN este en 1:
L
O „ 1 = Utilice el oscilador del timer 1.
„ 0 = Utilice el oscilador primario.
A
„
R Si el oscilador del Timer1 no esta habilitado
habilitado, cualquier escritura
I
A
en el BIT SCS es ignorada y se utiliza el oscilador principal
S
Diagramas de Tiempo de
V
L
Transiciones (18F452)
A
D
I
M
I
R

T
R
U
J
I
L
L

El contador de programa, se incrementa cuando ocurre


O

A
la octava transición de estabilización del Timer 1
R
I
A
S
Diagramas de Tiempo de
V
L
Transiciones (18F452)
A
D
I
M
I
R

T
R
U
J
I
L
L
O
Para la transición entre el oscilador de timer1 y OSC1, existe
A
p de estabilización de 1024 ciclos de osc1,, antes de
un tiempo
R
I comenzar a contar los 8 periodos de sincronización de reloj,
A después de lo cual el reloj del micro funciona con OSC1.
S
Diagramas de Tiempo de
V
L
Transiciones (18F452)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Diagramas de Tiempo de
V
L
Transiciones (18F452)
A
D
I
„ Cuando la transición de oscilador es
M
I
entre el timer1 y OSC1, existe un
R
tiempo de estabilización de 1024 ciclos
T de osc1 y luego un tiempo necesario
para que ell PLL enganche
h la
l frecuencia
f i
R
U

de reloj de OSC1, antes de comenzar a


J
I

contar los 8 periodos de sincronización


L
L

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


O

A
R micro comienza a funcionar con OSC1.
I
A
S
V
Oscilador. (18F4550)
L
A
D „ El PIC18F4550 puede operar en 12 modos
I
M de oscilador.
I
R „ M d XT Cristal
Modo C i t l Resonador.
R d
T „ XTPLL Cristal Resonador con PLL.
R
U „ HS Cristal de alta velocidad.
velocidad
J
I „ HSPLL Cristal de alta velocidad con PLL.
L
L „ EC Reloj externo con salida de FOSC/4.
FOSC/4
O
„ ECIO Reloj externo con I/O en RA6
A
R „ ECPLL Reloj externo con PLL
I
A
S
V
Oscilador. (18F4550)
L
A
D „ ECIO Reloj externo con I/O en RA6 y PLL.
INTHS Oscilador Interno, usado como fuente
I
M „
I
del micro
micro. Y oscilador HS usado como fuente
de reloj para USB.
R

T
R
„ INTXT Oscilador Interno, usado como fuente
U d l micro.
del i Y oscilador
il d XT usadod como fuente
f t de
d
J
I
reloj para USB.
L „ INTIO Oscilador Interno,, usado como fuente
L
O
del micro. Y oscilador EC usado como fuente de
reloj para USB 12. INTCKO Oscilador Interno,
A
R
usado como fuente del micro. Y oscilador EC
I usado como fuente de reloj para USB y FOSC/4
A
S
saliendo por RA6
Oscilador en modo HS,, XT,, LP
V
L
. (18F4550)
A
D
I
M
I
R

T
R
U
J
I
L
L Una capacitancia elevada,
O
incrementa la estabilidad del
A oscilador, pero también incrementa
R los tiempos de inicio del oscilador
I
A
interno.
S
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
V
Oscilador. (18F4550)
L
A
D „ Oscilador Interno.
Existen 2 fuentes de reloj internas, que
I
M „
I
permiten el no uso de oscilador,
oscilador cuando USB
esta deshabilitado.
R

T
R
„ La fuente principal (INTOSC) con 8 MHz con
U postescalador
t l d que genera frecuencias
f i de
d 31
J
I
kHz a 4 MHz
L „ La otra fuente de relojj es el oscilador RC
L
O
(INTRC) con frecuencia nominal de 31 kHz.
También es usado como fuente de reloj para
A
R
módulos como:
I „ Power-up Timer
A
S „ Watchdog Timer
V
Oscilador. (18F4550)
L
A
D „ Oscilador Interno.
I
M
„ Existen 4 modos de trabajo que determinan la
I fuente de reloj del USB
USB.
R
„ INTHS: El reloj de USB proviene del oscilador
T principal en modo HS.
R
U
„ INTXT: El reloj de USB proviene del oscilador
J principal en modo XT.
I
L
„ INTCKO: El reloj de USB proviene del oscilador
L externo con entrada en OSC1/CLKI; OSC2/CLKO es
O
la salida de FOSC/4.
A „ INTIO: El reloj de USB proviene del oscilador
R
externo con entrada en OSC1/CLKI; OSC2/CLKO
I
A
funciona como un pin I/O digital (RA6).
S
V
Oscilador. (18F4550)
L
A
D
I
M
I
R

bit 7 INTSRC:
INTSRC SSelección
l ió ddell O
Oscilador.
il d
R
U „
J
I „ 1 = reloj de 31.25 kHz derivado del reloj de 8
MHz de INTOSC
L
L
O
„ 0 = reloj de 31 kHz derivado del reloj RC
A
R
interno INTRC.
bit 6-5 Sin implementar.
I
A „
S
V
Oscilador. (18F4550)
L
A
D „ bit 4-0 TUN4:TUN0: bits de
I
M sntonización
I
R
„ 01111 = Máxima
Má i frecuencia.
f i
T
„ ••
R „ 00001
0000
00000 = frecuencia central. El oscilador corre
U
J „
I a la frecuencia calibrada en fábrica.
L
L „ 11111
O
„ ••
A
R
„ 10000 = Frecuencia mínima.
I
A
S
Retardos Considerados al iniciar
V
L
el microcontrolador.
A
D
I
„ Al iniciar el procesador se definen 3 retardos.
M
I
„ El primero es dado por el PWRT el cual provee un
R retardo promedio de 72 ms. para la estabilización
T
de la circuitería interna.
R
U
„ El segundo temporizador es el OST (Oscillator
J Start-up Timer) que espera a que el oscilador
utilizado se estabilice.
I
L
L
O
„ La secuencia de retardo es PWR más OST.
A
„ Al utilizar el PLL, aparece un tercer retardo (TPLL )
R utilizado para esperar que el PLL enganche la
I
A frecuencia de entrada (2 ms típico).
S retardo=PWRT+OST+TPLL
V
L
Fuentes de Reset
A
D
I
„ La familia PIC18FXXX Posee los siguientes
M
I
tipos de reset:
R
„ Power-on Reset (POR)
T „ MCLR Reset Durante el funcionamiento normal
R
U „ MCLR Reset Durante el modo SLEEP
J
I „ WDT Reset durante operación normal
L
L „ Programmable Brown-out
Brown out Reset (BOR)
O
„ Instrucción de RESET.
A
R „ Reset debido al llenado del Stack.
Stack
Reset debido al vaciado del Stack.
I
A „
S
V
L
Organización de la memoria
A
D
I
M
I
R

T
R
U
J
I
L
L
O

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

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

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

contener instrucciones complejas.


T
R
U
J
I
„ Por lo tanto este dispositivo puede
L
L almacenar 16mil instrucciones simples.
simples
O

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

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

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

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

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


A
R
I
A
los registros SFR.
S
Registro
g STKPTR
V
L
18F452 y 18F4550
A
D
I
M
I
R

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

T
R
U
J
I
L
L
O

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

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

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

pone en 1, cualquier dato adicional


I
R

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

que se omite, y el registro STKPTR,


J
I
L
L se mantiene apuntando a la
O
posición 31.
A
R
I
A
S
V
L
Organización de la memoria (Pila)
A
D
„ Cuando la pila se vacía, la próxima
instrucción q
que requiera
q extraer un
I
M

dato de ella, retorna el valor de 0 al


I
R

T contador de programa y coloca el


BIT STKUNF en 1 hasta que ocurra
R
U

un POR o un se borre por software.


J
I
L
L
O

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

produciendo un incremento en STKPTR.


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

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

el valor ubicado previo a este, sin


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

T
R
U
J
I
L
L
O

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

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

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

A
R
I
A
S
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
V
L
Memoria de Datos
A
D
I
„ La memoria de datos esta dividida en 16
M
I
bancos, cada uno de 256 Bytes.
R
„ En el caso del 18F4550 los bancos 4 al 7
T están implementados para el uso del
protocolo
t l USB,
USB pero cuando d estet protocolo
t l
R
U
J
I no se usa sirven como memoria de
L
L
propósito general.
general
O
„ La zona de FSR se halla localizada en el
A
R
banco
ba co 155 después de la a pos
posición
c ó F80h
80 (de
I
A
la mitad hacia el final)
S
V
L
Memoria de Datos (Direccionamiento)
A
D
I
„ Se pueden identificar 3 formas de
M
I acceder la memoria de programa de los
PIC18FXX2.
R

T
R
U
„ Direccionamiento indirecto: requiere el uso
J de los registros FSRn (12 BITS) y el
correspondiente registro indirecto INDFn).
I
L
L
O „ Direccionamiento directo: requiere el uso
A del registro BSR, el cual en sus BITS 0 a 3
contiene la dirección del banco escogido.
R
I
A
S
V
L
Memoria de Datos (Direccionamiento)
A
D „ Otra forma de direccionamiento directo es:
Para asegurar que los registros (SFR Y GPR) sean
I
M „
I accedidos en un solo ciclo de instrucción,
instrucción
R
independiente del Banco apuntado por el registro
T
BSR, Existe el ACCESS BANK, el cual esta formado
R por una parte
p p del banco 0 y un segmento
g del
U banco 15
Un BIT en la instrucción especifica si la operación
J
I „
L a utilizar se hace a través del ACCESS BANK o con
L
ell registro BSR, a ese BIT se le
l denomina
d “a”
“ ”
O
(access bit) por defecto vale 0 y apunta al ACCESS
A BANK
R
I
A
S
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 núcleo del
micro y el módulo USB, permitiendo la
transferencia de datos entre los dos.
„ El banco 4 de memoria RAM, se utiliza para el
manejoj del
d l USB,
USB cuandod este
t módulo
ód l esta
t
activo, y no puede ser usado para otros
propósitos
p p en este tiempo.
p
Memoria de Datos (Registros FSR)
V 18F452
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

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

T
R
U
J
I
L
L
O

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

A
realizar operaciones sencillas tipo DSP
R
I
A
S
V
L
Puertos
A
D
„ Los puertos de los PIC de la familia 18 en
general constan de 3 registros para su
I
M
I
R
operación.

T
„ El registro TRIS, el cual controla la dirección
R
U
de funcionamiento del puerto.
puerto
J
I
„ El registro PORT, que lee los niveles de
L entrada en el ppuerto.
L
O „ El registro LAT, el cual es el LATCH de salida
A del puerto.
R
I
A
S
V
L
Puertos
A
D
I
M
I
R

T
R
U
J
I
L
L
O

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

„ Para configurarlo sus pines como analógicos o


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

T
RA1/AN1 TTL Pin I/O ó entrada analógica 1
R RA2/AN2 TTL Pin I/O ó entrada analógica 2
U
RA3/AN3 TTL Pin I/O ó entrada analógica 3
J
I RA4/T0CKI Colector Abierto Pin I/O ó entrada del timer 0, con entrada
L tipo Schmit Trigger
L
RA5/AN4 TTL Pin I/O ó entrada analógica 4
O
RA6/OSC2/CLKO TTL Entrada del oscilador 2, o salida de frecuencia
A de reloj.
R
I
A
S
Registros asociados con PORTA
V
L
Puerto A (18f452)
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
Puerto A (18f4550)
L
A Pin Función I/O Descripción
D Type
I
M RA0/AN0 RA0 DIG/TTL Entrada o salida digital.
I AN0 ANA Canal 0 de entrada A/D y entrada del comparador C1(
C1(-).
). (configuracion por defecto)
R RA1/AN1 RA1 DIGTTL Entrada o salida digital.
AN1 ANA Canal 1 de entrada A/D y entrada del comparador C2(-). (configuración por defecto)
T RA2/AN2/ RA2 DIG/TTL Entrada o salida digital.
VREF-/CVREF
R AN2 ANA Canal 2 de entrada A/D y entrada del comparador C2(
C2(+).
). (configuración por defecto)
U VREF- ANA Referencia de voltaje para el A/D y voltaje de referencia del comparador; entrada baja
J
CVREF ANA Referencia del voltaje de salida del comparador.
I
RA3/AN3/ RA3 DIG/TTL Entrada o salida digital.
L
VREF+
L AN3 ANA Canal 3 de entrada A/D y entrada del comparador C1(+). (configuración por defecto)
O VREF+ ANA Referencia de voltaje para el A/D y voltaje de referencia del comparador; entrada alta
RA4/T0CKI/ RA4 DIG/Sch Entrada o salida digital.
C1OUT/RCV mit
A
T0CKI Schmit Entrada de reloj del timer 0
R
C1OUT DIG Salida del comparador 1, tiene prioridad sobre los datos en el puerto
I
A RCV TTL Transeiver externo USB (Entrada RCV)
S
V
Puerto A (18f4550)
L
A
D
I Pin Función I/O Type Description
M
I RA5/AN4/S RA5 DIG/TTL Entrada o salida digital.
digital
R S/
HLVDIN/C
2OUT AN4 ANA Canal 4 de entrada A/D (Configuración por defecto).
T
R SS TTL Entrada esclava para e modo SSP (MSSP module).
module)
U
J C2OUT DIG Salida del comparador 2.
I
L
OSC2/CLK OSC2 ANA Conexión del oscilador principal (Modo XT y HS)
L O/ RA6
O
CLKO DIG Salida de reloj (FOSC/4); habilitado en modo EC, ECPLL y INTCKO.

A
RA6 DIG/TTL Entrada y Salida Digital, únicamente disponible en modo ECIO, ECPIO y INTIO.
R
I VREF+ ANA Voltaje de referencia del A/D y el comparador (entrada alta).
A
S
V
Puerto A (18f4550)
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

A
R
I
A
S
V
Puerto B 18F4550
L
A
D
I
„ Es un puerto de 8 bits, con resistencias
M
I pull up internas.
R

T
„ Al iniciar el micro, los pines RB4:RB0
R
U
están configurados como entradas
J
I
analógicas y RB7:RB5 son entradas
L
L digitales
digitales.
O

A
R
I
A
S
V
Puerto B 18F4550
L
Pin Functio I/O I/O Type Description
A n
D
RB0/AN12 RB0 OUT/IN DIG/TTL Entrada o salida digital
I
/
M INT0/FLT AN12 IN ANA Entrada A/D canal 12
I 0/ INT0 IN ST Interrupción externa 0
SDI/SDA
R SDI IN ST Entrada modulo SPI (Modulo MSSP).
SDA OUT/IN DIG/I2C/SM Salida I2C™ y Entrada I2C (Modulo MSSP)
T B
RB1/AN10 RB1 OUT/IN DIG/TTL Entrada o salida digital
R
/ AN10 IN ANA E t d A/D canall 10
Entrada
U INT1/SCK
INT1 IN ST Interrupción externa 1
J / SCL
SCK OUT/IN DIG/ST Salida de reloj SPI y Entrada de reloj SPI (Modulo MSSP).
I
L SCL OUT/IN DIG/I2C/SM Salida de reloj I2C y Entrada de reloj I2C (Modulo MSSP)
B
L
RB2/AN8/ RB2 OUT/IN DIG/TTL Entrada o salida digital
O INT2/VM
AN8 IN ANA Entrada A/D canal 8
O
INT2 IN ST Interrupción externa 2
A
VMO OUT DIG Transceiver Externo USB VMO salida de datos
R
RB3/AN9/ RB3 OUT/IN DIG/TTL Entrada o salida digital
I
CCP2/VPO AN9 IN ANA Entrada A/D canal 9
A
CCP2 OUT/IN DIG/ST Salida de comparación y PWM y entrada de captura de CCP2
S
VPO OUT DIG Transceiver Externo USB
V
Puerto B 18F4550
L
A
D
I
M
I Pin Function I/O
/ I/O
/ Type
yp Description
p
R RB4/AN11/ RB4 OUT/IN DIG/TTL Entrada o salida digital
KBI0/CSSPP
AN11 IN ANA Entrada A/D canal 11.
T
R KBI0 IN TTL Interrupción
p por
p cambio de estado
U
CSSPP(4) OUT DIG SPP chip select control output.
J
I RB5/KBI1/ RB5 OUT/IN DIG/TTL Entrada o salida digital
PGM
L
KBI1 IN TTL Interrupción
p por
p cambio de estado
L
O
RB6/KBI2/ RB6 OUT/IN DIG/TTL Entrada o salida digital
PGC
KBI2 IN TTL Interrupción por cambio de estado
A
RB7/KBI3/
/ / RB7 OUT/IN
/ DIG/TTL
/ Entrada o salida digital
g
R
PGD
I KBI3 IN TTL Interrupcion por cambio de estado
A
S
V
Puerto B 18F4550
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

A
R
I
A
S
V
Puerto C 18F4550
L
A
D
I
„ Es un Puerto de 7 bits.
M
I
R
„ El pin RC3 no está implementado
T „ Los pines RC4 y RC5 no tienen TRIS
asociado
asociado.
R
U
J
I
L
„ El pin RC3 tiene uso para USB
L
O

A
R
I
A
S
V
Puerto C 18F4550
L
Pin Función I/O I/O Type Descripción
A
RC0/T1OSO/ RC0 OUT/IN DIG/ST Entrada y salida digital
D T13CKI T1OSO OUT ANA Salida del oscilador de timer 1
I T13CKI IN ST Entrada de conteo del timer 1 y 3
RC1/T1OSI/ RC1 OUT/IN DIG/ST Entrada y salida digital
M CCP2/UOE T1OSI IN ANA Entrada del oscilador de timer 1
I CCP2(1) OUT/IN DIG/ST Salida de CCP2 y PWM
PWM. Entrada en modo captura CCP2
R UOE OUT DIG External USB transceiver OE output.
RC2/CCP1/ RC2 OUT/IN DIG/ST Entrada y salida digital
P1A CCP1 OUT/IN DIG/ST Salida de ECCP1 modo compara y PWM, entrada ECCP1 modo captura
T
P1A(3) OUT DIG Salida ECCP1 y PWM Ensanchado, canal A
R RC4/D-/VM
RC4/D /VM RC4 IN TTL Entrada digital
U D- OUT XCVR USB bus differential minus line output (internal transceiver).
IN XCVR USB bus differential minus line input (internal transceiver).
J
VM IN TTL External USB transceiver VM input.
I RC5/D+/VP RC5 IN TTL Entrada digital
L D+ OUT XCVR USB bus differential plus line output (internal transceiver).
IN XCVR USB bus differential plus line input (internal transceiver).
transceiver)
L
VP IN TTL External USB transceiver VP input.
O RC6/TX/CK RC6 OUT/IN DIG/ST Entrada y salida digital
TX OUT DIG Transmisor serial asincrono (EUSART module)
CK OUT/IN DIG/ST Salida Reloj serial sincrónico (EUSART module)
A Entrada Reloj serial sincrónico (EUSART module)
R RC7/RX/DT/ RC7 OUT/IN DIG/ST E t d y salida
Entrada lid digital
di it l
I SDO RX IN ST Recepción serial asíncrona (EUSART module).
A OUT DIG Salida de datos del Puerto serial sincrónico (EUSART module).
DT
IN ST Entrada de datos del Puerto serial sincrónico
S
SDO OUT DIG SPI data output (MSSP module)
V
Puerto C 18F4550
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

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

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

T
R
U
J
I
L
L
O

A
R
I
A
S
V
Puerto D 18F4550
L
A
D
I
„ Es un puerto de 8 bits
M
I
R
„ Todos los pines del puerto D tiene
T
entrada tipo schmit trigger.
Todos los pines del puerto D poseen
R
U „

resistencia pull up.


J
I
L
L
O
„ Ell puerto D puede
d ser configurado
f d
A como un puerto paralelo de
comunicaciónó de
d 8 bits
b de
d ancho
h (SPP).
(S )
R
I
A
S
Puerto D 18F4550
Pin Function I/O I/O Type Description

RD0/SPP RD0 OUT/IN DIG/ST Entrada o salida digital


0
SPP0 /
DIG/ST Entrada o salida 0 del SPP
OUT/IN
RD1/SPP RD1 DIG/ST Entrada o salida digital
1 OUT/IN
SPP1 OUT/IN DIG/ST Entrada o salida 1 del SPP
RD2/SPP RD2 OUT/IN DIG/ST Entrada o salida digital
2 SPP2 OUT/IN DIG/ST Entrada o salida 2 del SPP
RD3/SPP RD3 OUT/IN DIG/ST Entrada o salida digital
3 SPP3 OUT/IN DIG/ST Entrada o salida 3 del SPP
RD4/SPP RD4 OUT/IN DIG/ST Entrada o salida digital
4 SPP4 OUT/IN DIG/ST Entrada o salida 4 del SPP
RD5/SPP RD5 OUT/IN DIG/ST Entrada o salida digital
5/P1B SPP5 OUT/IN DIG/ST Entrada o salida 5 del SPP
P1B OUT DIG Salida de ECCP1 Enhanced PWM canal B
RD6/SPP RD6 OUT/IN DIG/ST Entrada o salida digital
6/P1C SPP6 OUT/IN DIG/ST Entrada o salida 6 del SPP
P1C OUT DIG Salida de ECCP1 Enhanced PWM canal C
RD7/SPP RD7 OUT/IN DIG/ST Entrada o salida digital
7/P1D SPP7 OUT/IN DIG/ST Entrada o salida 7 del SPP
P1D OUT DIG Salida de ECCP1 Enhanced PWM canal D
Puerto D 18F4550
V
L
Puerto E 18F452
A
D PIN Tipo Entrada Función
I
RE0/RD/AN5 TTL, Schmit Trigger Pin I/O Pin de control del puerto paralelo
M
Para control de p
puerto esclavo y entrada A/D.
I
paralelo esclavo BIT RD
R
1 = No lectura.
T 0 = Lee PORTD si CS es 1.
R RE1/WR/AN6 TTL, Schmit Trigger
TTL Pin I/O Pin de control del puerto paralelo
U
Para control de puerto esclavo y entrada A/D.
J paralelo esclavo BIT WR
I
1 = No escritura
L
0 = Escribe en PORTD si CS es 1
L
O RE2/CS/AN7 TTL, Schmit Trigger Pin I/O Pin de control del puerto paralelo
Para control de puerto esclavo y entrada A/D.
A paralelo esclavo BIT CS
R 1 = Dispositivo no seleccionado
I 0 = Dispositivo no seleccionado
A
S
V
L
Puerto E 18F452
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Registro TRISE
A
D
I
M
I
R
„ Bit 7 IBF: Bit de Buffer de entrada lleno
T
R „ 1 = Una palabra ha sido recibida y espera ser
U
J
leída.
I
L
„ 0 = Ninguna palabra recibida.
L
O „ Bit 6 OBF: Bit de Buffer de salida lleno.
A „ 1 = El buffer mantiene una palabra escrita
R
previamente
previamente.
I
A „ 0 = El buffer de salida ha sido leído.
S
V
L
Registro TRISE
A
D „ Bit 5 IBOV: Rebose del Buffer de entrada.
I
M „ 1 = Ha ocurrido una escritura, cuando una palabra previa no
I ha sido leída
leída. (debe ser clareado por SW)
R
„ 0 = No ha ocurrido un desborde
Bit 4 PSPMODE: Selección del puerto paralelo
T
R
„
U
esclavo
J
I „ 1 = Modo puerto paralelo esclavo.
L
L
„ 0 = Modo general de I/O
O
„ bit 3 Sin Implementar
A
R
„ bit 2,1 y 0 TRISE: Bits de control de dirección.
I „ 1 = Entrada
A
S
„ 0 = Salida
V
Puerto E 18F4550
L
Pin Functi I/O I/O Type Description
A on
D
RE0/AN RE0 OUT/ DIG/ST Entrada y salida digital
I 5/ IN
M CK1SPP
AN5 IN ANA Entrada A/D canal 5
I
CK1S OUT DIG SPP clock 1 output (SPP enabled).
R PP
RE1/AN RE1 OUT/ DIG/ST Entrada y salida digital
6/ IN
T
CK2SPP
R AN6 IN ANA Entrada A/D canal 6
U CK2S OUT DIG SPP clock 2 output (SPP enabled).
PP
J
RE2/AN RE2 OUT/ DIG/ST Entrada y salida digital
I 7/ IN
L OESPP
AN7 IN ANA Entrada A/D canal 7.
L
OESP OUT DIG SPP enable output (SPP enabled).
O P
MCLR/V MCLR IN ST External Master Clear input; enabled when MCLRE Configuration bit is set.
PP/ RE3
A
VPP IN ANA High-voltage detection, used for ICSP™ mode entry detection. Always available
R regardless of pin mode.
I RE3 IN ST PORTE<3> data input; enabled when MCLRE Configuration bit is clear.
A
S
V
Puerto E 18F4550
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
Diagrama de pines 18F4550
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
Registro ADCON1 18F4550
L
A
D
I
M
I
R

T
R
„ bit 7-6 Sin implementar
U „ bit 5 VCFG0: Referencia de voltaje (VREF- )
1 = VREF- (AN2)
J
„
I
L „ 0 = VSS
bit 4 VCFG0: Referencia de voltaje (VREF + )
L
O „
„ 1 = VREF+ (AN3)
A
R
„ 0 = VDD
I
„ bit 3-0 PCFG3:PCFG0: Configuración de los
A
S
pines para el A/D
V
L
Registro ADCON1 18F452
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
Registro ADCON1 18F4550
L
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
V
Registro CMCON 18F4550
L
A
D
I
M
I
R
„ bit 7 C2OUT: bit de salida del comparador 2
T „ Cuando C2INV = 0:
R „ 1 = C2 VIN+ > C2 VIN
VIN-
U „ 0 = C2 VIN+ < C2 VINWhen
J
„ Caunado C2INV = 1:
I
„ 1 = C2 VIN+ < C2 VIN-
L
„ 0 = C2 VIN+ > C2 VINbit
L
O „ 6 C1OUT: bit de salida del comparador 1
„ Cuando C1INV = 0:
A „ 1 = C1 VIN+ > C1 VIN-
R „ 0 = C1 VIN+ < C1 VINWhen
I „ Cuando C1INV = 1:
A „ 1 = C1 VIN+ < C1 VIN-
S „ 0 = C1 VIN+ > C1 VINbit
V
Registro CMCON 18F4550
L
A
D „ 5 C2INV: Inversión de la salida del Comparador 2
I
„ 1 = C2 salida invertida
M
I „ 0 = C2 salida no invertida
R
„ bit 4 C1INV: Inversión de la salida del Comparador 1
T „ 1 = C1 salida invertida
R
„ 0 = C1 salida no invertida
U
J „ bit 3 CIS: Comparator Input Switch bit
I
„ When CM2:CM0 = 110:
L
L „ 1 = C1 VIN- connects to RA3/AN3/VREF+ C2 VIN- connects
O
to RA2/AN2/VREF-/CVREF
A „ 0 = C1 VIN- connects to RA0/AN0 C2 VIN- connects to

R RA1/AN1
I
A „ bit 2-0 CM2:CM0: Modo de trabajo del comparador
S
Registro CMCON 18F4550
Registro CMCON 18F4550
V
L
El registro de estado
A
D
I
„ El registro de estado se utiliza para
M
I mostrar el estado aritmético de la ALU.
R

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

C DC,
C, DC OV,
OV o N
A
R
I
A
S
El registro
g de estado 18f452 y
V
L
18F4550
A
D
I
M
I
R

BIT 7-5 Sin implementar.


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

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

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

SLEEP
R

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

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

„ 1 = No ha ocurrido un Brown-out Reset.


T
R
U
„ 0 = Ha ocurrido un Brown
Brown-out
out Reset.
Reset
J
I
„ Debe ser puesta en 1 después de que un
L
L
Brown-out
Brown out Reset ocurre.
O

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

Bit 7 GIE/GIEH:
/ Habilitador g
global de
T
R „

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

„ Si IPEN = 0: (Bit 7 RCON)


I
R

„ 1 = Habilita todas las interrupciones de periféricos


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

„ 1 = Habilita todas las interrupciones de periféricos


O

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

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


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

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

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


A
R
Interrupción Externa 0
I „ 1 = Flanco de subida.
A
S „ 0 = Flanco de bajada.
„ Las resistencias pull up se utilizan para forzar a un nivel alto
una entrada de un componente lógico. Sirve por ejemplo
cuando necesitas leer el estado de un interruptor o una tecla.
Cuando la tecla se activa se lleva a un estado lógico
determinado, pero cuando está abierta está "al aire" y los
circuitos lógicos hacen una interpretación indeterminada. La
resistencia pull up fuerza a nivel lógico alto cuando está
abierta y permite que se lleve a nivel bajo al cerrarse sin
producir un cortocircuito.
También 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
„ Bit 5 INTEDG1: Selección del flanco de
M
I la Interrupción Externa 1
R

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

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

Bit 7 INT2IP: Bit de p


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

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

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

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


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

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

T
„ Bit 7-5 Sin implementar
Bit 4 EEIF:
EEIF Bandera
B d d
de interrupción
i t ió por
R
U „
Escritura/Lectura en EEPROM o FLASH
J
I
L
L „ 1 = La operación de escritura se ha completado
O
(debe ser borrada por SW)
A
„ 0 = La operación de escritura no ha terminado o
R
I no se ha iniciado.
A
S
Int. Periféricos. Reg. PIR2
V (18F452)
L
A
D
I
„ Bit 3 BCLIF: Interrupción por colisión en el
M
I
bus
R
„ 1 = Ocurrió una colisión
T „ 0 = No ha ocurrido una colisión.
R
U
J
„ Bit 2 LVDIF: Interrupción por detección de
I
L
bajo voltaje.
L „ 1 = Una
U condición
di ió de
d bajo
b j voltaje
l j ha
h ocurrido
id
O

„ 0 = El voltaje del dispositivo se mantiene por


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

Bit 7 OSCFIF: Bandera indicadora de


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

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

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

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

T
„ Bit 2 CCP1IE: Habilita la interrupción del módulo CCP1.
R „ 1 = Habilita la interrupción
p del CCP1
„ 0 = Deshabilita la interrupción
U
J
I „ Bit 1 TMR2IE: Habilita la interrupción por igualdad de
L TMR2 con PR2.
„ 1 = Habilita la interrupción
L
O
„ 0 = Deshabilita la interrupción.
A
„ Bit 0 TMR1IE: Habilita la interrupción
p por
p rebose de
R
I
TMR1
A „ 1 = Habilita la interrupción de TMR1

„ 0 = Deshabilita la interrupción de TMR1


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

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

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

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


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

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

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

T
R
U
„ Bit 7 OSCFIP: Bit de prioridad de interrupción por
J fallo de oscilador.
I
L
„ 1 = Alta prioridad
L „ 0 = Baja prioridad
O
„ Bit 6 CMIP: Bit de prioridad de interrupción por
comparación analógica.
A
R
I
„ 1 = Alta prioridad.
A
S „ 0 = Baja prioridad.
Prioridad de Int. Reg. IPR2
V (18F4550)
L
A
D
I
„ USBIP: Bit de prioridad interrupción USB.
M
I
„ 1 = Alta prioridad
R
„ 0 = Baja prioridad
T
R
„ Bit 4 EEIP: Prioridad de Interrupción por fin
U
J
de escritura en EPROM/FLASH
I „ 1 = Alta prioridad
L
L „ 0 = Baja prioridad
O
„ Bit 3 BCLIP: Prioridad de Interrupción por
A
R
colisión en Bus de datos.
I
A
„ 1 = Alta prioridad
S „ 0 = Baja prioridad
Prioridad de Int. Reg. IPR2
V (18F4550)
L
A
D „ Bit 2 HLVDIP: Prioridad de Interrupción por
I
M detección de bajo o alto voltaje
I
R
„ 1 = Alta
Alt prioridad
i id d
„ 0 = Baja prioridad
T
R „ Bit 1 TMR3IP: Prioridad de Interrupción
p por
p rebose
U
J
de TMR3
I „ 1 = Alta prioridad
L
L „ 0 = Baja prioridad
Bit 0 CCP2IP: Prioridad de Interrupción de módulo
O
„
A
CCP2
R
I „ 1 = Alta prioridad
A
S
„ 0 = Baja prioridad
Temporizador Timer 0
V
L
18F452, 18F4550
A
D „ Las características que posee el Timer0 son las
I siguientes:
M
I „ Se puede seleccionar un modo de trabajo a 8 o 16
R bits
T
„ Se puede leer y escribir en él.
R
„ Posee un pre escalador propio de 8 bits
bits.
U
J „ Selección de fuente de reloj externa (Pin RA4 T0CKI)
I o interna Fosc/4
L
L „ Genera una interrupción cuando se desborda en
O modo de 8 o 16 bits.
A
„ El timer 0 es controlado por el registro T0CON
R
I
A
S
Temporizador Timer 0 Reg.
Reg T0CON
V
L
18F452, 18F4550
A
D
I
M
I
R

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


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

T
R
U
J
I
L
L
O

A
R
I
A
S
Temporizador
p Timer 0
V
L
18F452, 18F4550
A
D
I
M
I
R

T
R
U
J
I
L
L
O

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

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

transferir los 16 bits a la vez


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

T
R
U
J
I
L
L
O

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

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

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

„ 0 = Oscilador de Timer1 apagado


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

„ 1 = No
N sincronice
i i lal señal
ñ l de
d reloj
l j externa
L
O

„ 0 = Sincronice la señal de reloj externa


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

estabilidad, pero aumenta el tiempo de


L
O

A
arranque del oscilador
R
I
A
S
Temporizador
p Timer 1
V
L
18F452, 18F4550
A
D
I
M
I
R

T
R
U
J
I
L
L
O

A
R
I
A
S
Temporizador
p Timer 2
V
L
18F452, 18F4550
A
D „ El Timer2 se caracteriza por lo siguiente
Un registro TMR2 de 8 bits
I
M „

U registro
Un i t PR2,
PR2 que controla
t l ell máximo
á i
I
R „

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

„ Se escribe en el registro TMR2.


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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Temporizador Timer 3
A

El temporizador Timer3 posee las siguientes


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

T
R
U
J
I
L
L
O

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

„ 1 = Habilita la lectura escritura del Timer3


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

actualiza al leer o escribir en el TMR3L


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

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

T módulo CCP en modo captura y comparación.


R
U „ 01 = Timer3
Ti 3 es la
l fuente
f t de
d reloj
l j para ell
módulo CCP2 y Timer1 es la fuente de reloj
J
I
L
L
para el módulo CCP1
„ 00 = Timer1 es la fuente de reloj para el
O

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

reloj interno o externo con


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

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

T
R
U
J
I
L
L
O

A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
„ El conversor analógico digital posee una
M
I resolución de 10 bits.
R

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

T
R
U
J
I
L
L
O

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

111 = canal 7, (RE2)


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

T
R
U
J
I
L
L
O

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

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

A no se debe poner en 1 al mismo tiempo que


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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

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

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

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


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

T
R
U
J
I
L
L
O

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

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

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

EECON2 (Registro de configuración)


I
L „

EEDATA (Registro de transferencia de


L
O „

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

milisegundos
T
R
U
J
I
„ Debido a que el registro EEADR es de 8
L
L bits la capacidad en EEPROM es de 256
bits,
bytes.
O

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

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

T
„ Poner en 0 el bit EEPGD (bit 7 EECON1)
Poner en 0 el bit CFGS (bit 6 EECON1)
R
U „
J
I
L
„ Poner en 1 el bit RD (bit 0 EECON1)
El dato leído se almacena en el registro
L
O „
A
R
EEDATA
I
A
S
Escritura en la memoria EEPROM
V
L
de datos
A
D „ Para la Escritura en la memoria EEPROM, se escribe
I
M la dirección a acceder en el registro EEADR.
I
R „ Poner en 0 el bit EEPGD (bit 7 EECON1)
T
„ Poner en 0 el bit CFGS (bit 6 EECON1)
R
U
„ Poner en 1 el bit WREN (bit 0 EECON1) con el fin de
J habilitar el acceso en modo escritura.
I
L „ Poner en 1 el bit WR,, para
p comenzar la escritura.
L
O „ El dato leído se almacena en el registro EEDATA
A „ Al finalizar la escritura en la memoria EEPROM, se
R
I
genera una interrupción,
i ió all ponerse ell 1 ell bit
bi EEIF
A del registro PIR2
S
V
L
Modulo CCP
A
D „ El módulo CCP1 y CCP2, consta de 1 registro de
I control CCPxCON y 2 registros de 8 bits auxiliares
M
I
((CCPRxL y CCPRxH)) para
p el manejo
j del módulo.
R „ Los modos de trabajo son captura, comparación y
T
PWM.
R „ Este módulo hace uso de los temporizadores
p
U Timer1, Timer2 y Timer3
J
I
L
L
O

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

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

„ Sistema asíncrono full duplex.


T
R
U
„ Sistema sincrónico half
half-duplex
duplex (Maestro).
(Maestro)
J
I
„ Sistema sincrónico half-duplex (Esclavo).
El módulo USART cuenta con dos
L
L „
O

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

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

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

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

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

decir cuando el bit de parada de un


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

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

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Memoria FLASH de Programa
A
D „ La memoria de programa puede ser leída y escrita
I
M durante el funcionamiento normal.
I
R „ Posee un tamañoñ de 32K Bytes con capacidad para
T
16K Instrucciones
R
„ Durante la escritura o lectura de la memoria de
U
J programa se cesará la búsqueda de instrucciones,
I
L
hasta que la operación este completa.
L
O
„ La memoria de programa no puede ser accedida
durante la lectura o escritura, es por ello que el
A
R
código no puede ser ejecutado.
I
A
S
V
L
Memoria FLASH de Programa
A
D
I
„ Cualquier instrucción inválida que se
M
I escriba, será ejecutada como un NOP
R

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

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

T
R
U
J
I
L
L
O

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

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

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

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

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

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


R

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

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

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

(Borrar es escribir FF).


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

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

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

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

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

„ Almacenar el bloque de 64 bytes donde se


va a modificar los datos,, en la memoria
T
R

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

A „ Cargar el apuntador del programa con la


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

TBLWT+*).
L
O

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


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

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

T
R
U
J
I
L
L
O

A
R
I
A
S
V
L
Modulo USB 18F45550
A
D
I
„ La familia PIC18FX455/X550 posee una
M
I interface USB de full-speed
full speed and low
low-
speed.
R

T
R
U
„ Esta diseñada para permitir la
J
I
comunicación entre cualquier HOST y el
L
L microcontrolador
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

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

T
R
U
J
I
L
L
O

A
R
I
A
S