You are on page 1of 319

MICROCONTROLADORES GAMA ALTA Y ARQUITECTURAS MIXTAS

Departamento de Electrnica Instrumentacin y Control. Cont ol


Profesor: Ing Vladimir Trujillo Arias. Ing.

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

Contenido.

CAPITULO 1. Introduccin

Evolucin de los sistemas digitales Estado del Arte Tendencias Conceptos generales de procesadores

Terminologa utilizada en la arquitectura de procesadores

Qu Q Qu Qu Qu

es es es es

un un n un un

microprocesador microcontrolador mic ocont olado DSP Dispositivo Lgico Configurable

V L A D I M I R

Contenido.

CAPITULO 2. Conceptos Bsicos de Microcontroladores Gama Alta

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

Familias de Microcontroladores de Altas prestaciones Arquitecturas de Microcontroladores de Gama Alta

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

Contenido.

CAPITULO 3. Microcontroladores PIC de Gama Alta. Familia 18


CAPITULO 4. Herramientas de programacin y simulacin


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

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

V L A D I M I R

Contenido.

CAPITULO 5. Arquitecturas Mixtas


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

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

CAPITULO 6. Proyecto y Final.

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

Evolucin de los Sistemas Digitales g

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

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

Evolucin de los Sistemas Digitales g

Clasificacin:

Segn la forma en que se realizan fsicamente:

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

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

Evolucin de los Sistemas Digitales g

Clasificacin:

Segn la forma en que se realiza el diseo visto p por el desarrollador:

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

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

Evolucin de los Sistemas Digitales g

Segn el nmero de transistores:


# de Transistores 10 a 100 100 a 1000 1000 a 10000 10K a 100K 100K a 1M >1.000.000 # de Ao compuertas 1 a 10 10 a 100 100 a 1000 1K a 10K 10K a 100K >100.000

Nivel de Integracin
Pequea escala de integracin SSI Mediana escala de integracin MSI Gran escala de integracin LSI Muy Gran escala de integracin VLSI Ultra Gran escala de integracin ULSI Giga Gran escala de integracin GLSI

1960 1965 1970 1978 1985 1995

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

Evolucin de los Sistemas Digitales g

Circuitos Integrados Digitales M Monolticos l i (CIDM) Normalizados N li d

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

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

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

Evolucin de los Sistemas Digitales g

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

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

Evolucin de los Sistemas Digitales g

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

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

Evolucin de los Sistemas Digitales g

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

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

Estado del Arte y Tendencias

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

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

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

Estado del Arte y Tendencias


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


Intel Pentium 4 Extreme Edition Intel Pentium 4 Intel Celeron

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

Estado del Arte y Tendencias


Procesadores para computador de escritorio

Pentium 4 XE
Hyper-Threading yp g Dos niveles de Cach hasta de 2MB H Hasta 3 3.7 7 Gh Ghz d de reloj l j Bus Frontal de 1066 MHz Tecnologa de procesador de 90 nm

Pentium 4
Hyper-Threading yp g Un nivel de cach de hasta 2 MB H Hasta 3 3.6 6 Gh Ghz d de reloj l j Bus Frontal de 800 MHz Tecnologa de procesador de 90 nm

Celeron
No Hyper-Threading yp g Un nivel de cach de hasta 256 K H Hasta 2 2.8 8 Gh Ghz d de reloj l j Bus Frontal de 400 MHz Tecnologa de procesador de 130 nm

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

Estado del Arte y Tendencias

Computadores Porttiles

Intel Pentium M Mobile Intel Pentium 4 Intel Celeron M Mobile Intel Celeron Intel Itanium 2 Intel Xeon Processor Intel Pentium 4 processor

Servidores

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

Estado del Arte y Tendencias


Procesadores para computadores porttiles.
Procesador Intel Pentium M
Tecnologa l de d procesador de 90 nm Un nivel U i l de d Cach C h hasta h t de 2MB Velocidad de 2.13 GHz con velocidad para ultra bajo consumo de 1.2 Gh Ghz Bus Frontal de 533 MHz

Intel Pentium 4 mobile

Intel Celeron M Processor

Mobile Intel Celeron Processor


Tecnologa l de d procesador de 130 nm Un nivel U i l de d Cach C h hasta de 256kB Velocidad hasta 2.5 25 GHz velocidad para ultra bajo consumo de 800 Mhz Bus Frontal de 400 MHz

Tecnologa l de d Tecnologa l de d procesador procesador de 90 de 90 nm nm Un nivel U i l de d Cach hasta de 1MB Velocidad hasta 3.46 GHz Un nivel U i l de d Cach C h hasta de 1MB Velocidad hasta 1.5 15 GHz velocidad para ultra bajo consumo de 1 Ghz Bus Frontal de 400 MHz

Bus Frontal de 533 MHz

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

Estado del Arte y Tendencias


Procesadores para servidores.
Intel Pentium 4 con tecnologa HyperThreading
Tecnologa de procesador de 90 nm Un nivel de Cach hasta de 2MB Velocidad hasta 3.46 GHz Bus Frontal de 800 MHz

Intel Itanium 2 Permite Intel Xeon Permite trabajo multiprocesador trabajo multiprocesador o procesador dual o procesador dual
Tecnologa de procesador de 90 nm Tecnologa de procesador de 90 nm

Tres niveles de Cach 32k, Tres niveles de Cach ??k, 256k y hasta de 9MB en el 1M y hasta de 8MB en el nivel 3 nivel 3 Velocidad hasta 1.6 GHz Bus Frontal de 400 MHz con 128 bits de ancho y BW de I/O de 6.4 Ghz Velocidad hasta 3.66 GHz Bus Frontal de 677 MHz con 128 bits de ancho y BW de I/O de 14 Ghz

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

Estado del Arte y Tendencias

Procesadores para equipos de red.

Intel IXP4XX que son procesadores utilizados para dispositivos de comunicaciones, como en tado es gate enrutadores, gateways, a s Cont Control ol ind industrial st ial y aplicaciones de automatizacin, telemetra e instrumentacin lectores RDIF instrumentacin, RDIF. Intel PCA PCA. Diseado funcionar en equipos de comunicaciones mviles, como PDA, celulares y equipos similares.

Procesadores para equipos Inalmbricas

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

Estado del Arte y Tendencias


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

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

Estado del Arte y Tendencias


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

V L A D I M I R

Estado del Arte y Tendencias

Procesadores Digitales de seales


DSP d de Alt Alto rendimiento di i t TMS320C6000

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

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

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

Estado del Arte y Tendencias

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

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

Estado del Arte y Tendencias

DSP TMS320C2000 Optimizado para Control. Optimizados para trabajo en tcnicas de control digital.

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

V L A D I M I R

Estado del Arte y Tendencias


PLD (Programable Logic Device) MAX II (CPLD)


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

Bajo consumo de energa, alta densidad Utiliza memoria FLASH Soporta voltajes de 1 1.8 8-V V, 2.5 2 5-V V & 3.3 3 3-V V Bajo B j consumo y densidad d id d moderada. d d Soporta voltajes de 2.5-V, 3.3-V o 5.0-V

MAX

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

Estado del Arte y Tendencias


FPGA (Field Programable Gate Array) CICLONE II


