You are on page 1of 23

SERIE MICROCONTROLADOR PIC18F

• Los microcontroladores de la serie PIC16 han existido desde hace


muchos años. Aunque estos son excelentes microcontroladores de
propósito general, tienen ciertas limitaciones. Por ejemplo, las
capacidades de programa y memoria de datos es limitado, la pila
es pequeña, y la estructura de interrupción es primitivo, todas las
fuentes de interrupción comparten el mismo vector de interrupción.
PIC16series microcontroladores tampoco proporcionan apoyo
directo a las interfaces de periféricos avanzados, tales como USB,
bus CAN, etc., y la interconexión con tales dispositivos no es fácil. El
conjunto de instrucciones para estos microcontroladores también es
limitada. Por ejemplo, no hay instrucciones de multiplicación o
división, y la bifurcación es bastante simple.
Microchip Inc. ha desarrollado la serie PIC18 de microcontroladores para
uso en aplicaciones de alta pincount, alta densidad y aplicaciones
complejas.
Los microcontroladores PIC18F ofrecen soluciones costo-efeciente para
aplicaciones de uso general escritas en C que utilizan un sistema
operativo en tiempo real (RTOS) y requieren un conjunto de protocolos de
comunicación como TCP / IP, CAN, USB o ZigBee. Los dispositivos PIC18F
proporcionan memoria de programa flash en tamaños de 8 a 128Kbytes
y memoria de datos de 256 a 4Kbytes, operando en un rango de 2.0 a
5.0 voltios, a velocidades de DC a 40MHz.
LAS CARACTERÍSTICAS BÁSICAS DE LOS
MICROCONTROLADORES PIC18F SON:
 77 instrucciones
 Codigo fuente compatible con la serie PIC16
 La memoria del programa de direccionamiento hasta 2 Mbytes.
 Memoria de datos de direccionamiento hasta 4Kbytes.
 DC a 40MHz de funcionamiento.
 8 x 8 hardware multiplier
 Niveles de prioridad de interrupción.
 Instrucciones de 16 bits de ancho, ruta de datos de 8 bits de ancho
 Hasta dos temporizadores / contadores de 8 bits
 Hasta tres temporizadores / contadores de 16 bits
 Hasta cuatro interrupciones externas.
 Capacidad de fuente / sumidero de alta corriente (25 mA).
 Hasta cinco módulos de captura / comparación / PWM.
 Módulo maestro de puerto serie síncrono (modos SPI e I2C).
 Hasta dos módulos USART
 Puerto esclavo paralelo (PSP)
 Rápido convertidor de analógico a digital de 10 bits
 Módulo de detección de bajo voltaje programable (LVD)
 Reinicio de encendido (POR), temporizador de encendido (PWRT) y temporizador de
arranque del oscilador (OST)
 Temporizador de vigilancia (WDT) con oscilador RC en el chip
 Programación en circuito
ADEMÁS, ALGUNOS MICROCONTROLADORES DE LA
FAMILIA PIC18F OFRECEN LAS SIGUIENTES
CARACTERÍSTICAS ESPECIALES:
 Interfaz de bus directo CAN 2.0
 Interfaz de bus USB 2.0 directo
 Interfaz de control LCD directo
 TCP/IP interfaz
 ZigBee interfaz
 Interfaz de control directo del motor
