Sei sulla pagina 1di 12

Diseño con microcontroladores PIC en lenguajes MikroBasic y MikroC Docente: Ing.

Roger Guachalla Narváez


xoroger@yahoo.es

*PRÁCTICA 00: Arquitectura de los microcontroladores PIC


1. Objetivos:
 Entender los 3 tipos de procesadores: Microprocesador, Microcontrolador y DSP
 Conocer las principales empresas fabricantes de microcontroladores
 Conocer las familias de microcontroladores PIC de la empresa Microchip
 Conocer la arquitectura interna y las características técnicas del microcontrolador PIC16F877A

2. Fundamento Teórico:
¿Qué es un Microprocesador?

Un microprocesador es un sistema programable abierto (configuración variable) con el que puede construirse un computador con
las características que se desee, acoplándole los módulos necesarios.

 Requiere de varios circuitos integrados para crear un sistema completo: ROM, RAM, Puertos I/O, Periféricos.
 Tiene alta capacidad de procesado
 Memorias masivas de programas y datos
 De propósito general
 Alto consumo de energía
 Costo elevado
 Principal fabricante: INTEL
 Ejemplo: procesador principal en el computador PC

¿Qué es un Microcontrolador?

Es un sistema programable cerrado que contiene un computador completo y de prestaciones limitadas que no se pueden
modificar.

 Incorpora todos los circuitos integrados para crear un sistema completo: ROM, RAM, Puertos I/O, Periféricos.
 Tiene baja capacidad de procesado
 Memorias reducidas para programas y datos
 De propósito específico: Control
 Bajo consumo de energía
 Costo reducido
 Principal fabricante en el mercado de 8-bit: Microchip
 Ejemplo: control remoto de un televisor
¿Qué es un DSP?

Un Procesador Digital de Señales (DSP) es un tipo de procesador increíblemente rápido y potente especializado en el tratamiento
de señales de Audio, Video y Tráfico de Datos.
Un DSP es único porque realiza el procesamiento de datos en tiempo real. Esta capacidad de operación en tiempo real hace de un
DSP la opción perfecta para aplicaciones en las que no vamos a tolerar retrasos.

 Incorpora todos los circuitos integrados para crear un sistema completo: ROM, RAM, Puertos I/O, Periféricos ADC,DAC.
 Tiene alta capacidad de procesado: MAC
 Memorias amplias para programas y datos
 De propósito específico: Audio, Video, Tráfico de Datos
 Mediano consumo de energía
 Costo intermedio
 Principal fabricante: Texas Instruments
 Ejemplo: reproductor de audio/video MP3/MP4
Principales empresas fabricantes de Microcontroladores

Microchip Technology Inc


 Microchip Technology Inc. es una empresa fabricante de microcontroladores, memorias y semiconductores analógicos,
situada en Chandler, Arizona, EE. UU.
 Su producto más popular son los microcontroladores PIC de 8 bit
Freescale semiconductor (antes Motorola)
 Freescale Semiconductor es una compañía global líder en la industria de semiconductores enfocada proveer
procesamiento embebido y productos de conectividad.
 Actualmente, se enfoca al suministro de productos para la industria automotriz, de redes, comunicaciones inalámbricas,
control industrial e industrias de consumo electrónico. Con su oferta de procesadores embebidos y de productos
complementarios, proporciona una solución completa de semiconductores y software.
Atmel Corporation
 Atmel es una compañía de semiconductores, fundada en 1984. Su línea de productos incluye microcontroladores
(incluyendo derivados del 8051, el AT91SAM basados en ARM, y sus arquitecturas propias AVR y AVR32), dispositivos de
radiofrecuencia, memorias EEPROM y Flash, ASICs, WiMAX, y muchas otras. También tiene capacidad de ofrecer
soluciones del tipo system on chip (SoC).
* Texas Instruments (DSP)
 Texas Instruments o TI, es una empresa norteamericana que desarrolla y comercializa semiconductores y tecnología para
sistemas de cómputo.
 TI es el tercer mayor fabricante de semiconductores del mundo tras Intel y Samsung y es el mayor suministrador de