Soporta Nios II embedded processor Multiplicadores digitales 18x18 para DSP DSPs s Embebidos Amplio portafolio de IP. Soporta Nios II embedded processor Amplio portafolio de IP. Soporta Nios II embedded processor Interfaces de I/O de alta velocidad Amplio portafolio de IP.

CICLONE

A R I A S

STRATIX II (Alta Densidad)


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

Estado del Arte y Tendencias

STRATIX (Alta Densidad)


Soporta Nios II embedded processor Bloques para DSP Interfaces de I/O de alta velocidad Amplio portafolio de IP.

STRATIX GX (Alta Densidad)


Todas las caractersticas de los otros STRATIX Transceptores de 3.125-Gbps Amplio portafolio de IP

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

Estado del Arte y Tendencias

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

Estado del Arte y Tendencias

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

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

Estado del Arte y Tendencias

SPARTAN 3 E (FPGA)

Posee alrededor de 1.2 millones de compuertas Tecnologa de 90nm

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

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

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

Estado del Arte y Tendencias


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

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

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

Estado del Arte y Tendencias

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

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

Conceptos Generales de procesadores

EL MICROPROCESADOR.

Definicin: Es el dispositivo encargado de realizar clculos


aritmticos y lgicos y que temporiza y controla las operaciones d l de los d dems elementos l t d de un sistema. i t

Partes: - Unidad U id d de d control. t l


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

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

Conceptos Generales de procesadores

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

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

Conceptos Generales de procesadores


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

V L A D I M I R

Conceptos Generales de procesadores


Caractersticas:

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

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

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

Conceptos Generales de procesadores

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

DSP Definicin

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

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

Que hace a un DSP un DSP?

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

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

Que hace a un DSP un DSP?


Unidades DMA (Direct Memory Acess) Generadores de direcciones (DAGs) Mecanismo efectivo de saltos para ejecucin de loops Alta velocidad de procesamiento de operaciones aritmticas

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

Diferencias entre Microcontrolador y DSP


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

V L A D I M I R

Requerimientos HW y Operaciones Comunes

Los DSPs tienen en comn ciertas caractersticas como:

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

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

V L A D I M I R

Requerimientos HW y Operaciones Comunes

Las operaciones tpicas en los DSPs son:


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

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

V L A D I M I R

Requerimientos HW y Operaciones Comunes

La suma y Multiplicacin. Requiere el uso de:


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

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

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

Requerimientos HW y Operaciones Comunes

Manejo de Arreglos

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

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

Arquitectura Von Newman

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

Arquitectura Hardvard

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

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

Esta arquitectura incluye una memoria d cach de h (Reserva), (R ) la l cual l es utilizada ili d para almacenar instrucciones y datos que sern reutilizadas l d por la l CPU, liberando as los dos buses de la arquitectura Hardvard y permitindoles ser utilizados en la bsqueda y almacenamiento de datos, mientras se j las instrucciones en cach ejecutan

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

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

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

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

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

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

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

Arquitectura Von Newman Modificada.

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

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

CPU

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

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

Segmentacin

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

Ortogonalidad

La ortogonalidad de las instrucciones hace posible ejecutar cualquier operacin, sobre cualquier registro, utilizando cualquier modo de direccionamiento direccionamiento.

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

Memoria

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

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

Memoria

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

La Gama Alta de los PIC (18F452)

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

Caractersticas Generales

Cdigo compatible con la familia 16 y 17 de los PIC Reloj que puede trabajar por encima de 10 MIPs.

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

Instrucciones de 16 bits con bus de datos de 8 bits.

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

Caractersticas Generales

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

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

Caractersticas Generales

Timer 1 de 16 bits, Timer 2 de 8 bits. Timer 3, (no lo posee la gama media), de 16 bits (65535 conteos) conteos). Dos mdulos de Captura/Comparacin/PWM. Mdulo de comunicacin serial con soporte para RS-485 y RS-232

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

Caractersticas Generales

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

Caractersticas Generales

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

LP Cristal de baja potencia. XT Cristal resonador de cuarzo HS Cristal resonador de alta velocidad (por encima de 8 Mhz.) HS + PLL Cristal de alta velocidad con PLL habilitado. RC Oscilador RC externo. RCIO Resistor externo y capacitor con pin I/O habilitado. EC Reloj externo. ECIO Reloj externo con pin I/O habilitado

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

Oscilador en modo HS, XT, LP

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

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

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

Oscilador Externo.
Cuando se utiliza el oscilador externo, , se puede p utilizar el modo EC, el cual se tiene FREC/4 por el pin OSC2. Tambin se puede tomar el modo ECIO, para ahorro de corriente, i el l cual l OSC2 queda d como un pin i de d propsito i general (RA6)

PLL

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

PLL

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

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

Cambio de Fuente de Reloj.

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

Registro OSCON

BIT 7 a 1 No utilizados BIT 0 SCS SCS: System S Cl Clock k Switch S i h bit bi

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


1 = Utilice el oscilador del timer 1. 1 0 = Utilice el oscilador primario.

Si el oscilador del Timer1 no esta habilitado, , cualquier q escritura en el BIT SCS es ignorada y se utiliza el oscilador principal

Diagramas de Tiempo de Transiciones

El contador de programa, se incrementa cuando ocurre la octava transicin de estabilizacin del Timer 1

Diagramas de Tiempo de Transiciones

Para la transicin entre el oscilador de timer1 y OSC1, existe un tiempo de estabilizacin de 1024 ciclos de osc1, antes de comenzar a contar los 8 periodos de sincronizacin de reloj, reloj despus de lo cual el reloj del micro funciona con OSC1.

Diagramas de Tiempo de Transiciones

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

Diagramas de Tiempo de Transiciones

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

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

Retardos Considerados al iniciar el microcontrolador.

Al iniciar el procesador se definen 3 retardos.

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

La secuencia de retardo es PWR ms OST OST.


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

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

Fuentes de Reset

La familia PIC18FXXX Posee los siguientes tipos de reset:


A R I A S

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

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

Organizacin de la memoria

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

Organizacin de la memoria

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

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

Organizacin de la memoria

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

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

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

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

Organizacin g de la memoria (Pila)

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

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

Organizacin g de la memoria (Pila)

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

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

Registro STKPTR

BIT 7 STKOVF: Bandera de Pila llena


BIT 6 STKUNF: Bandera de pila vaca.


1 = Pila llena o rebosada. 0 = Pila sin llenar

BIT 5 Sin implementar: Ledo como '0' BIT 4 4-0 0 SP4:SP0: SP4 SP0 Bits Bit d de direccin di i de d la l pila

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

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

Organizacin g de la memoria (Pila)

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

Organizacin g de la memoria (Pila)

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

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

Organizacin g de la memoria (Pila)

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

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

Organizacin g de la memoria (Pila)

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

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

Organizacin g de la memoria (Pila)

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

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

Organizacin g de la memoria (Pila)

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

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

Instrucciones PUSH y POP

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

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

Instrucciones PUSH y POP

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

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

Contador de Programa

El contador de programa (PC) esta conformado f d por l los registros i PCL, PCL PCH y PCU. El registro PCL puede ser ledo y escrito directamente. Los registros PCH y PCU pueden ser ledos y escritos solo a travs de los registros PCLATH y PCLATU

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

