arquitectura y programación de pic18f

124
PIC18 con CCS (PIC18F14K50) Autor: Andrés Raúl Bruno Saravia Microchip RTC Argentina

Upload: vancong

Post on 10-Feb-2017

232 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Arquitectura y Programación de PIC18F

PIC18 con CCS(PIC18F14K50)

Autor: Andrés Raúl Bruno Saravia

Microchip RTC Argentina

Page 2: Arquitectura y Programación de PIC18F

PIC18 ArquitecturaPIC18 ArquitecturaRevisiónRevisión

Page 3: Arquitectura y Programación de PIC18F

Microchip Familias de MCUs

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 33

Page 4: Arquitectura y Programación de PIC18F

Familia PIC18

PIC18 Tradicional

PIC18 serie - J

PIC18 serie - K

32KB 128KB4KB

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 44

Tradiciona PIC1840 MHz, 10 MIPS, 5V

Flash endurance 100k

EEPROM

Características Premium

PIC18 serie K64MHz, 16 MIPS, 3V

Flash endurance 10k

EEPROM

Menor costo <32KB Flash

PIC18 serie J40-48 MHz, 10-12 MIPS, 3V

Flash endurance 1k – 10k

Emulate EEPROM

Menor costo >32KB Flash

Program FlashTipicamente los productos con mucha memoria tambien tienen muchos pines y perifericos avanzados integrados

Page 5: Arquitectura y Programación de PIC18F

Diagrama en Bloques SimplificadoArquitectura PIC® 8-bit

RAM

Espacio de

Datos

Espacio de

Programa

Tabla de

Acceso8-bit8-bit

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 55

Peripfericos

Puertos I/O

Memoria

Flash

8-bit CPU16-bit

Bus de

instrucciones

Bus de datos

8-bit

Page 6: Arquitectura y Programación de PIC18F

Mapa de Memoria de DatosArquitectura PIC® 8-bit

Memoria de datos hasta 4k bytes

Dividida en bancos de 256 byte

Medio Banco 0 y medio banco 15 son

PIC18F2520/4520

Mapa de RegistrosACCESS RAM

Banco0 GPR

Banco1 GPR

Banco2 GPR

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 66

medio banco 15 son usados para crear un banco virtual de acceso directo

ACCESS RAM

ACCESS SFR

ACCESS SFR

Banco15 GPR

Banco13 GPR

Banco14 GPR

* La división 50/50 no se mantiene en

los dispositivos con muchos registros

SFR (Special Function Registers)

Page 7: Arquitectura y Programación de PIC18F

Mapa de memoria de ProgramaArquitectura PIC® 8-bit

Hasta 2MB (1M Words) continuos totalmente lineal

Memoria de Programa

En el chip

Vector de Reset

Vector de INT de alta prioridad

Vector de INT de baja prioridad

000000h

000008h

000018h

Contador de Programa de 21-bit

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 77

1FFFFEh

Memoria de Programa

Sin implementar

(Read as ‘0’)

008000h

007FFEh

Contador de Programa de 21-bit

Stack de 31 niveles

Nivel de Stack 1

Nivel de Stack 2

Nivel de Stack 30

Nivel de Stack 31

Page 8: Arquitectura y Programación de PIC18F

Tabla de LecturaArquitectura PIC® 8-bit

Memoria de Datos (RAM) Memoria de Programa (Flash)

0x000000

0x000002

0x000004

0x000006

0x000001

0x000003

0x000005

0x000007

0x000

0x001

0x002

0x003

22-b

it Ad

dre

ss

00 00 09

TBLPTRU TBLPTRH TBLPTRL

Puntero de Mem. Prog. de 21-bit

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 88

2C

2C

TABLAT 0x00000A

0x000008

0x1FFFF4

0x1FFFF6

0x1FFFF8

0x1FFFFA

0x1FFFFC

0x1FFFFE

0x00000B

0x000009

0x1FFFF5

0x1FFFF7

0x1FFFF9

0x1FFFFB

0x1FFFFD

0x1FFFFF

0x005

0x004

0xFFA

0xFFB

0xFFC

0xFFD

0xFFE

0xFFF

8-bit Data

Byte Alto Byte Bajo

Page 9: Arquitectura y Programación de PIC18F

Características especialesCaracterísticas especialesComo setear los bits de configuración del PIC®Como setear los bits de configuración del PIC®

Page 10: Arquitectura y Programación de PIC18F

OsciladoresOsciladores

Page 11: Arquitectura y Programación de PIC18F

Fuentes de Clock

PrimariaSelección Fija

LP, XT, HS, RC, EC, Int RC Osc

Secundaria

PIC18F: Sistema de Clock

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 1111

SecundariaOscilador Timer1 – Frecuencia fija

Necesario para base de tiempo de RTR

Oscilador Interno RC INTOSC (8 MHz por default)

4, 2, 1 MHz, 500, 250, 125 y 31 kHz seleccionables

INTRC (31 kHz)

Page 12: Arquitectura y Programación de PIC18F

Sistema de Clock PIC18F1XK50

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 1212

Page 13: Arquitectura y Programación de PIC18F

PIC18F1XK50 Opciones del Oscilador para

el USB

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 1313

Page 14: Arquitectura y Programación de PIC18F

PIC18F

Características Especiales

PIC18F

Características Especiales

Page 15: Arquitectura y Programación de PIC18F

In-Circuit Serial Programming™

Solo necesita 2 pines para programar al

dispositivo

Conveniente para programar en sistemas

Calibración de datos

Serialización de datos

Suportado por debuggers y

programadores en MPLAB®

PinPin

PPVPP

DDVDD

SSVSS

RB6

RB7

FunctionFunction

Programming Voltage

Supply Voltage

Ground

Clock Input

Data I/O & Command Input

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 1515

programadores en MPLAB

ICSP™ Connector

Page 16: Arquitectura y Programación de PIC18F

Características Especiales PIC18F

Amplio Voltaje de operación: 2.0V a 5.5V

Memoria de Programa Flash Mejorada con 100,000

ciclos de borrado/escritura

Memoria de Datos EEPROM con 1,000,000 de ciclos

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 1616

Memoria de Datos EEPROM con 1,000,000 de ciclos

de borrado/escritura

Retención de Datos en Memoria EEPROM Flash/Data

: 100 años típico

Page 17: Arquitectura y Programación de PIC18F

Watchdog Timer

Ayuda al software a recuperarse de un mal funcionamiento

Usa un oscilador libre RC en el chip

WDT es borrado por la instrucción CLRWDT

WDT Habilitable (WDTEN) no puede ser borrado por soft

el overflow (desborde) del WDT reetea al chip

Período del timeout programable : 18ms a 3.0s típico

Opera en modo SLEEP; sobre el time out, despierta la CPU.

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 1717

Opera en modo SLEEP; sobre el time out, despierta la CPU.

Page 18: Arquitectura y Programación de PIC18F

Generador de Reset Interno

POR: Power On Resetcon MCLR ataado a VDD, es generado un pulso de RESET cuando el flanco de subida a VDD es detectado

PWRT: Power Up Timer72 ms (nominal)

VDD

MCLR

Circuito

RESET

en CHIP

Reset Interno

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 1818

72 ms (nominal)

Desacoplado del BOR

OST: Oscillator Startup TimerMantiene en RESET al dispositivo por 1024 cyclos de maquina (TCYs)

Le permite al cristal o al resonador estabilizarse

Bypaseado en: Two Speed Startup Mode

INTOSC usa un clock para el procesador no estable

Internal Reset

VDD

MCLR

POR

PWRT

OST

TPWRT

TOST

Reset Operación

Page 19: Arquitectura y Programación de PIC18F

BOR –Brown Out Reset

Cuando el voltaje cae por debajo de un umbral

particular, el dispositivo se pone en RESET

Impide el funcionamiento irregular o inesperado

Elimina la necesidad de un circuito externo BOR

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 1919

Elimina la necesidad de un circuito externo BOR

Page 20: Arquitectura y Programación de PIC18F

