You are on page 1of 17

27/08/2014

Curso de
Microcontroladores
Introduccin Familia
PIC18FXXX
Parte I
Ing. Germn Jess Pereira Muoz

27/08/2014 Ing. German Pereira Muoz 1

Que es un PIC???
El PIC fue desarrollado como un control de
perifricos
PIC(Peripheral Interface Controller) es un
Circuito Integrado desarrollado para
controlar los perifericos que son controlados
por un CPU principal

27/08/2014 Ing. German Pereira Muoz 2

1
27/08/2014

INTRODUCCIN A LOS MICROCONTROLADORES PIC


Microprocesador PIC Amplio rango de perifricos externos.

27/08/2014 Ing. German Pereira Muoz 3

27/08/2014 Ing. German Pereira Muoz 4

2
27/08/2014

INTRODUCCIN A LOS MICROCONTROLADORES PIC

Microprocesador PIC
Familia PIC.

32 Bits

16 Bits
dsPIC30F

8 Bits
Enhanced
PIC18FXXX
PIC12F6XX,PIC16FXX Mid-range
PIC12F4XX,PIC16F5XX
Base-line
PIC10F2XX

4 Bits

27/08/2014 Ing. German Pereira Muoz 5

INTRODUCCIN A LOS MICROCONTROLADORES PIC


Migracin en la Familia PIC.

27/08/2014 Ing. German Pereira Muoz 6

3
27/08/2014

INTRODUCCIN A LOS MICROCONTROLADORES PIC


Microprocesador PIC
Familia 8 pin

Familia 20 pin

27/08/2014 Ing. German Pereira Muoz 7

INTRODUCCIN A LOS MICROCONTROLADORES PIC


Microprocesador PIC
Familia 18 pin Familia 28 pin

27/08/2014 Ing. German Pereira Muoz 8

4
27/08/2014

Microprocesador PIC
Familia 40 pin

27/08/2014 Ing. German Pereira Muoz 9

Caracteristicas del Microcontrolador


PIC18F4550

27/08/2014 Ing. German Pereira Muoz 10

5
27/08/2014

Caractersticas fundamentales:
Arquitectura RISC avanzada Harvard: 16- bit con 8- bit de datos.
77 instrucciones
Desde 18 a 80 pines
Hasta 64K bytes de programa (hasta 2 Mbytes en ROMless)
Multiplicador Hardware 8x8
Hasta 3968 bytes de RAM y 1KBytes de EEPROM
Frecuencia mxima de reloj 40Mhz. Hasta 10 MIPS.
Pila de 32 niveles.
Mltiples fuentes de interrupcin
Perifricos de comunicacin avanzados (CAN y USB)

Ing. German Pereira Muoz 11


27/08/2014

Diagrama
De
Bloques

27/08/2014 Ing. German Pereira Muoz 12

6
27/08/2014

Caractersticas Comunes Arquitectura


El uC PIC18F4550 dispone buses diferentes para el acceso a memoria de programa y
memoria de datos (arquitectura Harvard):
Bus de la memoria de programa:
21 lneas de direccin
16/8 lneas de datos (16 lneas para instrucciones/8 lneas para datos)
Bus de la memoria de datos:
12 lneas de direccin
8 lneas de datos
Esto permite acceder simultneamente a la memoria de programa y a la memoria de
datos. Es decir se puede ejecutar una instruccin (lo que por lo general requiere acceso
a memoria de datos) mientras se lee de la memoria de programa la siguiente
instruccin (proceso pipeline).

Por tanto la ejecucin completa de 1 instruccin (lectura instruccin +ejecucin) se


hace en un 1 ciclo de instruccin (4 TOSC). EXCEPCION: las instrucciones
quemodifican el contenido del PC requieren 2 ciclos de instruccin.
27/08/2014 Ing. German Pereira Muoz 13

Procesador segmentado pipe-line

27/08/2014 Ing. German Pereira Muoz 14

7
27/08/2014

Clico Clock / Instruccin

Fcm=Fxtal/4 Fxtal: Frecuencia del


Cristal Externo

Tcm=1/Fcm Fcm: Frecuencia Ciclo maquina


Tcm: Tiempo Ciclo Maquina

27/08/2014 Ing. German Pereira Muoz 15

Ciclo de Instruccin
Los cuatro ciclos Q que componen un ciclo de instruccin (TCY)
pueden generalizarse como:
Q1: Decodificacin de la Instruccin
Q2: Lectura de Dato (si lo hay)
Q3: Proceso de Datos
Q4: Instruccin escribir datos