Temporizacin / Instrucciones

V L A D I M I R

Temporizacin / Instrucciones

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

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

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

Instrucciones en la Memoria de programa g

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

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

Instrucciones en la Memoria de programa g

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

Instrucciones de 32 bits

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

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

Instrucciones de 32 bits

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

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

Instrucciones de 32 bits

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

Memoria de Datos

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

Memoria de Datos

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

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

Memoria de Datos

(Direccionamiento)

Se pueden identificar 3 formas de acceder la memoria de programa de los PIC18FXX2.

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

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

Memoria de Datos

(Direccionamiento)

Otra forma de direccionamiento directo es:

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

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

Memoria de Datos

(Registros FSR)

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

Memoria de Datos

(Registros FSR)

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

El registro BSR

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

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

Direccionamiento Indirecto.

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

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

Direccionamiento Indirecto.

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

Multiplicador Hardware

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

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

Puertos

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

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

Puertos

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

Puerto A

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

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

Puerto A (18f452)
PIN
RA0/AN0 RA1/AN1 RA2/AN2 / RA3/AN3 RA4/T0CKI RA5/AN4 / RA6/OSC2/CLKO

Tipo Entrada
TTL TTL TTL TTL Colector Abierto TTL TTL

Funcin
Pin I/O entrada analgica 0. Pin I/O entrada analgica 1 Pin I/O entrada analgica 2 Pin I/O / entrada analgica g 3 Pin I/O entrada del timer 0, con entrada tipo Schmit Trigger Pin I/O / entrada analgica g 4 Entrada del oscilador 2, o salida de frecuencia de reloj.

Puerto A (18f4520)
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT TTL/ANA TTL/ANA TTL/ANA TTL/ANA Colector Abierto I/O digital o entrada analgica, LATA<0> no afectado por entrada digital I/O digital o entrada analgica, LATA<1> no afectado por entrada digital I/O digital o entrada analgica, LATA<2> no afectado por entrada digital I/O digital o entrada analgica, LATA<3> no afectado por entrada digital I/O digital, o entrada de Timer 0

RA5/AN4/SS/ HLVDIN/C2OUT

TTL/ANA

I/O digital o entrada analgica, LATA<5> no afectado por entrada digital, seleccin de entrada modo esclavo para SSP (MSSP module).

OSC2/CLKO/RA6

TTL/ANA

I/O digital o entrada analgica, LATA<6> no afectado por entrada digital, retroalimentacin de la salida del oscilador principal (XT, HS and LP modes).

OSC1/CLKI/RA7

TTL/ANA

I/O digital o entrada analgica, LATA<7> no afectado por entrada digital, entrada del oscilador principal y entrada del reloj principal.

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

Puerto A

Registros g asociados con PORTA

Registros asociados con PORTA (18F4520)

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

Puerto B
PIN
RB0/INT0 RB1/INT1 RB2/INT2 RB3/CCP2 RB4 RB5/PGM RB6/PGC RB7/PGD

Tipo Entrada
TTL, Schmit Trigger para la l Interrupcion I t i TTL, Schmit Trigger para la Interrupcion TTL, Schmit Trigger para la Interrupcion TTL, Schmit Trigger para modo d CCP2 TTL TTL, Schmit Trigger TTL para prog. Serial TTL, Schmit Trigger para prog. prog Serial TTL, Schmit Trigger para prog. serial

Funcin
Pin I/O entrada de interrupcin Externa 0. Pin I/O entrada de interrupcin Externa 1. Pin I/O entrada de interrupcin Externa 2. Pin I/O pin del mdulo CCP2, cuando el l bit CCP2MX esta t en 1 Pin I/O, y entrada de interrupcin por cambio de estado en PORTB. Pin I/O, I/O y entrada de interrupcin por cambio de estado en PORTB. Pin I/O, y entrada de interrupcin por cambio ca b o de estado en e PORTB. O Pin I/O, y entrada de interrupcin por cambio de estado en PORTB.

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

Puerto B

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

Puerto B

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

Puerto C
PIN
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT

Tipo Entrada
TTL Schmit Trigger TTL, TTL, Schmit Trigger TTL Schmit Trigger TTL, TTL, Schmit Trigger TTL Schmit Trigger TTL, TTL, Schmit Trigger TTL Schmit Trigger TTL, TTL, Schmit Trigger

Funcin
Pin I/O salida del oscilador de timer1 o entrada de reloj Pin I/O Salida del mdulo CCP2 Pin I/O pin del mdulo CCP1 Pin I/O utilizado para el reloj serial de los mdulos SPI e I2C Pin I/O o entrada de datos para SPI o I/O para I2C Pin I/O, o salida del puerto serial sncrono Pin I/O o TX del mdulo USART Pin I/O o RX del mdulo USART

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

Puerto C

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

Puerto D
PIN
RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 / RD5/PSP5 RD6/PSP6 RD7/PSP7

Tipo Entrada
TTL Schmit Trigger TTL, TTL, Schmit Trigger TTL, Schmit Trigger TTL, Schmit Trigger TTL, , Schmit Trigger gg TTL, Schmit Trigger TTL Schmit Trigger TTL, TTL, Schmit Trigger

Funcin
Pin I/O puerto paralelo esclavo bit 0 Pin I/O puerto paralelo esclavo bit 1 Pin I/O puerto paralelo esclavo bit 2 Pin I/O puerto paralelo esclavo bit 3 Pin I/O / p puerto p paralelo esclavo bit 4 Pin I/O, puerto paralelo esclavo bit 5 Pin I/O puerto paralelo esclavo bit 6 Pin I/O puerto paralelo esclavo bit 7

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

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

Puerto D

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

Puerto E
PIN
RE0/RD/AN5

Tipo Entrada
TTL, Schmit Trigger TTL Para control de puerto paralelo esclavo

Funcin
Pin I/O Pin de control del puerto paralelo esclavo y entrada A/D. BIT RD 1 = No lectura. 0 = Lee PORTD si CS es 1. Pin I/O Pin de control del puerto paralelo esclavo y entrada A/D. BIT WR 1 = No escritura 0 = Escribe en PORTD si CS es 1 Pin I/O Pin de control del puerto paralelo esclavo y entrada A/D. BIT CS 1 = Dispositivo no seleccionado 0 = Dispositivo no seleccionado

RE1/WR/AN6

TTL, Schmit Trigger Para control de puerto paralelo l l esclavo l

RE2/CS/AN7

TTL, Schmit Trigger TTL Para control de puerto paralelo esclavo

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

Puerto E

V L A D I M I R

Registro TRISE

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

Bit 7 IBF: Bit de Buffer de entrada lleno

1 = Una palabra ha sido recibida y espera ser leda. e da 0 = Ninguna palabra recibida. 1 = El buffer mantiene una palabra escrita previamente. 0 = El buffer de salida ha sido ledo.

Bit 6 OBF: Bit de Buffer de salida lleno lleno.

V L A D I M I R

Registro TRISE

Bit 5 IBOV: Rebose del Buffer de entrada.

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

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

Bit 4 PSPMODE: Seleccin del puerto paralelo esclavo


1 = Modo puerto paralelo esclavo. 0 = Modo general de I/O

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