PBOR – Programmable Brown Out

ResetOpción de configuración (fijado en tiempo de programa)

No puede ser activado/desactivado por software

Cuatro puntos de disparo BVDD seleccionables

2.5V – Mini VDD para OTP MCUs PICmicro®

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 2020

2.5V – Mini VDD para OTP MCUs PICmicro

2.7V

4.2V

4.5V

Para otros umbrales use un supervisor externo (MCP1xx, MCP8xx/TCM8xx, or TC12xx)

Page 21: Arquitectura y Programación de PIC18F

PBOR – Programmable Brown Out

ResetMantiene al MCU PICmicro® MCU en RESET durante ~72ms

despues que VDD supero el nivel de umbral

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 2121

Page 22: Arquitectura y Programación de PIC18F

PLVD – Detector de Bajo Voltaje

Programable

Alerta antes que el

brown out

16 Puntos de

disparo

seleccionables

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 2222

seleccionables

1.8V hasta 4.5V en

pasos de 0.1 a 0.2V

Entrada analógica

externa

VREF interno

Page 23: Arquitectura y Programación de PIC18F

PIC18F Características especialesResets

PIC18 RESETSPower-on Reset (POR)

MCLR Reset durante la operación normal

Programmable Brown-out Reset (BOR)

Watchdog Timer (WDT) Reset (durante la ejecución )

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 2323

ejecución )

Instrucción RESET

Reset por Stack Full

Reset por Stack Underflow

Para todos los resets el vector del PC es la dirección 0Despues del RESET el PC tiene 0x000000

Page 24: Arquitectura y Programación de PIC18F

Los siguientes bits son afectados por el RESETRCON Register

POR = ‘0’: Power On RESET

BOR = ‘0’ & POR = ‘1’: BOR RESET

TO = ‘0’: WDT RESET

RI = ‘0’: RESET Instrucción

PIC18F Características especialesRESET Registers

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 2424

STKPTR Register

STKFUL = ‘1’: Stack over flow RESET

STKUNF = ‘1’: Stack under flow RESET

MCLR RESET ies indicado por:

POR, BOR, TO & RI = ‘1’ y STKFUL & STKUNF = ‘0’

Page 25: Arquitectura y Programación de PIC18F

PIC18 Bits de ConfiguraciónPIC18 Bits de Configuración

Page 26: Arquitectura y Programación de PIC18F

Que son los bits de Configuración?

Son usados para activar o

no las características

especiales:

Proteccion del Codigo

Watchdog Timer

Reset Vector

High Interrupt Vector

Low Interrupt Vector

16-bit Program Memory

User

Mem

ory

User

Mem

ory

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 2626

Watchdog Timer

Tipo de Oscilador

Opcion de Debug

Otras…

User Flash

Registros de Configuración

Device ID

Registro CONFIGlocalizado en la

memoria de programa, fuera del area

de ejecución del código

(inicia en @ 0x300000)

User

Mem

ory

User

Mem

ory

Configura

tion

Configura

tion

Mem

ory

Mem

ory

Page 27: Arquitectura y Programación de PIC18F

Bits de ConfiguraciónPIC18F4520 (4 of 11)

IESO — —FCMEN FOSC2 FOSC1 FOSC0

— BORV1— — BOREN1 BOREN0 PWRTEN

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

R/W-0R/W-0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

bit 7 bit 0

BORV0

CONFIG1H Register

CONFIG2L Register

FOSC3

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 2727

— BORV1— — BOREN1 BOREN0 PWRTEN

bit 7 bit 0

BORV0

— WDTPS3— — WDTPS1 WDTPS0 WDTEN

R/W-0R/W-0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

bit 7 bit 0

WDTPS2

—MCLRE — — LPT1OSC PBADEN CCP2MX

R/W-0R/W-0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

bit 7 bit 0

CONFIG2H Register

CONFIG3H Register

Page 28: Arquitectura y Programación de PIC18F

Configurations Bits con CCS

Usar directiva #FUSES

#fuses HS,NOWDT

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 2828

options puede variar segun el dispositivo. Un

listado de las opciones válidas esta en el tope

de cada archivo de cabecera de cada

dispositivo.

Page 29: Arquitectura y Programación de PIC18F

PIC18F1x50

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 2929

Page 30: Arquitectura y Programación de PIC18F

PIC18F14K50 Pin Out

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 3030

Page 31: Arquitectura y Programación de PIC18F

USB Fundamentos

Page 32: Arquitectura y Programación de PIC18F

Un poco de historia...

USB fue co-desarrollado por un grupo de

compañías….

Compaq

Intel

Microsoft

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 3232

Microsoft

NEC

…quería hacer mucho mas facil el adicionar/remover

perifericos de la PCs

1998 – USB 1.1

2000 – USB 2.0

2003 – On-the-Go complementa a USB 2.0 (v1.0a)

Page 33: Arquitectura y Programación de PIC18F

USB Basico

USB un maestro “Single Master + Multiple Slaves” bus encuestado

constantementeUSB Host Controller (Master)

y Root Hub

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 3333

Mouse SpeakersPrinter

Frame Frame Frame

Start Of Frame Mouse Packets Speakers Packets Printer Packets

Page 34: Arquitectura y Programación de PIC18F

Comparación de Buses

1394-Fire Wire

Ethernet

USB 2.0

WiFi (b/g)

Ojo! No tiene que

soportar High-Speed

para ser

USB 2.0 Compatible

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 3434

1 1 GbGb480 Mb/s480 Mb/s100 Mb/s100 Mb/s12 Mb/s12 Mb/s1.5 Mb/s1.5 Mb/s1 Mb/s1 Mb/s500 Kb/s500 Kb/s

Serial Port

LS-USB

1.5 Mb/s

FS-USB

12 Mb/s

HS-USB

480 Mb/s

USB 1.1

USB 2.0

Parallel Port

CAN

Page 35: Arquitectura y Programación de PIC18F

Grandes Mitos

Mito: un Periférico USB Low-Speed puede transferir datos hasta

la velocidad de 187.5 KB/s (1.5 Mbps)

Real: Imposible, por las restricciones de las especificaciones del

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 3535

USB

8 byte de datos transferidos cada 10 ms

= 800 Bytes/segundo solamente

Page 36: Arquitectura y Programación de PIC18F

Siguiente Gran Mito!

Mito: Un periférico USB Full-Speed USB puede transferir datos hasta 1.5

MB/s (12 Mb/s)

Real: Imposible, 1.5 MB/s es el total del ancho de banda del BUS

El ancho de banda se reparte entre todos los periféricos USB

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 3636

El ancho de banda se reparte entre todos los periféricos USB

El Over head del Protocolo

Las restricciones del Protocolo

La realidad de la transferencia de datos de un único periférico puede

llegar a ~1.0 MB/s en el mejor de los casos

Solo 64 KB/s en la mayoría de los casos

Page 37: Arquitectura y Programación de PIC18F

Topología del BUS USB Físico

USB Host Controller

& Root Hub

HubHubSpeaker

Logic

Analyzer

Keyboard

Hub: Carga maxima = 5

Host (Tier 1)

Tier 2

Tier 3 HubHub

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 3737

Hasta 126 periféricos...

PIC18 USB esta diseñado para

ser periferico. PIC24/PIC32

puede funcionar como Host o

Periférico.

Tier 4

Tier 5

Tier 6

Tier 7

HubHub

HubHub

HubHub

HubHubData Logger

Printer

Page 38: Arquitectura y Programación de PIC18F

Interfaz Física

~ 5.0 V

~ 3.3 V

VBUS

D+

D-

GND

VBUS

D+

D-

GND

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 3838

Half Duplex con codificación de datos NRZI

Bus Alimentado para cada dispositivo:4.40-5.25V

Garantizado 100 mA

500 mA max por medio de negociación

Debe usar alimentación

externa si se necesita

mas de uno

GNDGND

Page 39: Arquitectura y Programación de PIC18F

“mini-B”

FS, HS

“B”