circuitos integrados para teléfonos móviles.
 Igualmente, es el mayor productor de procesadores digitales de señal y semiconductores analógicos.
** INTEL (Microprocesador)
 El más reconocido fabricante en el sector de los procesadores es INTEL, la primera compañía de microprocesadores del
mundo.
 Fue fundada en 1968 por Gordon E. Moore y Robert Noyce, quienes inicialmente quisieron llamar a la empresa Moore
Noyce, pero sonaba mal, por lo que eligieron como nombre las siglas de Integrated Electronics.
 El 15 de Noviembre de 1971 lanzaron su primer microprocesador: el Intel 4004 para facilitar el diseño de una calculadora.
En lugar de tener que diseñar varios circuitos integrados para cada parte de la calculadora, diseñaron uno que según un
programa almacenado en memoria podía hacer unas acciones u otras, es decir, un microprocesador.

«Ranking» mundial de los principales fabricantes de microcontroladores de 8 bits


(Ordenado por el número de unidades vendidas)
Familias de microcontroladores PIC

Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. El significado original de PIC es
Peripheral Interface Controller (controlador de interfaz periférico)

Microchip posee una amplia variedad de dispositivos microcontrolados:

Los microcontroladores PIC de 8 bits se clasifican en 3 grandes ramas

Gama base

Estos modelos responden a 33 instrucciones máquina de 12 bits de longitud cada una y disponen de una pila con 2 niveles de
profundidad. Su capacidad de memoria es muy limitado por lo que las aplicaciones que se pueden hacer con el también. Lo
componen 14 modelos, 6 tienen 6 patitas y son llamados enanos.

Gama media

Estos PIC responden a 35 instrucciones con 14 bits de longitud cada una, tiene una pila de 8 niveles de profundidad y tiene un
vector de corrupción. Esta gama tiene en la actualidad 71 modelos diferentes, tienen de 8 a 68 patitas.

Gama mejorada

Estos PIC disponen de 77 instrucciones de 16 bits de longitud cada una, una Pila de 31 niveles de profundidad y 2 vectores de
interrupción.
Arquitectura interna del microcontrolador PIC16F877A
 El PIC16F877 es un microcontrolador de 8-bit de gama media de Microchip Technology fabricado en tecnología CMOS.
 Su consumo de potencia es muy bajo y además es completamente estático, esto quiere decir que el reloj puede detenerse
y los datos de la memoria no se pierden.
 Su memoria de programa es de tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos ya que permite
reprogramarlo nuevamente sin ser borrado con anterioridad.
 El encapsulado más común para este microcontrolador es el DIP de 40 pines, propio para usarlo en experimentación.
 Sin embargo, hay otros tipos de encapsulado que se pueden utilizar según el diseño y la aplicación que se quiere realizar.
 Por ejemplo, el encapsulado tipo surface mount (montaje superficial) tiene un reducido tamaño y bajo costo, que lo hace
propio para producciones en serie o para utilizarlo en lugares de espacio muy reducido

Diagrama de Pins 40PDIP (Plastic Dual In-line Package)


Descripción de los pines del microcontrolador PIC16F877A
Organización de la memoria
Existen cuatro áreas de memoria dentro de un PIC16F877A:

 La memoria de Programa o Código Flash ROM 8Kx14


 La memoria de Pila (Stack) SRAM 8x13
 La memoria de Datos EEPROM 256 Bytes
 La memoria de Datos o Variables SRAM 368 Bytes

Memoria de Programa Flash ROM 8Kx14


 Memoria destinada para almacenamiento del código ejecutable en el microcontrolador
 Capacidad de 8 Kilo words de (14 bits) tipo Flash ROM dividida en 4 páginas de 2Kx14
 Contador de programa PC de 13 bit con capacidad de direccionar programas de hasta 8k instrucciones de 14 bits
 La ubicación del vector de RESET (0000h) es el valor del contador de programa cuando la máquina se inicializa
 Vector de interrupción ubicado en 04H