1 = Entrada d 0 = Salida

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

El registro de estado

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

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

El registro de estado

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

1 = Resultado negativo. 0 = Resultado positivo positivo.

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

El registro de estado

BIT OV: BIT de desbordamiento. Este bit es utilizado para aritmtica con signo (complemento a 2).

1 = Desborde ocurri 0 = No ocurri un desborde 1 = El resultado de una operacin p aritmtica o lgica es 0. 0 = El resultado de una operacin aritmtica o lgica no es 0.

BIT 2 Z: Bit de 0

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

El registro de estado

BIT 1 DC: carry del cuarto al quinto bit.


Funciona con ADDWF, ADDLW, SUBLW, y SUBWF 1 = Hay carry del 4 al 5 bit. 0 = No hay carry del 4 al 5 bit Funciona con ADDWF, ADDLW, SUBLW, y SUBWF 1 = Ocurri carry y 0 = No Ocurri carry

BIT 0 C: Bit de carry. y


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

Registro RCON (Reset Control)

BIT 7 IPEN: Bit que habilita la prioridad en las interrupciones.


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


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

1 = La instruccin RESET no ha sido ejecutada. ejecutada 0 = La instruccin RESET fue ejecutada.

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

Registro RCON (Reset Control)

BIT 3 TO: Bandera del Perro Guardin.

1 = Despus de un power-up, CLRWDT, o SLEEP 0 = A WDT reset ocurri

BIT 2 PD: Bandera de deteccin de apagado del procesador.


A R I A S

1 = Despus de un power-up o CLRWDT. 0 = Debido a la ejecucin de la instruccin SLEEP.

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

Registro RCON (Reset Control)

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


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

BIT 0 BOR: Bit de estado de un Brown-out Reset (Bajn de voltaje)


A R I A S

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

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

Interrupciones

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

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

Interrupciones

Los registros asociados con el manejo de interrupciones son los siguientes: RCON INTCON, INTCON2, INTCON3, que en general, manejan las interrupciones externas y de TIMER 0. PIR1, PIR2, que manejan las banderas que activan las interrupciones debidas a perifricos. PIE1, PIE2, que son los registros habilitadores de las interrupciones de perifricos IPR1, IPR2, que activan los niveles de prioridad de p las interrupciones.

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

Interrupciones

Cada fuente de interrupcin, a excepcin de INT0, posee 3 bits para su control. control

Una bandera que indica que la interrupcin ocurri. Bit habilitador de la interrupcin Bit que permite asignar el nivel de prioridad de la interrupcin.

Nota: Se recomienda no utilizar la instruccin MOVFF, para modificar alguno de los registros de control, mientras las interrupciones estn habilitadas, ya que esto t puede d generar di disparos de d interrupciones aleatorios.

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

Interrupciones. Registro RCON

Bit IPEN: Bit habilitador de niveles de prioridad de las interrupciones. interrupciones

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

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

Interrupciones. Registro RCON


bit 6-5 Sin implementar bit 4 RI: bit indicador de que se gener una instruccin de RESET.

1 = La instruccin RESET no se ha ejecutado. 0 = La instruccin RESET se ejecut j 1 = Despus del encendido encendido, instruccin CLRWDT o instruccin SLEEP. 0 = Ha a ocurrido ocu do un u rebose ebose del de WDT

bit 3 TO: bit de rebose del Watchdog

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

Interrupciones. Registro RCON

bit 2 PD: Bit de deteccin de ausencia de voltaje.

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

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


A R I A S

V L A D I M I R

Interrupciones. Registro RCON

bit 0 BOR: bit de estado de Brown-out Reset. (Disminucin del nivel de voltaje)

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

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

I t Interrupciones. i R Registro i t INTCON


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

(18F452, 18F4520)

Bit 7 GIE/GIEH: Habilitador global de interrupciones.

Si IPEN = 0: (Bit 7 RCON)


1 = Habilita todas las interrupciones sin mscara 0 = Deshabilita todas las interrupciones 1 = Habilita todas las interrupciones de alta prioridad. 0 = Deshabilita todas las interrupciones.

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


Interrupciones Registro INTCON Interrupciones.


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

(18F452, 18F4520)

Bit 6 PEIE/GIEL: Habilitador de Interrupciones de perifricos Si IPEN = 0: (Bit 7 RCON) 1 = Habilita todas las interrupciones de perifricos sin mscara. 0 = Deshabilita todas las interrupciones de perifricos Si IPEN = 1: (Bit 7 RCON) 1 = Habilita todas las interrupciones de perifricos de baja prioridad. 0 = Deshabilita todas las interrupciones de perifricos de baja prioridad

Interrupciones Registro INTCON Interrupciones.


V L A D I M I R

(18F452, 18F4520)

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

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

Interrupciones Registro INTCON Interrupciones.


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

(18F452, 18F4520)

Bit 2 TMR0IF: Bandera de Interrupcin por rebose de TMR0


Bit 1 INT0IF: Bandera de INT0


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

Bit 0 RBIF: Bandera de interrupcin por cambio de estado en PORTB.


1 = Ha ocurrido un cambio de estado en uno de los pines RB4 a RB7 0 = No ha ocurrido un cambio de estado en RB4 a RB7.

Interrupciones Reg. Interrupciones. Reg INTCON2


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

(18F452, 18F4520)

Bit 7 RBPU: Bit habilitador de las resistencias Pull-up.


A R I A S

Bit 6 INTEDG0: Seleccin del flanco de la Interrupcin Externa 0


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

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

Interrupciones Reg. Interrupciones. Reg INTCON2


V L A D I M I R

(18F452, 18F4520)

Bit 5 INTEDG1: Seleccin del flanco de la Interrupcin Externa 1


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

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

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


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

Bit 3 Sin Implementar

Interrupciones Reg. Interrupciones. Reg INTCON2


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

(18F452, 18F4520)

Bit 2 TMR0IP: Bit de prioridad de la interrupcin por rebose de TMR0. TMR0


1 = Alta prioridad 0 = Baja prioridad

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

1 = Alta prioridad. prioridad 0 = Baja prioridad.

Interrupciones Reg. Interrupciones. Reg INTCON3


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

(18F452, 18F4520)

Bit 7 INT2IP: Bit de prioridad de INT2


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

Bit 6 INT1IP: Bit de prioridad de INT1


Interrupciones Reg. Interrupciones. Reg INTCON3


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

(18F452, 18F4520)

Bit 5 Sin implementar Bit 4 INT2IE: Bit habilitador de INT2


1 = Habilita INT2. INT2 0 = Deshabilita INT2. 1 = Habilita INT1. 0 = Deshabilita INT1.

Bit 3 INT1IE: Bit habilitador de INT1


Bit 2 Si Sin implementar i l t

Interrupciones Reg. Interrupciones. Reg INTCON3


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

(18F452, 18F4520)

Bit 1 INT2IF: Bandera que indica que ocurri INT2


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

Bit 0 INT1IF: Bandera q que indica que q ocurri INT1


A R I A S

1 = Ha ocurrido INT1 ( (debe ser borrada por p SW) ) 0 = No ha ocurrido INT1

Int Perifricos Int. Perifricos. Reg Reg. PIR1


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

(18F452, 18F4520)