FS, HS

Conectores Standard- USB 2.0 -

“A”

USB Host

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 3939

FS, HS

Device

FS, HS

Device

Page 40: Arquitectura y Programación de PIC18F

Conectores Standard- Micro-USB -

Objetivo: Define un tamaño más pequeño, conector

compatible con USB 2.0 para dispositivos muy pequeños (es

decir, teléfonos celulares)

Plugs y Receptaculos

Micro-B plug y receptaculo

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 4040

Micro-B plug y receptaculo

Permitido en productos OTG y on OTG

Micro-A/B receptaculo

Permitido en productos OTG

Micro-A plug

Indicacual es escencialmente el host (OTG)

Page 41: Arquitectura y Programación de PIC18F

Endpoints: Source/Destino de datos USBen un periférico

RAM

Endpoint 1 OUT

RAM

Data Bucket

LED

USB framed data

USB framed data

USB PIC® MCU

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 4141

RAM

Endpoint 1 IN “Caps-Lock”

Número máximo de endpoints por dispositivo especificados por el USB :

− 16 OUT endpoints + 16 IN endpoints = 32 endpoints

− PIC18F87J50, PIC18F4550, PIC24F, PIC32MX soporta hasta 32 endpoints

− PIC18F14K50 soporta hasta 16 endpoints

EP0 = es el “caño” de comunicación por Default

USB framed data

Page 42: Arquitectura y Programación de PIC18F

Clases de Dispositivos USB

Mouse

External

Hard Drive

Floppy

DriveData GloveEthernet

Adapter

PICkit™ 3

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 4242

Joystick

MPLAB®

REAL ICE™in-circuit emulator

Modem

Keyboard

Human Interface Device Class

(HID)

Mass Storage Device

Class (MSD)

Communication Device

Class (CDC)

Custom Class

(Vendor Class)

Muchas mas clases….

PICkit™ 3

Starter Kit

Page 43: Arquitectura y Programación de PIC18F

El Proceso de Enumeración

POWEREDPower

(self/bus)

DEFAULT

Bus

reset

Get Device

ATTACHED

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 4343

DETACHED ADDRESS

Get Device

Descriptor

CONFIGURED

Get

Descriptors

Cable

ConnectedSUSPENDED

Page 44: Arquitectura y Programación de PIC18F

Auto-Detección: Full-Speed

Peripheral DevicePeripheral DevicePeripheral DevicePeripheral Device

VVVVUSBUSBUSBUSB 3333....3333 VVVVFull Speed Identification

D+ line pull-up

USB PIC® MCU

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 4444

+5V

D+

D-

GND

TransceiverTransceiverTransceiverTransceiver

USB

Connector

D+ line pull-up

1.5 kΩ 5%

Page 45: Arquitectura y Programación de PIC18F

Auto-Detección: Low-Speed

Peripheral DevicePeripheral DevicePeripheral DevicePeripheral Device

VVVVUSBUSBUSBUSB 3333....3333 VVVVLow Speed Identification

D- line pull-up

USB PIC® MCU

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 4545

+5V

D+

D-

GND

TransceiverTransceiverTransceiverTransceiver

USB

Connector

D- line pull-up

1.5 kΩ 5%

Page 46: Arquitectura y Programación de PIC18F

Resistores Pull-up dentro del chip

Peripheral Device

VUSB 3.3 V

resistores pull-up dentro

del chip!

USB PIC® MCU

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 4646

+5V

D+

D-

GND

Transceiver

USB

Connector

del chip!

Page 47: Arquitectura y Programación de PIC18F

Planeando la Alimentación- Arquitectura -

“Low Power” alimentado del bus

Hasta 100 mA (1 ‘carga única’) desde el BUS

Function Controller + Function

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 4747

Function

Page 48: Arquitectura y Programación de PIC18F

Planeando la Alimentación- Arquitectura -

“High Power” 100-500 mA desde el bus

Debe ser enumerado a low power (100 mA)Device pide el bMaxPower

Host habilita la configuración deseada solicitando el Set_Configuration

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 4848

Set_Configuration

Page 49: Arquitectura y Programación de PIC18F

Planeando la Alimentación- Arquitectura -

“Self Powered” deviceOpcionalmente se puede consumir hasta 100 mA del bus (si es reactivado) + tanto como se encuentra disponible en su propia fuente

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 4949

Page 50: Arquitectura y Programación de PIC18F

Planeando la Alimentación- Necesito Autoalimentación? -

Deberá alimentarse al dispositivo

externamente si:

este necesita funcionar sin estar conectado al

BUS

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 5050

este necesita mas de 500 mA

Este va a estar conectado a una PC con

baterías, o hubs

Page 51: Arquitectura y Programación de PIC18F

Planeando la Alimentación

Power from

USB Cable

VDD

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 5151

≤10µF

Page 52: Arquitectura y Programación de PIC18F

Dispositivos alimentado externamente- Detectando la conexión al USB -

VBUS from

USB CableV

DD

I/O

Self-Powered

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 5252

Si el dispositivo está autoalimentado,

debe utilizar un pin I / O con tolernacia

5V al detectar una conexión del cable

antes de habilitar el módulo USB y pull-

up en D + y D-. Además, el dispositivo no

debe nunca estar en modo fuente VBUS

Page 53: Arquitectura y Programación de PIC18F

Perf

orm

an

ce

PIC32High Performance, Pin Compatible to PIC24F80 MHz, 1.53 DMIPS/MHzUp to 80 MIPS64- & 100-Pin PackagesUp to 512 KB FlashUp to 32 KB RAMUSB 2.0 Device, Embedded Host, OTG

~50 USB PIC MCUsThe industry’s strongest

scalable product, family, and

software migration path

Scalable USB

PIC® MCU Portfolio

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 5353

PIC18FSmall, Low Power, Low CostUp to 12 MIPS18- to 80-Pin PackagesUp to 128KB FlashUp to 4KB RAMUSB 2.0 Device Support

Migration

PIC24FMid-Range, Capacitive-Touch CapableUp to 16 MIPS64-, 80- & 100-Pin PackagesUp to 256 KB FlashUp to 16KB RAMUSB 2.0 Device, Embedded Host, OTG

16-bit

8-bit

Perf

orm

an

ce

32-bit

Page 54: Arquitectura y Programación de PIC18F

Control USB with CCS compiler

usb_init()

usb_task()

usb_enumerated()

usb_cdc_kbhit()

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 5454

usb_cdc_kbhit()

usb_cdc_getc()

usb_cdc_putc(c)

usb_cdc_puts(*str)

Include files:

<usb_desc_cdc.h> & <usb_cdc.h>

Page 55: Arquitectura y Programación de PIC18F

PICPeriféricos ComunesPICPeriféricos Comunes

Page 56: Arquitectura y Programación de PIC18F

PIC18 Common Peripherals

Puertos I/O

Analog Comparator

Converso Analógico Digital

Timers (0,1,2,3)

CCP como PWM

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 5656

CCP como PWM

Addressable USART (AUSART)

Page 57: Arquitectura y Programación de PIC18F

Puertos I/OPuertos I/O

Page 58: Arquitectura y Programación de PIC18F

Puertos I/O

Hasta 70 pines bidireccionalesLos mismos estan multiplexados con Periféricos

Alta capacidad de Corriente25mA en modo fuente/sumidero

Manipulación directa de cada bit en un solo

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 5858

Manipulación directa de cada bit en un solo ciclo

Diodos de Protección ESD 4kVBasado sobre el modelo del cuerpo Humano

Despues del reset:Todos los I/O son entradas (Hi-Z)

Todos los pines con capacidades analógicas activadas por default

Page 59: Arquitectura y Programación de PIC18F

Configurundo los pines como digitales

El método depende del dispositivo específico

Puede escontrarse en el registro ADCON 1

Could be in ADCON1 register

Puede encontrarse en el registro ANSEL

Registro de control (ADCON1)

VCFG1 VCFG0 PCFG3 PCFG2 PCFG1 PCFG0

