Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La Gama Alta de Los PIC (18F452)
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
Contenido.
CAPITULO 1. Introduccin
Evolucin de los sistemas digitales Estado del Arte Tendencias Conceptos generales de procesadores
Qu Qu Q Qu Qu es es es es un un n un un
V L A D I M I R T R U J I L L O A R I A S
Contenido.
CAPITULO 2. Conceptos Bsicos de Microcontroladores Gama Alta
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
Arquitectura Capacidades de computo Memoria Perifricos especiales Mdulos HW Set de inst cciones instrucciones
V L A D I M I R T R U J I L L O A R I A S
Contenido.
CAPITULO 5. Arquitecturas Mixtas
Introduccin Sistemas Multiprocesadores Arquitecturas Electrnicas Paralelas Procesadores en Sistemas d P d Si t de Telecomunicaciones y Sistemas Industriales I d ti l
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
# de Transistores 10 a 100 100 a 1000 1000 a 10000 10K a 100K 100K a 1M >1.000.000
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
V L A D I M I R T R U J I L L O A R I A S
Pentium 4 XE
Hyper-Threading yp g Dos niveles de Cach hasta de 2MB Hasta 3 7 Gh d reloj H 3.7 Ghz de 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 Hasta 3 6 Gh d reloj H 3.6 Ghz de 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 Hasta 2 8 Gh d reloj H 2.8 Ghz de 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
Servidores
Intel Itanium 2 Intel Xeon Processor Intel Pentium 4 processor
V L A D I M I R T R U J I L L O A R I A S
Tecnologa de Tecnologa de l d l d procesador procesador de 90 de 90 nm nm Un i l d U nivel de Cach hasta de 1MB Velocidad hasta 3.46 GHz Un i l d C h U nivel de Cach hasta de 1MB Velocidad hasta 1.5 15 GHz velocidad para ultra bajo consumo de 1 Ghz Bus Frontal de 400 MHz
V L A D I M I R T R U J I L L O A R I A S
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
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
V L A D I M I R T R U J I L L O A R I A S
MAX
Bajo B j consumo y densidad moderada. d id d d d Soporta voltajes de 2.5-V, 3.3-V o 5.0-V
V L A D I M I R T R U J I L L O A R I A S
CICLONE
Soporta Nios II embedded processor 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
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
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
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
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
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
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 Harvard Extendida o S A i H dE did Super Harvard ARChitecture (SHARC). Esta arquitectura incluye una memoria de d cach (Reserva), la cual es utilizada h (R ) l l ili d para almacenar instrucciones y datos que sern reutilizadas por la CPU, l d l liberando as los dos buses de la arquitectura Hardvard y permitindoles ser utilizados en la bsqueda y almacenamiento de datos, mientras se j ejecutan las instrucciones en cach
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
CPU
CISC Aprox. 80 instrucciones Arquitectura Von Neuman RISC Aprox. 30 instrucciones. Aprox instrucciones Arquitectura Hardvard SISC Diseos especficos (Controladores p ) Empotrados o embebidos)
V L A D I M I R T R U J I L L O A R I A S
Segmentacin
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 que con la memoria EPROM di i l i EPROM. Posteriormente no se puede borrar. Su bajo precio y la sencillez de la grabacin aconsejan este tipo de g j p 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 pero suelen disponer de mayor capacidad EEPROM, que ests ultimas. El borrado slo es posible con bloques completos y no se puede realizar sobre posiciones concretas. Son muy recomendables en aplicaciones en las y p que sea necesario modificar el programa a lo largo de la vida del producto
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 d cristal de 40 Mhz. de ld h Cristales de 4 Mhz a 10 Mhz utilizando un multiplicador de frecuencia PLL.
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, (FOSC2 FOSC1 y 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
Una capacitancia elevada, p 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 no se necesita, se C/ i recomienda utilizar el modo RCIO, RCIO para ahorrar corriente. , g El modo RCIO, es igual al modo RC, con la diferencia de que el pin OSC2 se comporta como un pin de t i 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 utilizar el , p modo EC, el cual se tiene FREC/4 por el pin OSC2. Tambin se puede tomar el modo ECIO, para ahorro de corriente, el cual OSC2 queda como un pin de propsito i l l d i d 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 en modo HS. f 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
Registro OSCON
Si el oscilador del Timer1 no esta habilitado, cualquier escritura , q en el BIT SCS es ignorada y se utiliza el oscilador principal
El contador de programa, se incrementa cuando ocurre la octava transicin de estabilizacin del Timer 1
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.
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
Fuentes de Reset
La familia PIC18FXXX Posee los siguientes tipos de reset:
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 Las L posiciones de memoria mas all de i i d i ll 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. Por lo t t P l tanto este di t dispositivo puede iti 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 de ecto es interrupciones, para manejo de interrupciones de alta y baja prioridad. 32K de memoria en pasos de 2 en dos para un total de 16K de dos, palabras. De 7FFF en adelante no existe memoria implementada fsicamente y se i l t d f i t lee como 0.
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
Registro STKPTR
BIT 7 STKOVF: Bandera de Pila llena BIT 6 STKUNF: Bandera de pila vaca. BIT 5 Sin implementar: Ledo como '0' BIT 4 0 SP4 SP0 Bit d direccin de la 4-0 SP4:SP0: Bits de di i d l pila
1 = Ocurri un vaciado de la pila. p 0 = No ha ocurrido un vaciado de la pila. 1 = Pila llena o rebosada. 0 = Pila sin llenar
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
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
Contador de Programa
El contador de programa (PC) esta conformado por l registros PCL, PCH f d los i PCL 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 T R U J I L L O A R I A S
Temporizacin / Instrucciones
La entrada de reloj es dividida internamente en cuatro seales desfasadas 900. Q1 Q2, Q3 Q1, Q2 y Q4. El contador de programa es incrementado cada flanco subida de Q1. La bsqueda de una instruccin es realizada de d Q1 a Q4, pero es colocada en el registro l d l 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
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
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, los d l datos contenidos en la segunda son id l d accedidos. Pero si el PC accede primero la segunda p palabra, esta se ejecuta como un NOP. , j Esto es til cuando previamente a una instruccin de dos palabras, existe una palabras 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 p banco 15 despus de la posicin F80h (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)
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)
Para asegurar que los registros (SFR Y GPR) sean accedidos en un solo ciclo de instruccin, independiente del Banco apuntado por el registro BSR, BSR Existe el ACCESS BANK, el cual esta formado BANK 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 BSR, a ese BIT se le denomina a g , (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 BITS de direccin se hayan incluidos en la 12-BITS 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, el FSRn y el INDFn. registros 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, accede utilice 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, el cual controla la direccin TRIS de funcionamiento del puerto. El registro PORT, que lee los niveles de PORT entrada en el puerto. El registro LAT el cual es el LATCH de salida LAT, 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 se va a utilizar como canal analgico, i tili l 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 3 / g Pin I/O entrada del timer 0, con entrada tipo Schmit Trigger Pin I/O entrada analgica 4 / g 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
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 l Interrupcion la I t i TTL, Schmit Trigger para la Interrupcion TTL, Schmit Trigger para la Interrupcion TTL, Schmit Trigger para modo CCP2 d TTL TTL, TTL Schmit Trigger para prog. Serial TTL, Schmit Trigger para prog. Serial prog 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 bit CCP2MX esta en 1 l t Pin I/O, y entrada de interrupcin por cambio de estado en PORTB. Pin I/O, y entrada de interrupcin por I/O cambio de estado en PORTB. Pin I/O, y entrada de interrupcin por ca b o cambio de estado en PORTB. e 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, TTL Schmit Trigger TTL, Schmit Trigger TTL, TTL Schmit Trigger TTL, Schmit Trigger TTL, TTL Schmit Trigger TTL, Schmit Trigger TTL, TTL Schmit Trigger 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, TTL Schmit Trigger TTL, Schmit Trigger TTL, Schmit Trigger TTL, Schmit Trigger TTL, Schmit Trigger , gg TTL, Schmit Trigger TTL, TTL Schmit Trigger 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, TTL Schmit Trigger 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
RE2/CS/AN7
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 T R U J I L L O A R I A S
Registro TRISE
V L A D I M I R T R U J I L L O A R I A S
Registro TRISE
Bit 5 IBOV: Rebose del Buffer de entrada.
1 = Ha ocurrido una escritura, cuando una palabra previa no H id it d l b i ha sido leda. (debe ser clareado por SW) 0 = No ha ocurrido un desborde
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 el contenido del bi l t id d l registro de estado, ya que estas instrucciones no alteran las banderas Z, , , , C, DC, OV, o N
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, utilizado para indicar Negativo 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
BIT 2 Z: Bit de 0
1 = El resultado de una operacin aritmtica o p lgica es 0. 0 = El resultado de una operacin aritmtica o lgica no es 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
V L A D I M I R T R U J I L L O A R I A S
BIT 7 IPEN: Bit que habilita la prioridad en las interrupciones. BIT 6 5 Sin implementar 6-5 BIT 4 RI: Bandera de la instruccin RESET
1 = Prioridad en interrupciones habilitada. 0 = Prioridad en interrupciones deshabilitada.
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
Interrupciones
Los microcontroladores de gama alta poseen niveles de interrupcin. i l d i i El vector de alto nivel de interrupciones p se halla en la posicin 0x08h y el de j p p baja prioridad en la posicin 0x18h. 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 puede generar di t d 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
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
(18F452, 18F4520)
(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
(18F452, 18F4520)
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 Externa INT0 p 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
(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.
(18F452, 18F4520)
1 = Todas las resistencias pull-ups T d l i t i ll deshabilitadas. 0 = Las resistencias pull-ups estan habilitadas. p p
(18F452, 18F4520)
(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 prioridad de la interrupcin RBIP: d i id d d l i t i de cambios de estado en PORTB
1 = Alta prioridad. prioridad 0 = Baja prioridad.
(18F452, 18F4520)
(18F452, 18F4520)
(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
(18F452, 18F4520)
(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.
(18F452, 18F4520)
(18F452, 18F4520) Bit 2 CCP1IF: Bandera de interrupcin del mdulo CCP1 CCP1.
Modo Captura:
1 = Se ha producida la captura del valor de TMR1 (debe ser b borrada por SW) d 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 con TMR1. p No utilizado en este modo.
Modo Compara: p
Modo PWM:
(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
(18F452)
Bit 7 5 Sin implementar 7-5 Bit 4 EEIF: Bandera de interrupcin por Escritura/Lectura en EEPROM o FLASH /
1 = La operacin de escritura se ha completado (debe (d b ser borrada por SW) b d S ) 0 = La operacin de escritura no ha terminado o no se h iniciado. e ha ini i do
(18F452) Bit 1 TMR3IF: Bandera de rebose de TMR3 Bit 0 CCP2IF: Bandera de interrupcin del mdulo CCP2
Modo Captura:
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
(18F4520)
(18F4520)
Bit 6 CMIF: Bandera de interrupcin por comparacin. comparacin
1 = La entrada del comparador ha cambiado (Debe ser borrada por software) p ) 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.
(18F4520) Bit 3 BCLIF: Interrupcin por colisin en el bus Bit 2 HLVDIF: Interrupcin por deteccin de alto o bajo voltaje.
1 = Una condicin de bajo o alto voltaje ha ocurrido. La direccin es determinada por el bit 7 ( (VDIRMAG) del registro HLVDCON. ) g 0 = El voltaje del dispositivo se mantiene por encima del valor de activacin de la interrupcin. 1 = Ocurri una colisin 0 = No ha ocurrido una colisin.
(18F4520) Bit 1 TMR3IF: Bandera de rebose de TMR3 Bit 0 CCP2IF: Bandera de interrupcin del mdulo CCP2
Modo Captura:
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
(18F452, 18F4520)
Bit 6 ADIE H bilit la interrupcin por fin ADIE: Habilita l i t i fi de conversin del A/D.
1 = Habilita la interrupcin del A/D. 0 = Deshabilita la interrupcin del A/D.
(18F452, 18F4520)
Bit 4 TXIE H bilit la interrupcin por TXIE: Habilita l i t i transmisin del mdulo USART
1 = Habilita la interrupcin 0 = Deshabilita la interrupcin
(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
(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 H bilit d 0 = Deshabilitada 1 = Habilitada 0 = Deshabilitada
(18F452)
Bit 2 LVDIE: Habilita la Interrupcin por deteccin de bajo voltaje. Bit 1 TMR3IE: Habilita la interrupcin por desborde de TMR3. Bit 0 CCP2IE: Habilita la interrupcin del mdulo CCP2
1 = Habilita la interrupcin 0 = Deshabilita la interrupcin 1 = Habilita la interrupcin 0 = Deshabilita la interrupcin h bl l 1 = Habilitada 0 = Deshabilitada.
(18F4520)
(18F4520) Bit 5 Sin implementar se lee como 0 Bit 4 EEIE: Habilita la interrupcin por fin de f escritura en memoria EEPROM/FLASH.
1 = Habilitada H bilit d 0 = Deshabilitada
Bit 3 BCLIE H bilit la interrupcin por BCLIE: Habilita l i t i colisin de datos en el BUS
1 = Habilitada 0 = Deshabilitada
(18F4520)
Bit 2 HLVDIE: Habilita la Interrupcin por deteccin de alto o bajo voltaje. voltaje
1 = Habilitada 0 = Deshabilitada. Deshabilitada
(18F452, 18F4520)
(18F452, 18F4520) Bit 5 RCIP: Prioridad de Interrupcin del mdulo USART en RX. RX Bit 4 TXIP: Prioridad de Interrupcin del mdulo USART en TX. Bit 3 SSPIP: Prioridad de Interrupcin del puerto serial sncrono
1 = Alta prioridad 0 = Baja prioridad 1 = Alta prioridad 0 = Baja prioridad 1 = Alta prioridad 0 = Baja prioridad j p
(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 prioridad p 0 = Baja prioridad Bit 0 TMR1IP: Prioridad de Interrupcin del TMR1. 1 = Alta prioridad 0 = Baja prioridad
(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 Alt p io id d 0 = Baja prioridad 1 = Alta prioridad 0 = Baja prioridad
(18F452) Bit 2 LVDIP: Prioridad de Interrupcin por deteccin de bajo voltaje Bit 1 TMR3IP: Prioridad de Interrupcin por rebose de TMR3 Bit 0 CCP2IP: Prioridad de Interrupcin de mdulo CCP2
1 = Alta prioridad 0 = Baja prioridad 1 = Alta prioridad 0 = Baja prioridad 1 = Alta prioridad 0 = Baja prioridad j p
(18F4520)
(18F4520) Bit 5 Sin implementar Bit 4 EEIP: Prioridad de Interrupcin por fin f de escritura en EPROM/FLASH
1 = Alta prioridad Alt i id d 0 = Baja prioridad
(18F4520)
Bit 2 HLVDIP: Prioridad de Interrupcin por deteccin de bajo o alto voltaje
1 = Alta prioridad 0 = Baja prioridad
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
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
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
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
(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.
(Secuencia a utilizar)
Escribir 55h en el EECON2. Escribir AAh en el EECON2. Poner en 1 el bit WR Esto comenzar el WR. 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
(Secuencia de Programacin) g
(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.
(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, para comenzar el WR ciclo de escritura.
(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
(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
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
BIT 6 CFGS: Acceso a la memoria FLASH/EEPROM o a los registros d configuracin d l PIC de f del 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
V L A D I M I R T R U J I L L O A R I A S
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
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 almacenado en los registros ADRESL y ADRESH.
(18F452)
(18F452)
(18F452) Bit 2 GO/DONE: Estado de la conversin A/D. A/D Debe estar habilitado el bit ADON
1 = Conversin A/D en progreso (Colocando este bit en 1, se inicia la conversin A/D. Se borra por 1 A/D HW, cuando la conversin termina.) 0 = La conversin A/D no esta en progreso. p g
(18F452)
Bit 6 ADCS2: seleccin del tiempo de conversin del mdulo A/D, trabaja en asocio j con los bits ADCS1 y ADCS0 del registro ADCON0
(18F452)
Cuando el procesador se encuentra en modo SLEEP y se desea realizar una conversin se conversin, debe utilizar como base de tiempo el oscilador RC del conversor A/D. El conversor analgico digital funciona por l i di it l f i conversiones sucesivas. Un RESET en el dispositivo, obliga el apagado del dispositivo 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
(18F452)
Los pasos para realizar una conversin A/D son l siguientes: los i i 1. Configuracin del mdulo A/D. g /
Se configuran los pines que sern entradas analgicas o digitales (ADCON1). g g ( ) 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).
(18F452)
2. Configuracin de interrupciones para el mdulo A/D (opcional)
Borrar el bit ADIF en el registro PIR1 Poner en 1 el bit ADIE en el registro PIE1. Poner en 1 el bit GIE y el PEIE en el registro INTCON.
3. 3 Esperar el tiempo de adquisicin en el 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)
(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 Se entiende por un TAD, el comience. TAD tiempo que demora la conversin de 1 bit y no puede ser menor a 1.6 micro segundos
(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 A/D, el valor del TAD ser de 2 micro d l A/D l l d l d i segundos.
(18F452)
(18F452)
(18F452)
(18F452)
(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 , ADCON0, ADCON1 y ADCON2.
(18F4520)
(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 3 (AN3/RA3) l 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
(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
(18F4520)
(18F4520)
Bit 7 ADFM: Seleccin del formato del resultado del md lo A/D es ltado mdulo
1 = Justificado a la derecha 0 = Justificado a la izquierda
(18F4520) bit 2-0 ADCS2:ADCS0: Bit de seleccin del reloj para la conversin A/D (TAD).
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
(18F4520)
(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. 4 Comenzar la conversin Colocando en 1 el bit GO/DONE del conversin. (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 si es necesario ADIF, necesario.
(18F4520)
(18F4520)
(18F4520)
(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 Se S puede leer y escribir en l. d l ibi 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
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
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
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, reanuda hasta dos ciclos de instruccin despus. despus Si se utilizan instrucciones como:
clrf TMR0 movwf TMR0 bsf TMR0, el pre escalador es TMR0, TMR0 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. La L parte alta d TMR0, solo se carga en t lt de TMR0 l 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 lo coloca en 0 CCP,
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
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
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
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 T R U J I L L O A R I A S
Temporizador Timer 2
El pre escalador y el post escalador son puestos a su valor mnimo, cuando:
Se escribe en el registro TMR2. Se escribe en el registro T2CON Por P un RESET El valor de TMR2 no se pone en 0 si T2CON es modificado.
V L A D I M I R T R U J I L L O A R I A S
Temporizador Timer 2
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
Temporizador Timer2
V L A D I M I R T R U J I L L O A R I A S
Temporizador Timer 3
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 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
Cuando TMR3CS = 0:
Es ignorado.
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
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 trabajo PWM t b j PWM, no usado en modo captura y d d t comparacin
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)
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 cada 16 flancos de subida. captura, subida 1000 = Modo compara, coloca el pin CCP en estado alto cuando se produce la igualdad (CCPIF se coloca en 1) 1001 = Modo compara, coloca el pin CCP en estado alto al darse la igualdad (CCPIF se coloca en 1) i ld d l 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 igualdad (CCPIF se coloca en 1) i ld d l 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, cuando un TMR3 evento en el pin RC2/CCP1 ocurre. Los eventos son:
Cada Cada Cada Cada flanco de bajada flanco de subida 4 flancos de subida a cos 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 Ca b a Cambia de estado (Alto a Bajo o Bajo a Alto) ( to ajo ajo 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 el mdulo. Ya que si no se g 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 T R U J I L L O A R I A S
Modulo CCP
(Modo PWM)
El modo PWM, posee una resolucin de 10 bits. Al borrar el registro CCPxCON la salida del mdulo CCPxCON, 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)
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 T R U J I L L O A R I A S
Modulo CCP
(Modo PWM)
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 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
Modo sincrnico:
1 = Modo maestro (reloj generado internamente por el BRG) 0 = Modo Esclavo (reloj de fuente externa)
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
Modo Sincrnico:
No utilizado en este modo
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
Modo sincrnico:
1 = Habilita la recepcin continua, hasta que el H bilit l i ti h t l bit CREN se borre (CREN sobrescribe SREN) 0 = Deshabilita la recepcin continua continua.
V L A D I M I R T R U J I L L O A R I A S
bit 1 OERR: Bit de 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
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
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
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