Bit 7 PSPIF(1): Bandera de interrupcin de lectura/escritura del puerto paralelo esclavo.

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

Bit 6 ADIF: Bandera de interrupcin por fin de conversin del A/D

1 = Conversin A/D completa (Debe ser borrada por SW) 0 = La conversin A/D esta incompleta.

Int Perifricos Int. Perifricos. Reg Reg. PIR1


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

(18F452, 18F4520)

Bit 5 RCIF: Bandera de interrupcin por recepcin en el USART. USART

1 = El buffer de recepcin, RCREG, esta lleno (Debe ser borrada por SW) 0 = El buffer de RX del USART esta vaco.

Bit 4 TXIF: Bandera de interrupcin por TX del USART

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

Int Perifricos Int. Perifricos. Reg Reg. PIR1


V L A D I M I R

(18F452, 18F4520)

Bit 3 SSPIF: Bandera de interrupcin del puerto serial sncrono

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

1 = Una TX/RX se ha completado (debe ser borrada por SW) 0 = Esperando una TX o RX. RX

Int Perifricos Int. Perifricos. Reg Reg. PIR1


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

(18F452, 18F4520)

Bit 2 CCP1IF: Bandera de interrupcin del mdulo CCP1 CCP1.

Modo Captura:

Modo Compara: p

1 = Se ha producida la captura del valor de TMR1 (debe ser borrada b d por SW) 0 = No ha ocurrido una captura de TMR1. 1 = Se ha dado una comparacin con TMR1 (debe ser borrada por SW) 0 = No ha ocurrido una comparacin p con TMR1. No utilizado en este modo.

A R I A S

Modo PWM:

Int Perifricos Int. Perifricos. Reg Reg. PIR1


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

(18F452, 18F4520)

Bit 1 TMR2IF: Se ha producido una igualdad entre TMR2 y PR2. PR2

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

Bit 0 TMR1IF: Bandera de interrupcin por rebose de TMR1.

1 = El TMR1 se ha rebosado (debe ser borrada por SW) 0 = El TMR1 no se ha rebosado

Int Perifricos Int. Perifricos. Reg Reg. PIR2


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

(18F452)

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

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

Int Perifricos Int. Perifricos. Reg Reg. PIR2


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

(18F452)

Bit 3 BCLIF: Interrupcin por colisin en el bus


1 = Ocurri una colisin 0 = No ha ocurrido una colisin.

Bit 2 LVDIF: Interrupcin p por p deteccin de bajo voltaje.


A R I A S

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

Int Perifricos Int. Perifricos. Reg Reg. PIR2


V L A D I M I R

(18F452)

Bit 1 TMR3IF: Bandera de rebose de TMR3


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

Bit 0 CCP2IF: Bandera de interrupcin del mdulo CCP2

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

Modo Captura:

Modo Compara:

1 = Una captura de TMR1 ha ocurrido. 0 = No ha ocurrido captura de TMR1 1 = Ha ocurrido un evento de comparacin con TMR1. 0 = No ha habido eventos de comparacin con TMR1. No usado en este modo

Modo PWM

Int Perifricos Int. Perifricos. Reg Reg. PIR2


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

(18F4520)

Bit 7 OSCFIF: Bandera indicadora de fallo del oscilador. oscilador

1 = El oscilador del dispositivo fall. Se ha realizado li d un cambio bi a INTOSC. INTOSC (Debe (D b ser borrada por software) 0 = El reloj trabaja sin problemas.

Int Perifricos Int. Perifricos. Reg Reg. PIR2


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

(18F4520)

Bit 6 CMIF: Bandera de interrupcin por comparacin comparacin.

1 = La entrada del comparador ha cambiado (Debe ser borrada p por software) ) 0 = La entrada del comparador no ha cambiado.

Bit 5 Sin implementar: Se lee como 0 Bit 4 EEIF: Bandera de interrupcin por Escritura/Lectura en EEPROM o FLASH

1 = La operacin de escritura se ha completado (debe ser borrada por SW) 0 = La operacin de escritura no ha terminado o no se ha iniciado.

Int Perifricos Int. Perifricos. Reg Reg. PIR2


V L A D I M I R

(18F4520)

Bit 3 BCLIF: Interrupcin por colisin en el bus


T R U J I L L O

Bit 2 HLVDIF: Interrupcin por deteccin de alto o bajo voltaje.

1 = Ocurri una colisin 0 = No ha ocurrido una colisin.

A R I A S

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

Int Perifricos Int. Perifricos. Reg Reg. PIR2


V L A D I M I R

(18F4520)

Bit 1 TMR3IF: Bandera de rebose de TMR3


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

Bit 0 CCP2IF: Bandera de interrupcin del mdulo CCP2

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

Modo Captura:

Modo Compara:

1 = Una captura de TMR1 ha ocurrido. 0 = No ha ocurrido captura de TMR1 1 = Ha ocurrido un evento de comparacin con TMR1. 0 = No ha habido eventos de comparacin con TMR1. No usado en este modo

Modo PWM

Int Perifricos Int. Perifricos. Reg Reg. PIE1


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

(18F452, 18F4520)

PSPIE(1): Habilita la interrupcin de lectura/escritura del puerto paralelo esclavo


1 = Habilita la interrupcin 0 = Deshabilita la interrupcin.

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

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

Int Perifricos Int. Perifricos. Reg Reg. PIE1


V L A D I M I R

(18F452, 18F4520)

Bit 5 RCIE: Habilita la interrupcin por recepcin del mdulo USART.


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

1 = Habilita la interrupcin 0 = Deshabilita la interrupcin

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

1 = Habilita la interrupcin 0 = Deshabilita la interrupcin

Int Perifricos Int. Perifricos. Reg Reg. PIE1


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

(18F452, 18F4520)

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

Int Perifricos Int. Perifricos. Reg Reg. PIE2


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

(18F452)

Bit 7-5 Sin implementar Bit 4 EEIE: Habilita la interrupcin por fin de escritura en memoria EEPROM/FLASH.

Bit 3 BCLIE: Habilita la interrupcin por colisin de datos en el BUS


1 = Habilitada 0 = Deshabilitada

1 = Habilitada H bilit d 0 = Deshabilitada

Int Perifricos Int. Perifricos. Reg Reg. PIE2


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

(18F452)

Bit 2 LVDIE: Habilita la Interrupcin por deteccin de bajo voltaje.


Bit 1 TMR3IE: Habilita la interrupcin por desborde de TMR3.


1 = Habilitada 0 = Deshabilitada.

Bit 0 CCP2IE: Habilita la interrupcin del mdulo CCP2


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

1 = Habilita la interrupcin 0 = Deshabilita la interrupcin

Int Perifricos Int. Perifricos. Reg Reg. PIE2


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

(18F4520)

Bit 7 OSCFIE: Bit habilitador de interrupcin por fallo de oscilador


1 = Habilitado 0 = deshabilitado

A R I A S

Bit 6 CMIE: Bit habilitador de interrupcin por comparacin


1 = Habilitado 0 = Deshabilitado

Int Perifricos Int. Perifricos. Reg Reg. PIE2


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

(18F4520)

Bit 5 Sin implementar se lee como 0 Bit 4 EEIE: Habilita la interrupcin por fin f de escritura en memoria EEPROM/FLASH.

