1
El microcontrolador PIC16F8X
Introducción
Características generales
PIC16F8x.
Características generales.
Encapsulado.
Arquitectura básica.
El reloj y el ciclo de instrucción.
Organización de la memoria.
El Banco de registros de propósito especial
STATUS
OPTIONS
INTCON
PC (program counter) (PCL, PCLATH)
La pila
Modos de direccionamiento.
Puertos
Timer/Counter
EEPROM
Características especiales de la CPU.
Palabra de configuración.
Selección del oscilador.
Interrupciones.
WatchDog
SLEEP
Protección de código
Localizaciones de ID
Programación serial
Repertorio de instrucciones.
2
INTRODUCCIÓN
PIC es "Periphera Interface Controller"
Los fabrica ARIZONA MICROCHIP TECHNOLOGY
Factoría principal: Chandler (Arizona). Otras en Tender (Arizona), Taiwan y Tailandia
Características
Arquitectura siguiendo el modelo Harvard
Distinción entre Memoria de Programa y Memoria de datos.
Distinción entre bus de datos y bus de instrucciones.
Distinción entre palabra de datos y palabra de instrucciones.
Ejecución encauzada.
Dos etapas de ejecución.
Cada instrucción se ejecuta en un ciclo de reloj, salvo los saltos que se resuelven en 2.
Arquitectura del repertorio de instrucciones siguiendo el modelo RISC
Un único tamaño de instrucción (cada instrucción ocupa una única palabra de instrucción)
Banco de registros.
Ortogonalidad del repertorio de instrucciones
3
Introducción (II)
Gamas
Los microcontroladores PIC se distribuyen en familias
Microchip offers four families of 8-bit RISC MCUs :
PIC12CXXX 8-pin,
Aquí la característica principal parece ser el reducido tamaño del chip
PIC16C5X 12-bit program word
Esta gama es ofrecida en tamaños de 18, 20, 28 pines. Como característica a resaltar ofrecen su reducido voltaje de funcionamiento: 2.0 v
PIC16CXXX 14-bit program word
Ofrecido en tamaños de 18-pin to 68-pi. Se menciona además la capacidad de manejo de interrupciones y los 8 niveles de la pila hardware.
PIC17CXXX 16-bit program word MCU families.
Asegura el máximo rendimiento para aplicaciones de 8 bit (tamaño de palabra de datos). Manejo vectorizado de interrupciones y:" A powerful array of precise on-chip peripheral features provide the performance for the most demanding 8-bit applications."
4
Introducción (III)
Herramientas de soporte potentes y económicas
Ensamblador: MPASM
Compiladores e intérpretes: C, BASIC
Simulador: MPSIM
Emuladores en tiempo real
Grabadores
Entornos integrado de desarrollo: MPLAB
5
MICROCONTROLADORES DE GAMA MEDIA PIC16F8XCaracterísticas generales
PIC16F8X
Buses de instrucción (14 bit) y de datos (8 bits) separados.
Ejecución en pipeline (2 etapas):
1 ciclo/instrucción
2 ciclos/salto
68 bytes de RAM (datos) + 64 bytes EEPROM (datos)
1K palabras de FLASH (instrucciones)
13 pins de entrada/salida (configurables por separado)
1 temporizador/contador
Modo SLEEP
Timer Watchdog
Sistema de programación (carga de programa) serial.
6
PIC16F8X Encapsulado
Plastic Dual in Line
Plastic Small Outline
7
ARQUITECTURA BÁSICA
El registro W funciona a modo de acumulador.
La RAM es vista como un 'archivo de registros'.
Modos de direccionamiento:
Directo(dirección contenida en la instrucción)
Indirecto (dirección en FSR)
Uso de la pila para anidamiento de llamadas a rutinas. No para datos.
Permite datos inmediatos.
Almacenamiento directo de resultados en memoria.
EEPROM grabable dinámicamente.
8
Arquitectura básica (y II)
ALU de propósito general.
8 bits
Suma/Resta/Operaciones lógicas
Signo en Complemento a 2
Orientado a acumulador: W
flags:( en STATUS)
Carry (C)
Digit Carry (DC)
Zero (Z)
9
EL RELOJ Y EL CICLO DE INSTRUCCIÓN
Frecuencia de reloj: FCLK
Tiempo de ciclo: 4 x 1/FCLK
CPI = 1 -> excepto saltos
CPI = 2 -> Instrucciones salto
Etapas del pipeline
Etapa 1
PC = PC +1
IR = M[PC]
Etapa 2
Decodificación y ejecución
Ejemplo:
Calcular el tiempo de ejecución de un programa de 1000 instrucciones sabiendo que:
El 20% son saltos
FCLK = 10 MHz
Tclk = 100 ns
TCICLO = 400 ns
Solución:
T = N x CPI x Tciclo=
800 x 1 x 400 + 200 x 2 x 400 = 480 useg
10
ORGANIZACIÓN DE LA MEMORIA
Tres bloques de memoria
RAM: Dividida en dos bloques:
GPR. Registros de propósito general
SFR Registros de propósito especial
EEPROM: Grabable dinámicamente desde programa.
Sólo puede contener datos.
Sólo permite acceso indirecto.
FLASH: Memoria de programa
Dado que el PC tiene un tamaño de 13 bits: máximo 8Kx14
En PIC16F84: 1K disponible: 0000h..03FFh
Direcciones por encima de 3FFh son tratadas módulo 400h(20h=420h=820h…)
11
ORGANIZACIÓN DE LA MEMORIA (II)
Memoria de programa
Reset vector: 0000h
(tras un reset, la primera instrucción a
ejecutar es la que está en 0000h)
Interrupt vector: 0004h
(Una única entrada de interrupción. A
continuación se ha de verificar cual de
las líneas la ha generado)
12
ORGANIZACIÓN DE LA MEMORIA(y III)
Memoria de datos. RAM
Se organiza en bancos.
En PIC16F8x: 2 bancos.
Cada banco admite hasta 128 bytes.
En PIC16F8x: 79 bytes.
Selección del banco:
Bit RP0 del registro STATUS
RP0 = 0 -> Banco 0
RP0 = 1 -> Banco 1
Registros:
SFR
Banco 0: RP0=0 ? 0x00 -> 0x0B
Banco 1: RP0=1 ? 0x00 -> 0x0B
GPR
Banco 0: 0x0C -> 0x4F (68 bytes)
Banco 1: Mapeado completamente en el banco 0
Página siguiente |