Memoria de Pila 8x13 SRAM 8x13


 Memoria destinada para el almacenamiento del PC durante las subrutinas e interrupciones
 Capacidad de 8 words de 13 bits tipo SRAM (8 niveles de almacenamiento)
 Es independiente de la memoria de datos y de programa
 Operación de “Buffer circular”: Si se ingresan 8 datos, se llena el Stack, un noveno dato que ingrese desplaza los
contenidos de la pila y elimina el primer dato que se ingresó a la pila.

Memoria de Datos EEPROM 256 Bytes


 Memoria destinada para almacenamiento secundario permanente de datos y variables
 Capacidad de 256 bytes de memoria tipo EEPROM
 Se utiliza de manera indirecta a través de los registros EEADR y EEDATA, EEWR, EERD
 El registro EEADR guarda la dirección a leer/escribir
 En el registro EEDATA se escriben/leen los datos.
 Señales de control de flujo de información: EEWR para escritura y EERD para lectura

Memoria de Datos SRAM 368 Bytes


 Memoria destinada para almacenamiento temporal de datos y variables
 Capacidad de 368 Bytes de memoria tipo SRAM
 Dividida en 4 bancos seleccionados con los bits RP0 y RP1 del registro “Status”
 Cada banco es de 128 bytes
 Las ubicaciones más bajas son reservadas para registros de control/configuración SFR (Registros de Función Especial)
(Special Function Registers)
 En las posiciones superiores de cada banco se constituyen los registros de propósito general GPR (General Purpose
Registers)
Puertos Entrada y Salida
 Los pines de entrada/salida de este microcontrolador están organizados en cinco puertos, el puerto A con 6 líneas, el
puerto B con 8 líneas, el puerto C con 8 líneas, el puerto D con 8 líneas y el puerto E con 3 líneas.
 Cada pin de esos puertos se puede configurar como entrada o como salida independiente programando un par de
registros diseñados para tal fin. En ese registro un bit en "0" configura el pin del puerto correspondiente como salida y un
bit en "1" lo configura como entrada. Dichos pines del microcontrolador también pueden cumplir otras funciones
especiales, siempre y cuando se configuren para ello.
 Los pines del puerto A y del puerto E pueden trabajar como entradas para el convertidor Análogo a Digital interno, es
decir, allí se podría conectar una señal proveniente de un sensor o de un circuito analógico para que el microcontrolador
la convierta en su equivalente digital y pueda realizar algún proceso de control o de instrumentación digital.
 El pin RB0/INT se puede configurar por software para que funcione como interrupción externa, para configurarlo se
utilizan unos bits de los registros que controlan las interrupciones.
 El pin RA4/TOCKI del puerto A puede ser configurado como un pin de entrada/salida o como entrada del
temporizador/contador. Cuando este pin se programa como entrada digital,funciona como un disparador de Schmitt
(Schmitt trigger), puede reconocer señales un poco distorsionadas y llevarlas a niveles lógicos (cero y cinco voltios).
Cuando se usa como salida digital se comporta como colector abierto (open collector), por lo tanto, se debe poner una
resistencia de pull-up (resistencia externa conectada a un nivel de cinco voltios). Como salida, la lógica es inversa: un "0"
escrito al pin del puerto entrega en el pin un "1" lógico.
 El puerto E puede controlar la conexión en modo microprocesador con otros dispositivos utilizando las líneas RD (read),
WR (write) y CS (chip select). En este modo el puerto D funciona como un bus de datos de 8 bits (pines PSP).

 Los ocho bits que contienen los registros PORTA, PORTB, PORTC, PORTD y PORTE reflejan directamente el estado de las
ocho pines de los puertos
 Los registros TRISA, TRISB, TRISC, TRISD y TRISE configuran la dirección de los puertos.
 Al poner un 0 en un bit de TRISx se configura el pin del puerto correspondiente como Salida y al poner un 1 ense configura
el pin de puerto correspondiente como Entrada.
 Al aplicar un Reset, todos los puertos se inicializan configurados como Entrada