1 = Habilitada H bilit d 0 = Deshabilitada

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


1 = Habilitada 0 = Deshabilitada

Int Perifricos Int. Perifricos. Reg Reg. PIE2


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

(18F4520)

Bit 2 HLVDIE: Habilita la Interrupcin por deteccin de alto o bajo voltaje. voltaje

1 = Habilitada 0 = Deshabilitada. Deshabilitada

Bit 1 TMR3IE: Habilita la interrupcin por desborde de TMR3.


1 = Habilita la interrupcin 0 = Deshabilita la interrupcin

Bit 0 CCP2IE: Habilita la interrupcin del mdulo CCP2


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

Prioridad de Int. Int Reg. Reg IPR1


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

(18F452, 18F4520)

Bit 7 PSPIP(1): Prioridad de Interrupcin del puerto paralelo esclavo


1 = Alta l prioridad d d 0 = Baja prioridad

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


1 = Alta prioridad p io idad 0 = Baja prioridad

Prioridad de Int. Int Reg. Reg IPR1


V L A D I M I R

(18F452, 18F4520)

Bit 5 RCIP: Prioridad de Interrupcin del mdulo USART en RX. RX


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

Bit 4 TXIP: Prioridad de Interrupcin del mdulo USART en TX.


1 = Alta prioridad 0 = Baja j prioridad p

Bit 3 SSPIP: Prioridad de Interrupcin del puerto serial sncrono


1 = Alta prioridad 0 = Baja prioridad

1 = Alta prioridad 0 = Baja prioridad

Prioridad de Int. Int Reg. Reg IPR1


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

(18F452, 18F4520)

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

Prioridad de Int. Int Reg. Reg IPR2


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

(18F452)

Bit 7-5 Sin implementar Bit 4 EEIP: Prioridad de Interrupcin por fin de escritura en EPROM/FLASH

Bit 3 BCLIP: Prioridad de Interrupcin por colisin en Bus de datos.


1 = Alta prioridad 0 = Baja prioridad

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

Prioridad de Int. Int Reg. Reg IPR2


V L A D I M I R

(18F452)

Bit 2 LVDIP: Prioridad de Interrupcin por deteccin de bajo voltaje


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

Bit 1 TMR3IP: Prioridad de Interrupcin por rebose de TMR3


1 = Alta prioridad 0 = Baja j prioridad p

Bit 0 CCP2IP: Prioridad de Interrupcin de mdulo CCP2


1 = Alta prioridad 0 = Baja prioridad

1 = Alta prioridad 0 = Baja prioridad

Prioridad de Int. Int Reg. Reg IPR2


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

(18F4520)

Bit 7 OSCFIP: Bit de prioridad de interrupcin por fallo de oscilador. oscilador


1 = Alta prioridad 0 = Baja j prioridad p

A R I A S

Bit 6 CMIP: Bit de prioridad de interrupcin por comparacin analgica.


1 = Alta prioridad. 0 = Baja prioridad.

Prioridad de Int. Int Reg. Reg IPR2


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

(18F4520)

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

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

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


1 = Alta prioridad 0 = Baja prioridad

Prioridad de Int. Int Reg. Reg IPR2


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

(18F4520)

Bit 2 HLVDIP: Prioridad de Interrupcin por deteccin de bajo o alto voltaje


1 = Alta prioridad 0 = Baja prioridad

Bit 1 TMR3IP: Prioridad de Interrupcin por rebose de TMR3


1 = Alta prioridad 0 = Baja prioridad

Bit 0 CCP2IP: Prioridad de Interrupcin de mdulo CCP2


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

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

Memoria FLASH de Programa


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

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

Memoria FLASH de Programa

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

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

Memoria FLASH de Programa

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

Registro EECON1 y EECON2

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

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

Registro EECON1 (Dir. 0FA6h )

BIT 7 EEPGD: Bit de seleccin de la memoria FLASH o EEPROM.


BIT 6 CFGS: Acceso a memoria FLASH/EE o registros de configuracin.


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

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

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

Registro EECON1 (Dir. 0FA6h )


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

BIT 3 WRERR: Error en una operacin d de escritura de la memoria FLASH/EEPROM


1 = Borra la memoria FLASH apuntada por TBLPTR en el prximo comando WR. 0 = Se realiza escritura nicamente.

1 = Una operacin de escritura fue prematuramente terminada. 0 = Operacin de escritura completa.

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

Registro EECON1 (Dir. 0FA6h )

BIT 2 WREN: Bit de habilitacin de escritura en la memoria FLASH/EEPROM.


1 = Permite ciclos de escritura. 0 = Inhibe los ciclos de escritura. 1 = Inicializa el borrado/escritura de la memoria EEPROM/FLASH, este bit se coloca en 0 nuevamente por HW. 0 = El ciclo de escritura esta completo.

BIT 1 WR: Bit de control de escritura

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

Registro EECON1 (Dir. 0FA6h )

BIT 0 RD: Bit de control de lectura.

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

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

Registro TABLAT y TBLPTR

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

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

Registro TBLPTR

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

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

Operaciones que auto modifican TBLPTR

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

Lectura de la Memoria FLASH

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

Lectura de la Memoria FLASH

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

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

Borrado de la Memoria FLASH

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

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

Borrado de la Memoria FLASH

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

Borrado de la Memoria FLASH


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

(Secuencia a utilizar)

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

Borrado de la Memoria FLASH


V L A D I M I R

(Secuencia a utilizar)

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

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

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

Escritura en memoria Flash.

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

Escritura en memoria Flash.

Escritura en memoria Flash Flash.


V L A D I M I R

(Secuencia de Programacin) g

Secuencia de programacin de la memoria FLASH.

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

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

Escritura en memoria Flash Flash.


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

(Secuencia de Programacin) g

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

Escritura en memoria Flash Flash.


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

(Secuencia de Programacin) g

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

Escritura en memoria Flash Flash.


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

(Secuencia de Programacin) g

La CPU se detiene cerca de 2 milisegundos mientras se escribe Re habilite las interrupciones. Repita este ciclo 7 veces Para escribir los 64 bytes

Escritura en memoria Flash Flash.


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

(Secuencia de Programacin) g

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

Memoria EEPROM de datos

La memoria EEPROM, no puede ser direccionada normalmente, para acceder a ella se hace a travs de unos registros g especiales

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

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

Memoria EEPROM de datos

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

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

Memoria EEPROM de datos

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


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

BIT 6 CFGS: Acceso a la memoria FLASH/EEPROM o a los registros de d configuracin f d del l PIC C

1 = Acceso a los registros de Configuracin 0 = Acceso a la memoria FLASH o EEPROM

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

Memoria EEPROM de datos


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

1 = Borra B l la memoria i FLASH (64 bytes) b t ) apuntada t d por TBLPTR en el prximo comando WR 0 = Solo para escritura. escritura 1 = Una operacin de escritura ha sido interrumpida. 0 = Operacin p de escritura completa. p

BIT 3 WRERR: Bit de Error

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

Memoria EEPROM de datos

BIT 2 WREN: Bit de habilitacin de escritura en FLASH o EEPROM


BIT WR: bit de control de escritura

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

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

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

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