27/08/2014 Ing. German Pereira Muoz 16

8
27/08/2014

Configuraciones de Oscilador
1. XT Cristal/Resonador
2. XTPLL Cristal/Resonador con PLL habilitado
3. HS High-Speed Cristal/Resonador
4. HSPLL High-Speed Cristal/Resonador con PLL habilitado
5. EC Clock Externo con salida FOSC/4
6. ECIO Clock Externo con I/O en RA6
7. ECPLL Clock Externo con PLL habilitado y FOSC/4 con salida en RA6
8. ECPIO Clock Externo con PLL habilitado, I/O en RA6
9. INTHS Oscilador Interno usa el uC como fuente de Clock, el Ocilador
HS usa el USB como fuente de clock
10. INTXT Oscilador Interno usa el uC como fuente de clock, ocilador XT
Usa el USB como fuente de clock.
11. INTIO Oscilador Internousa el uC como fuente de reloj, ocilador EC
Usa el USB como fuente de clock, digital I/O en RA6
12. INTCKO Oscilador Interno usa el uC como fuente de clock, ocilador EC
Usa el USB como fuente de clock, FOSC/4 output en RA6
27/08/2014 Ing. German Pereira Muoz 17

Config.
de
Oscilador

27/08/2014 Ing. German Pereira Muoz 18

9
27/08/2014

Quartz y resonador (XT, HS o HSPLL)

Valores Mas
Frecuentes de C1 y C2

OCLADOR CRISTAL
RESONADORES CERAMICOS

27/08/2014 Ing. German Pereira Muoz 19

Entrada de Clock
externo
(Confg. HS )

Entrada de Clock
externo
(Confg. EC y ECPLL )

Entrada de Clock externo


(Confg. ECIO y ECPIO )

27/08/2014 Ing. German Pereira Muoz 20

10
27/08/2014

Multiplicador de Frecuencia PLL


Incluye un circuito PLL (Paced Locked Lop).
Para aplicaciones USB con velocidad baja de oscilacin y como fuente de reloj para
el microcontrolador.
Diseado para producir una seal de 96MHz de una seal de entrada de 4MHz.

El PLL est activo en los modos: HSPLL, XTPLL, ECPLL y ECPIO.


Los modos HSPLL, ECPLL y ECPIO utilizan el modo del oscilador HS para
frecuencias superiores a 48MHz.
El modo XTPLL slo utiliza la frecuencia de entrada de 4MHz que dirige el PLL
directamente.

Tiene ocho opciones de prescaler para elegir la frecuencia de entrada al PLL.


El prescaler divide la seal de entrada por 12 para producir 4MHz para el PLL.

Hay un postscaler para elegir la velocidad del microcontrolador, para que el USB y el
microcontrolador tengan una entrada de reloj y funcionen a velocidades diferentes.
El postscaler tiene las opciones de 1/2, 1/4 y 1/6 de la salida del PLL.

27/08/2014 Ing. German Pereira Muoz 21

27/08/2014 Ing. German Pereira Muoz 22

11
27/08/2014

27/08/2014 Ing. German Pereira Muoz 23

Diagrama de Bloque (Modo HS)

27/08/2014 Ing. German Pereira Muoz 24

12
27/08/2014

Bloque interno del Oscilador


Oscilador interno que genera dos seales diferentes;
cualquiera se puede utilizar como reloj del
microcontrolador.
Si el USB no est utilizado, el oscilador interno puede
eliminar el oscilador externo de los pines OSC1 y/o
OSC2.
La salida principal (INTOSC) es una fuente de reloj de
8MHz que se puede utilizar para dirigir el reloj
directamente. Esto tambin gobierna el postscaler de
INTOSC, el cual puede proporcionar un rango de
frecuencias de 31kHz a 4MHz.

27/08/2014 Ing. German Pereira Muoz 25

Bloque interno del Oscilador


La salida INTOSC est activa cuando se selecciona una
frecuencia de reloj de 125kHz a 8MHz.
La otra seal interna de reloj es el oscilador RC (INTRC)
que da una salida nominal de 31kHz. INTRC est activo si
se selecciona como fuente de reloj; se activa
automticamente cuando alguno de los siguientes est
activo:
Temporizador de encendido
Monitor de reloj de seguridad
Temporizador perro guardin
Dos velocidades de inicio
La frecuencia se elige configurando el bit IRCF del
registro OSCCON.
27/08/2014 Ing. German Pereira Muoz 26

13
27/08/2014

Modos del Oscilador interno

El oscilador interno funciona como reloj del uC, uno de