Port Configuration Bits

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 5959

Puede encontrarse en el registro ANSEL

1 = Analog; 0 = Digital

ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0

ANS13 ANS12 ANS11 ANS10 ANS9 ANS8

Analog Select Register (ANSEL)

Analog Select High Register (ANSELH)

Page 60: Arquitectura y Programación de PIC18F

Control de la dirección I/O

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 6060

Bit n en el registro de control TRISx controla

la dirección en el Bit n en PORTx

1 = Entrada, 0 = Salida

Page 61: Arquitectura y Programación de PIC18F

Entrada Slida de Datos

Registros TRIS, PORT y LAT

0 1 0 1 0 0 1 1LATx

Lee

PORTx

Lee

LATx

Escribe

PORTx

o LATx

Bus Interno de Datos

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 6161

0 0 1 1 0 1 0 0TRISx

PORTx

(I/O Pins)

Dirección de Datos

(1 = IN, 0 = OUT)

Pines son todos entradas

por default

Page 62: Arquitectura y Programación de PIC18F

PORTB Opciones

Todos lod pines del PORTB tienen resistores de PULL UP.

Un bit controla el pull up de todos los pines

INTCON2 Register

R/W-1 R/W-1 R/W-1 R/W-1 U-0 R/W-1 U-0 R/W-1

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 6262

bit 7 bit 0

bit 7 RBPU: PORTB Pull-up Enable bit1 = All PORTB Pull-ups are disabled

0 = PORTB Pull-ups are enabled by

individual port latch values

bit 0 RBIP: RB Port Change Interrupt Priority bit1 = High Priority

0 = Low Priority

Page 63: Arquitectura y Programación de PIC18F

Control I/O con CCS

output_a (value)

output_bit (pin, value)

output_high (pin)

output_low (pin)

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 6363

output_low (pin)

output_toggle(pin)

variable = input (pin)

variable = input_a()

Page 64: Arquitectura y Programación de PIC18F

Conversor A/D:Conversor A/D:A/D de 10-bit A/D de 10-bit

Page 65: Arquitectura y Programación de PIC18F

Conersor A/D de 10-bit

AN12

AN12

AN10

AN9

AN8

AN7*

AN6*

13:1

An

alo

g M

ux

CHS3:CHS0

ADCVAIN

10-bit A/D Result Registers

Channel Select

ADRESH ADRESL

In ADCON0 Register

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 6565

AN5*

AN4

VREF+ / AN3

VREF- / AN2

AN1

AN0

13:1

An

alo

g M

ux

ADC

VCFG1:VCFG0

VDD

VSS

x0

0x

x1

1x

VREF+ VREF-

VREF Select

ADRESH ADRESL

In ADCON1 Register

*AN5-AN7 not available on 28-pin devices

Page 66: Arquitectura y Programación de PIC18F

ADC 10-bitEscalando resultados

•FS = Fondo de

escala

•N-bits, 2N Codigos

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 6666

•N-bits, 2N Codigos

posibles

•“Tamaño del Bit” o

Paso = VFS/2N

Page 67: Arquitectura y Programación de PIC18F

Ejemplo:

10-bits ADC => 210 = 1024 codigos

Escala de valores completa 0 – 5.12 V

Cual es el tamaño de un bit?

ADC 10-bitEscalando resultados

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 6767

Respuesta:

Tamaño del Bit = 5.12 / 1024 = 5 mV

Page 68: Arquitectura y Programación de PIC18F

ADC Interpretando los resultados

Ejemplo:

8-bits ADC => 28

Escala completa 0 – 5.0 V

1 Bit = 19.53 mV

Calculo del valor si ADRESH = 0xCA

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 6868

Result = VIN / Tamaño del Bit

VIN = Result * Tamaño del Bit

VIN = 202 * 19.53 mV

VIN = 3.9456 V

Calculo del valor si ADRESH = 0xCA

Page 69: Arquitectura y Programación de PIC18F

Tiempo de adquisición

Acquisition Time

10

ADRES

Adquisición de la señal

Acquisition Time Conversion Time

VIN

time

time

VC

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 6969

Tiempo de adquisición

determinado por la

capacidad CHold y la

Impedancia de fuente

ADC

VSS

10

+

VC

-

Este tiempo le permite cargarse

completamente a CHold

time

CHOLD

V

SOURCE

RS < 10kΩΩΩΩ

Page 70: Arquitectura y Programación de PIC18F

time

Acquisition Time Acquisition Time

10

ADRES

ADC Conversion

Conversion Time

ADC Result11 ADC Conversion

VIN

time

VC

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 7070

time

ADC

VSS

10

+

VC

-

11 ADC Conversion

Clock cycles (TAD)

time

CHOLD

Page 71: Arquitectura y Programación de PIC18F

Conversor A/D de 10-bit Configuración

ADCON0 Register

U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

bit 7 bit 0

bit 5-2 CHS3:CHS0

Analog Channel Select Bits

0000 = Channel 0 (AN0)

bit 1 GO/DONE: A/D Conversion Status bit1 = A/D Conversion in progress

0 = A/D Idle

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 7171

0000 =0001 =0010 =0011 =0100 =0101 =0110 =0111 =1000 =1001 =1010 =1011 =1100 =

Channel 0 (AN0)Channel 1 (AN1)Channel 2 (AN2)Channel 3 (AN3)Channel 4 (AN4)Channel 5 (AN5)Channel 6 (AN6)Channel 7 (AN7)Channel 8 (AN8)Channel 9 (AN9)Channel 10 (AN10)Channel 11 (AN11)Channel 12 (AN12)

0 = A/D Idle

bit 0 ADON: A/D On bit1 = A/D Converter module is enabled

0 = A/D Converter module is disabled

Page 72: Arquitectura y Programación de PIC18F

Conversor A/D de 10-bit Configuración

ADCON1 Register

U-0 U-0 R/W-0 R/W-0 R/W-0* R/W* R/W* R/W*

bit 7 bit 0

bit 5 VCFG1: Voltage Reference (VREF-) Configuration bit

1 = VREF- (AN2)

0 = VSS

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 7272

0 = VSS

bit 4 VCFG0: Voltage Reference (VREF+) Configuration bit1 = VREF+ (AN3)

0 = VDD

Page 73: Arquitectura y Programación de PIC18F

Conversor A/D de 10-bit Configuración

ADCON1 Register

U-0 U-0 R/W-0 R/W-0 R/W-0* R/W* R/W* R/W*

bit 7 bit 0

bit 3-0 PCFG3:PCFG0

A/D Port Configuration Control bits

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 7373

A = Analog Input

D = Digital I/O

Page 74: Arquitectura y Programación de PIC18F

Conversor A/D de 10-bit Configuración

ADCON2 Register

U-0 U-0 R/W-0 R/W-0 R/W-0* R/W* R/W* R/W*

bit 7 bit 0

bit 2-0 ADCS2:ADCS0: A/D Conversion Clock Selection bits

NOTE: This parameter determines the value of TAD: the conversion time per bit.

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 7474

bit 2-0 ADCS2:ADCS0: A/D Conversion Clock Selection bits

111 = FRC (Clock derived from A/D RC oscillator)

110 = FOSC/64

101 = FOSC/16

100 = FOSC/4

011 = FRC (Clock derived from A/D RC oscillator)

010 = FOSC/32

001 = FOSC/8

000 = FOSC/2

Page 75: Arquitectura y Programación de PIC18F

Conversor A/D de 10-bit Configuración

Seleccionando el clock del A/D

A/D Clock Source (TAD) Maximum Device Frequency

Operation ADCS2:ADCS0 PIC18F4520

2 T 000 2.86 MHz

At FOSC = 4 MHz:

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 7575

2 TOSC 000 2.86 MHz

4 TOSC 100 5.71 MHz

8 TOSC 001 11.43 MHz

16 TOSC 101 22.86 MHz

32 TOSC 010 40.0 MHz

64 TOSC 110 40.0 MHz

RC x11 *

* The Internal RC has a typical TAD time of 1.2µs