Lectura de la memoria EEPROM de datos

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

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

Escritura en la memoria EEPROM de datos

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

Mdulo conversin A/D


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

(18F452)

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

Mdulo conversin A/D


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

(18F452)

Mdulo conversin A/D


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

(18F452)

Bit 5-3 CHS2:CHS0: Seleccin del canal l analgico l i


000 001 010 011 100 101 110 111

= = = = = = = =

canal canal canal canal canal canal canal canal

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

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

Mdulo conversin A/D


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

(18F452)

Bit 2 GO/DONE: Estado de la conversin A/D Debe estar habilitado el bit ADON A/D.

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

Bit 1 Sin implementar Bit 0 ADON: Enciende el mdulo A/D


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

Mdulo conversin A/D


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

(18F452)

Mdulo conversin A/D


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

(18F452)

Bit 7 ADFM: Formato del resultado de la conversin A/D. A/D

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

Bit 6 ADCS2: seleccin del tiempo de conversin del mdulo A/D, trabaja j en asocio con los bits ADCS1 y ADCS0 del registro ADCON0

Mdulo conversin A/D


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

(18F452)

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

Mdulo conversin A/D (Pasos)


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

(18F452)

Los pasos para realizar una conversin A/D son l los siguientes: i i 1. Configuracin g del mdulo A/D. /

Se configuran los pines que sern entradas analgicas g o digitales g (ADCON1). ( ) Se selecciona el canal de entrada al mdulo A/D / ( (ADCON0). ) Se selecciona el reloj de conversin A/D (ADCON0). ( ) Se enciende el mdulo A/D (ADCON0).

Mdulo conversin A/D (Pasos)


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

(18F452)

2. Configuracin de interrupciones para el mdulo A/D (opcional)


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

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

Mdulo conversin A/D (Pasos)


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

(18F452)

5. Esperar que la conversin A/D concluya cuando:

El bit GO/DONE se ponga en 0 la interrupcin del conversor A/D / se d.

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

Mdulo conversin A/D


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

(18F452)

Los bits ADCS0, ADCS1 y ADCS2, permiten escoger el oscilador para la conversin A/D que tiene relacin directa con el TAD. El TAD se obtiene as:

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

Mdulo conversin A/D


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

(18F452)

Mdulo conversin A/D


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

(18F452)

Mdulo conversin A/D


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

(18F452)

Mdulo conversin A/D


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

(18F452)

Mdulo conversin A/D


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

(18F4520)

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

Mdulo conversin A/D


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

(18F4520)

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

Cuando ADON = 1:

1 = Conversin A/D en progreso. 0 = Conversor A/D desocupado

Bit 0 ADON: Bit habilitador h b l d de d mdulo d l A/D /


1 = Mdulo A/D habilitado 0 = Mdulo A/D deshabilitado

Mdulo conversin A/D


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

(18F4520)

Bit 7-6 Sin implementar Bit 5-2 CHS3:CHS0: Seleccin del canal analgico g

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

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

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

Mdulo conversin A/D


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

(18F4520)

Bit 7-6 Sin implementar, se lee como 0 Bit 5 VCFG1: Configuracin de Voltaje de referencia (VREF-) 1 = VREF- (AN2) 0 = VSS Bit 4 VCFG0: Configuracin de Voltaje de referencia (VREF+) 1 = VREF+ (AN3) 0 = VDD

Mdulo conversin A/D


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

(18F4520)

Mdulo conversin A/D


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

(18F4520)

Bit 7 ADFM: Seleccin del formato del resultado es ltado del md mdulo lo A/D

A R I A S

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

Bit 6 Sin implementar

Mdulo conversin A/D


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

(18F4520)

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


A R I A S

111 110 101 100 011 010 001 000

= = = = = = = =

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

Mdulo conversin A/D


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

(18F4520)

bit 2-0 ADCS2:ADCS0: Bit de seleccin del reloj para la conversin A/D (TAD).

A R I A S

111 110 101 100 011 010 001 000

= = = = = = = =

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

Mdulo conversin A/D


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

(18F4520)

Mdulo conversin A/D


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

(18F4520)

Pasos para realizar una conversin A/D.


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

Mdulo conversin A/D


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

(18F4520)

2. Configurar las interrupciones A/D


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

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

Mdulo conversin A/D


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

(18F4520)

Mdulo conversin A/D


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

(18F4520)

Mdulo conversin A/D


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

(18F4520)

Mdulo conversin A/D


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

(18F4520)

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

Temporizador Timer 0

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

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

Temporizador Timer 0 Reg. T0CON

Bit 7 TMR0ON: Bit de control ON/OFF del Timer0 1 = Habilita el Timer0 0 = Detiene el Timer0 Bit 6 T08BIT: Bit de seleccin de Timer0 en modo 8 bits o 16 bits 1 = Timer0 en modo 8 bits 0 = Timer0 en modo 16 bits

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

Temporizador Timer 0 Reg. T0CON

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


1 = Transiciones en el pin T0CKI (RA4) 0 = Reloj interno de Instrucciones (FOSC/4)

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


1 = Incremento por flanco de bajada bajada. 0 = Incremento por flanco de subida. 1 = Pre escalador no asignado a Timer0. 0 = Pre escalador asignado a Timer0.

Bit 3 PSA: Bit de asignacin g del Pre escalador


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

Temporizador Timer 0 Reg. T0CON

Bit 2-0 T0PS2:T0PS0: Bits de seleccin del pre escalador escalador.


111 110 101 100 011 010 001 000

= = = = = = = =

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

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

Temporizador Timer 0

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

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

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

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

Temporizador Timer 0

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

Temporizador Timer 0

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

Temporizador Timer 0

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

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

Temporizador Timer 1

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

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

Temporizador Timer 1

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

Temporizador Timer1 Reg. T1CON

Bit 7 RD16: Modo de lectura escritura de 16bits

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

Cuando RD16 vale 1, la parte alta del timer 1 es transferida a TMR1H a travs de un buffer. Esto ocurre solo cuando TMR1L es ledo, as se transfieren los 16 bits al tiempo.

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

Temporizador Timer1 Reg. T1CON

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

11 10 01 00

= = = =

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

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

Temporizador Timer1 Reg. T1CON

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

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

Temporizador Timer1 Reg. T1CON

Bit 1 TMR1CS: Bit de seleccin de la fuente de reloj de Timer1.

