Está en la página 1de 51

Universidad Pedaggica y Tecnolgica de Colombia Escuela de Ingeniera Electrnica. Luis Ariel Mesa M.

PIC: Peripheral Interface Controller (controlador de interfaz perifrico)

Familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. con buenas caractersticas como bajo precio , reducido consumo, pequeo tamao, gran calidad, fiabilidad y abundancia comercial y de informacin.

Microcontroladores de 8 bits

Microcontroladores de 16 bits
Microcontroladores de 32 bits

Microcontroladores de 8 bits

GAMA MEJORADA PIC 18Cxx: 32 niveles de pila, 4 vectores de interrupcin, 77 instrucciones de 16 bits.

GAMA ALTA PIC 17Cxx: 16 niveles de pila, 4 vectores de interrupcin, 58 instrucciones de 16 bits.

GAMA MEDIA PIC 12C6xx, PIC 16Cxx y PIC 16F87x: (8 niveles de pila, 1 vector de interrupcin, 35 instrucciones de 14 bits.

GAMA BSICA PIC 12C5xx y PIC 16C5x: 2 niveles de pila, 33 instrucciones de 12 bits.

(fuente: MICROCONTROLADORES PIC, Diseo practico de aplicaciones)

Microcontroladores de 8 bits

Microcontroladores de 16 bits

Microcontroladores de 16 bits

Microcontroladores de 16 bits PIC 24 :Hasta 16 MIPS La familia PIC24F incorpora USB-OTG (On-The-Go), para actuar como un dispositivo USB o Host, Unidad de Medida de Tiempo de Carga (CTMU (Charge Time Measurement Unit)), que permite la medicin precisa del tiempo en aplicaciones mTouch y un controlador de grficos integrado para interfaces de visualizacin grfica. Tecnologa eXtreme Microchip de bajo consumo. La familia PIC24H/E ofrece comunicaciones CAN integradas, amplificadores operacionales y de control de motores, ADC de rendimiento superior, USBOTG, interfaz de fcil visualizacin grfica a travs de un puerto maestro de 8-bits en paralelo. Disponibles en encapsulados pequeos (hasta de 5x5 mm) con memoria escalable (hasta 536 KB) y expandible, temperaturas de trabajo de hasta 125 C y 150 C.

Microcontroladores de 16 bits DSPIC: (Controladores digitales de seal ) Ofrecen el rendimiento de un DSP con la simplicidad de un uC. Operaciones implementadas en hardware (ej: multiplicaciones de 16x16) dsPIC30F: Recomendables para aplicaciones de amplio rango de tensin de funcionamiento (2,5 a 5,5 V). EEPROM integrada. Contienen perifricos SMPS (Switching Mode Power Supply), de control de motores, y una interfaz que permite manejar convertidores de potencia digitales eficientes. Incorporan adems, algoritmos avanzados de control de motores, de voz y aplicaciones de audio. Integran ADCs de alto rendimiento recomendables para aplicaciones de sensado inteligentes.

Microcontroladores de 16 bits dsPIC33F/E: Ejecutan algoritmos de filtros digitales de alta velocidad, bucles digitales de alta precisin de control y audio digital y el procesamiento del voz. Los perifricos de control de motores permiten el diseo de sistemas de alto rendimiento, y precisin de control. Proporcionar perifricos en chip especficamente diseados para alto rendimiento y fuentes de alimentacin digitales. Incluyen perifricos SMPS (Switching Mode Power Supply) de alta velocidad y PWM de alta resolucin, veloces ADC y comparadores analgicos.

Microcontroladores de 32 bits PIC 32: Microcontroladores de alto desempeo con herramientas necesarias para proyectos embebidos. Procesamiento de 1.5 DMIPS/MHz. Capacidad Host USB. Ethernet. Bus CAN (Controller Area Network)
DMIPS= Dhrystone Million Instructions Per Second (unidad de medicin basada en el banco de pruebas Dhrystone. Es una unidad de medicin fiable de la potencia de un procesador )

Microcontroladores de 32 bits

CPU RISC de alto rendimento. Caractersticas generales Set de 35 instrucciones Instrucciones de un solo ciclo (excepto bifurcaciones de programa que son de dos ) Velocidad : reloj de 20 MHz (200 ns /ciclo de instruccin) Memoria de programa de1024 palabras (FLASH) RAM de 68 bytes. EEPROM de 64 bytes (datos de usuario) Palabras de instruccin de 14 bits de ancho Registros de 8-bits 15 registros de funciones especiales de Hardware Ocho de nivel de pila Direccionamiento directo, indirecto y relativo. Cuatro fuentes de interrupcin (RB0/INT externa, desbordamiento de TMR0, cambio en PORTB <4:7>, escritura completa en EEPROM )

Caractersticas de perifricos 13 pines I/O con control de direccin individual


Alta corriente sumidero/fuente para manejo directo de LEDs - 25 mA mx. en modo sumidero por pin. - 25 mA mx. en modo fuente por pin. Temporizador/contador: preescaler programable. TMR0 de 8-bit con

Caractersticas especiales: 10.000 ciclos tpicos borrado/escritura de memoria de programa (Flash ) 10.000.000 ciclos tpico de borrado /escritura en Memoria de datos EEPROM. Retencin de datos EEPROM mayos a 40 aos In-Circuit Serial Programming (ICSP ) - a travs de dos pines Power-on Reset (POR), Power-up Timer (PWRT), Oscilador Start-up Timer (OST) Watchdog Timer (WDT) con su propio oscilador RC on-chip para un funcionamiento confiable Cdigo de proteccin Ahorro de energa modo SLEEP Opciones seleccionables de oscilador

Encapsulado

Se alimenta a +5V aplicados en los pines 5 y 14.

(14) VDD .. +5V


(5) VSS GND Es recomendable conectar un condensador de acope de 100nF lo ms cerca posible de los pines de alimentacin para mejorar la calidad de la energa entregada.
Smbolo

Todo uC requiere de un reloj para indicar la velocidad de trabajo (seal cuadrada de alta frecuencia ). Las lneas utilizadas son OSC1/CLKIN y OSC2/CLKOUT. Tipos de osciladores XT: Cristal de cuarzo (100kHz-4MHz). El cristal debe ir acompaado de 2 condensadores entre 15 y 33pF. RC: Osc. Resistencia- Condensador (baja precisin). Valores recomendados (5k<Rext<100k y Cext>20pF) HS: Cristal de alta velocidad (4MHz-20MHz) LP: Cristal para baja frecuencia y bajo consumo de potencia(32kHz200kHz). Externa: Cuando se aplica una seal de reloj externa.

Provoca la re inicializacin de su funcionamiento, un comienzo a funcionar desde cero. En este estado, la mayora de los dispositivos internos y registros del microcontrolador toman un estado conocido. Existen varios tipos de RESET: Power-on Reset (POR) MCLR Reset during normal operation MCLR Reset during Sleep WDT Reset (during normal operation) WDT Wake-up (during Sleep) Brown-out Reset (BOR) (pic 16f87x)
WDT=Watch Dog Timer (perro guardin)

El pin de reset se llama MCLR (master clear) y se activa con un nivel lgico bajo. Conexiones:

Power-on Reset (POR): Proporciona un reset al uC al conectar la fuente de alimentacin (Detecta incremento de Vcc en el rango de 1.2V a 1.7V) PWRT (Power up Timer): Proporciona un retardo de 72 ms (TPWRT) desde el momento de la conexin a la alimentacin. El reset durante ese tiempo garantiza que Vcc alcance un nivel aceptable para un arranque correcto del sistema (hay que programarlo en el proceso de grabacin). El PWRT opera con un oscilador interno RC. El temporizador Start-up (OST): ofrece un retardo de 1024 ciclos del oscilador (OSC1 de entrada) tras terminar el retardo PWRT si este ha sido habilitado. Esto ayuda a asegurar que el oscilador (cristal) se ha iniciado y estabilizado. El OST de tiempo de espera se invoca slo para XT, LP y HS y slo en Power-on Reset o despertar de un SLEEP.

Brown-out Reset (BOR)--- (solo PIC 16F87x) La configuracin del bit BODEN habilita o deshabilita el BOR. Si Vcc cae por abajo de VBOR ( cerca de 4V) por ms de TBOR (aprox 100uS), el BOR provocara un reset al chip. Si el tiempo no supera TBOR no habr reset. El uC permanecer en reset hasta que Vcc no est por encima de VBOR, luego el PWRT mantendr el chip en reset por aprox. 72ms

Time-out Sequence and Power-down Status Bits (TO/PD): En el encendido la secuencia de tiempo de espera o tiempo muerto es la siguiente: 1. PWRT es invocado despus de que un POR ha expirado.
2. Luego, el OST es activado. El total de tiempo de espera puede variar en funcin de la configuracin del oscilador y la del PWRTE en registro de estado. Por ejemplo, en el modo de RC con el PWRT desactivado, no habr tiempo de espera en absoluto.

Diagrama de bloques simplificados PIC 16F84A

PIC 16F87xA

Son lneas digitales de entrada/salida que trabajan entre 0 y 5V. Se pueden configurar independientemente como entradas para recibir datos o como salidas para controlar dispositivos externos (Registros TRIS A o TRIS B para el 16F84A). Un bit 0.. Lnea configurada como salida Un bit 1. Lnea configurada como entrada. Cada puerto cuenta con latchs que permiten mantener datos tanto para salida como para entrada. Reciben generalmente nombres como PORTA o PORTB dependiendo del puerto en cuestin. En algunos uC es necesario configurar registros adicionales, como el caso del registro ADCON para los PIC 16F87x. Un pin puede ejecutar diversas tareas segn el uC y segn los perifricos internos conectados al puerto.

Para un PIC 16 F84A se tiene: Puerto A: con 5 lneas (pines RA0-RA4) Puerto B: con 8 lneas (pines RB0-RB7) Para un PIC 16F87x la diferencia entre los de 28 y los de 40 pines est en el nmero de lneas E/S. Los modelos de 40 pines disponen de 5 puertos (A, B, C ,D y E) con un total de 33 lneas . Los de 28 pines solo tienen 3 puertos (A, B y C) con 22 lneas E/S. El conversor A/D en los de 28 pines tiene 5 canales de entrada y 8 en los de 40 pines

Las lneas entregan niveles TTL cuando la tensin de alimentacin es de 5V. La mxima capacidad de corriente de cada una para un PIC 16F84A es : Mxima corriente de salida-Sumidero por cualquier pin E/S.................25 mA Mxima corriente de salida-Fuente por cualquier pin E/S ....................25 mA Mxima corriente de salida-Sumidero por PORTA..............................80 mA Mxima corriente de salida-Fuente por PORTA.......................................50 mA Mxima corriente de salida-Sumidero por PORTB................................150 mA Mxima corriente de salida-Fuente por PORTB......................................100 mA

Observaciones: El Pin RA4/TOCKI es multiplexado con la entrada reloj del mdulo TIMER 0 (Temporizador/contador) Funcionamiento: Entrada digital: funciona como Schmitt Trigger (recoge seales un poco distorsionadas y las lleva a niveles TTL)

Salida digital: se comporta como colector abierto, por lo que debe conectarse una resistencia de pull-up. Como salida la lgica es inversa (un 0 escrito entrega un 1 lgico).
!Este pin no puede manejar cargas como fuente!.

Observaciones: El puerto B tiene internamente resistencias de pull-up conectadas a sus pines (permiten fijar el pin a +5V). Se habilitan o deshabilitan con el bit RBPU del registro OPTION.

Se desconectan automticamente si el pin es configurado como salida (funcionan para entrada unicamente). Al resetear el uC se deshabilitan todas las resistencias de pull up.
Resistencia de pull up (fija nivel alto)

Diagrama de bloques pines RA3:RA0

Diagrama de bloques pines RA4

Puertos PIC 16F84A Puerto A

Puerto B

Diagrama de bloques pines RB7:RB4

Diagrama de bloques pines RB3:RB0

ARQUITECTURA ORTOGONAL: Una instruccin puede utilizar cualquier elemento de la arquitectura como fuente o destino. La figura representa la diferencia entre los microcontroladores PIC y los tradicionales. Note que el registro de trabajo para los PIC se denomina W y para los tradicionales Acumulador. Tradicionales: todas las operaciones se realizan sobre el acumulador. La salida de la ALU va solamente a la entrada del acumulador, el resultado de cualquier operacin queda siempre en este registro. PIC : la salida de la ALU va al registro W y tambin a la memoria de datos pudindose guardar el resultado en cualquiera de los dos destinos (ahorro de instrucciones).

PIC 16F84A Cuenta con los siguientes componentes generales: Memoria de programa tipo FLASH de 1K x14 bits Memoria de datos RAM con 22 registros de propsito especifico (SFR) y 68 de propsito general. Memoria de datos EEPROM de 64 registros de 8 bits. ALU y registro de trabajo W de 8 bits . Dos puertos para comunicacin: PORTA (5 bits, <RA0:RA4>) y PORTB (8 bits, <RB0:RB7>) Contador de programa de 13 bits, lo que en teora direccionara 8K de memoria (aunque solo tiene 1K). Procesador segmentado (pipeline)

PIC 16F84A Se distinguen tres bloque de memoria: Memoria de programa: es de tipo no voltil (FLASH). Tiene 1024 posiciones (1K) y contiene el programa con las instrucciones que gobiernan la aplicacin.

Memoria de datos: de tipo voltil (RAM). Destinada a guardar variables y datos.


Memoria EEPROM de datos: de almacenamiento de datos de usuario. tipo no voltil. Destinada al

PIC 16F84A

PIC 16F84A

Tipo no voltil. Almacena las instrucciones del programa de control. El programa se almacena de forma permanente a travs de un grabado que se hace con un programador. Para el PIC 16F84 : La memoria es de tipo FLASH ROM. Tiene 1024 posiciones y est organizada en palabras de 14 bits. Comienza en la posicin 000h y termina en la 3FFh. Admite unas 1000 grabaciones La informacin puede mantenerse hasta varias decenas de aos.

Las instrucciones de un programa se ejecutan de forma secuencial. Cada instruccin ocupa una posicin de memoria. PC (Program Counter): Registro interno usado para direccionar las instrucciones del programa de control almacenadas en la memoria de programa. Contiene la direccin de la prxima instruccin a ejecutar y se incrementa automticamente con cada instruccin a excepcin de las instrucciones de salto. Para el PIC 16F84A le permite direccionar los 1K x 14 bits de la memoria de programa (000h hasta 3FFh). (Solo emplea los 10 bits de menos peso) Cuando se conecta a la alimentacin u ocurre un reset en PC se pone a cero forzando que la direccin de inicio sea la 000h.

El los 13 bits que conforman el PC estn distribuidos en dos registros: PCL (Program Counter Low byte): Contiene los bits de menos peso, PC<0:7>. implementado en la RAM en la posicin 02h (y duplicado en la posicin 82h del banco 1). Puede ser ledo o escrito directamente. PCLATH : Contiene los bits de ms peso, PC<12:8> (PCH - Program Counter High byte) , que residen en los 5 bits de menos peso del este registro PCLATH.. Ocupa la posicin 0AH de los dos bancos de la memoria RAM. No puede ser ledo ni escrito directamente.

Las instrucciones GOTO y CALL de la gama media, los 11 bits de menos peso del PC provienen del cdigo de instruccin y los otros dos, de los bits PCLATH <4:3>. Con los 11 bits que se cargan en el PC desde el cdigo de las instrucciones GOTO y CALL, se puede direccionar una pgina de 2K de la memoria. Los bits restantes PC<12:11> tienen la misin de apuntar una de las cuatro pginas del mapa de memoria y, en los modelos de PIC que alcanzan ese tamao, dichos bits proceden de PCLATH<4 :3>.

Es una zona aislada de las memorias de instrucciones y datos. Tiene estructura LIFO, (ltimo en entrar, primero en salir). Tiene 8 niveles de profundidad, cada uno con 13 bits. Funciona como un buffer circular, de manera que el valor que se obtiene al realizar el noveno desempilado (pop) es igual al que se obtuvo en el primero. La instruccin CALL y las interrupciones originan la carga del contenido del PC en el nivel superior o cima de la Pila. El contenido del nivel superior se saca de la Pila al ejecutar las instrucciones RETURN, RETLW y RETFIE. El contenido del registro PCLATH no es afectado por la entrada o salida de informacin de la Pila. !! Los PIC no disponen de banderas para detectar desbordameinto de la pila!!

Almacena los datos que manejan y controlan el programa. Es de lectura y escritura y es de tipo voltil. Para el PIC 16F84A la memoria de datos cuenta con dos bancos (Banco 0 y Banco 1) y est dividida en dos partes segn el tipo de registros: Registros de Funciones especiales (SFR):registros que cumplen un propsito especial en el control de uC. Pos. (Banco 0: 00h a 0Bh. Banco 1: 80h a 8Bh)

Registros de propsito general (GPR): registros de uso general que se pueden usar para guardar datos temporales del programa en ejecucin. (68 posiciones para el 16F84A). Pos. (Banco 0: 0Ch a 4Fh. Banco 1: se mapean sobre el banco 0 (son las mismas))

La seleccin del banco se realiza configurando el bit RP0 del registro STATUS. Si: RP0=0.. Acceso a banco 0 RP0=1.. Acceso a banco 1 Despus de un reset se selecciona automticamente el banco 0. Las zonas 50h-7Fh y D0h-FFh no estn implementadas fsicamente y en caso de lectura devuelven 0.

Los registros involucrados con la operacin de los puertos son: PORTA: (Pos 05h-banco 0).Puerto de entrada salida de 5 bits <RA4:RA0>. Se puede leer o escribir como si se tratase de un registro cualquiera. TRISA: (pos 85h- banco 1). Registro de configuracin de lneas de puerto A. (Un bit 0, lnea configurada como salida)(Un bit 1, lnea configurada como entrada).

PORTB:(Pos 06h-banco 0).Puerto de entrada salida de 8 bits <RB7:RB0>. Se puede leer o escribir como si se tratase de un registro cualquiera. TRISB: (pos 86h- banco 1). Registro de configuracin de lneas de puerto B. (Un bit 0,lnea configurada como salida)(Un bit 1, lnea configurada como entrada).

Es el registro principal y participa en la mayora de las instrucciones. Su nombre viene de Work. De localiza en la CPU del uC.

La ALU efecta las operaciones lgico-aritmticas con dos operandos, uno que recibe desde el registro W y otro que puede provenir de cualquier registro o del propio cdigo de instruccin. El resultado de la operacin puede almacenarse en cualquier registro o en W. Esta funcionalidad da un carcter completamente ortogonal a las instrucciones que pueden utilizar cualquier registro como operando fuente y destino

Pos 03h- Banco 0 la 83h del banco 1. Es uno de los registros ms utilizados e importantes. Se compone de flags y de los bits de seleccin de banco. Descripcin:

bit 7-6 (IRP y RP1) : No implementado. Se mantienen en 0 bit 5 (RP0): Bit selector de banco (direccionamiento directo) 1 = Banco 1 (80h - FFh) 0 = Banco 0 (00h - 7Fh) bit 4 (TO): Time-out bit (tiempo de espera). Se activa a nivel bajo 1 = despus de conectar la alimentacin o al ejecutarse las instrucciones CLRWDT y SLEEP. 0 = Cuando se produce el desbordamiento del Perro Guardin (Watchdog). bit 3 (PD): Power-down bit. 1 = despus de conectar la alimentacin uC o al ejecutar la instruccin clrwdt. 0 = Por la ejecucin de la instruccin SLEEP.

bit 2 (Z): Zero bit (flag de cero) 1 = el resultado de la ltima operacin ha sido cero. 0 = el resultado de la ltima operacin ha sido distinto de cero. bit 1 (DC): Digit carry/borrow bit (bit de acarreo en el 4 bit de menos peso) se activa cuando hay acarreo entre nibbles en operaciones aritmticas. Instrucciones ADDWF, ADDLW,SUBLW,SUBWF. 1 = ha ocurrido acarreo del 4th bit del resultado. 0 = No ha ocurrido acarreo del 4th bit del resultado bit 0 (C): Carry/borrow bit (flag de acarreo) Se activa cuando en sumas aritmticas cuando se presenta acarreo desde el bit ms significativo del resultado. Instrucciones ADDWF, ADDLW,SUBLW,SUBWF ) 1 = Un acarreo del bit ms significativo ha ocurrido. 0 = No hay acarreo del bit ms significativo.

Pos 81h- Banco 1.

Descripcin:

bit 7 (RBPU): Habilitacin de Resistencias de pull up en puerto B. 1 = pull-ups de PORTB desactivadas 0 = pull-ups de PORTB activadas. bit 6 (INTEDG): Flanco activo de la interrupcin externa. 1 = Flanco ascendente en el pinRB0/INT 0 = Flanco descendente en el pin RB0/INT bit 5 (T0CS): Tipo de reloj para el TMR0 1 = Pulsos introducidos a travs del pin RA4/T0CKI 0 = Pulsos del reloj interno Fosc/4.

bit 4 (T0SE): Tipo de flanco en TOCKI 1 = incremento del TMR0 cada flanco descendente en el pin RA4/T0CKI 0 = incremento del TMR0 cada flanco ascendente en el pin RA4/T0CKI bit 3 (PSA): asignacin del divisor de frecuencias 1 = Prescaler es asignado al WDT 0 = Prescaler es asignado al mdulo Timer0. bit 2-0 PS2:PS0: valor de actuacin del divisor de frecuencias.

También podría gustarte