Minimum TAD = 0.7µµµµs See data sheet for official specification.

TOSC = 1/FOSC

= .25 µs

TAD = 4TOSC

= 1 µs

Page 76: Arquitectura y Programación de PIC18F

Conversor A/D de 10-bit Configuración

Calculando el tiempo de adquisición

TACQ = TAMP + TC + TCOFF

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 7676

TAMP = Amplifier Settling Time

= Tamp internal + Tamp external

TC = Charging Time

= -(CHOLD)·(RIC + RSS + RS)·ln(1/2047)µµµµs

TCOFF = Temperature Coefficient

= (Temp – 25 C)·(0.02µµµµs/ C) for Temp > 25 C

= 0 for Temp < 25 C

Page 77: Arquitectura y Programación de PIC18F

Calculando el tiempo del amplificados

Conversor A/D de 10-bit Configuración

TAMP = TAMP INT+ TAMP EXT

TAMP INT : Tiempo interno del amplificador. Chequear el data sheet para el

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 7777

TAMP INT : Tiempo interno del amplificador. Chequear el data sheet para el

dispositivo específico. Para el PIC18F4520, TAMP INT es 0.2 µs.

TAMP EXT: Es el tiempo del amplificador externo. Este es muy importante cuando el

circuito externo acondiciona la señal. Para la placa de micorochip PICDEM2 Plus

es un POTENCIOMETRO, y este número es 0 µs.

TAMP = 0.2 µµµµs

Page 78: Arquitectura y Programación de PIC18F

Conversor A/D de 10-bit Configuración

Calculando el Tiempo de Carga

TC = -(CHOLD)·(RIC + RSS + RS)·ln(1/2047)µµµµs

C = 25pF

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 7878

CHOLD = 25pF

RIC = 1kΩΩΩΩ

RSS = 2kΩΩΩΩ

RS = 2.5kΩΩΩΩ MAX

Asumiendo que la impedancia máxima es de

2.5kΩΩΩΩ :

TC = 1.05µµµµs

Page 79: Arquitectura y Programación de PIC18F

Conversor A/D de 10-bit Configuración

Calculando el coeficiete de temperatura

TCOFF = (Temp – 25 C)·(0.02µµµµs/ C)

Temp = Temperatura de Operación

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 7979

Temp = Temperatura de Operación

Valido para Temp. > 25 C.

TCOFF = 0 para Temp. < 25 C

Usando la máxima temperatura de operación de

85 C para un dispositivo industrial:

TCOFF = 1.2µµµµs

Page 80: Arquitectura y Programación de PIC18F

Conversor A/D de 10-bit Configuración

Calculando el Tiempo de adquisición

TACQ = TAMP + TC + TCOFF

Para Rs = 2.5k Ω

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 8080

Para Rs = 2.5k Ω

Temp. = 85 C

TAMP = 0.2 µs

TACQ = 0.2 + 1 + 1.2 = 2.4 µs

Page 81: Arquitectura y Programación de PIC18F

bit 5-3 ACQT2:ACQT0: A/D Acquisition Time Selection bits

111 = 20 TAD

Conversor A/D de 10-bit Configuración

ADCON2 Register

U-0 U-0 R/W-0 R/W-0 R/W-0* R/W* R/W* R/W*

bit 7 bit 0

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 8181

110 = 16 TAD

101 = 12 TAD

100 = 8 TAD

011 = 6 TAD

010 = 4 TAD

001 = 2 TAD

000 = 0 TAD

Given:

TACQ = 2.4 µs

TAD = 1 us

Then:

ACQT2:0 = 010 = 4.0 µs

Page 82: Arquitectura y Programación de PIC18F

Conversor A/D de 10-bit Configuración

ADCON2 Register

R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

bit 7 bit 0

bit 7 ADFM: Selecciona el resultado del formato del A/D

1 = Justificado a la derecha

ADRESH ADRESL

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 8282

0 = Justificado a la izquierda

b9 b8 b7 b6 b5 b4 b3 b2 b1 b0

ADRESH ADRESL

b9 b8 b7 b6 b5 b4 b3 b2 b1 b0

ADRESH ADRESL

Page 83: Arquitectura y Programación de PIC18F

Control ADC con CCS

setup_adc(mode)

setup_adc_ports(value)

set_adc_channel(channel)

read_adc(mode)

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 8383

read_adc(mode)

adc_done()

#device adc=xx (xx=8,10,12 o16 bits)

Page 84: Arquitectura y Programación de PIC18F

TimersTimers

Page 85: Arquitectura y Programación de PIC18F

Timer Comparativa

TIMER 0 TIMERS 1 & 3 TIMERS 2 & 4

SIZE OF REGISTER 8-bits or

16-bits

16-bits 8-bits

CLOCK SOURCE

(Internal)Fosc/4 Fosc/4 Fosc/4

CLOCK SOURCE

(External )T0CKI pin T13CKI pin or

Timer 1 oscillator

None

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 8585

(External ) Timer 1 oscillator

(T1OSC)

CLOCK SCALING

AVAILABLE

(Resolution)

Prescaler 8-bits

(1:21:256)

Prescaler 2-bits

(1:1, 1:2, 1:4, 1:8)

Prescaler

(1:1,1:4,1:16)

Postscaler

(1:11:16)

INTERRUPT EVENT On overflow

FFh00h

On overflow

FFFFh0000h

TMR REG matches

PR2

CAN WAKE PIC FROM

SLEEP?NO YES NO

Page 86: Arquitectura y Programación de PIC18F

Timer0

Modo compatible con PIC16

8-bit Timer/Counter

Prescaler Programable de 8 bits

Fuente de clock externa o interna

Interrupción sobre el overflow de FF a 00

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 8686

Interrupción sobre el overflow de FF a 00

T0SE

T0CKI

FOSC/4

1

0

0

1

Programmable

Prescaler

T0CS

PSAT0PS2:T0PS0

Clock

SyncTMR0L

8-bit Data Bus

TMR0IF

Page 87: Arquitectura y Programación de PIC18F

Timer0

Modo 16-bit

16-bit Timer / Counter

Modo Lectura/Escritura en 16-bit

Interrupción sobre overflow de FFFF a 0000

Same basic features as compatibility mode

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 8787

Same basic features as compatibility mode

T0SE

T0CKI

FOSC/4

1

0

0

1

Programmable

Prescaler

T0CS

PSAT0PS2:T0PS0

Clock

SyncHigh Byte

8-bit Data Bus

TMR0IF

TMR0L

TMR0H

READ

TMR0LWRITE

TMR0L

Page 88: Arquitectura y Programación de PIC18F

Timer0 Operation

T0SE

T0CKI

FOSC/4

1

0

0

1

Programmable

Prescaler

T0CS

PSAT0PS2:T0PS0

Clock

Sync

TMR0IF

TMR0L

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 8888

T0CON Register

TMR0ON T08BIT T0CS T0SE PSA T0PS2:0

DATA BUS

T08BIT

1 = 8 BIT

0 = 16 BIT

Page 89: Arquitectura y Programación de PIC18F

Timer0 Operation

T0SE

T0CKI

FOSC/4

1

0

0

1

Programmable

Prescaler

T0CS

PSAT0PS2:T0PS0

Clock

SyncHigh Byte

TMR0IF

TMR0L

TMR0H

READ

TMR0LWRITE

TMR0L

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 8989

T0CON Register

TMR0ON T08BIT T0CS T0SE PSA T0PS2:0

DATA BUS

T08BIT

1 = 8 BIT

0 = 16 BIT

Page 90: Arquitectura y Programación de PIC18F

Timer0 Operation

T0SE

T0CKI

FOSC/4

1

0

0

1

Programmable

Prescaler

T0CS

PSAT0PS2:T0PS0

Clock

SyncHigh Byte

TMR0IF

TMR0L

TMR0H

READ

TMR0LWRITE

TMR0L

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 9090

TMR0 Clock Source Select

1 = TOCK1, 0 = Fosc/4