los otros modos debe utilizarse como reloj del USB.
La eleccin del USB se determina dependiendo del
modo de funcionamiento interno.
Hay cuatro modos distintos:
INTHS: Da la seal el oscilador en modo HS.
INTXT: Da la seal el oscilador en modo XT.
INTCKO: La seal da un oscilador externo conectado al
OSC1; en el OSC2 podemos obtener Fosc/4.
INTIO: La seal da un oscilador externo conectado al OSC1;
en el OSC2 tenemos un pin E/S (RA6).

27/08/2014 Ing. German Pereira Muoz 27

Registro de Tunnig de OSCILADOR


OSCTUNE:

bit 7 INTSRC: Bit de seleccin de fuente interna de oscilador de Baja-Frecuencia


1 = 31.25 kHz device clock derived from 8 MHz INTOSC source (divide-by-
256 enabled)
0 = 31 kHz device clock derived directly from INTRC internal oscillator
bit 6-5 No implementado: Leido como 0
bit 4-0 TUN4:TUN0: Bits de Tuneo de frecuencia
01111 = Mxima frecuencia


00001
00000 = Frecuencia media. Modulo ocilador es en una frecuencia calibrada.
11111


10000 = Minima frecuencia

27/08/2014 Ing. German Pereira Muoz 28

14
27/08/2014

Opciones de
config. de
Oscilador
para
operacin
USB
Part I

27/08/2014 Ing. German Pereira Muoz 29

Opciones de
config. de
Oscilador
para
operacin
USB
Part II

27/08/2014 Ing. German Pereira Muoz 30

15
27/08/2014

Registro de
Control de
OSCILADOR
bit 7 IDLEN: Bit habilitador de Idle OSCCON:
1 = Dispositivo entra en modo Idle con la instruccion SLEEP
0 = Dispositivo entra en modo Sleep con la instruccion SLEEP
bit 6-4 IRCF2:IRCF0: Bits de Seleccin de la frecuencia de Oscilador Interno
111 = 8 MHz (Clock directo de INTOSC)
110 = 4 MHz
101 = 2 MHz
100 = 1 MHz(3)
011 = 500 kHz
010 = 250 kHz
001 = 125 kHz
000 = 31 kHz (fuente directa de INTOSC/256 o INTRC)(2)
bit 3 OSTS: Bit de estado del Oscilador Start-up Time-out(1)
1 = Oscilador Start-up Timer time-out a expirado; ocilador primario esta corriendo
0 = Oscilador Start-up Timer time-out no esta corriendo; ocilador primario no esta listo
bit 2 IOFS: INTOSC Bit Frecuencia Estable
1 = INTOSC frecuencia estable
0 = INTOSC frecuencia no estable
bit 1-0 SCS1:SCS0: Bits de seleccin de clock del sistema
1x = Bloque de osclador interno
01 = Timer1 oscilador
00 = Oscilador Primario
Note 1: Depende del estado del bit de configuracion IESO
2: La fuente es seleccionada por el bit INTSRC bit (OSCTUNE<7>)

27/08/2014 Ing. German Pereira Muoz 31

Memoria de Programa
Memoria de programa de 32.768 bytes
(0000H-7FFFH). O 16.384 palabras de
16 bits
Las instrucciones ocupan 2 bytes (excepto
CALL, MOVFF, GOTO y LSFR que
ocupan 4).
La operacin de lectura en posicin de
memoria por encima de 7FFFH da 0
como resultado (equivalente a la
instruccin NOP).
Direcciones especiales de la memoria de
programa
Vectorizacin del Reset es 0000H
Vectorizacin de las interrupciones de
alta prioridad es la 0008H.
Vectorizacin de las interrupciones de
baja prioridad es la 0018H.
27/08/2014 Ing. German Pereira Muoz 32

16
27/08/2014

Memoria RAM de Datos


Memoria RAM de datos 2.048 bytes
(8 bancos de 256 bytes).
Dispone de 160 bytes dedicados a los
registros de funcin especial (SFRs)
situados en la parte alta del banco 15.
Para acceder a un byte de la memoria
RAM de datos primero debe
seleccionarse el banco al que pertenece
el byte mediante el registro de
seleccin de banco (BSR) y a
continuacin direccionar el byte dentro
del banco.
Adems existe una modalidad de
acceso rpido a las 96 posiciones de la
parte baja del banco 0 y a los 160 bytes
de SFRs (banco de acceso rpido).
Los bancos 4, 5, 6 y 7 se utilizan
tambin para el USB.

27/08/2014 Ing. German Pereira Muoz 33

17