Professional Documents
Culture Documents
ALTA Y ARQUITECTURAS
MIXTAS
A
R
I
A
S
V
L
Contenido.
A
D CAPITULO 3. Microcontroladores PIC de Gama Alta.
I Familia 18
M
I
Arquitectura
R Capacidades de computo
Memoria
T
R
Periféricos especiales
U Módulos HW
J Set de inst
instrucciones
cciones
I
L CAPITULO 4. Herramientas de programación y
L simulación
O
Lenguaje Ensamblador
A Compiladores C
R Simuladores
S u ado es (MPLAB
( y PROTEUS)
O US)
I
A
S
V
L
Contenido.
A
D
I
CAPITULO 5. Arquitecturas Mixtas
Introducción
M
I
R
T
Sistemas Multiprocesadores
R
U
Arquitecturas Electrónicas Paralelas
J
I
P
Procesadores
d en Sistemas
Si t d
de
L
L
Telecomunicaciones y Sistemas
O
I d ti l
Industriales
CAPITULO 6. Proyecto
y Final.
A
R
I
A
S
Evolución de los Sistemas
V
L
Digitales
g
A
D
I
La aparición del transistor, condujo a su
M
I uso como conmutador (lógica binaria).
R
T
Aparición de técnicas de integración
R
U
electrónica (Microelectrónica), primeros
J
I
circuitos
i it integrados
i t d Digitales.
Di it l
L
L
O
Circuitos Integrados
g Monolíticos
A
R
I
A
S
Evolución de los Sistemas
V
L
Digitales
g
A
D
I
Clasificación:
Según la forma en que se realizan
M
I
físicamente:
R
T
R Según el semiconductor: Silicio, Arseniuro de
U
J
Galio,, Silicio – Germanio
I
L
Según el Transistor: Bipolares, CMOS, BICMOS
L Según
g el número de transistores: SSI,, MSI,, LSI,,
O
VLSI, ULSI y GLSI.
A
R
I
A
S
Evolución de los Sistemas
V
L
Digitales
g
A
D
I
Clasificación:
Según la forma en que se realiza el diseño
M
I
visto p
por el desarrollador:
R
T
R Los Circuitos Integrados Digitales Monolíticos
U
J
((CIDM)) Normalizados
I
L
Los Circuitos Integrados Digitales Monolíticos
L (CIDM) especificados por el usuario.
O
A
R
I
A
S
Evolución de los Sistemas
V
L
Digitales
g
A
D
I
Según el número de transistores:
M
I Nivel de Integración # de # de Año
R Transistores compuertas
T
R
Pequeña
ñ escala de integración
ó SSI 10 a 100 1 a 10 1960
U
J
Mediana escala de integración MSI 100 a 1000 10 a 100 1965
Gran escala de integración LSI 1000 a 10000 100 a 1000 1970
I
L
L
O
Muy Gran escala de integración
VLSI
10K a 100K 1K a 10K 1978
Ultra Gran escala de integración 100K a 1M 10K a 100K 1985
A
R
I
ULSI
A
S
Giga Gran escala de integración
GLSI
>1.000.000 >100.000 1995
Evolución de los Sistemas
V
L
Digitales
g
A
D
I
Circuitos Integrados Digitales
M
I
M
Monolíticos
lí i (CIDM) Normalizados
N li d
R
CIDM normalizados de función fija. Los
T cuales poseen una arquitectura predefinida
y su comportamiento no se puede alterar.
R
U
J
I
(C t d
(Contadores, sumadores,
d etc.)
t )
L
L
CIDM normalizados Programables.
O
Programables
bl ded Arquitectura Fija.
A Programables de Arquitectura Configurable.
R
I
A
S
Evolución de los Sistemas
V
L
Digitales
g
A
D CIDM normalizados Programables de Arquitectura
I
M
Fija Caracterizados por poseer un Hardware
Fija. Hardware, en el
I que las conexiones entre los elementos que lo
R
componen, no pueden ser modificadas. Pueden
T ser Combinacionales
C bi i l o secuenciales.
i l
R
U
Los combinacionales se definen mediante una
J tabla de verdad que rige su comportamiento,
comportamiento
I
L
como el caso de las memorias de acceso aleatorio.
L Los secuenciales p
poseen una CPU,, que
q sigue
g un
programa almacenado en memoria.(Aquí se Hallan
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
Las empresas líderes a nivel mundial, en
M
I
sistemas embebidos de uso general son:
R
INTEL (Microprocesadores)
TEXAS (Microcontroladores y DSP)
T
R
U
J ALTERA (PLD’S
(PLD S, FPGA’S
FPGA S DSP’S)
DSP S)
I
L
L
XILINX (PLD’S, FPGA’S DSP’S)
O
MICROCHIP
C OC (
(Microprocesadores)
d )
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
INTEL.
M
I
R
A nivel de Procesadores producen
T
dispositivos para:
Computadores de escritorio
R
U
J
I
L
Intel Pentium 4 Extreme Edition
L
O
Intel Pentium 4
A Intel Celeron
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
Procesadores para computador de escritorio
M
I Pentium 4 XE Pentium 4 Celeron
R
Hyper-Threading
yp g Hyper-Threading
yp g No Hyper-Threading
yp g
T
R Dos niveles de Caché Un nivel de caché de Un nivel de caché de
U hasta de 2MB hasta 2 MB hasta 256 K
J
H
Hasta 3
3.7
7 Gh
Ghz d
de reloj
l j H
Hasta 3
3.6
6 Gh
Ghz d
de reloj
l j H
Hasta 2
2.8
8 Gh
Ghz d
de reloj
l j
I
L
Bus Frontal de 800 MHz Bus Frontal de 400 MHz
L Bus Frontal de 1066 MHz
O
Tecnología de procesador Tecnología de procesador Tecnología de procesador
A
de 90 nm de 90 nm de 130 nm
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
Computadores Portátiles
M
I
Intel Pentium M
R
Mobile Intel Pentium 4
T
Intel Celeron M
R
U Mobile Intel Celeron
J
I
L
Servidores
L
O
Intel Itanium 2
Intel Xeon Processor
A
R Intel Pentium 4 processor
I
A
S
V
L
Estado del Arte y Tendencias
A
D
Procesadores para computadores portátiles.
I
M
Procesador Intel Intel Intel Celeron M Mobile Intel
I Pentium M Pentium 4 Processor Celeron
R mobile Processor
T
Tecnología
l í de
d Tecnología
l í de
d Tecnología
l í de
d Tecnología
l í de
d
R
procesador de 90 nm procesador procesador de 90 procesador de 130
U
de 90 nm nm nm
J Un nivel
U i l de
d Caché
C hé hasta
h t Un nivel
U i l de
d Un nivel
U i l de
d Caché
C hé Un nivel
U i l de
d Caché
C hé
I de 2MB Caché hasta hasta de 1MB hasta de 256kB
L
de 1MB
L
O Velocidad Velocidad hasta 1.5
15 Velocidad hasta 2.5
25
Velocidad de 2.13 GHz hasta 3.46 GHz velocidad para GHz velocidad para
A
con velocidad para ultra GHz ultra bajo consumo ultra bajo consumo
R
bajo consumo de 1.2 de 1 Ghz de 800 Mhz
I Gh
Ghz
A Bus Frontal de 533 MHz Bus Frontal Bus Frontal de 400 Bus Frontal de 400
S
de 533 MHz MHz MHz
V
L
Estado del Arte y Tendencias
A
D
Procesadores para servidores.
I
M
Intel Pentium 4 con Intel Itanium 2 Permite Intel Xeon Permite
I tecnología Hyper- trabajo multiprocesador trabajo multiprocesador
R Threading o procesador dual o procesador dual
T
R Tecnología de procesador Tecnología de procesador Tecnología de procesador
U de 90 nm de 90 nm de 90 nm
J
I
Un nivel de Caché hasta Tres niveles de Caché 32k, Tres niveles de Caché ??k,
L
de 2MB 256k y hasta de 9MB en el 1M y hasta de 8MB en el
L
nivel 3 nivel 3
O Velocidad hasta 3.46 GHz Velocidad hasta 1.6 GHz Velocidad hasta 3.66 GHz
A
Bus Frontal de 800 MHz Bus Frontal de 400 MHz Bus Frontal de 677 MHz
R
con 128 bits de ancho y con 128 bits de ancho y
I
BW de I/O de 6.4 Ghz BW de I/O de 14 Ghz
A
S
V
L
Estado del Arte y Tendencias
A
D
I
Procesadores para equipos de red.
M
I
Intel IXP4XX que son procesadores utilizados para
R dispositivos de comunicaciones, como
T
en tado es gate
enrutadores, gateways,
a s Cont
Control
ol ind
industrial
st ial y
R aplicaciones de automatización, telemetría e
U
J instrumentación lectores RDIF
instrumentación, RDIF.
I
L Procesadores para equipos Inalámbricas
L
O Intel PCA
PCA. Diseñado funcionar en equipos de
A
comunicaciones móviles, como PDA, celulares y
R equipos similares.
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D Microcontroladores Texas Instruments
I
M
Familia MSP430
I
Poseen un manejo de potencia muy bajo, con
una CPU de tipo RISC de 16 bits
R
T
Estos DSPs son optimizados para
R
U
elaborar equipos portátiles de uso
J
I
personal. l Como
C reproductores
d t
L
L personales de audio, receptores GPS,
equipos médicos portátiles, telefonía
O
T
Optimizados para trabajo en técnicas
R
U
de control digital.
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
PLD (Programable Logic Device)
M
I MAX II (CPLD)
Bajo consumo de energía, alta densidad
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
SPARTAN 3 E (FPGA)
M
I
Posee alrededor de 1.2 millones de
R compuertas
T
R
Tecnología de 90nm
U
J
VIRTEX 4 ((FPGA))
COOL RUNNER (CPLD)
I
L
L
O Soporta voltajes de 1
1.5
5a3
3.3V
3V en sus
A sistemas I/O
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
IP CORE
M
I
R
Herramientas de desarrollo para diseño
T
de controladores
controladores. Y procesadores de
R
U
diversos tipos que corren sobre sus
J
I
plataformas
l t f h
hardware.
d
L
L
O
Processor Central.
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
Microcontroladores de Gama Media de
M
I la familia 16FXXX
R
T
Microcontroladores de Gama Alta de la
R
U
familia 18FXXXX
Procesadores digitales de Señales
J
I
L
L
O
30FXXX
A
R
I
A
S
Conceptos Generales de
V
L
procesadores
A
D EL MICROPROCESADOR.
I
A
R
I
A
S
Conceptos Generales de
V
L
procesadores
A
D
I
MICROCONTROLADOR
M
I
R
Un microcontrolador es un circuito
T
integrado de alta escala de integración
R
U
que incorpora la mayor parte de los
J
I
elementos
l t que conforman
f un
L
L controlador.
O
A
R
I
A
S
Conceptos Generales de
V
L
procesadores
A
D Características:
I
M
Este circuito integrado programable contiene todos los
I
R
componentes de un computador .
No alcanzan el nivel de p
procesamiento de p por ejemplo,
j p , un 8086,,
T aunque poseen la ventaja de poder trabajar sin memoria
R externa .
U
El microcontrolador es un computador dedicado. En su memoria
J
sólo
ól reside
id un programa d destinado
ti d a gobernar
b una aplicación
li ió
I
determinada, una vez programado y configurado el
L
L
microcontrolador solamente sirve para gobernar dicha tarea.
O Es un computador completo,
completo aunque de limitadas prestaciones
prestaciones,
que está contenido en el chip de un circuito integrado y se
A destina a gobernar una sola tarea.
R
I
A
S
Conceptos Generales de
V
L
procesadores
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
DSP Definición
A
D
I
Estrictamente hablando, el término DSP se
M
I
aplica a cualquier chip que trabaje con
R señales representadas de forma digital.
T
R
Un Procesador Digital de Señales es un tipo
U
J
de microprocesador o microcontrolador,
I increíblemente rápido y poderoso para
L
L operaciones repetitivas en las que se realicen
un gran número de sumas y multiplicaciones.
O
A
R
I
A
S
V
L
Que hace a un DSP un DSP?
A
D
I
Capacidad de realizar operaciones de
M
I multiplicación y acumulación (MACs) en
sólo un ciclo de reloj.
R
T
R
U
Manejo de aplicaciones en tiempo real
Arquitectura que soporte un flujo de
J
I
L
L
O
datos a alta velocidad hacia y desde la
A
unidad de cálculo y memoria.
R
I
A
S
V
L
Que hace a un DSP un DSP?
A
D
I
Unidades DMA (Direct Memory Acess)
M
I
R
Generadores de direcciones (DAG’s)
T Mecanismo efectivo de saltos para
ejecución de loops
R
U
J
I
L
Alta velocidad de procesamiento de
L
O
operaciones aritméticas
A
R
I
A
S
Diferencias entre
V
L
Microcontrolador y DSP
A
D
I
Estructura de memoria que poseen.
M
I Cantidad de unidades de ejecución que
R
poseen, (operaciones en paralelo).
El DSP tiene características diseñadas para
T
R
U
J
soportar tareas de altas prestaciones,
I
L
repetitivas y numéricamente intensas.
Microprocesadores de propósito general y
L
O
A
microcontroladores no están especializados
R
I
para ninguna aplicación en especial.
especial
A
S
Requerimientos HW y
V
L
Operaciones Comunes
A
D
I
Los DSP’s tienen en común ciertas
M
I características como:
R
Sumas
T
R
U
Multiplicación
J
I
R t d
Retardos
Manejo de matrices y arreglos de datos.
L
L
O
A
R
I
A
S
Requerimientos HW y
V
L
Operaciones Comunes
A
D
I
La suma y Multiplicación. Requiere
M
I el uso de:
R
Dos operandos
T
R
U
Alto rendimiento.
J
I
Al
Almacenamiento
i t deld l resultado.
lt d
L
L
O
A
R
I
A
S
Requerimientos HW y
V
L
Operaciones Comunes
A
D
I
Manejo de Arreglos
M Búsqueda
Bú d ded valores
l de
d lugares
l consecutivos
i de
d
I
R
memoria
Copia de datos de memoria a memoria
T
R Multiplicación y suma en paralelo.
U
J Acceso múltiple a memoria
I
L
Registros temporales
L
O
Eficiente g
generación de direcciones.
Características especiales como retardos o
A
R
direccionamiento cíclico
I
A
S
V
L
Arquitectura Von Newman
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Arquitectura Hardvard
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Arquitectura
A i Harvard
H d Extendida
E did o Super
S
V Harvard ARChitecture (SHARC).
L
A
D
I
Esta arquitectura incluye una memoria
M
I
d caché
de hé (Reserva),
(R ) la
l cuall es utilizada
ili d
R
para almacenar instrucciones y datos
T que seráná reutilizadas
l d por la l CPU,
liberando así los dos buses de la
R
U
A
R j
ejecutan las instrucciones en caché
I
A
S
Arquitectura
A i Harvard
H d Extendida
E did o Super
S
V Harvard ARChitecture (SHARC).
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Arquitectura
A i Harvard
H d Extendida
E did o Super
S
V Harvard ARChitecture (SHARC).
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Arquitectura
A i Harvard
H d Extendida
E did o Super
S
V Harvard ARChitecture (SHARC).
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Arquitectura Von Newman
V
L
Modificada.
A
D La arquitectura Von Neuman modificada, permite
I
M
múltiple acceso a memoria por instrucción
instrucción,
I valiéndose de un truco simple que consiste en hacer
R
el reloj de acceso a memoria más rápido que el de
T i
instrucciones.
i
R
U
Por ejemplo el DSP32C de Lucent con reloj de 80Mhz,
J tiene un ciclo de instrucción compuesto por cuatro
I
L
estados de máquina. Mientras que el acceso a
L memoria de este DSP es posible realizarlo cada
O
estado
d ded máquina
á i siendo
i d posible
ibl entonces realizar
li
A cuatro accesos a memoria por cada ejecución de
R instrucción
I
A
S
V
L
CPU
A
D
I
CISC Aprox. 80 instrucciones
M
I Arquitectura Von Neuman
R
T
RISC Aprox.
Aprox 30 instrucciones.
instrucciones
R
U
Arquitectura Hardvard
SISC Diseños específicos
í (Controladores
J
I
L
L
O
p
Empotrados o embebidos))
A
R
I
A
S
V
L
Segmentación
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Ortogonalidad
A
D
I
La ortogonalidad de las instrucciones
M
I hace posible ejecutar cualquier
operación, sobre cualquier registro,
R
A
R
I
A
S
V
L
Memoria
A
D RAM. Los datos que manejan los programas varían
I continuamente, y esto exige que la memoria utilizada
M
I
para ello debe ser de lectura y escritura.
R ROM. En este tipo de memoria el programa se graba
T
en el chip durante el proceso de fabricación mediante
R
el uso de máscaras. Se aconseja este tipo de
U memoria cuando se precisan series muy grandes,
J con el fin de disminuir costos de fabricación
fabricación.
I
L OTP. Este modelo de memoria solo puede grabarse
L una vez por parte del usuario, utilizando el mismo
O
procedimiento
di i que con la
l memoriai EPROM.
EPROM
A
Posteriormente no se puede borrar. Su bajo precio y
R la sencillez de la g
grabación aconsejan
j este tipo
p de
I memoria para prototipos finales y series de
A
S
producción cortas.
V
L
Memoria
A
D EPROM. La grabación de esta memoria se realiza mediante
I un dispositivo físico gobernado desde un computador
M personal. En la superficie de la cápsula del microcontrolador
I existe una ventana de cristal por la que se puede someter el
R chip a rayos ultravioletas para producir su borrado y
emplearla nuevamente
nuevamente.
T
R EEPROM. La grabación es similar a las memorias OTP y
U EPROM, pero el borrado se hace eléctricamente. Puede
J puede ser programada y borrada muchas veces
I
L
FLASH. Se trata de una memoria no volátil, de bajo
L
consumo, que se puede escribir y borrar en circuito al igual
O
que las EEPROM
EEPROM, pero suelen disponer de mayor capacidad
que estás ultimas. El borrado sólo es posible con bloques
A completos y no se puede realizar sobre posiciones
R concretas. Son muyy recomendables en aplicaciones
p en las
I que sea necesario modificar el programa a lo largo de la vida
A del producto
S
La Gama Alta de los PIC
(18F452)
V
L
Características Generales
A
D
I
Código compatible con la familia 16 y
M
I 17 de los PIC
R
T
Reloj que puede trabajar por encima de
R
U
10 MIPs.
Uso de
d cristall de
d 40 Mhz.
h
J
I
L
L Cristales de 4 Mhz a 10 Mhz utilizando un
multiplicador de frecuencia PLL.
O
A
R
I
Instrucciones de 16 bits con bus de
A
S
datos de 8 bits.
V
L
Características Generales
A
D
I
Prioridad de interrupciones
M
I
R
Multiplicador hardware de 8 x 8 que
T
funciona en un solo ciclo de máquina.
máquina
Tres pines para manejo de
R
U
interrupciones externas.
J
I
L
L
O
Manejo de niveles de corriente de 25
A mA. en modo fuente y sumidero
R
I
A
S
V
L
Características Generales
A
D
I
Timer 1 de 16 bits, Timer 2 de 8 bits.
M
I
R
Timer 3, (no lo posee la gama media),
T
de 16 bits (65535 conteos)
conteos).
Dos módulos de
R
U
Captura/Comparación/PWM.
ó
J
I
L
L
O
Módulo de comunicación serial con
A soporte para RS-485 y RS-232
R
I
A
S
V
L
Características Generales
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Características Generales
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Oscilador.
LP Cristal de baja potencia.
Se poseen 3 bits XT Cristal resonador de cuarzo
(FOSC2 FOSC1 y
(FOSC2,
FOSC0) para la HS Cristal resonador de alta velocidad
configuración del (por encima de 8 Mhz.)
tipo de oscilador a HS + PLL Cristal de alta velocidad con PLL
utilizar. habilitado.
RC Oscilador RC externo.
RCIO Resistor externo y capacitor con
pin I/O habilitado.
EC Reloj externo.
ECIO Reloj externo con pin I/O
habilitado
V
L
Oscilador en modo HS, XT, LP
A
D
I
M
I
R
T
R
U
J
I
L
L Una capacitancia
p elevada,
O
incrementa la estabilidad del
A oscilador, pero también incrementa
R los tiempos de inicio del oscilador
I
A
interno.
S
Oscilador en modo RC
Con el Oscilador en modo,,
RC, FREC/4 esta disponible
en el pin OSC2.
Si FREC/4
C/ no se necesita,
i se
recomienda utilizar el modo
RCIO para ahorrar
RCIO,
corriente.
El modo RCIO,, es igual
g al
modo RC, con la diferencia
de que el pin OSC2 se
comportat como un pini de
d
I/O normal (RA6).
V
L
Oscilador Externo.
A
D
I Cuando se utiliza el oscilador externo,, se puede
p utilizar el
modo EC, el cual se tiene FREC/4 por el pin OSC2.
M
I
R
También se puede tomar el modo ECIO, para ahorro de
T corriente,
i ell cuall OSC2 queda
d como un pin i de
d propósito
ó i
R
U
general (RA6)
J
I
L
L
O
A
R
I
A
S
PLL
V
L
PLL
A
D
I
El PLL se utiliza solo cuando el oscilador se ha
M
I
configurado
f en modo HS.
R
Si la programación del cristal se ha realizado
T
R
en otro modo, el PLL no se habilita y la
U
J
fuente de reloj directa proviene de OSC1.
I
L
Existe un timer que bloquea el PLL, hasta que
L
O
no se halla logrado por parte de él el
A
enganche al cuádruplo de la frecuencia de
R
I
entrada
entrada.
A
S
V
L
Cambio de Fuente de Reloj.
A
D
I
Los PIC 18Fxx2 permiten cambiar el uso del
M
I
oscilador de alta velocidad, por uno de baja
R velocidad (como el oscilador de 32Khz de
T timer1)) esa selección
l ó se hace
h en ell BIT
OSCSEN del registro de configuración.
R
U
J
I El BIT OSCSEN se selecciona antes de
L
L programar el PIC, para que se pueda producir
el cambio de oscilador.
O
A
R
I
A
S
Registro OSCON
BIT 7 a 1 No utilizados
BIT 0 SCS
SCS: System
S Cl
Clockk Switch
S i h bit
bi
Cuando el BIT OSCSEN este en 0 y T1OSCEN este en 1:
1 = Utilice el oscilador del timer 1.
1
0 = Utilice el oscilador primario.
Si el oscilador del Timer1 no esta habilitado,, cualquier
q escritura
en el BIT SCS es ignorada y se utiliza el oscilador principal
Diagramas de Tiempo de
Transiciones
A
R micro comienza a funcionar con OSC1.
I
A
S
Retardos Considerados al iniciar
V
L
el microcontrolador.
A
D
I
Al iniciar el procesador se definen 3 retardos.
M
I
El primero es dado por el PWRT el cual provee un
R retardo promedio de 72 ms. para la estabilización
T
de la circuitería
ci c ite ía interna.
inte na
R
U
El segundo temporizador es el OST (Oscillator
J Start up Timer) que espera a que el oscilador
Start-up
utilizado se estabilice.
I
L
L
O
La secuencia de retardo es PWR más OST
OST.
A
Al utilizar el PLL, aparece un tercer retardo (TPLL )
R utilizado para esperar que el PLL enganche la
I
A frecuencia de entrada (2 ms típico).
S retardo=PWRT+OST+TPLL
V
L
Fuentes de Reset
A
D
I
La familia PIC18FXXX Posee los siguientes
M
I
tipos de reset:
R
Power-on Reset (POR)
T MCLR Reset Durante el funcionamiento normal
R
U MCLR Reset Durante el modo SLEEP
J
I WDT Reset durante operación normal
L
L Programmable Brown-out Reset (BOR)
O
Instrucción de RESET.
A
R Reset debido al llenado del Stack.
Reset debido al vaciado del Stack.
I
A
S
V
L
Organización de la memoria
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Organización de la memoria
A
D
I
El PIC18FXX2 posee un contador de
M
I programa de 21 bits que permite ubicar
una capacidad de memoria de 2Mega
R
Palabras
T
R
U
J
I
L posiciones
Las i i de
d memoria i mas allá
llá de
d
L
L la memoria física construida se leen
como 0.
O
A
R
I
A
S
V
L
Organización de la memoria
A
D
I
El PIC18F452 posee 32 K Bytes de
M
I memoria FLASH de programa,
agrupados de a 2 Bytes, con el fin de
R
A
El vector de RESET se halla en la
R
I
dirección 0000h y el de interrupciones
A
S
en las posiciones 0008h y 0018h.
V
L
Organización de la memoria
A
D
I Hay un stack de 31 niveles, lo
M que permite tener 31 posibles
I
R
sub rutinas anidadas.
T
Existen
E isten dos vectores
ecto es de
R interrupciones, para manejo de
U interrupciones de alta y baja
J
I
prioridad.
L
L
32K de memoria en pasos de 2
O en dos
dos, para un total de 16K de
palabras. De 7FFF en adelante
A
R
no existe memoria
I i
implementada
l t d físicamente
fí i t y se
A lee como 0.
S
V
L
Organización
g de la memoria (Pila)
A
D
I
El Stack de los PIC18FXX2 posee 31 palabras
M
I
de 21 bits, direccionadas por un apuntador de
R Stack de 5 bits.
T
R
Cada vez que se produce una interrupción o
U
J
un llamada a subrutina, el apuntador del Pila
I se incrementa en 1 y el valor del contador de
L
L programa es almacenado en una de las
palabras de 21 bits.
O
A
R
I
A
S
V
L
Organización
g de la memoria (Pila)
A
D
I
Cuando ocurre una instrucción de tipo return,
M
I
retfie
f o retlw el dato almacenado en la
R posición actual que indica el apuntador de
T programa, es cargado d all contador
d ded
programa y el apuntador de la Pila se
R
U
d
disminuye en 1.
J
I
L
L El apuntador de programa se puede leer y
escribir y la dirección ubicada en el inicio de
O
T
R
BIT 7 STKOVF: Bandera de Pila llena
U
1 = Pila llena o rebosada.
J 0 = Pila sin llenar
BIT 6 STKUNF: Bandera de pila vacía.
I
L
L 1 = Ocurrió un vaciado de la p
pila.
O
0 = No ha ocurrido un vaciado de la pila.
A
R
BIT 5 Sin implementar: Leído como '0'
I BIT 44-0
0 SP4:SP0:
SP4 SP0 Bits
Bit dde dirección
di ió de
d la
l
A
S
pila
V
L
Organización
g de la memoria (Pila)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Organización
g de la memoria (Pila)
A
D La cabecera de la Pila puede ser leída y
I
M
escrita a través de los registros TOSU
escrita, TOSU, TOSH
I y TOSL, que mantienen el contenido
R
apuntado por el registro STKPTR.
T
Después de un call, rcall o una interrupción,
este valor puede ser modificado por SW y
R
U
J
cuando se genere el retorno de la subrutina
subrutina,
se puede dirigir su regreso a un lugar
I
L
L
diferente definido por el usuario. Solo se
debe tener en cuenta deshabilitar las
O
A
R
interrupciones globales.
I
A
S
V
L
Organización
g de la memoria (Pila)
A
D
I El registro
g STKPTR es el apuntador
p
de la Pila.
M
I
R
T
R
El BIT STKFUL indica
i di ell llenado
ll d de
d
U
J
la p
pila y el BIT STKUNF el vaciado
de la pila.
I
L
L
O
C
Cuandod se produce
d un RESET,
S ell
valor del apuntador de la pila es 0.
A
R
I
A
S
V
L
Organización
g de la memoria (Pila)
A
D
Después de que el contador de
programa es almacenado en la pila 31
I
M
I
R
veces, sin extraer ningún valor, el BIT
STKFUL se coloca en 1.1 El BIT STKFUL
es borrado por SW o por un POR.
T
R
U
J (BIT STVREN en 1) Cuando se
almacena una dirección en la posición
I
L
L
O
31 la pila se desborda, se reinicia el
microprocesador, el BIT STKFUL se
coloca en 1 y se mantiene así,, también
A
R
I
A el apuntador de la pila se coloca en 0.
S
V
L
Organización
g de la memoria (Pila)
A
D
(BIT STVREN en 0) cuando se
d b d la
desborda l pila
il ell BIT STKFUL se
I
M
T a escribirse
ibi en la
l pila,
il no
sobrescribe la posición 31, si no
R
U
que se omite,
it y ell registro
i t STKPTR,
STKPTR
J
I
L
L se mantiene apuntando a la
O
posición
ó 31.
3
A
R
I
A
S
V
L
Organización
g de la memoria (Pila)
A
D
Cuando la pila se vacía, la próxima
i t
instrucción
ió que requiera
i extraer
t un
I
M
T contador
t d d de programa y coloca
l ell
BIT STKUNF en 1 hasta que ocurra
R
U
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
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
p
decremento en el apuntador de la pila.
p
A
R
I
A
S
V
L
Contador de Programa
A
D
I
El contador de programa (PC) esta
M
I
conformado
f d por llos registros
i PCL,
PCL PCH
R
y PCU.
T
R
El registro PCL puede ser leído y escrito
U
J
directamente.
Los registros PCH y PCU pueden ser
I
L
L
O leídos y escritos solo a través de los
A registros PCLATH y PCLATU
R
I
A
S
V
L
Temporización / Instrucciones
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Temporización / Instrucciones
A
D La entrada de reloj es dividida internamente
I
M
en cuatro señales desfasadas 900. Q1,
Q1 Q2,
Q2 Q3
I y Q4.
El contador de programa es incrementado
R
T
R
cada flanco subida de Q1.
U
La búsqueda de una instrucción es realizada
d Q1 a Q4, pero es colocada
de l d en ell registro
J
I
L
L
de instrucción cada Q4
O Las instrucciones son decodificadas y
A
ejecutadas en el periodo de tiempo de Q1 a
R Q4.
I
A
S
Instrucciones en la Memoria de
V
L
programa
g
A
D
I
Las instrucciones para el PIC18F452 son
M
I de 16 bits, y su byte menos significativo
es siempre almacenado en una
R
dirección par.
T
R
U
J
I
El BIT menos significativo
i ifi ti del
d l contador
t d
L
L de programa es siempre 0, por lo que el
incremento de las direcciones se hace
O
de dos en dos.
A
R
I
A
S
Instrucciones en la Memoria de
V
L
programa
g
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Instrucciones de 32 bits
A
D
I
Los microcontroladores PIC18FXX2, posee 4
M
I
instrucciones de dos palabras de longitud (32
R bits), ellas son MOVFF, CALL, GOTO y LFSR.
T
R
La segunda palabra de esas instrucciones
U
J
posee los 4 BITS mas significativos en 1 y se
I comporta como un tipo especial de NOP.
L
L
O
Los otros 12 BITS de la segunda palabra
A
contienen los datos a ser utilizados por la
R instrucción.
I
A
S
V
L
Instrucciones de 32 bits
A
D
I
Cuando la primer palabra es ejecutada,
M
I
l datos
los d contenidos
id en la l segunda
d son
R
accedidos.
T
R
Pero si el PC accede primero la segunda
U
J
palabra,, esta se ejecuta
p j como un NOP.
Esto es útil cuando previamente a una
I
L
L
O instrucción de dos palabras,
palabras existe una
A instrucción de salto condicional.
R
I
A
S
V
L
Instrucciones de 32 bits
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Memoria de Datos
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Memoria de Datos
A
D
I
La memoria de datos esta dividida en
M
I 16 bancos, cada uno de 256 Bytes.
R
T
Los bancos 6 al 14 no están
R
U
implementados y se leen como 0.
La zona de FSR se halla localizada en el
J
I
L
L
O
p
banco 15 después de la posición
p F80h
A
(de la mitad hacia el final)
R
I
A
S
V
L
Memoria de Datos (Direccionamiento)
A
D
I
Se pueden identificar 3 formas de
M
I acceder la memoria de programa de los
PIC18FXX2.
R
T
R
U
Direccionamiento indirecto: requiere el uso
J de los registros FSRn (12 BITS) y el
correspondiente registro indirecto INDFn).
I
L
L
O Direccionamiento directo: requiere el uso
A del registro BSR, el cual en sus BITS 0 a 3
contiene la dirección del banco escogido.
escogido
R
I
A
S
V
L
Memoria de Datos (Direccionamiento)
A
D Otra forma de direccionamiento directo es:
Para asegurar que los registros (SFR Y GPR) sean
I
M
I accedidos en un solo ciclo de instrucción,
R
independiente del Banco apuntado por el registro
T
BSR Existe el ACCESS BANK,
BSR, BANK el cual esta formado
R por una parte del banco 0 y un segmento del
U banco 15
Un BIT en la instrucción especifica si la operación
J
I
L a utilizar se hace a través del ACCESS BANK o con
L
el registro
g BSR,, a ese BIT se le denomina “a”
O
(access bit) por defecto vale 0 y apunta al ACCESS
A BANK
R
I
A
S
V
L
Memoria de Datos (Registros FSR)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Memoria de Datos (Registros FSR)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
El registro BSR
A
D El registro BSR<3:0> contiene los 4 bits mas
I
M
significativos de los 12-BITS de direcciones de la
I memoria RAM y se utilizan para seleccionar el banco
R
de trabajo.
T Los BITS BSR<7:4> se leen como ’0’s.
R
U La instrucción MOVLB se utiliza para ayudar en la
J
I
selección del banco
banco.
L La instrucción MOVFF ignora el registro BSR, ya que
L
O
los 12
12-BITS
BITS de dirección se hayan incluidos en la
instrucción.
A
R Cada banco posee un tamaño de 256 bytes.
I
A
S
V
L
Direccionamiento Indirecto.
A
D
El direccionamiento indirecto se realiza
utilizando dos registros,
registros el FSRn y el INDFn.
INDFn
I
M
I
R El registro FSR es utilizado como un puntero
T
a una localidad de memoria que va a ser
R
U
escrita o leída.
J
I
El direccionamiento indirecto es posible
L utilizando el registro INDF, ya que cualquier
instrucción que lo utilice,
utilice accede
L
O
A
directamente a la posición de memoria
R apuntada por FSR.
I
A
S
V
L
Direccionamiento Indirecto.
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Multiplicador Hardware
A
D
I
El multiplicador HW que se posee es de 8
M
I
bits.
R
El resultado se almacena en dos registros
T
R
PRODH y PRODL
U
J
La multiplicación de 8x8 se realiza en 1 ciclo
I
L
de instrucción.
El multiplicador HW permite a este dispositivo
L
O
A
realizar operaciones en las que se usa DSPs
R
I
A
S
V
L
Puertos
A
D
Los puertos de los PIC de la familia 18 en
general constan de 3 registros para su
I
M
I
R
operación.
T
El registro TRIS,
TRIS el cual controla la dirección
R
U
de funcionamiento del puerto.
J
I
El registro PORT,
PORT que lee los niveles de
L entrada en el puerto.
L
O El registro LAT
LAT, el cual es el LATCH de salida
A del puerto.
R
I
A
S
V
L
Puertos
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Puerto A
A
D Este puerto se comporta como I/O digital y como
I entrada analógica
M
I El registro TRISA, configura este puerto como
R entrada o salida.
T
Si un pin
i se va a utilizar
tili como canall analógico,
ló i
R previamente se debe haber configurado como
U entrada en TRISA
J
I Existe el registro LATA, que permite el acceso I/O al
L latch del puerto.
El pin RA4 es de colector abierto
abierto.
L
O
T
RA1/AN1 TTL Pin I/O ó entrada analógica 1
R RA2/AN2 TTL Pin I/O ó entrada analógica 2
U
/
RA3/AN3 TTL Pin I/O
/ ó entrada analógica
g 3
J
I RA4/T0CKI Colector Abierto Pin I/O ó entrada del timer 0, con entrada
L tipo Schmit Trigger
L
RA5/AN4
/ TTL Pin I/O
/ ó entrada analógica
g 4
O
RA6/OSC2/CLKO TTL Entrada del oscilador 2, o salida de frecuencia
A de reloj.
R
I
A
S
Puerto A (18f4520)
RA0/AN0 TTL/ANA I/O digital o entrada analógica, LATA<0> no afectado por entrada digital
RA1/AN1 TTL/ANA I/O digital o entrada analógica, LATA<1> no afectado por entrada digital
RA2/AN2/VREF-/CVREF TTL/ANA I/O digital o entrada analógica, LATA<2> no afectado por entrada digital
RA3/AN3/VREF+ TTL/ANA I/O digital o entrada analógica, LATA<3> no afectado por entrada digital
T
R
U
J
I
L
L
O
A
R
I
A
S
Registros
g asociados con PORTA
Registros asociados con PORTA
(18F4520)
V
L
Puerto B
A
PIN Tipo Entrada Función
D
I
RB0/INT0 TTL, Schmit Trigger Pin I/O ó entrada de interrupción
M
para la
l Interrupcion
I t i Externa 0.
I RB1/INT1 TTL, Schmit Trigger Pin I/O ó entrada de interrupción
R para la Interrupcion Externa 1.
RB2/INT2 TTL, Schmit Trigger Pin I/O ó entrada de interrupción
T
R
para la Interrupcion Externa 2.
U RB3/CCP2 TTL, Schmit Trigger Pin I/O ó pin del módulo CCP2, cuando
J para modo
d CCP2 ell bit CCP2MX esta
t en 1
I
RB4 TTL Pin I/O, y entrada de interrupción por
L
cambio de estado en PORTB.
L
O RB5/PGM TTL, Schmit Trigger
TTL Pin I/O,
I/O y entrada de interrupción por
para prog. Serial cambio de estado en PORTB.
A RB6/PGC TTL, Schmit Trigger Pin I/O, y entrada de interrupción por
R
para prog.
prog Serial cambio
ca b o de estado en
e PORTB.
O
I
A
RB7/PGD TTL, Schmit Trigger Pin I/O, y entrada de interrupción por
para prog. serial cambio de estado en PORTB.
S
V
L
Puerto B
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Puerto B
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Puerto C
A
D PIN Tipo Entrada Función
I
RC0/T1OSO/T1CKI TTL Schmit Trigger
TTL, Pin I/O ó salida del oscilador de timer1 o
M
entrada de reloj
I
R
RC1/T1OSI/CCP2 TTL, Schmit Trigger Pin I/O ó Salida del módulo CCP2
RC2/CCP1 TTL Schmit Trigger
TTL, Pin I/O ó pin del módulo CCP1
T
R
RC3/SCK/SCL TTL, Schmit Trigger Pin I/O ó utilizado para el reloj serial de los
módulos SPI e I2C
U
J RC4/SDI/SDA TTL Schmit Trigger
TTL, Pin I/O o entrada de datos para SPI o I/O
I para I2C
L RC5/SDO TTL, Schmit Trigger Pin I/O, o salida del puerto serial síncrono
L
O
RC6/TX/CK TTL Schmit Trigger
TTL, Pin I/O o TX del módulo USART
RC7/RX/DT TTL, Schmit Trigger Pin I/O o RX del módulo USART
A
R
I
A
S
V
L
Puerto C
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Puerto D
A
D PIN Tipo Entrada Función
I
RD0/PSP0 TTL Schmit Trigger
TTL, Pin I/O ó puerto paralelo esclavo bit 0
M
I RD1/PSP1 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 1
R
RD2/PSP2 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 2
T RD3/PSP3 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 3
R
U
J
RD4/PSP4
/ TTL,, Schmit Trigger
gg Pin I/O
/ óp
puerto p
paralelo esclavo bit 4
I
L RD5/PSP5 TTL, Schmit Trigger Pin I/O, ó puerto paralelo esclavo bit 5
L
RD6/PSP6 TTL Schmit Trigger
TTL, Pin I/O ó puerto paralelo esclavo bit 6
O
RD7/PSP7 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 7
A
R
I Todos los pines son schimit trigger cuando se trabaja como puerto paralelo esclavo
A
S
V
L
Puerto D
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Puerto E
A
D PIN Tipo Entrada Función
I
RE0/RD/AN5 TTL, Schmit Trigger
TTL Pin I/O Pin de control del puerto paralelo
M
Para control de puerto esclavo y entrada A/D.
I
paralelo esclavo BIT RD
R
1 = No lectura.
T 0 = Lee PORTD si CS es 1.
R RE1/WR/AN6 TTL, Schmit Trigger Pin I/O Pin de control del puerto paralelo
U
Para control de puerto esclavo y entrada A/D.
J paralelo
l l esclavo
l BIT WR
I
1 = No escritura
L
0 = Escribe en PORTD si CS es 1
L
O RE2/CS/AN7 TTL, Schmit Trigger
TTL Pin I/O Pin de control del puerto paralelo
Para control de puerto esclavo y entrada A/D.
A paralelo esclavo BIT CS
R 1 = Dispositivo no seleccionado
I 0 = Dispositivo no seleccionado
A
S
V
L
Puerto E
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Registro TRISE
A
D
I
M
I
R
Bit 7 IBF: Bit de Buffer de entrada lleno
T
R 1 = Una palabra ha sido recibida y espera ser
U
J
leída.
e da
I
L
0 = Ninguna palabra recibida.
L
O Bit 6 OBF: Bit de Buffer de salida lleno
lleno.
A 1 = El buffer mantiene una palabra escrita
R
previamente.
I
A 0 = El buffer de salida ha sido leído.
S
V
L
Registro TRISE
A
D Bit 5 IBOV: Rebose del Buffer de entrada.
I
M 1 = Ha
H ocurridoid una escritura,
it cuando
d una palabra
l b previa
i no
I ha sido leída. (debe ser clareado por SW)
R
0 = No ha ocurrido un desborde
Bit 4 PSPMODE: Selección del puerto paralelo
T
R
U
esclavo
J
I 1 = Modo puerto paralelo esclavo.
L
L
0 = Modo general de I/O
O
bit 3 Sin Implementar
A
R
bit 2,1 y 0 TRISE: Bits de control de dirección.
I 1 = Entrada
d
A
S
0 = Salida
V
L
El registro de estado
A
D
I
El registro de estado se utiliza para
M
I mostrar el estado aritmético de la ALU.
R
T
Se recomienda utilizar solamente las
R
U
instrucciones BCF, BSF, SWAPF, MOVFF
J
I
y MOVWF para cambiarbi ell contenido
t id del
d l
L
L registro de estado, ya que estas
instrucciones no alteran las banderas Z,
O
A 1 = Resultado negativo.
R
I 0 = Resultado positivo
positivo.
A
S
V
L
El registro de estado
A
D
I
BIT OV: BIT de desbordamiento. Este bit es
M
I
utilizado para aritmética
é con signo
R (complemento a 2).
T 1 = Desborde ocurrió
R
U 0 = No ocurrió un desborde
J
I
L
BIT 2 Z: Bit de 0
L 1 = El resultado de una operación
p aritmética o
O
lógica es 0.
A
R 0 = El resultado de una operación aritmética o
I
A
lógica no es 0.
S
V
L
El registro de estado
A
D
I
BIT 1 DC: carry del cuarto al quinto bit.
M
I
Funciona con ADDWF, ADDLW, SUBLW, y SUBWF
R
1 = Hay carry del 4 al 5 bit.
T
0 = No hay carry del 4 al 5 bit
R
U
J
BIT 0 C: Bit de carry.
y
I
L
Funciona con ADDWF, ADDLW, SUBLW, y SUBWF
L
O
1 = Ocurrió carryy
0 = No Ocurrió carry
A
R
I
A
S
V
L
Registro RCON (Reset Control)
A
D
I
M
I
R
T
R
BIT 7 IPEN: Bit que habilita la prioridad en las
U interrupciones.
1 = Prioridad en interrupciones habilitada.
J
I
L
L
0 = Prioridad en interrupciones deshabilitada.
O BIT 6
6-5
5 Sin implementar
A BIT 4 RI: Bandera de la instrucción RESET
1 = La instrucción RESET no ha sido ejecutada.
ejecutada
R
I
A 0 = La instrucción RESET fue ejecutada.
S
V
L
Registro RCON (Reset Control)
A
D
I
BIT 3 TO: Bandera del Perro Guardián.
1 = Después de un power-up, CLRWDT, o
M
I
SLEEP
R
T
R 0 = A WDT reset ocurrió
U
J
I
BIT 2 PD: Bandera de detección de
L
L apagado del procesador.
O
1 = Después de un power-up o CLRWDT.
A
R
I
0 = Debido a la ejecución de la instrucción
A SLEEP.
S
V
L
Registro RCON (Reset Control)
A
D
I
BIT 1 POR: Bit de estado de Power-on Reset
M
I
1 = Un Power-on Reset no ha ocurrido
R
0 = Un Power-on Reset ocurrió
T
Debe ser colocado en 1 después de que un Power-
R
U on Reset ha ocurrido)
J
I BIT 0 BOR: Bit de estado de un Brown-out
Reset (Bajón de voltaje)
L
L
O
1 = Un Brown-out Reset no ha ocurrido.
A
R 0 = Un Brown-out Reset ocurrió.
Debe ser colocado en 1 después de que un
I
A
S
Brown-out Reset ha ocurrido)
V
L
Interrupciones
A
D
I
Los microcontroladores de gama alta
M
I
poseen niveles
i l de d interrupción.
i ió
R
El vector de alto nivel de interrupciones
p
T
R
se halla en la posición 0x08h y el de
U
J
j prioridad
baja p en la posición
p 0x18h.
Una interrupción de alta prioridad,
I
L
L
O interrumpe la ejecución de una de baja
A prioridad.
R
I
A
S
V
L
Interrupciones
A
D Los registros asociados con el manejo de
I
M
interrupciones son los siguientes:
I
RCON
R
INTCON, INTCON2, INTCON3, que en general,
T
R
manejan las interrupciones externas y de TIMER 0.
U PIR1, PIR2, que manejan las banderas que activan
las interrupciones debidas a periféricos.
é
J
I
L
L
PIE1, PIE2, que son los registros habilitadores de las
O interrupciones de periféricos
A
IPR1, IPR2, que activan los niveles de prioridad de
R p
las interrupciones.
I
A
S
V
L
Interrupciones
A
D Cada fuente de interrupción, a excepción de INT0,
I
M
posee 3 bits para su control.
control
I Una bandera que indica que la interrupción ocurrió.
R
Bit habilitador de la interrupción
T Bit que permite asignar el nivel de prioridad de la
R interrupción.
U
J Nota: Se recomienda no utilizar la instrucción
I
L
MOVFF, para modificar alguno de los registros de
L control, mientras las interrupciones estén habilitadas,
O ya que esto
t puede
d generar di disparos de
d
A
interrupciones aleatorios.
R
I
A
S
V
L
Interrupciones. Registro RCON
A
D
I
M
I
R
T
R Bit IPEN: Bit habilitador de niveles de
prioridad de las interrupciones.
interrupciones
U
J
I
L
L
1 = Habilita los niveles de prioridad de las
O interrupciones
interrupciones.
A
R
0 = Deshabilita los niveles de prioridad de
I
A
l interrupciones.
las i i
S
V
L
Interrupciones. Registro RCON
A
D
I
bit 6-5 Sin implementar
M
I bit 4 RI: bit indicador de que se generó una
R
instrucción de RESET.
T
R
1 = La instrucción RESET no se ha ejecutado.
U
J
0 = La instrucción RESET se ejecutó
j
I
L
bit 3 TO: bit de rebose del Watchdog
L
O
1 = Después del encendido
encendido, instrucción CLRWDT
o instrucción SLEEP.
A
R 0 = Haa ocurrido
ocu do unu rebose
ebose del
de WDT
I
A
S
V
L
Interrupciones. Registro RCON
A
D
I
bit 2 PD: Bit de detección de ausencia de
M
I
voltaje.
R
1 = Después del encendido o por el uso de la
T instrucción
ó CLRWDT.
R
U 0 = Por la ejecución de la instrucción SLEEP.
J
I bit 1 POR: Bit de estado del Power-on Reset.
L
L 1 = Un Power-on Reset no ha ocurrido.
O
0 = Un Power-on Reset ocurrió. Debe ser puesta
A
R
en 1 después de que un Power-on Reset occurre.
I
A
S
V
L
Interrupciones. Registro RCON
A
D
I
bit 0 BOR: bit de estado de Brown-out
M
I Reset. (Disminución del nivel de voltaje)
R
1 = No ha ocurrido un Brown
Brown-out
out Reset.
T
R
U
0 = Ha ocurrido un Brown-out Reset.
J
I
D b ser puesta
Debe t en 1 d
después
é dde que un
L
L
Brown-out Reset ocurre.
O
A
R
I
A
S
I t
Interrupciones.
i R
Registro
i t INTCON
V (18F452, 18F4520)
L
A
D
I
M
I
R
interrupciones.
U
J
I
L Si IPEN = 0: (Bit 7 RCON)
L
O
1 = Habilita todas las interrupciones sin máscara
0 = Deshabilita todas las interrupciones
A
R Si IPEN = 1: ((Bit 7 RCON))
I
A
1 = Habilita todas las interrupciones de alta prioridad.
S 0 = Deshabilita todas las interrupciones.
Interrupciones Registro INTCON
Interrupciones.
V (18F452, 18F4520)
L
A
D Bit 6 PEIE/GIEL: Habilitador de Interrupciones de
periféricos
I
M
A de baja prioridad.
0 = Deshabilita todas las interrupciones de
R
I
A periféricos de baja prioridad
S
Interrupciones Registro INTCON
Interrupciones.
V (18F452, 18F4520)
L
A
D Bit 5 TMR0IE: Interrupción de rebose de TMR0
1 = Habilita la interrupción por rebose de TMR0.
TMR0
I
M
I 0 = Deshabilita la interrupción por rebose de TMR0.
R
Bit 4 INT0IE: Interrupción
p Externa INT0
1 = Habilita la INT0
T
R
U 0 = Deshabilita la INT0
J
I
Bit 3 RBIE: Interrupción por cambio de estado en PORTB
L
1 = Habilita la interrupción por cambio de estado en
PORTB
L
O
T
Bit 7 RBPU: Bit habilitador de las
resistencias Pull-up.
R
U
J
1 = Todas
T d lasl resistencias
i t i pull-ups
ll
deshabilitadas.
I
L
L
0 = Las resistencias ppull-ups
p estan habilitadas.
O
1 = Flanco de subida.
T
R
U
0 = Flanco de bajada.
J
I Bit 4 INTEDG2:
INTEDG2 Selección
S l ió del
d l flanco
fl de
d
la Interrupción Externa 2
L
L
O
A
1 = Flanco de subida
R
I
0 = Flanco de bajada.
bajada
Bit 3 Sin Implementar
A
S
Interrupciones Reg.
Interrupciones. Reg INTCON2
V (18F452, 18F4520)
L
A
D
Bit 2 TMR0IP: Bit de prioridad de la
interrupción por rebose de TMR0.
TMR0
I
M
I
R 1 = Alta prioridad
T
0 = Baja prioridad
R
U
Bit 1 Sin implementar
J
I
Bit 0 RBIP:
RBIP Bit de
d prioridad
i id d de
d la
l interrupción
i t ió
L
L
de cambios de estado en PORTB
O 1 = Alta prioridad.
prioridad
A 0 = Baja prioridad.
R
I
A
S
Interrupciones Reg.
Interrupciones. Reg INTCON3
V (18F452, 18F4520)
L
A
D
I
M
I
R
0 = No ha ocurrido INT1
A
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR1
V (18F452, 18F4520)
L
A
D
I
M
I
R
T
Bit 7 PSPIF(1): Bandera de interrupción de
R lectura/escritura del puerto paralelo esclavo.
U
1 = Una operación de lectura o escritura ha
J
I
ocurrido.(debe
d (d b ser borrada
b d por SW))
L 0 = No ha ocurrido lectura o escritura.
Bit 6 ADIF: Bandera de interrupción por fin de
L
O
conversión del A/D
A
R
1 = Conversión A/D completa (Debe ser borrada por
I SW)
A
0 = La conversión A/D esta incompleta.
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR1
V (18F452, 18F4520)
L
A
D
Bit 5 RCIF: Bandera de interrupción por
recepción en el USART.
USART
I
M
I
R 1 = El buffer de recepción, RCREG, esta lleno
(Debe ser borrada por SW)
T
R 0 = El buffer de RX del USART esta vacío.
Bit 4 TXIF: Bandera de interrupción por TX
U
J
I
L
del USART
L
O
1 = El buffer de TX del USART (TXREG), esta
vacío (Se borra cuando se escribe en TXREG)
0 = El buffer de TX del USART esta lleno.
A
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR1
V (18F452, 18F4520)
L
A
D
I
Bit 3 SSPIF: Bandera de interrupción
M
I del puerto serial síncrono
R
A
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR1
V (18F452, 18F4520)
L
A
D Bit 2 CCP1IF: Bandera de interrupción del
I
M
módulo CCP1
CCP1.
I Modo Captura:
R
1 = Se ha producida la captura del valor de TMR1 (debe
T
ser borrada
b d por SW)
R 0 = No ha ocurrido una captura de TMR1.
U
J
Modo Compara:
p
I 1 = Se ha dado una comparación con TMR1 (debe ser
L borrada por SW)
L
0 = No ha ocurrido una comparación
p con TMR1.
O
Modo PWM:
A
No utilizado en este modo.
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR1
V (18F452, 18F4520)
L
A
D
Bit 1 TMR2IF: Se ha producido una igualdad
entre TMR2 y PR2.
PR2
I
M
I
R 1 = Ha ocurrido una igualdad entre TMR2 y PR2
(debe ser borrada por SW)
T
R 0 = No hay igualdad entre TMR2 y PR2
Bit 0 TMR1IF: Bandera de interrupción por
U
J
I
L
rebose de TMR1.
L
O
1 = El TMR1 se ha rebosado (debe ser borrada
por SW)
0 = El TMR1 no se ha rebosado
A
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR2
V (18F452)
L
A
D
I
M
I
R
T
Bit 7
7-5
5 Sin implementar
Bit 4 EEIF: Bandera de interrupción por
R
U
Escritura/Lectura
/ en EEPROM o FLASH
J
I
L
L 1 = La operación de escritura se ha completado
O
(d b ser borrada
(debe b d por SW)
S )
A
0 = La operación de escritura no ha terminado o
R
I no se
ehha iniciado.
ini i do
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIR2
V (18F452)
L
A
D
I
Bit 3 BCLIF: Interrupción por colisión en el
M
I
bus
R
1 = Ocurrió una colisión
T 0 = No ha ocurrido una colisión.
R
U
J
Bit 2 LVDIF: Interrupción
p por
p detección de
I
L
bajo voltaje.
L 1 = Una condición de bajo j voltaje
j ha ocurrido
O
T
PSPIE(1): Habilita la interrupción de
R
U
lectura/escritura del puerto paralelo esclavo
J 1 = Habilita la interrupción
I
L 0 = Deshabilita la interrupción.
L
O
Bit 6 ADIE:
ADIE Habilita
H bilit la
l interrupción
i t ió por fin
fi
A de conversión del A/D.
R
I 1 = Habilita la interrupción
ó del A/D.
A
S 0 = Deshabilita la interrupción del A/D.
Int Periféricos
Int. Periféricos. Reg
Reg. PIE1
V (18F452, 18F4520)
L
A
D
I
Bit 5 RCIE: Habilita la interrupción por
M
I recepción del módulo USART.
R
1 = Habilita la interrupción
T
R
U
0 = Deshabilita la interrupción
J
I Bit 4 TXIE:
TXIE Habilita
H bilit la
l interrupción
i t ió por
transmisión del módulo USART
L
L
O
A
1 = Habilita la interrupción
R
I
0 = Deshabilita la interrupción
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIE1
V (18F452, 18F4520)
L
A
D Bit 3 SSPIE: Habilita la interrupción del puerto serial
I síncrono.
1 = Habilita la interrupción del MSSP
M
I
R 0 = Deshabilita la interrupción del MSSP
T
Bit 2 CCP1IE: Habilita la interrupción del módulo CCP1.
CCP1
R 1 = Habilita la interrupción del CCP1
0 = Deshabilita la interrupción
U
J
I Bit 1 TMR2IE: Habilita la interrupción por igualdad de
L TMR2 con PR2.
1 = Habilita la interrupción
L
O
0 = Deshabilita la interrupción.
A
Bit 0 TMR1IE: Habilita la interrupción por rebose de
R
I
TMR1
A 1 = Habilita la interrupción de TMR1
T
Bit 7-5 Sin implementar
R Bit 4 EEIE: Habilita la interrupción por fin
U
J
de escritura en memoria EEPROM/FLASH.
I
L
1 = Habilitada
L 0 = Deshabilitada
O
Bit 3 BCLIE: Habilita la interrupción por
A
R
colisión de datos en el BUS
I 1 = Habilitada
H bilit d
A
S
0 = Deshabilitada
Int Periféricos
Int. Periféricos. Reg
Reg. PIE2
V (18F452)
L
A
D Bit 2 LVDIE: Habilita la Interrupción por detección
I de bajo voltaje.
M
I
1 = Habilitada
R 0 = Deshabilitada.
Bit 1 TMR3IE: Habilita la interrupción por desborde
de TMR3.
T
R
U 1 = Habilita la interrupción
J
I
0 = Deshabilita
h b l la l interrupción
ó
L Bit 0 CCP2IE: Habilita la interrupción del módulo
L
CCP2
O
1 = Habilita la interrupción
A 0 = Deshabilita la interrupción
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIE2
V (18F4520)
L
A
D
I
M
I
R
T
R
U
Bit 7 OSCFIE: Bit habilitador de interrupción por fallo
J de oscilador
I
L
1 = Habilitado
L 0 = deshabilitado
O
Bit 6 CMIE: Bit habilitador de interrupción por
comparación
A
R
I
1 = Habilitado
A
S 0 = Deshabilitado
Int Periféricos
Int. Periféricos. Reg
Reg. PIE2
V (18F4520)
L
A
D
I
Bit 5 Sin implementar se lee como ‘0’
M
I
Bit 4 EEIE: Habilita la interrupción
ó por fin
f de
R escritura en memoria EEPROM/FLASH.
T 1 = Habilitada
H bilit d
R
U
0 = Deshabilitada
J
I
Bit 3 BCLIE:
BCLIE Habilita
H bilit la
l interrupción
i t ió por
L
L
colisión de datos en el BUS
O 1 = Habilitada
A 0 = Deshabilitada
R
I
A
S
Int Periféricos
Int. Periféricos. Reg
Reg. PIE2
V (18F4520)
L
A
D Bit 2 HLVDIE: Habilita la Interrupción por detección
I
M de alto o bajo voltaje.
voltaje
I
R
1 = Habilitada
0 = Deshabilitada.
Deshabilitada
T
R Bit 1 TMR3IE: Habilita la interrupción por desborde
U
J
de TMR3.
I 1 = Habilita la interrupción
L
L 0 = Deshabilita la interrupción
Bit 0 CCP2IE: Habilita la interrupción del módulo
O
A
CCP2
R
I 1 = Habilita
H bili lal interrupción
i ió
A
S
0 = Deshabilita la interrupción
Prioridad de Int.
Int Reg.
Reg IPR1
V (18F452, 18F4520)
L
A
D
I
M
I
R
0 = Baja prioridad
A
R
I
A
S
Prioridad de Int.
Int Reg.
Reg IPR2
V (18F452)
L
A
D
I
M
I
R
T
Bit 7-5 Sin implementar
R Bit 4 EEIP: Prioridad de Interrupción por fin
U
J
de escritura en EPROM/FLASH
I
L
1 = Alta prioridad
L 0 = Baja prioridad
O
Bit 3 BCLIP: Prioridad de Interrupción por
A
R
colisión en Bus de datos.
I 1 = Alta
Alt prioridad
p io id d
A
S
0 = Baja prioridad
Prioridad de Int.
Int Reg.
Reg IPR2
V (18F452)
L
A
D Bit 2 LVDIP: Prioridad de Interrupción por
I
M
detección de bajo voltaje
I 1 = Alta prioridad
R
0 = Baja
j prioridad
p
T
R
Bit 1 TMR3IP: Prioridad de Interrupción por
U rebose de TMR3
J
I 1 = Alta prioridad
L
L
0 = Baja prioridad
O Bit 0 CCP2IP: Prioridad de Interrupción de
A módulo CCP2
R
I
1 = Alta prioridad
A 0 = Baja prioridad
S
Prioridad de Int.
Int Reg.
Reg IPR2
V (18F4520)
L
A
D
I
M
I
R
T
R
U
Bit 7 OSCFIP: Bit de prioridad de interrupción por
J fallo de oscilador.
oscilador
I
L
1 = Alta prioridad
L 0 = Baja
j prioridad
p
O
Bit 6 CMIP: Bit de prioridad de interrupción por
comparación analógica.
A
R
I
1 = Alta prioridad.
A
S 0 = Baja prioridad.
Prioridad de Int.
Int Reg.
Reg IPR2
V (18F4520)
L
A
D
I
Bit 5 Sin implementar
M
I
Bit 4 EEIP: Prioridad de Interrupción
ó por fin
f
R de escritura en EPROM/FLASH
T 1 = Alta
Alt prioridad
i id d
R
U
0 = Baja prioridad
J
I
Bit 3 BCLIP:
BCLIP Prioridad
P i id d de
d Interrupción
I t ió por
L
L
colisión en Bus de datos.
O 1 = Alta prioridad
A 0 = Baja prioridad
R
I
A
S
Prioridad de Int.
Int Reg.
Reg IPR2
V (18F4520)
L
A
D Bit 2 HLVDIP: Prioridad de Interrupción por
I
M detección de bajo o alto voltaje
I
R
1 = Alta prioridad
0 = Baja prioridad
T
R Bit 1 TMR3IP: Prioridad de Interrupción por rebose
U
J
de TMR3
I 1 = Alta prioridad
L
L 0 = Baja prioridad
Bit 0 CCP2IP: Prioridad de Interrupción de módulo
O
A
CCP2
R
I 1 = Alta
Al prioridad
i id d
A
S
0 = Baja prioridad
V
L
Memoria FLASH de Programa
A
D La memoria de programa puede ser leída y escrita
I
M durante el funcionamiento normal.
normal
I
R Posee un tamaño de 32K Bytes con capacidad para
T
16K Instrucciones
R
Durante la escritura o lectura de la memoria de
U
J programa se cesará la búsqueda de instrucciones,
instrucciones
I
L
hasta que la operación este completa.
L
O
La memoria de programa no puede ser accedida
durante la lectura o escritura, es por ello que el
A
R
código no puede ser ejecutado.
I
A
S
V
L
Memoria FLASH de Programa
A
D
I
Cualquier instrucción inválida que se
M
I escriba, será ejecutada como un NOP
R
T
Ya que la memoria de programa es de
R
U
16 bits de ancho y la RAM tiene 8 bits;
J
I
l instrucciones
las i t i TBLRD (Lectura)
(L t ) y
L
L TBLWT (escritura), mueven datos
entre esas dos memorias, utilizando el
O
g
registro TABLAT.
A
R
I
A
S
V
L
Memoria FLASH de Programa
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Registro EECON1 y EECON2
A
D
I
El registro EECON1 es el registro de
M
I control de acceso a memoria FLASH o
EEPROM.
R
T
R
U
El registro EECON2 no existe
J
I
fí i
físicamente,
t y solo
l se utiliza
tili en
L
L operaciones de escritura o borrado de
la memoria.
O
A
R
I
Cualquier lectura a EECON2,
EECON2 obtiene
A
S
como resultado un 0.
V
L
Registro EECON1 (Dir. 0FA6h )
A
D
I
M
I
R
T
BIT 7 EEPGD: Bit de selección de la
memoria FLASH o EEPROM.
R
U
J
I
1 = El acceso es a la
l memoria
i FLASH.
FLASH
L 0 = El acceso es a la memoria EEPROM.
BIT 6 CFGS: Acceso a memoria FLASH/EE o
L
O
A
registros de configuración.
R 1 = Acceso a los registros
g de configuración
g
I
A
0 = Acceso a la memoria FLASH o EEPROM.
S
V
L
Registro EECON1 (Dir. 0FA6h )
A
D BIT 5 Sin implementar.
BIT 4 FREE: bit de selección de borrado de la
I
M
I
R
memoria FLASH.
1 = Borra la memoria FLASH apuntada por
T
R
TBLPTR en el próximo comando WR.
U 0 = Se realiza escritura únicamente.
BIT 3 WRERR: Error en una operación
ó d
de
J
I
L
L
escritura de la memoria FLASH/EEPROM
O 1 = Una operación de escritura fue
prematuramente terminada.
A
R 0 = Operación de escritura completa.
I
A
S
V
L
Registro EECON1 (Dir. 0FA6h )
A
D
I
BIT 2 WREN: Bit de habilitación de escritura
M
I
en la memoria FLASH/EEPROM.
R
1 = Permite ciclos de escritura.
T 0 = Inhibe los ciclos de escritura.
R
U
J
BIT 1 WR: Bit de control de escritura
I
L
1 = Inicializa el borrado/escritura de la memoria
L EEPROM/FLASH, este bit se coloca en 0
O
nuevamente por HW.
A
R
0 = El ciclo de escritura esta completo.
I
A
S
V
L
Registro EECON1 (Dir. 0FA6h )
A
D
I
BIT 0 RD: Bit de control de lectura.
1 = Inicializa la lectura de la EEPROM, este
M
I
T
R puede puesto en 1 cuando EEPGD = 1, lo
U
J
cual sugiere
g que
q la memoria FLASH,, no
I
L
puede ser leída utilizando este bit.
L
O
0 = No se inicializa la lectura de la
A
EEPROM.
R
I
A
S
V
L
Registro TABLAT y TBLPTR
A
D
I
El registro TABLAT es de 8 bits y se utiliza
M
I
para almacenar datos durante la
R transferencia de información entre la RAM y
T l memoria de
la d programa.
R
U
J
El registro TBLPTR apunta a las direcciones
I de memoria de programa a acceder, apunta
L
L de a byte por vez.
O
A
El registro TBLPTR, es utilizado por las
R instrucciones TBLRD y TBLWT; ellas pueden
I
A actualizar el TBLPTR de 4 formas diferentes.
S
V
L
Registro TBLPTR
A
D
I
M
I
R
T
R
U
J
I
L
L
O
La lectura accede a memoria cada byte
y
A
La escritura accede a memoria cada 8 Bytes
El borrado se hace en paquetes de 64 Bytes.
Bytes
R
I
A
S
Operaciones que auto modifican
V
L
TBLPTR
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Lectura de la Memoria FLASH
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Lectura de la Memoria FLASH
A
D
I
Cuando se hace una lectura de memoria. Se
M
I
debe Cargar TBLPTR con la dirección ó a leer
R (dirección par).
T
R
Cuando se ejecuta la instrucción TBLRD, se
U
J
mueve un byte de la instrucción a el registro
I TABLAT.
L
L
O
El que sea el byte bajo o alto, depende de si
A
el bit menos significativo de la dirección
R escogida es 0
I
A
S
V
L
Borrado de la Memoria FLASH
A
D
El TBLPTR no tiene en cuenta los 6 bits
menos significativos a la hora de hacer un
I
M
I
R
borrado, solo los 16 mas altos, por lo tanto el
T
borrado de la memoria FLASH
FLASH, solo se hace
R en bloques de 64 bytes o 32 instrucciones.
U
J Los 16 bits mas significativos apuntan a la
I
L dirección de inicio del bloque de 64 bytes a
L
O
borrar.
A
El registro EECON1 controla la operación de
R borrado.
I
A
S
V
L
Borrado de la Memoria FLASH
A
D
I
El bit EEPGD se debe poner en 1, así
M
I como WREN también debe estar en 1
para habilitar la operación de escritura
R
A
R
I
A
S
Borrado de la Memoria FLASH
V
L
(Secuencia a utilizar)
A
D
Cargar el STKPTR con la dirección de inicio a
borrar (Recordar que es en paquetes de 64
I
M
I
R
bytes, por tanto los 6 bits menos
T
significativos son 0)
R
U
Poner en 1 el bit EEPGD de EECON1.
J
I
Borrar el bit CFGS del registro EECON1
L
L
Poner en 1 los bits WREN y FREE para
O habilitar escritura y borrado respectivamente.
respectivamente
A
R
Deshabilitar las interrupciones.
I
A
S
Borrado de la Memoria FLASH
V
L
(Secuencia a utilizar)
A
D
I
Escribir 55h en el EECON2.
M
I Escribir AAh en el EECON2.
Poner en 1 el bit WR
WR. Esto comenzará el
R
ciclo de borrado
T
R
U
J
I
La CPU queda parada durante el tiempo
L
L
que tarde el borrado de la memoria que
O
son 2 mili segundos aproximadamente.
aproximadamente
A
R
Habilitar las interrupciones.
I
A
S
V
L
Escritura en memoria Flash.
A
D
I
La escritura en la memoria FLASH, se
M
I realiza en paquetes de 8 bytes o 4
instrucciones.
R
T
R
U
Debido a que el registro TABLAT es de
J
I
1 byte,
b t una operaciónió de
d escritura
it en
L
L FLASH, requiere el uso de 8 veces la
instrucción TBLWT.
O
A
R
I
A
S
Escritura en memoria Flash.
Escritura en memoria Flash
Flash.
V (Secuencia de Programación)
g
L
A
D
I
Secuencia de programación de la
M
I memoria FLASH.
R
RAM.
U
J
I
L Actualizar los valores en la RAM si es
necesario
necesario.
L
O
TBLWT+*)).
TBLWT+
L
O
A
R
I
A
S
Escritura en memoria Flash
Flash.
V (Secuencia de Programación)
g
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Memoria EEPROM de datos
A
D
I
La memoria EEPROM, no puede ser
M
I
direccionada normalmente, para acceder a
R
ella se hace a través de unos registros
g
T
R
especiales
EECON1 (Registro de configuración)
U
J
A
datos)
R
I
EEADR (Registro de direccionamiento)
A
S
V
L
Memoria EEPROM de datos
A
D
I
Los datos en la EEPROM, se
M
I sobrescriben y el tiempo de acceso de
escritura o lectura tiene un tiempo
R
típico de 4 milisegundos
T
R
U
J
I
D bid a que ell registro
Debido i t EEADR es ded 8
L
L bits, la capacidad en EEPROM es de 256
bytes.
O
A
R
I
A
S
V
L
Memoria EEPROM de datos
A
D
I
M
I
R
T
R
BIT 7 EEPGD: bit de selección de la memoria FLASH o
U EEPROM
J 1 = Acceso
A a la
l memoria
i FLASH
I
L
0 = Acceso a la memoria EEPROM.
L BIT 6 CFGS: Acceso a la memoria FLASH/EEPROM o a los
O registros de
d configuración
f ó ddell PIC
C
A
1 = Acceso a los registros de Configuración
R 0 = Acceso a la memoria FLASH o EEPROM
I
A
S
V
L
Memoria EEPROM de datos
A
D
I
BIT 5 Sin implementar
M
I
BIT 4 FREE: Habilitación
ó del ciclo de borrado
R en la memoria FLASH
T 1 = Borra
B lla memoriai FLASH (64 bytes)
b t ) apuntada
t d
R
por TBLPTR en el próximo comando WR
U
J 0 = Solo para escritura.
escritura
I
L BIT 3 WRERR: Bit de Error
L
O 1 = Una operación de escritura ha sido
interrumpida.
A
R 0 = Operación
p de escritura completa.
p
I
A
S
V
L
Memoria EEPROM de datos
A
D BIT 2 WREN: Bit de habilitación de escritura en
I FLASH o EEPROM
M
I
1 = ciclos de escritura permitidos
R 0 = No permite escritura en la memoria EEPROM
T
BIT WR: bit de control de escritura
R 1 = Inicializa un ciclo de escritura en EEPROM o FLASH.
U Cuando la operación termina, el bit es borrado por HW y no
J se puede por software
software.))
I
0 = El ciclo de escritura en EEPROM finalizó
L
L BIT 0 RD: bit de control de lectura.
O
1 = Lee la memoria EEPROM. Es borrado por HW y
A no por SW. Este bit no se puede poner en 1 si EEPGD
R = 1.))
I
A
0 = No se inicia la lectura de la EEPROM
S
Lectura de la memoria EEPROM
V
L
de datos
A
D
I
Para la lectura de la memoria EEPROM,
M
I se escribe la dirección a leer en EEADR.
R
T
Poner en 0 el bit EEPGD (bit 7 EECON1)
Poner en 0 el bit CFGS (bit 6 EECON1)
R
U
J
I
L
Poner en 1 el bit RD (bit 0 EECON1)
El dato leído se almacena en el registro
L
O
A
R
EEDATA
I
A
S
Escritura en la memoria EEPROM
V
L
de datos
A
D Para la Escritura en la memoria EEPROM, se escribe
I
M la dirección a acceder en el registro EEADR
EEADR.
I
R Poner en 0 el bit EEPGD (bit 7 EECON1)
T
P
Poner en 0 ell bit CFGS (bit 6 EECON1)
R
U
Poner en 1 el bit WREN (bit 0 EECON1) con el fin de
J habilitar el acceso en modo escritura.
escritura
I
L Poner en 1 el bit WR, para comenzar la escritura.
L
O El dato leído se almacena en el registro EEDATA
A Al finalizar la escritura en la memoria EEPROM, se
R
I
genera una interrupción
interrupción, al ponerse el 1 el bit EEIF
A del registro PIR2
S
Módulo conversión A/D
V (18F452)
L
A
D
I
El conversor analógico digital posee una
M
I resolución de 10 bits.
R
T
Controlado por los registros ADCON1 y
R
U
ADCON0.
El resultado de la conversión
ó es
J
I
L
L
O
g
almacenado en los registros ADRESL y
A
ADRESH.
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
Bit 5-3 CHS2:CHS0: Selección del
M
I
canall analógico
ló i
R
000 = canal 0, (RA0)
T
R
001 = canal 1, (RA1)
U
J
010 = canal 2,, (RA2)
( )
I
L
011 = canal 3, (RA3)
L
O 100 = canal 4,
4 (RA5)
A 101 = canal 5, (RE0)
110 = canal 6,
6 (RE1)
R
I
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
Bit 7 ADFM: Formato del resultado de la
conversión A/D.
A/D
I
M
I
R 1 = Justificado a la derecha. Los 6 bits mas
significativos del registro ADRESH son cero.
cero
T
R 0 = Justificado a la izquierda. Los 6 bits menos
U
J
g
significativos del registro
g ADRESL son cero.
I
L
Bit 6 ADCS2: selección del tiempo de
L conversión del módulo A/D, trabaja
j en asocio
con los bits ADCS1 y ADCS0 del registro
O
A
R
ADCON0
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D Cuando el procesador se encuentra en modo
I
SLEEP y se desea realizar una conversión
conversión, se
debe utilizar como base de tiempo el oscilador
M
I
R RC del conversor A/D.
T El conversor analógico
ló i digital
di it l funciona
f i por
R
U
conversiones sucesivas.
J Un RESET en el dispositivo,
dispositivo obliga el apagado del
I
conversor A/D y cualquier conversión en proceso
es abortada.
L
L
O
Cada pin del microcontrolador que se use como
A entrada analógica, debe ser configurado como
R
I
entrada en el respectivo registro TRIS
A
S
Módulo conversión A/D (Pasos)
V (18F452)
L
A
D
I
Los pasos para realizar una conversión
M
I
A/D son llos siguientes:
i i
R
1. Configuración
g del módulo A/D.
/
Se configuran los pines que serán entradas
T
R
U
J
analógicas
g o digitales
g (ADCON1).
( )
I
L
Se selecciona el canal de entrada al
L
O
módulo A/D/ ((ADCON0). )
A
Se selecciona el reloj de conversión A/D
R ((ADCON0).)
I
A Se enciende el módulo A/D (ADCON0).
S
Módulo conversión A/D (Pasos)
V (18F452)
L
A
D 2. Configuración de interrupciones para el
I
M
módulo A/D (opcional)
I Borrar el bit ADIF en el registro PIR1
R
Poner en 1 el bit ADIE en el registro PIE1.
T Poner en 1 el bit GIE y el PEIE en el registro
R
U
INTCON.
J 3. Esperar el tiempo de adquisición en el
3
I
L
condensador de sujeción interno.
L
4. Comenzar la conversión,, colocando en 1 el
bit GO/DONE del registro (ADCON0), este bit
O
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
El módulo A/D de este micro consta de
M
I 13 canales analógicos. El resultado de
la conversión es de 10 bits.
R
T
R
U
Cinco registros conforman este módulo.
ADRESH, ADRESL, registros de control
J
I
L
L
O
ADCON0,, ADCON1 y ADCON2.
A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R
T
R
U
Bit 1 GO/DONE: Bit de estado de la conversión A/D
J Cuando ADON = 1:
I
1 = Conversión A/D en progreso.
L
L
0 = Conversor A/D desocupado
O
Bit 0 ADON: Bit habilitador
h b l d de d módulo
ód l A/D
/
A 1 = Módulo A/D habilitado
R
0 = Módulo A/D deshabilitado
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D Bit 7-6 Sin implementar
I Bit 5-2 CHS3:CHS0: Selección del canal analógico
g
M 0000 = Canal 0 (AN0/RA0)
I
0001 = Canal 1 (AN1/RA1)
R
0010 = Canal 2 (AN2/RA2)
0011 = C
Canall 3 (AN3/RA3)
T
0100 = Canal 4 (AN4/RA5)
R
U
0101 = Canal 5 (AN5/RE0)
J
0110 = Canal 6 ((AN6/RE1)
/ )
I
0111 = Canal 7 (AN7/RE2)
L 1000 = Canal 8 (AN8/RB2)
L 1001 = Canal 9 (AN9/RB3)
O 1010 = Canal 10 (AN10/RB1)
1011 = Canal 11 (AN11/RB4)
A 1100 = Canal 12 (AN12/RB0)
R 1101 = Sin implementar
p
I 1110 = Sin implementar
A 1111 = Sin implementar
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R
T
R
U
Bit 7 ADFM: Selección del formato del
J
I
resultado
es ltado del mód
módulo
lo A/D
1 = Justificado a la derecha
L
L
O
0 = Justificado a la izquierda
A
R
I
Bit 6 Sin implementar
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
Bit 5-3 ACQT2:ACQT0: Bit de selección del
M
I
tiempo de adquisición
ó
R
111 = 20 TAD
T 110 = 16 TAD
R
U 101 = 12 TAD
J
I 100 = 8 TAD
L
L 011 = 6 TAD
O
010 = 4 TAD
A
R 001 = 2 TAD
000 = 0 TAD
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
bit 2-0 ADCS2:ADCS0: Bit de selección del
M
I
reloj para la conversión
ó A/D (TAD).
R
111 = Uso del temporizador RC interno
T 110 = FOSC/64
R
U 101 = FOSC/16
J
I 100 = FOSC/4
L
L 011 = Uso del temporizador RC interno
O
010 = FOSC/32
A
R 001 = FOSC/8
000 = FOSC/2
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
Pasos para realizar una conversión A/D.
M
I
1. Configuración del módulo A/D
R
Configurar los pines analógicos y los voltajes de
T referencia (ADCON1)
R
U Seleccionar canal de entrada (ADCON0)
J
I Escoger el tiempo de adquisición (ADCON2)
Seleccionar el tiempo de conversión TAD’s
L
L
O
(ADCON2)
A Habilitar el módulo A/D (ADCON0)
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D 2. Configurar las interrupciones A/D
I
M
Borrar el bit ADIF
I Poner en 1el bit ADIE
R
Poner en 1 el bit GIE.
T 3. Esperar a que transcurra el tiempo de adquisición si es
R
necesario
U
J 4 Comenzar la conversión
4. conversión. Colocando en 1 el bit GO/DONE del
I (ADCON0)
L
L 5. Esperar a que la conversión A/D termine.
O
Cuando GO/DONE se pone en 0 ó se da una interrupción A/D
A 6. leer el resultado de la conversión en (ADRESH:ADRESL) y
R
borrar el bit ADIF
ADIF, si es necesario
necesario.
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F4520)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Temporizador Timer 0
A
D Las características que posee el Timer0 son las
I siguientes:
M
I Se puede seleccionar un modo de trabajo a 8 o 16
R bits
T
S puede
Se d leer
l y escribir
ibi en él.
él
R
Posee un pre escalador propio de 8 bits.
U
J Selección de fuente de reloj externa (Pin RA4 T0CKI)
I o interna Fosc/4
L
L Genera una interrupción cuando se desborda en
O modo de 8 o 16 bits.
bits
A
El timer 0 es controlado por el registro T0CON
R
I
A
S
V
L
Temporizador Timer 0 Reg. T0CON
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Temporizador Timer 0
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Temporizador Timer 0
A
D
I
El registro TMR0H se actualiza solo
M
I cuando se hace una lectura de TMR0L,
esto con el fin de leer los 16 bits de
R
TMR0.
T
R
U
J
I
L parte
La t alta
lt d
de TMR0,
TMR0 solo l se carga en
L
L el registro TMR0H cuando se hace una
escritura en TMR0L, esto con el fin de
O
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Temporizador Timer1 Reg. T1CON
A
D
Bit 7 RD16: Modo de lectura escritura de 16-
bits
I
M
I
R 1 = Habilita la lectura y escritura del Timer1 en
una operación de 1616-bits
bits.
T
R 0 = Habilita la lectura y escritura del Timer1 en
U
J
p
dos operaciones de 8-bits.
I
L
Cuando RD16 vale 1, la parte alta del timer 1
L es transferida a TMR1H a través de un buffer.
Esto ocurre solo cuando TMR1L es leído, así
O
A
R
se transfieren los 16 bits al tiempo.
I
A
S
V
L
Temporizador Timer1 Reg. T1CON
A
D
Para realizar una escritura de 16 bits a el
Timer 1 1, se carga TMR1H con el valor
I
M
I
R
deseado y a continuación se escribe TMR1L,
T
en ese instante se hace la transferencia de 16
R bits a la vez.
U
J Bit 6 Sin implementar
I
L Bit 5-4 T1CKPS1:T1CKPS0: Bits del pre
escalador de Timer1
L
O
A
11 = 1:8
R
I
10 = 1:4
A 01 = 1:2
S
00 = 1:1
V
L
Temporizador Timer1 Reg. T1CON
A
D Bit 3 T1OSCEN: Bit habilitador del Oscilador
I
M
de Timer1.
Timer1
1 = Oscilador de Timer1 habilitado
I
R
A
arranque del oscilador
R
I
A
S
V
L
Temporizador Timer 1
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Temporizador Timer 2
A
D El Timer2 se caracteriza por lo siguiente
Un registro TMR2 de 8 bits
I
M
Un registro PR2, que controla el máximo
I
R
T
conteo de TMR2.
TMR2
R Un pre escalador de (1:1, 1:4, 1:16)
U
J Un post escalador (1:1 a 1:16)
Se genera una interrupción al igualarse TMR2
I
L
L
O
con PR2.
TMR2 es utilizado como base de tiempo para
el control del módulo PWM
A
R
I
A
S
V
L
Temporizador Timer 2
A
D
I
El pre escalador y el post escalador son
M
I puestos a su valor mínimo, cuando:
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Temporizador Timer2 Reg. T2CON
A
D Bit 7 Sin implementar
I
M
Bit 6 a 3 TOUTPS3:TOUTPS0: Timer2 Post
I escalador
R 0000 = 1:1 Post escalador
T
0001 = 1:2
1 2 Post
P t escalador
l d
R 1111 = 1:16 Post escalador
U
J
Bit 2 TMR2ON: Bit de encendido
I 1 = Timer2 encendido
L 0 = Timer2 apagado
Bit 1 a 0 T2CKPS1:T2CKPS0: Timer2 Pre escalador
L
O
00 = Pre escalador en 1
A
01 = Pre escalador en 4
R
I 1x = Pre escalador en 16
A
S
V
L
Temporizador Timer2
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Temporizador Timer 3
A
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
A
R
I
A
S
V
L
Temporizador Timer 3 Reg. T3CON
A
D
I
Bit 6-3 T3CCP2:T3CCP1:Uso del Timer3 y
M Ti
Timer11 para trabajar
t b j con ell módulo
ód l CCPx.
CCP
I
R 1x = Timer3 es la fuente de reloj para el
T módulo
ód l CCP en modo d captura
t y comparación.ió
R
U 01 = Timer3 es la fuente de reloj para el
módulo
ód l CCP2 y Timer1 es lal fuente
f de
d reloj
l
J
I
L
L
para el módulo CCP1
00 = Timer1 es la fuente de reloj para el
O
A
R
módulo CCP en modo captura y comparación.
I
A
S
V
L
Temporizador Timer 3 Reg. T3CON
A
D Bit 5-4 T3CKPS1:T3CKPS0: Pre escalador del
I
M Timer3
I
R
11 = 1:8
10 = 1:4
T
R
01 = 1:2
U
00 = 1:1
J
I Bit 2 T3SYNC: Bit para sincronización de la fuente
L
L de reloj externa de Timer3.
O
Cuando TMR3CS = 1:
A 1 = No sincronice el reloj externo con el interno
R
0 = sincronice el reloj externo con el interno
I
A Cuando TMR3CS = 0:
S
Es ignorado.
V
L
Temporizador Timer 3 Reg. T3CON
A
D
I
Bit 1 TMR3CS: Selección de la fuente
M
I
d reloj
de l j de
d Timer3
Ti 3
R
1 = Fuente de reloj externa proveniente
T del oscilador de Timer1 o del pin T1CKI
R
U
J
0 = Fuente de reloj interna (FOSC/4)
I
L
Bit 0 TMR3ON: Encendido de Timer3
L
O
1 = Habilita Timer3
A
0 = Detiene Timer3
R
I
A
S
V
L
Temporizador Timer3
A
D
I
Para que el reset debido al evento de
M
I disparo del módulo CCP funcione, el
TIMER3, debe estar configurado con
R
p
interrupción.
A
R
I
A
S
V
L
Temporizador Timer3
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP
A
D El módulo CCP1 y CCP2, constan de 1 registro de
I control CCPxCON y 2 registros de 8 bits auxiliares
M
I
(CCPRxL y CCPRxH) para el manejo del módulo.
R Los modos de trabajo son captura, comparación y
T
PWM
PWM.
R Este módulo hace uso de los temporizadores
U Timer1, Timer2 y Timer3
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Registro de control)
A
D
I
M
I
R
T
R
U
J Bit 7-6 Sin implementar
I
L
L
Bit 5-4 DCxB1:DCxB0: bit 0 y 1 de el ciclo de
O
t b j PWM,
trabajo PWM no usadod en modod captura
t y
A comparación
R
I
A
S
V
L
Modulo CCP (Registro de control)
A
D
Bit 3-0 CCPxM3:CCPxM0: Bits de selección del modo de trabajo
I 0000 = Modulo CCP apagado
M 0001 = Reservado
I 0010 = Modo compara, pulso a la salida al darse la igualdad (CCPxIF se
R coloca en 1)
0011 = Reservado
T 0100 = Moda captura, cada flanco de bajada.
R 0101 = Modo captura, cada flanco de subida.
U 0110 = Modo captura, cada 4 flancos de subida.
J 0111 = Modo captura
captura, cada 16 flancos de subida.
subida
I 1000 = Modo compara, coloca el pin CCP en estado alto cuando se produce
L la igualdad (CCPIF se coloca en 1)
L 1001 = Modo compara, coloca el pin CCP en estado alto al darse la
O i
igualdad
ld d (CCPIF se coloca
l en 1)
1010 = Modo compara, el pin CCP no cambia, CCPIF se coloca en 1 cuando
A la igualdad se da.
R 1011 = Modo compara, se genera un evento trigger al producirse la
I i
igualdad
ld d (CCPIF se coloca
l en 1)
A 11xx = Modo PWM
S
V
L
Modulo CCP (Modo de Captura)
A
D En modo de captura los registros CCPR1H:CCPR1L, capturan el
I
valor de los 16 bits de los registros de TMR1 o TMR3,
TMR3 cuando un
M
I
evento en el pin RC2/CCP1 ocurre.
R
Los eventos son:
T Cada flanco de bajada
R Cada flanco de subida
U
J
Cada 4 flancos
a cos de subida
sub da
I Cada 16 flancos de subida
L
L
El pin del módulo CCPP debe ser configurado como entrada
O El timer 1 y 3 deben estar sincronizados con el reloj interno, si
A
están contando pulsos externos.
R Si se realiza un cambio de configuración del modo de trabajo
I
A
del módulo CPP, se debe apagar el módulo. Ya que si no se
S hace se puede generar una falsa interrupción.
V
L
Modulo CCP (Modo de Captura)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Modo de Captura)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Modo Compara)
A
D En modo compara, los 16 bits de los registros CCPR1 o (CCPR2)
I
son comparados constantemente con el valor de TMR1 o TMR3
TMR3.
M
I Cuando el valor de CCPRx se hace igual al de un Timer, ocurre
R
lo siguiente en los pines RC2/CCP1 o RC1/CCP2:
T Se pone en estado alto
R Se pone en estado bajo
U
J
Cambia
Ca b a de estado (Alto
( to a Bajo
ajo o Bajo
ajo a Alto)
to)
I Se mantiene sin cambios
L
L
El timer 1 y 3 deben estar sincronizados con el reloj interno, si
O están contando pulsos externos
externos.
A
Si se realiza un cambio de configuración del modo de trabajo
R del módulo CPP, se debe apagarg el módulo. Ya que si no se
I hace se puede generar una falsa interrupción
A
S
V
L
Modulo CCP (Modo Compara)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Modo Compara)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D El modo PWM, posee una resolución de 10 bits.
I
M Al borrar el registro CCPxCON
CCPxCON, la salida del módulo
I
PWM se pone en su estado por defecto (0).
R
El registro Timer 2 es utilizado como base de tiempo
T
R
para la operación de este módulo.
U El pos escalador de TMR2 no se utiliza.
J
I El periodo PWM esta dado por:
L
L
Periodo PWM = [PR2 + 1] * 4* TOSC*(Pre escalador TMR2)
O El ciclo
i l de
d trabajo
t b j o tiempo
ti de
d cresta
t esta
t dado
d d por:
A Tiempo Cresta PWM = (CCPR1L:CCP1CON<5:4>)*TOSC
R (
*(Pre escalador de TMR2))
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D Como Configurar el módulo PWM
I
M Seleccione el periodo de trabajo mediante el registro
I
PR2.
R
Seleccione el tiempo de cresta de PWM mediante el
T
R
registro CCPR1L y los bits 5 y 4 de CCP1CON.
U Configure el pin de salida del módulo CPP como
salida.
J
I
L
L
Configure el preescalador de Timer2 en el registro
O T2CON
T2CON.
A
Configure el módulo CPP para modo de trabajo PWM.
R
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Modulo de Comunicación serial
V
L
USART
A
D
I
El módulo de comunicación serial puede
M
I ser configurado de la siguiente manera:
R
A
registro de configuración.
R
I
Registro de control de transmisión TXSTA.
TXSTA
Registro de control de recepción RCSTA.
A
S
Modulo de Comunicación serial
V
L
USART (Registro
g TXSTA)
A
D
I
M
I
R
T
R
U
Bit 7 CSRC: Selección de la fuente de reloj.
J Modo Asíncrono:
I
L No se tiene en cuenta
L
O
Modo sincrónico:
1 = Modo maestro (reloj generado internamente por el
A BRG)
R
I
0 = Modo Esclavo (reloj de fuente externa)
A
S
Modulo de Comunicación serial
V
L
USART (Registro
g TXSTA)
A
D Bit 6 TX9: Habilitador de transmisión de 9-bit.
1 = 9 bits para transmitir.
transmitir
I
M
I
R
0 = 8 bits para transmitir.
Bit 5 TXEN: Habilitación de Transmisión
T
R 1 = Transmisión habilitada
U
J
0 = Transmisión deshabilitada
I Bit 4 SYNC: Selección del modo de trabajo
L
L USART
O
1 = Modo
d sincrónico
i ó i
A 0 = Modo asíncrono
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Registro
g TXSTA)
A
D Bit 3 Sin implementar
I
M Bit 2 BRGH: Modo de selección
ó de trabajo del Baud
I
R Rate Generator
Modo asíncrono:
T
R 1 = Alta velocidad
U
0 = Baja velocidad
J
I Modo Sincrónico:
L
No utilizado en este modo
L
O Bit 1 TRMT
TRMT: Estado
E t d ddell registro
i t ded corrimiento
i i t
A 1 = TSR vacío
R
I
0 = TSR lleno
A
S
Bit 0 TX9D: Noveno bit de datos a ser transmitido
Modulo de Comunicación serial
V
L
USART (Registro
g RCSTA)
A
D
I
M
I
R
T
R Bit 7 SPEN: Habilitador de puerto serial
U
J 1 = Puerto serial habilitado
0 = Puerto serial deshabilitado
I
L
L
O
Bit 6 RX9: Habilita la recepción de noveno bit.
bit
A
1 = Se van a recibir 9 bits.
R 0 = Se van a recibir 8 bits.
I
A
S
Modulo de Comunicación serial
V
L
USART (Registro
g RCSTA)
A
D
I
Bit 5 SREN: Habilitación de recepción
M
I simple.
R
Modo asíncrono:
T
R No se tiene en cuenta
U
J
I
Modo sincrónico - Maestro:
L 1 = Habilita una recepción simple
L
O 0 = Deshabilita
D h bilit lal recepción
ió simple.
i l
A
R
Modo sincrónico - Esclavo:
I
A
No se tiene en cuenta
S
Modulo de Comunicación serial
V
L
USART (Registro
g RCSTA)
A
D
I
bit 4 CREN: Habilita la recepción
M
I continua.
R
Modo asíncrono:
T
R 1 = Habilita el receptor
U
J 0 = Deshabilita el receptor
I
L Modo sincrónico:
L
O 1 = Habilita
H bilit la
l recepción
ió continua,
ti hasta
h t que ell
A bit CREN se borre (CREN sobrescribe SREN)
0 = Deshabilita la recepción continua
continua.
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Registro
g RCSTA)
A
D bit 3 ADDEN: Habilita la detección de direcciones
I
Modo asíncrono con noveno bit en 1 (RX9 = 1):
M
I
1 = Habilita la detección de direcciones, habilita la interrupción
R
y lee el buffer de recepción cuando RSR<8> se pone en 1
0 = Deshabilita la detección de direcciones, todos los bytes son
T
recibidos
b d y ell noveno bit
b se pueded usar como bitb ded paridad
d d
R bit 2 FERR: Bit de error de Encuadre
U
J
1 = Error de encuadre
I 0 = No hay error de encuadre
L
L
bit 1 OERR: Bit de error de desborde
O 1 = Error de desborde
0 = No hay error de desborde
bit 0 RX9D: Noveno bit en recepción
A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Tasa de transferencia)
A
D Existen dos modos para calcular la tasa de transferencia de
I
puerto serial USART.
USART Modo alta y baja velocidad.
velocidad
M
I El bit BRGH <TXSTA 2>, permite escoger el modo, mientras
R
que el registro SPBRG contiene la tasa de transferencia
T
escogida.
id En
E las
l ecuaciones
i “X” es ell valor
l ded SPBRG
R Modo asíncrono baja velocidad.
U
J
Tasa de transferencia = FOSC/(64(X+1))
I
Modo asíncrono alta velocidad.
L
L Tasa de transferencia = FOSC/(16(X+1))
O
Modo sincrónico baja velocidad.
A Tasa de transferencia = FOSC/(4(X+1))
R
Modo sincrónico alta velocidad
velocidad.
I
A No aplica
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono)
A
D En modo asíncrono el USART utiliza el estándar de no
I
M retorno a cero NRZ
NRZ.
I
R Se utiliza un bit de inicio, 8 o 9 bits de datos y un bit
T
de parada
parada.
R
El USART transmite y recibe primero el bit menos
U
J significativo
I
L El TX y RX pueden funcionar independientemente,
L
O
aunque utilizan la misma tasa de transferencia.
A
No se soporta bit de paridad por HW, aunque se
R puede realizar por
p p SW.
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
El registro TSR es actualizado con el
M
I valor contenido en TXREG, cuando la
transferencia de datos ha finalizado; es
R
A
Una vez que TXREG transfiere sus datos
R
I
a TSR,
TSR queda vacío y se produce una
A
S
interrupción.
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
La bandera TXIF se pone en 1, independiente
M
I
del estado de TXIE y no puede ser borrada
R por SW. Solo se borra cuando un nuevo valor
T h sido
ha d cargado
d en TXREG.
R
U
J
El bit TRMT, muestra el estado del registro de
I corrimiento TSR, colocándose en 1 cuando
L
L TSR esta vacío.
O
A
La bandera TXIF solo se pone en 1 cuando el
R bit TXEN esta en 1
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D Para configurar la transmisión se requiere:
I
M 1 Inicializar
1. I i i li ell SPBRG para la
l tasa
t de
d transferencia
t f i
I
deseada. Con el bit BRGH se escoge si se desea alta o
R
baja
j velocidad.
T
R
2. Habilitar el puerto seria asíncrono colocando en 0 el bit
U SYNC y poniendo en 1 el bit SPEN.
J
I 3. Si se desean interrupciones colocar en 1 el bit TXIE.
L
L
4. Si se desea transmisión de noveno bit, colocar en 1 el
O bit TX9
TX9.
A 5. Habilitar la transmisión colocando en 1 el bit TXEN el
R
cual colocará en 1 el bit TXIF.
I
A 6. Cargar el dato a transmitir en TXREG.
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono RX)
A
D Para habilitar una recepción asíncrona se requiere:
I
M
1 Inicializar el SPBRG para la tasa de transferencia deseada
1. deseada.
I Con el bit BRGH se escoge si se desea alta o baja velocidad.
R
2. Habilitar el puerto serial asíncrono colocando en 0 el bit SYNC
T y poniendo en 1 el bit SPEN.
R
U
3. Si se desean interrupciones colocar en 1 el bit RCIE.
J 4 Si se desea recepción de noveno bit
4. bit, colocar en 1 el bit RX9
RX9.
I
L
5. Habilitar la recepción colocando el bit CREN en 1.
L
6. La bandera RCIF se p pondrá en 1 cuando la recepción
p se
O
complete y se generará una interrupción si el bit RCIE fue
A puesto en 1.
R
I
7 Leer el dato recibido del registro RCREG.
7. RCREG
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono RX)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono RX)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S