T0CON Register

TMR0ON T08BIT T0CS T0SE PSA T0PS2:0

Page 91: Arquitectura y Programación de PIC18F

Timer0 Operation

T0SE

T0CKI

FOSC/4

1

0

0

1

Programmable

Prescaler

T0CS

PSAT0PS2:T0PS0

Clock

SyncHigh Byte

TMR0IF

TMR0L

TMR0H

READ

TMR0LWRITE

TMR0L

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 9191

Source Edge Select

1 = increment TMR0 on rising edge

0 = increment TMR0 on falling edge

T0CON Register

TMR0ON T08BIT T0CS T0SE PSA T0PS2:0

Page 92: Arquitectura y Programación de PIC18F

Timer0 Operation

T0SE

T0CKI

FOSC/4

1

0

0

1

Programmable

Prescaler

T0CS

PSAT0PS2:T0PS0

Clock

SyncHigh Byte

TMR0IF

TMR0L

TMR0H

READ

TMR0LWRITE

TMR0L

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 9292

T0CON Register

TMR0ON T08BIT T0CS T0SE PSA T0PS2:0

Prescaler Assignment

1= prescaler NOT assigned

0= prescaler IS assigned

Page 93: Arquitectura y Programación de PIC18F

Timer0 Operation

T0SE

T0CKI

FOSC/4

1

0

0

1

Programmable

Prescaler

T0CS

PSAT0PS2:T0PS0

Clock

SyncHigh Byte

TMR0IF

TMR0L

TMR0H

READ

TMR0LWRITE

TMR0L

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 9393

T0CON Register

TMR0ON T08BIT T0CS T0SE PSA T0PS2:0

DATA BUS

Prescaler Rate Select Bits

PS2 PS1 PS0

TMR0

RATE

0 0 0 1:2

0 0 1 1:4

0 1 0 1:8

0 1 1 1:16

1 0 0 1:32

1 0 1 1:64

1 1 0 1:128

1 1 1 1:256

Page 94: Arquitectura y Programación de PIC18F

Timer0 Operation

T0SE

T0CKI

FOSC/4

1

0

0

1

Programmable

Prescaler

T0CS

PSAT0PS2:T0PS0

Clock

SyncHigh Byte

TMR0IF

TMR0L

TMR0H

READ

TMR0LWRITE

TMR0L

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 9494

T0CON Register

TMR0ON T08BIT T0CS T0SE PSA T0PS2:0

TMR0ON

1 = ON

0 = STOPPED

Page 95: Arquitectura y Programación de PIC18F

Timer1 and Timer3

16-bit Timer / Counter

Timer, Synchronous Counter or Asynchronous

Counter

Can operate from separate external crystal

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 9595

Can operate from separate external crystal

Two read/write 8-bit registers

÷÷÷÷1, ÷÷÷÷2, ÷÷÷÷4, or ÷÷÷÷8 Prescaler

Interrupt on overflow from FFFFh to 0000h

Page 96: Arquitectura y Programación de PIC18F

Timer1 and Timer3

1

0

0

1

FOSC/4

T1OSO/

T13CKI

T1OSI

T1OSCEN TMR1CS

Prescaler

1, 2, 4, 8

Sync

Detect

Sleep Input T1SYNC

TMR1ON

Timer 1 Oscillator

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 9696

8-bit Data Bus

T1CKPS1: T1CKPS0TMR1ON

TMR1L

TMR1IF

Clear Timer 1

(CCP Special Event Trigger)High Byte

TMR1H

WRITE

TMR1L

READ

TMR1L

T1CON Register

RD16 T1RUN T1OSCEN TMR1CSTCKPS1:0 TMR1ON

Bit 7 Bit 0

T1SYNC

Page 97: Arquitectura y Programación de PIC18F

0

1

FOSC/4

T1OSO/

T13CKI

T1OSI

T1OSCEN TMR1CS

Prescaler

1, 2, 4, 8

T1CKPS1: T1CKPS0

1

0

Sync

Detect

Sleep Input T1SYNC

TMR1ON

Timer 1 Oscillator

Timer1 and Timer3

16-bit Read/Write Mode Enable

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 9797

RD16 T1RUN T1OSCEN TMR1CSTCKPS1:0 TMR1ON

Bit 7 Bit 0

T1SYNC

T1CON Register

TMR1LTMR1H

TMR1IF

Clear Timer 1

(CCP Special Event Trigger)

8-bit Data Bus

16-bit Read/Write Mode Enable

1 = Read/Write of Timer

in one operation

0 = Read/Write of Timer

in two 8-bit operations

Page 98: Arquitectura y Programación de PIC18F

16-bit Read/Write Mode Enable

1 = Read/Write of Timer

Timer1 and Timer3

1

0

0

1

FOSC/4

T1OSO/

T13CKI

T1OSI

T1OSCEN TMR1CS

Prescaler

1, 2, 4, 8

T1CKPS1: T1CKPS0

Sync

Detect

Sleep Input T1SYNC

TMR1ON

Timer 1 Oscillator

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 9898

1 = Read/Write of Timer

in one operation

0 = Read/Write of Timer

in two 8-bit operations

RD16 T1RUN T1OSCEN TMR1CSTCKPS1:0 TMR1ON

Bit 7 Bit 0

T1SYNC

T1CON Register8-bit Data Bus

TMR1L

TMR1IFClear Timer 1

(CCP Special Event Trigger)High Byte

TMR1H

WRITE

TMR1L

READ

TMR1L

Page 99: Arquitectura y Programación de PIC18F

Timer1 and Timer3

1

0

0

1

FOSC/4

T1OSO/

T13CKI

T1OSI

T1OSCEN TMR1CS

Prescaler

1, 2, 4, 8

T1CKPS1: T1CKPS0

Sync

Detect

Sleep Input T1SYNC

TMR1ON

Timer 1 Oscillator

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 9999

RD16 T1RUN T1OSCEN TMR1CSTCKPS1:0 TMR1ON

Bit 7 Bit 0

T1SYNC

T1CON Register8-bit Data Bus

TMR1L

TMR1IF

Clear Timer 1

(CCP Special Event Trigger)High Byte

TMR1H

WRITE

TMR1L

READ

TMR1L

Timer1 Oscillator Enable

1 = T1OSC Enabled

0 = T1OSC off

Page 100: Arquitectura y Programación de PIC18F

Timer1 and Timer3

1

0

0

1

FOSC/4

T1OSO/

T13CKI

T1OSI

T1OSCEN TMR1CS

Prescaler

1, 2, 4, 8

T1CKPS1: T1CKPS0

Sync

Detect

Sleep Input T1SYNC

TMR1ON

Timer 1 Oscillator

Timer1 Clock Source

1= External Clock

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 100100

RD16 T1RUN T1OSCEN TMR1CSTCKPS1:0 TMR1ON

Bit 7 Bit 0

T1SYNC

T1CON Register

8-bit Data Bus

TMR1L

TMR1IF

Clear Timer 1

(CCP Special Event Trigger)High Byte

TMR1H

WRITE

TMR1L

READ

TMR1L

1= External Clock

0 = Fosc/4

Page 101: Arquitectura y Programación de PIC18F

Timer1 and Timer3

1

0

0

1

FOSC/4

T1OSO/

T13CKI

T1OSI

T1OSCEN TMR1CS

Prescaler

1, 2, 4, 8

T1CKPS1: T1CKPS0

Sync

Detect

Sleep Input T1SYNC

TMR1ON

Timer 1 Oscillator

Timer1 Prescale Select

11 = 1:8

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 101101

RD16 T1RUN T1OSCEN TMR1CSTCKPS1:0 TMR1ON

Bit 7 Bit 0

T1SYNC

T1CON Register

8-bit Data Bus

TMR1L

TMR1IF

Clear Timer 1

(CCP Special Event Trigger)High Byte

TMR1H

WRITE

TMR1L

READ

TMR1L

11 = 1:8

10 = 1:4

01 = 1:2

00 = 1:1