Resumen Microcontrolador PIC16F877A
Características técnicas

 CPU RISC de alta performance


 Conjunto de35 instrucciones
 Todas las instrucciones son de un ciclo salvo aquellas que incluyen saltos que son de 2 ciclos.
 Frecuencia de Trabajo: DC - 20 MHz
 8K x 14 words de FLASH Program Memory
 368 x 8 bytes de Data Memory (RAM)
 256 x 8 bytes de EEPROM Data Memory}
 Stack (Pila) de hardware de 8 niveles
 Manejo de Interrupciones (hasta 14 fuentes)
 Modos de direccionamiento directo, indirecto y relativo.
 Power-on Reset (POR)
 Amplio rango de voltaje de trabajo: 2.0V a 5.5V
 4 Modos de Reloj: RC (Resistencia/Capacitor), HS (Alta Velocidad), LP (Baja Potencia), XT (Cristal)
 WatchdogTimer (WDT) con el reloj RC interno para mejor seguridad.
 Power-up Timer (PWRT) y Oscillator Startup Timer (OST)
 Brown-out detection circuitry para Brown-out Reset (BOR)
 Programación serial via 2 pines, In-Circuit Serial Programming (ICSP) (Low/Standard Voltage)
 Protección de Datos en la memoria EEPROM
 Protección de Escritura en la memoria ROM FLASH
 Depuración In-CircuitDebugging a través de 2 pines
 Protección de Código en la memoria FLASH ROM

Características periféricas

 5 Puertos de Entrada/Salida (33 I/O bits) configurables bit a bit


 Timer0: 8-bit timer/counter con 8-bit prescaler
 Timer1: 16-bit timer/counter con prescaler
 Timer2: 8-bit timer/counter con prescaler y postscaler
 Dos módulos Capture, Compare, PWM
 Convertidor Analógico a Digital de 10-bit y multiplexado en 8 canales
 Synchronous Serial Port (SSP) conSPI e I2C
 Universal Synchronous AsynchronousReceiver Transmitter (USART)
 Parallel Slave Port (PSP) de 8-bits de ancho, con controles externos de _RD,_WR y _CS
Microcontrolador PIC16F628A
El pic16f628A es un microcontrolador de 8 bit, posee una arquitectura RISC avanzada así como un juego reducido de 35
instrucciones. Este microcontrolador es el remplazo del obsoleto pic16f84A, los pines del pic16f628a son compatibles con el
pic16f84A, así se podrían actualizar proyectos que utilizan el pic16f84A.
En la siguiente figura se muestra el diagrama de pines.

PORTA: RA0-RA7:

 Los pines RA0-RA4 y RA6–RA7 son bidireccionales y manejan señales TTL


 El pin RA5 es una entrada Schmitt Trigger que sirve también para entrar en el modo de programación cuando se
aplica una tensión igual a Vpp (13,4V mínimo)
 El terminal RA4 puede configurarse como reloj de entrada para el contador TMR0
 Los pines RA0-RA3 sirven de entrada para el comparador analógico

PORTB: RB0-RB7:

 Los pines RB0-RB7 son bidireccionales y manejan señales TTL


 Por software se pueden activar las resistencias de pull-up internas, que evitan el uso de resistencias externas en
caso de que los terminales se utilicen como entrada (permite, en algunos casos, reducir el número de componentes
externos)
 El pin RB0 se puede utilizar como entrada de pulsos para provocar una interrupción externa
 Los pines RB4-RB7 están diseñados para detectar una interrupción por cambio de estado. Esta interrupción puede
utilizarse para controlar un teclado matricial, por poner un ejemplo

Otros pines
 VDD: De 2 a 5,5 Vcc
 VSS: Se conecta a tierra o a 0 Vcc
 MCLR: Master Clear (Reset). Si el nivel lógico de este terminal es bajo (0 Vcc), el microcontrolador permanece
inactivo. Este Reset se controla mediante la palabra de configuración del PIC
 OSC1/CLKIN: Entrada de oscilador externo
 OSC2/CLKOUT: Salida del oscilador. El PIC 16F628 dependiendo de cómo se configure puede proporcionar una