1 = Reloj externo, entrada por RC0/T1OSO/T13CKI / / ( (cuenta cada d fl flanco de d subida) 0 = Reloj R l j Interno I t (FOSC/4) 1 = Habilita el conteo en Timer1 0 = Detiene el conteo en Timer1

Bit 0 TMR1ON: Bit de encendido del Timer1


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

Temporizador Timer1. Oscilador

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

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

Temporizador Timer 1

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

Temporizador Timer 2

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

V L A D I M I R

Temporizador Timer 2

El pre escalador y el post escalador son puestos a su valor mnimo, cuando:


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

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

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

Temporizador Timer 2

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

Temporizador Timer2 Reg. T2CON


Bit 7 Sin implementar Bit 6 a 3 TOUTPS3:TOUTPS0: Timer2 Post escalador


Bit 2 TMR2ON: Bit de encendido


0000 = 1:1 Post escalador 0001 = 1:2 1 2 Post P t escalador l d 1111 = 1:16 Post escalador 1 = Timer2 encendido 0 = Timer2 apagado

Bit 1 a 0 T2CKPS1:T2CKPS0: Timer2 Pre escalador


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

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

Temporizador Timer2

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

Temporizador Timer 3

A R I A S

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

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

Temporizador Timer 3

V L A D I M I R

Temporizador Timer 3 Reg. T3CON

Bit 7 RD16: Habilita el modo de lectura escritura de 16 bits

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

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

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

Temporizador Timer 3 Reg. T3CON

Bit 6-3 T3CCP2:T3CCP1:Uso del Timer3 y Ti Timer1 1 para trabajar t b j con el l mdulo d l CCPx. CCP 1x = Timer3 es la fuente de reloj para el mdulo d l CCP en modo d captura t y comparacin. i 01 = Timer3 es la fuente de reloj para el mdulo d l CCP2 y Timer1 es la l fuente f de d reloj l para el mdulo CCP1 00 = Timer1 es la fuente de reloj para el mdulo CCP en modo captura y comparacin.

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

Temporizador Timer 3 Reg. T3CON

Bit 5-4 T3CKPS1:T3CKPS0: Pre escalador del Timer3


11 10 01 00

= = = =

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

Bit 2 T3SYNC: Bit para sincronizacin de la fuente de reloj externa de Timer3.

Cuando TMR3CS = 1:

1 = No sincronice el reloj externo con el interno 0 = sincronice el reloj externo con el interno Es ignorado.

Cuando TMR3CS = 0:

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

Temporizador Timer 3 Reg. T3CON

Bit 1 TMR3CS: Seleccin de la fuente d reloj de l j de d Timer3 Ti 3

1 = Fuente de reloj externa proveniente del oscilador de Timer1 o del pin T1CKI 0 = Fuente de reloj interna (FOSC/4) 1 = Habilita Timer3 0 = Detiene Timer3

Bit 0 TMR3ON: Encendido de Timer3


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

Temporizador Timer3

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

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

Temporizador Timer3

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

Modulo CCP

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

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

Modulo CCP

(Registro de control)

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

V L A D I M I R

Modulo CCP

(Registro de control)

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

T R U J I L L O

A R I A S

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

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

Modulo CCP

(Modo de Captura)

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

Cada Cada Cada Cada

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

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

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

Modulo CCP

(Modo de Captura)

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

Modulo CCP

(Modo de Captura)

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

Modulo CCP

(Modo Compara)

En modo compara, los 16 bits de los registros CCPR1 o (CCPR2) son comparados constantemente con el valor de TMR1 o TMR3 TMR3. Cuando el valor de CCPRx se hace igual al de un Timer, ocurre lo siguiente en los pines RC2/CCP1 o RC1/CCP2:

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

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

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

Modulo CCP

(Modo Compara)

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

Modulo CCP

(Modo Compara)

V L A D I M I R

Modulo CCP

(Modo PWM)

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

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

Periodo PWM = [PR2 + 1] * 4* TOSC*(Pre escalador TMR2) Tiempo Cresta PWM = (CCPR1L:CCP1CON<5:4>)*TOSC ( escalador de TMR2) ) *(Pre

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

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

Modulo CCP

(Modo PWM)

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

Modulo CCP

(Modo PWM)

V L A D I M I R

Modulo CCP

(Modo PWM)

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

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

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

Modulo CCP

(Modo PWM)

V L A D I M I R

Modulo de Comunicacin serial USART

El mdulo de comunicacin serial puede ser configurado de la siguiente manera:


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

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

El mdulo USART cuenta con dos registro de configuracin.


Registro de control de transmisin TXSTA. TXSTA Registro de control de recepcin RCSTA.

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

Modulo de Comunicacin serial USART (Registro g TXSTA)

Bit 7 CSRC: Seleccin de la fuente de reloj.

Modo Asncrono:

No se tiene en cuenta 1 = Modo maestro (reloj generado internamente por el BRG) 0 = Modo Esclavo (reloj de fuente externa)

Modo sincrnico:

V L A D I M I R

Modulo de Comunicacin serial USART (Registro g TXSTA)

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


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

Bit 5 TXEN: Habilitacin de Transmisin


1 = 9 bits para transmitir. transmitir 0 = 8 bits para transmitir.

Bit 4 SYNC: Seleccin del modo de trabajo USART


1 = Transmisin habilitada 0 = Transmisin deshabilitada

1 = Modo d sincrnico i i 0 = Modo asncrono

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

Modulo de Comunicacin serial USART (Registro g TXSTA)


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

Modo asncrono:

1 = Alta velocidad 0 = Baja velocidad No utilizado en este modo

Modo Sincrnico:

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


1 = TSR vaco 0 = TSR lleno

Bit 0 TX9D: Noveno bit de datos a ser transmitido

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

Modulo de Comunicacin serial USART (Registro g RCSTA)

Bit 7 SPEN: Habilitador de puerto serial


1 = Puerto serial habilitado 0 = Puerto serial deshabilitado 1 = Se van a recibir 9 bits. 0 = Se van a recibir 8 bits.

Bit 6 RX9: Habilita la recepcin de noveno bit. bit


V L A D I M I R

Modulo de Comunicacin serial USART (Registro g RCSTA)

Bit 5 SREN: Habilitacin de recepcin simple.

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

Modo asncrono:

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

Modo sincrnico - Maestro:


Modo sincrnico - Esclavo:

V L A D I M I R

Modulo de Comunicacin serial USART (Registro g RCSTA)

bit 4 CREN: Habilita la recepcin continua.

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

Modo asncrono:

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

Modo sincrnico:

V L A D I M I R

Modulo de Comunicacin serial USART (Registro g RCSTA)

bit 3 ADDEN: Habilita la deteccin de direcciones

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


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

bit 2 FERR: Bit de error de Encuadre


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

bit 1 OERR: Bit de error de desborde


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

bit 0 RX9D: Noveno bit en recepcin

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

Modulo de Comunicacin serial USART (Tasa de transferencia)


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

Tasa de transferencia = FOSC/(64(X+1)) Tasa de transferencia = FOSC/(16(X+1)) Tasa de transferencia = FOSC/(4(X+1)) No aplica

Modo asncrono alta velocidad.

Modo sincrnico baja velocidad.

Modo sincrnico alta velocidad velocidad.

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

Modulo de Comunicacin serial USART (Modo asncrono)

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

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

Modulo de Comunicacin serial USART (Modo asncrono TX)

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

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

Modulo de Comunicacin serial USART (Modo asncrono TX)

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

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

Modulo de Comunicacin serial USART (Modo asncrono TX)

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

Modulo de Comunicacin serial USART (Modo asncrono TX)

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

Modulo de Comunicacin serial USART (Modo asncrono TX)

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

Modulo de Comunicacin serial USART (Modo asncrono TX)

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

Modulo de Comunicacin serial USART (Modo asncrono TX)


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

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

Modulo de Comunicacin serial USART (Modo asncrono RX)


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

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

Modulo de Comunicacin serial USART (Modo asncrono RX)

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

Modulo de Comunicacin serial USART (Modo asncrono RX)

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

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

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

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

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

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

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

You might also like