Page 102: Arquitectura y Programación de PIC18F

Timer1 and Timer3

1

0

0

1

FOSC/4

T1OSO/

T13CKI

T1OSI

T1OSCEN TMR1CS

Prescaler

1, 2, 4, 8

T1CKPS1: T1CKPS0

Sync

Detect

Sleep Input T1SYNC

TMR1ON

Timer 1 Oscillator

Timer1 System Clock Status

Read Only Bit

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 102102

8-bit Data Bus

TMR1L

TMR1IF

Clear Timer 1

(CCP Special Event Trigger)High Byte

TMR1H

WRITE

TMR1L

READ

TMR1L

Read Only Bit

1 = Device clock derived from Timer1 OSC

0 = Device clock derived from another source

RD16 T1RUN T1OSCEN TMR1CSTCKPS1:0 TMR1ON

Bit 7 Bit 0

T1SYNC

T1CON Register

Page 103: Arquitectura y Programación de PIC18F

Timer1 and Timer3

1

0

0

1

FOSC/4

T1OSO/

T13CKI

T1OSI

T1OSCEN TMR1CS

Prescaler

1, 2, 4, 8

T1CKPS1: T1CKPS0

Sync

Detect

Sleep Input T1SYNC

TMR1ON

Timer 1 Oscillator

Timer1 External Clock

Synchronization

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 103103

8-bit Data Bus

TMR1L

TMR1IFClear Timer 1

(CCP Special Event Trigger) High Byte

TMR1H

WRITE

TMR1L

READ

TMR1L

Synchronization

Bit only used when TMR1CS = 1

1 = Synchronize external clock input

0 = Do not synchronize

RD16 T1RUN T1OSCEN TMR1CSTCKPS1:0 TMR1ON

Bit 7 Bit 0

T1SYNC

T1CON Register

Page 104: Arquitectura y Programación de PIC18F

Timer1 and Timer3

1

0

0

1

FOSC/4

T1OSO/

T13CKI

T1OSI

T1OSCEN TMR1CS

Prescaler

1, 2, 4, 8

T1CKPS1: T1CKPS0

Sync

Detect

Sleep Input T1SYNC

TMR1ON

Timer 1 Oscillator

Timer On

1 = Enables Timer

0 = Stops Timer

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 104104

TMR1L

TMR1IFClear Timer 1

(CCP Special Event Trigger)High Byte

TMR1H

WRITE

TMR1L

READ

TMR1L

T1CON RegisterRD16 T1RUN T1OSCEN TMR1CSTCKPS1:0 TMR1ON

Bit 7 Bit 0

T1SYNC

0 = Stops Timer

8-bit Data Bus

Page 105: Arquitectura y Programación de PIC18F

Timer2

8-bit Timer with prescaler and postscaler

Used as PWM time base

TMR2 is readable & writable

TMR2 resets on match with PR2

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 105105

TMR2 resets on match with PR2

Match with PR2 generates interrupt

Used as baud clock for MSSP (SPI)

Page 106: Arquitectura y Programación de PIC18F

Timer2

T2OUTPS3:T2OUTPS0

T2CON Register

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

bit 7 bit 0

- T2OUTPS3 T2OUTPS2 T2OUTPS1 T2OUTPS0 TMR2ON T2CKPS1 T2CKPS0

TMR2 Postscale Value

Selection Bits

00 = 1:1

01 = 1:4

1x = 1:16

0000 = 1:1

0001 = 1:2

1111 = 1:16

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 106106

1:1, 1:4, 1:16

Prescaler

1:1 to 1:16

Postscaler

TMR2 PR2ComparatorFOSC/4

T2CKPS1:T2CKPS0

T2OUTPS3:T2OUTPS0

TMR2IF

Timer 2 Output

(To PWM or MSSP)

8-bit Data Bus

Reset TMR2/PR2 Match

TMR2 Prescale Value

Selection Bits

1x = 1:161111 = 1:16

Page 107: Arquitectura y Programación de PIC18F

Control Timers con CCS

setup_timer_x(mode)

set_timerx(value).

value=get_timerx.

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 107107

Page 108: Arquitectura y Programación de PIC18F

PIC18 InterruptsPIC18 Interrupts

Page 109: Arquitectura y Programación de PIC18F

Definición

Interrupción

PIC18 Tiene 2 vectores: Alta y Baja Prioridad

InterrupciónInterrupción sonson llamadasllamadas aa funcionesfunciones disparadasdisparadas porpor eventoseventosdeldel Hardware,Hardware, aa dichasdichas funcionesfunciones nono sese lesles puedepuede pasarpasarparámetrosparámetros nini tampocotampoco puedenpueden devolverdevolver parámetrosparámetros

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 109109

PIC18 Tiene 2 vectores: Alta y Baja Prioridad

Las funciones de interrupciones deben ser tratadas de foema especial:

ISRs no reciben ni devuelven parámetros

ISRs no son llamadas por el código principal

ISRs no son llamadas por otras funciones

Page 110: Arquitectura y Programación de PIC18F

TMR0IF

TMR0IE

TMR1IF

Other Core

Interrupts Wakeup

to CPU

Lógica de InterrupciónModo Legal o compatible con PIC16

Core Interrupts

Peripheral

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 110110

TMR1IF

TMR1IE

Other

Peripheral

Interrupts

PEIE

GIE

Interrupt to

CPU

Vector to 0x0008

Peripheral

Interrupts

Page 111: Arquitectura y Programación de PIC18F

Lógica de InterrupciónModo Prioridad

IP

IE

IF GIEH

High Priority

Interrupt to CPU

Vector to 0x0008

INT0IF INT0IE

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 111111

IP

IE

IF GIEL

Wakeup to CPU

Interrupt to CPU

Low Priority

Interrupt to CPU

Vector to 0x0018

Page 112: Arquitectura y Programación de PIC18F

PIC18 Fuentes de Interrupción

Fuentes de Interrupción

3 o 4 Int. Externas (INT0-INT3)

Edge Triggered

Rising or Falling selected in INTCON2 register

PORTB Interrupción por cambio (RB4-RB7)

Timer Rollover/Overflow

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 112112

Timer Rollover/Overflow

Cambio en la salida del comparador

Final de Conversión A/D

Eventos en el canal de comunicaciones

Eventos en otros periféricos…

Page 113: Arquitectura y Programación de PIC18F

Habilitando las Interrupciones(1 de 9)

Select Legacy or Priority mode interrupt operation

Default is no priority levelsPIC16 Compatibility mode

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 113113

IPEN: Interrupt Priority Enable

1 = Enable priority levels on interrupts

0 = Disable priority levels on interrupt

RCON Register

IPEN SBOREN --- RI TO PD POR BOR

Page 114: Arquitectura y Programación de PIC18F

Habilitando las Interrupciones(2 de 9)

Set Peripheral Interrupt PriorityOnly needed if using Priority Mode

1 = High Priority, 0 = Low PriorityIPR1 Register

PSPIP ADIP RCIP TXIP SSPIP CCP1IP TMR2IP TMR1IP

PSPIP: Parallel Slave Interrupt Priority SSPIP: MSSP Interrupt Priority

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 114114

IPR2 Register

OSCIP CMIP --- EEIP BCLIP HLVDIP TMR3IP CCP2IP

PSPIP: Parallel Slave Interrupt Priority

ADIP: A/D Converter Interrupt Priority

RCIP: EUSART Rcv Interrupt Priority

TXIP: EUSART Tx Interrupt Priority

SSPIP: MSSP Interrupt Priority

CCPIP: CCP1 Interrupt Priority

TMR2IP: Timer2 Interrupt Priority

TMR1IP: Timer1 Interrupt Priority

OSCIP: Oscillator Fail Interrupt Priority

CMIP: Comparator Interrupt Priority

---- Unimplemented Bit

EEIP: Data EEPROM/Flash Write

Operation Interrupt Priority

BCLIP: Bus Collision Interrupt Priority

HLVDIP: High/Low Voltage Detect Interrupt Priority