salida de reloj por medio de este pin
Características del PIC16F628A:
CPU De alto rendimiento RISC:
• velocidades de operación de DC - 20 MHz
• Capacidad de interrupción
• pila de 8 niveles
• Modos de direccionamiento directos, indirectos y relativo
• 35 simples instrucciones de palabra:
-Todas las instrucciones de ciclo único, excepto las de salto
• opciones de oscilador externo e interno:
- Precisión de fábrica del oscilador interno de 4 MHz calibrada a ± 1%
- oscilador de 48 kHz De bajo consumo interno
• Modo de ahorro de energía en modo SLEEP
• resistencias programable pul-ups del PORTB
• Multiplexado del pin reset / Entrada-pin
• Temporizador Watchdog con oscilador independiente
• Baja tensión de programación ™ In-Circuit Serial
• Protección de código programable
TIPOS DE MEMORIA DEL PIC16F628A
 Memoria ROM Flash de 2048 words
 Memoria RAM de 224 bytes
 Memoria EEPROM de 128 bytes.

Microcontrolador PIC12F629

CIN+ y CN- = Entradas Comparador


COUT = Salida Comparador
CLKIN = Entrada de reloj /conexión oscilador RC
CLKOUT = Salida FOSC/4
GP0..GP5 = I/O bi-direccionales con pull-up programable e interrupción por cambio de estado.(*)
(*) No es así en el caso de GP3, que puede funcionar solo como entrada.
ICSPDAT = Pin de Datos para programación ICSP
ICSPCLK = Pin de Reloj para programación ICSP
INT = Interrupción Externa
T0CKI = Entrada reloj de TMR0
T1CKI = Reloj TMR1
T1G = TMR1 gate
VREF = Voltaje de Referencia Externo
GP3 = entrada con interrupción por cambio de estado.
MCLR = Master Clear
VPP = Voltaje de programación

CPU RISC de alto rendimiento:


 35 instrucciones
-Todas las instrucciones se ejecutan en un solo ciclo de reloj, excepto los saltos que requieren dos
 Frecuencia de Operación de 0 a 20 MHz
 Posibilidad de Interrupciones

Características especiales:
 Opciones de oscilador Interno y externo
- Oscilador interno de 4Mhz calibrado de fábrica a +/- 1%
 Soporte para Oscilador externo a cristal y resonador
 Tiempo de reacción tras el modo SLEEP: 5us (típico a 3.0V)
 Ahorro de energía en el modo SLEEP
 Amplio rango de voltaje - 2.0V a 5.5V
 Rango de temperaturas Industrial y extendida
 Power-on-Reset (POR) de bajo consumo
 Power-up Timer (PWRT) y Oscilador Start-up Timer (OST)
 Brown-out Detect (BOD)
 Watchdog Timer(WDT) con oscilador independiente para una operación confiable
 MCLR/pin de entrada, multiplexado
 Interrupción por cambio de estado
 Resistencias pull-up internas programables Individualmente
 Protección de código Programable
 Alta duración de FLASH/EEPROM
- 100,000 escrituras en memoria Flash
- 1,000,000 escrituras en EEPROM
- Flash/Data EEPROM Retención:> 40 años

Características de Periféricos:

 6 entradas/salidas con control de dirección individual


- GP3 puede funcionar como MCLR, como un pin de entrada con interrupción por cambio de estado o como
Vpp para la programación del PIC, pero no como pin de salida.
 Alta corriente suministrada: 25mA
 Módulo Comparador Analógico
 Comparador de Voltaje Programable. Módulo (CVREF)
 Entradas multiplexadas programables.
 La salida del Comparador es accesible externamente
 Timer0: temporizador/contador de 8 bits con prescaler de 8 bits programable.
 Timer1 Extendido:
- Temporizador/contador de 16 bytes con prescaler
- Modo de Entrada externo (External Gate Mode)
- Opción para usar OSC1 y OSC2 en modo de LP como oscilador de Timer1, si el modo INTOSC está
seleccionado
 Programación en circuito (In-Circuit Serial Programming (ICSP)) vía dos pines

Potrebbero piacerti anche