• La mayoría de los dispositivos de la familia PIC18F
son compatibles en origen entre sí. La Tabla 2.1
presenta las características de algunos de los
dispositivos populares en esta familia. Este capítulo
ofrece un estudio detallado de los
microcontroladores PIC18FXX2. Las arquitecturas de
la mayoría de los otros microcontroladores de la
familia PIC18F son similares.
La familia de microcontroladores 18FXX2
ARQUITECTURA PIC18FXX2
• Como se muestra en la Tabla, la serie PIC18FXX2 consta de cuatro
dispositivos. microcontroladores PIC18F2X2 son dispositivos de 28
pines, mientras que los microcontroladores PIC18F4X2 son
dispositivos de 40 pines. Las arquitecturas de los dos grupos son
casi idénticas excepto que los dispositivos más grandes tienen más
puertos de entrada-salida y más canales del convertidor A / D. En
esta sección vamos a estar buscando en la arquitectura del
microcontrolador PIC18F452 en detalle. Las arquitecturas de otros
microcontroladores de la serie PIC18F estándar son similares.
• La configuración de pines del microcontrolador PIC18F452 (paquete DIP)
se muestra en la Figura. Este es un microcontrolador de 40 pines alojado
en un paquete DIL, con una configuración de pines similar a la PIC16F877
popular.
• La Figura 2.2 muestra el diagrama de bloques interno del
microcontrolador PIC18F452. La CPU está en el centro del
diagrama y consta de una ALU de 8 bits, un registro de
acumulador de trabajo de 8 bits (WREG) y un multiplicador
de hardware de 8 8. El byte más alto y el byte más bajo de
una multiplicación se almacenan en dos registros de 8 bits
llamados PRODH y PRODL respectivamente.
• El contador de programas y la memoria de programas se muestran en
la parte superior izquierda del diagrama. Las direcciones de memoria
de programa constan de 21 bits, capaces de acceder a 2Mbytes de
ubicaciones de memoria de programa. El PIC18F452 tiene solo
32Kbytes de memoria de programa, lo que requiere solo 15 bits. Los
6 bits de dirección restantes son redundantes yno utilizado. Un puntero
de tabla proporciona acceso a las tablas y a los datos almacenados
en la memoria del programa. La memoria del programa contiene una
pila de 31 niveles que normalmente se utiliza para almacenar las
direcciones de retorno de interrupción y subrutina.
• La memoria de datos se puede ver en la parte superior
central del diagrama. El bus de memoria de datos es de
12 bits de ancho, capaz de acceder a 4Kbytes de
ubicaciones de memoria de datos. Como veremos más
adelante, la memoria de datos consta de registros de
funciones especiales (SFR) y registros de propósito
general, todos organizados en bancos.
La parte inferior del diagrama muestra los temporizadores /
contadores, los registros de captura / comparación / PWM, el
USART, el convertidor A / D y la memoria de datos EEPROM. El
PIC18F452 consiste en:
• 4 temporizadores / contadores
• 2 módulos de captura / comparación / PWM
• 2 módulos de comunicación serie
• 8 canales convertidores A / D de 10 bits
• 256 bytes EEPROM
• El circuito del oscilador, ubicado en el lado izquierdo del diagrama, consta de:
• Temporizador de encendido
• Temporizador de arranque del oscilador
• Reinicio de encendido
• Temporizador de vigilancia
• Restablecimiento de salida
• Programación de baja tensión
• Depurador en circuito
• Circuito PLL
• Circuito de generación de tiempo
El circuito PLL es nuevo en la serie PIC18F y ofrece la opción
de multiplicar la frecuencia del oscilador para acelerar el
funcionamiento general. El temporizador de vigilancia se
puede usar para forzar un reinicio del microcontrolador en
caso de un fallo del programa. El depurador en el circuito es
útil durante el desarrollo del programa y puede usarse para
devolver datos de diagnóstico, incluidos los valores de
registro, ya que el microcontrolador está ejecutando un
programa.
• Los puertos de entrada-salida están ubicados en el lado
derecho del diagrama. El PIC18F452 tiene cinco puertos
paralelos llamados PORTA, PORTB, PORTC, PORTD y
PORTE. La mayoría de los pines del puerto tienen múltiples
funciones. Por ejemplo, los pines PORTA se pueden usar
como entradas-salidas paralelas o entradas analógicas.
Los pines PORTB se pueden usar como entradas-salidas
paralelas o como entradas de interrupción.
ORGANIZACIÓN DE LA MEMORIA DE
PROGRAMA
El mapa de memoria del programa se muestra en la Figura 2.3. Todos los dispositivos
PIC18F tienen un contador de programa de 21 bits y, por lo tanto, son capaces de
direccionar 2Mbytes de espacio de memoria. El espacio de memoria del usuario en el
microcontrolador PIC18F452 es de 00000H a 7FFFH. El acceso a una ubicación de memoria
inexistente (8000H a 1FFFFFH) causará una lectura de todos los 0s. El vector de reinicio,
donde el programa comienza después de un reinicio, se encuentra en la dirección 0000. Las
direcciones 0008H y 0018H están reservadas para los vectores de interrupciones de
prioridad alta y baja, respectivamente, y las rutinas de servicio de interrupción deben
escribirse para comenzar en una de estas ubicaciones
Programa de mapa de memoria del PIC18F452
El microcontrolador PIC18F tiene una pila de 31 entradas que se utiliza para
retener las direcciones de retorno para llamadas de subrutina e interrumpir el
procesamiento. La pila no es parte del programa o del espacio de memoria de
datos. La pila se controla mediante un puntero de pila de 5 bits que se inicializa a
00000 después de un reinicio. Durante una llamada de subrutina (o interrupción)
el puntero de pila se incrementa primero, y la ubicación de memoria a la que
apunta se escribe conLos contenidos del contador del programa. Durante el
retorno de una llamada de subrutina (o interrupción), la ubicación de la memoria
a la que ha apuntado el puntero de la pila disminuye. Los proyectos en este libro
se basan en el uso del lenguaje C. Dado que el compilador en lenguaje C maneja
automáticamente las operaciones de subrutina e interrupción de llamada /
retorno, su operación no se describe aquí con más detalle.
• La memoria del programa se direcciona en bytes, y las instrucciones se
almacenan como dos bytes o cuatro bytes en la memoria del programa.
El byte menos significativo de una palabra de instrucción siempre se
almacena en una dirección uniforme de la memoria del programa.
• Un ciclo de instrucción consta de cuatro ciclos: un ciclo de recuperación
comienza con el incremento del contador del programa en Q1. En el
ciclo de ejecución, la instrucción recuperada se bloquea en el registro
de instrucciones en el ciclo Q1. Esta instrucción se decodifica y ejecuta
durante los ciclos Q2, Q3 y Q4. Una ubicación de memoria de datos se
lee durante el ciclo Q2 y se escribe durante el ciclo Q4.
ORGANIZACIÓN DE LA MEMORIA DE DATOS

You might also like