TMR3IP: Timer3 Interrupt Priority

CCP2IP: CCP2 Interrupt Priority

Page 115: Arquitectura y Programación de PIC18F

Habilitando las Interrupciones (3 de 9)

Ensure Peripheral Interrupt Flags are clearIf set, an interrupt is pending or being processed

1 = Set, 0 = Clear

PIR1 Register

PSPIF ADIF RCIF TXIF SSPIF CCPIF TMR2IF TMR1IF

PSPIF: Parallel Slave Interrupt Flag

ADIF: A/D Converter Interrupt Flag

SSPIF: MSSP Interrupt Flag

CCPIF: CCP1 Interrupt Flag

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 115115

PIR2 Register

OSCIF CMIF --- EEIF BCLIF HLVDIF TMR3IF CCP2IF

ADIF: A/D Converter Interrupt Flag

RCIF: EUSART Rcv Interrupt Flag

TXIF: EUSART Tx Interrupt Flag

CCPIF: CCP1 Interrupt Flag

TMR2IF: Timer2 Interrupt Flag

TMR1IF: Timer1 Interrupt Flag

OSCIF: Oscillator Fail Interrupt Flag

CMIF: Comparator Interrupt Flag

---- Unimplemented Bit

EEIF: Data EEPROM/Flash Write

Operation Interrupt Flag

BCLIF: Bus Collision Interrupt Flag

HLVDIF: High/Low Voltage Detect Interrupt Flag

TMR3IF: Timer3 Interrupt Flag

CCP2IF: CCP2 Interrupt Flag

Page 116: Arquitectura y Programación de PIC18F

Habilitando las Interrupciones (4 de 9)

Set Peripheral Interrupt Enables1 = Enabled, 0 = Disabled

PIE1 Register

PSPIE ADIE RCIE TXIE SSPIE CCPIE TMR2IE TMR1IE

PSPIE: Parallel Slave Interrupt Enable

ADIE: A/D Converter Interrupt Enable

SSPIE: MSSP Interrupt Enable

CCPIE: CCP1 Interrupt Enable

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 116116

PIE2 Register

OSCIE CMIE --- EEIE BCLIE HLVDIE TMR3IE CCP2IE

ADIE: A/D Converter Interrupt Enable

RCIE: EUSART Rcv Interrupt Enable

TXIE: EUSART Tx Interrupt Enable

CCPIE: CCP1 Interrupt Enable

TMR2IE: Timer2 Interrupt Enable

TMR1IE: Timer1 Interrupt Enable

OSCIE: Oscillator Fail Interrupt Enable

CMIE: Comparator Interrupt Enable

---- Unimplemented Bit

EEIE: Data EEPROM/Flash Write

Operation Interrupt Enable

BCLIE: Bus Collision Interrupt Enable

HLVDIE: High/Low Voltage Detect Interrupt Enable

TMR3IE: Timer3 Interrupt Enable

CCP2IE: CCP2 Interrupt Enable

Page 117: Arquitectura y Programación de PIC18F

Habilitando las Interrupciones (5 de 9)

Set Core Interrupt PriorityOnly needed if using Priority Mode

1 = High Priority, 0 = Low Priority

INTCON2 Register

RBPU INTEDG0 INTEDG1 INTEDG2 --- TMR0IP --- RBIP

INT0 does not have an IP

bit – it is always a high

priority interrupt

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 117117

INTCON3 Register

INT2IP INT1IP --- INT2IE INT1IE --- INT2IF INT1IF

TMR0IP: TMR0 Overflow Interrupt Priority

RBIP: RB Port Change Interrupt Priority

INT2IP: INT2 External Interrupt Priority

INT1IP: INT1 External Interrupt Priority

Page 118: Arquitectura y Programación de PIC18F

Habilitando las Interrupciones (6 de 9)

Ensure Core Interrupt Flags are ClearIf set, an interrupt is pending or being processed

1 = Set, 0 = Clear

INTCON Register

GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 118118

INTCON3 Register

INT2IP INT1IP --- INT2IE INT1IE --- INT2IF INT1IF

TMR0IF: TMR0 Overflow Interrupt Flag

INT0IF: INT0 External Interrupt Flag

RBIF: RB Port Change Interrupt Flag

INT2IF: INT2 External Interrupt Flag

INT1IF: INT1 External Interrupt Flag

Page 119: Arquitectura y Programación de PIC18F

Habilitando las Interrupciones (6 de 9)

Set Core Interrupt Enables1 = Enabled, 0 = Disabled

INTCON Register

GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 119119

INTCON3 Register

INT2IP INT1IP --- INT2IE INT1IE --- INT2IF INT1IF

TMR0IE: TMR0 Overflow Interrupt Enable

INT0IE: INT0 External Interrupt Enable

RBIE: RB Port Change Interrupt Enable

INT2IE: INT2 External Interrupt Enable

INT1IE: INT1 External Interrupt Enable

Page 120: Arquitectura y Programación de PIC18F

Habilitando las Interrupciones (8 de 9)

Enable Low Priority or Peripheral InterruptsStill need to enable Global Interrupts when in PIC16 compatibility mode

INTCON Register

GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 120120

PEIE/GIEL :

Peripheral Interrupt Enable (PIC16 Compatibility Mode) /

Global Interrupt Enable Low (Priority Mode)

In PIC16 Compatibility Mode (RCON<IPEN> = 0):

1 = Enables all unmasked peripheral interrupts

0 = Disables all peripheral interrupts

In Priority Mode (RCON<IPEN> = 1):

1 = Enables all low priority peripheral interrupts

0 = Disables all low priority peripheral interrupts

Page 121: Arquitectura y Programación de PIC18F

Habilitando las Interrupciones (9 de 9)

Enable High Priority or Global Interrupts

INTCON Register

GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 121121

GIE/GIEH :

Global Interrupt Enable (PIC16 Compatibility Mode) /

Global Interrupt Enable High (Priority Mode)

In PIC16 Compatibility Mode (RCON<IPEN> = 0):

1 = Enables all unmasked interrupts

0 = Disables all interrupts

In Priority Mode (RCON<IPEN> = 1):

1 = Enables all high priority interrupts

0 = Disables all high priority interrupts

Page 122: Arquitectura y Programación de PIC18F

Control de interrupciones con CCS

Se usa la directiva #INT_XXX para indicar la fuente de la interrupcion.

XXX=depende del periférico interruptor

La rutina de interrupción no puede recibir ni pasar parámetros, debe ser void

Ejemplo:

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 122122

Ejemplo:

#int_rda

void isr_recepcion (void)

sentencias

Page 123: Arquitectura y Programación de PIC18F

Thank You!Thank You!

Page 124: Arquitectura y Programación de PIC18F

Trademarks

The Microchip name and logo, the Microchip logo, Accuron, dsPIC, KeeLoq, microID, MPLAB, PIC, PICmicro,

PICSTART, PRO MATE, PowerSmart, rfPIC and SmartShunt are registered trademarks of Microchip Technology

Incorporated in the U.S.A. and other countries.

AmpLab, FilterLab, Migratable Memory, MXDEV, MXLAB, SEEVAL, SmartSensor and The Embedded Control

Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A.

Analog-for-the-Digital Age, Application Maestro, dsPICDEM, dsPICDEM.net, dsPICworks, ECAN, ECONOMONITOR,

FanSense, FlexROM, fuzzyLAB, In-Circuit Serial Programming, ICSP, ICEPIC, Linear Active Thermistor, Mindi,

MiWi, MPASM, MPLIB, MPLINK, MPSIM, PICkit, PICDEM, PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo,

© 2011 Microchip Technology Incorporated. All Rights Reserved. © 2011 Microchip Technology Incorporated. All Rights Reserved. Slide Slide 124124

PowerMate, PowerTool, REAL ICE, rfLAB, rfPICDEM, Select Mode, Smart Serial, SmartTel, Total Endurance,

UNI/O, WiperLock and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other

countries.

SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.

All other trademarks mentioned herein are property of their respective companies.