Introducción al PIC16F877 Facultad de Ingeniería Instituto de Com putación
Contenido • Introducción a los m icrocontroladores PIC. • Presentación del PIC 16F877.
Introducción a los microcontroladores PIC. • • • • •
Por qué los PICs Características de los PICs Historia Fam ilias Palabras de control e identificación
Tarea del diseñador • Cada fabricante dispone de una gam a m uy grande de m icrocontroladores, la tarea del diseñador es encontrar un m odelo que m inim ice el: – Costo – Desarrollo de software – Hardware ex terno
Por qué los PIC • • • • • •
Velocidad Precio Facilidad de uso Docum entación Herram ientas Sim ilares entre fam ilias
Produce una Im agen de sencillez y utilidad
Características de los PICs • • • • • •
Arquitectura Harvard. Pipeline. Instrucciones de largo fijo RISC. Instrucciones ortogonales. Gran diversidad de prestaciones y recursos. • Herramientas de soporte potentes y económicas.
Historia • • • •
1965 GI comienza a producir EPROM y EEPROM. 1970 Fabrica el microprocesador de 16 bits CP1600. 1971 Intel lanza el primer microprocesador estable. 1975 GI diseña un chip destinado a controlar E/ S: el PIC. • 1976 Sale al mercado el primer ordenador en un solo chip. • 1980 No es un buen año para GI. • 1985 Se vende GI y se renombra a Arizona Microchip Technology.
Fam ilias
(1/ 2)
• Los microcontroladores de Microchips se dividen en tres gamas – Baja – Media – Alta
• La principal diferencia entre ellas es el número y largo de las instrucciones, el número de puertos y funciones, y cantidad y tipo de memoria.
Fam ilias
(2/ 2)
Gam a Baja • • • • • • • • • • • •
POR. WDT. Protección de código. Líneas de E/ S. Modo reposo. No admiten interrupciones. Poca memoria y bajo consumo. Memoria ROM y EPROM Memoria para programa entre 512 y 2k bytes. Memoria para datos entre 25 a 73 bytes. Un único temporizador. 33 instrucciones de 12 bits de ancho.
Gam a Media • Interrupciones. • Comparadores analógicos. • Convertidores A/ D. • Puerto serie. • Temporizadores. • Memorias OTP y EEPROM. • 35 instrucciones de 14 bits de ancho.
Gam a Alta • Microcontrolador de interfaz abierta. • Gran cantidad de pines (40- 44). • Memoria para programa de 8k palabras. • Memoria para datos 454 a 3968 bytes. • 79 Instrucciones de 16 bits de ancho. • Hardware multiplier. • Memoria lineal.
Palabra de control e identificación • Control – Protección del código. – Activación del WDT. – Selección del tipo de oscilador.
• Identificación – Números de series. – Códigos de identificación. – Checksum
PIC16F877 • • • • • • • • • •
Características principales Características periféricas Diagrama de pines Mapa de memoria Registros principales Lógica de Interrupción Direccionamiento Puertos de E/ S Formato de instrucción Juego de Instrucciones
Características principales (1/ 2) • CPU RISC • Set de 35 instrucciones • Todas las instrucciones son de un ciclo salvo aquellas que incluyen saltos que son de 2 ciclos. • Velocidad de Trabajo: – DC - 20 MHz clock input – DC - 200 ns ciclo de inst rucción
• Hasta 8K x 14 words de FLASH Program Memory, • Hasta 368 x 8 bytes de Data Memory (RAM) • Hasta 256 x 8 bytes de EEPROM Data Memory
Características principales (2/ 2)
• Manejo de Interrupciones (hasta 14 fuentes) • Stack de hardware de 8 niveles • Modo de direccionamiento directo, indirecto y relativo. • Power- on Reset (POR) • Power- up Timer (PWRT) y Oscillator Start- up Timer (OST) • Watchdog Timer (WDT) con el reloj RC interno para mejor seguridad. • Protección de código programable. • In- Circuit Serial Programming (ICSP) • In- Circuit Debugging via 2 pines • Amplio rango de voltaje de trabajo: 2.0V a 5.5V
Características periféricas (1/ 2)
• Timer0: 8- bit timer/ counter con 8- bit prescaler • Timer1: 16- bit timer/ counter con prescaler, que puede ser incrementado durante el modo SLEEP via reloj ex terno. • Timer2: 8- bit timer/ counter con registro de período de 8- bit, prescaler y postscaler • Dos módulos Capture, Compare, PWM – Capture es de 16- bit, max. resolución: 12.5 ns – Compare es de 16- bit, max. resolución: 200 ns – PWM max . resolución: 10- bit
Características periféricas (2/ 2) • Convert idor Analógico a Digit al de 10- bit m ulti- channel (8 Canales) • Mast er Synchronous Serial Port (MSSP) – SPI : Serial Peripherical Interfase – I2C : Inter- Integrated Circuit
• Universal Synchronous Asynchronous Receiver Transmitt er (USART/ SCI) – Full duplex, Half duplex slave , Half duplex master – Recepcion / Transmision de 9- bit
• Parallel Slave Port (PSP) de 8- bits de ancho, con controles ex ternos de RD, WR y CS (solo 40/ 44- pin) • Brown- out detect ion circuitry para Brown- out Reset (BOR)
Diagrama de Pins
Arquitectura
(1/ 2)
Mapa de la Mem oria
Mapa de la Mem oria (2/ 2)
Registros Especiales
(1/ 6)
• STATUS – El registro STATUS contiene el estado de la aritmética de la ALU, es estado del RESET y el banco elegido para los datos de la memoria (SRAM). – Puede ser el destino de cualquier instrucción como cualquier otro registro (manejarlo con cuidado). – ADDRESS 03h, 83h, 103h, 183h
Registros Especiales • Bits de STATUS – IRP Register Bank Select (direccionamiento indirecto) – RP1:RP0 Register Bank Select – TO Time Out – PD Power Down – Z Zero – DC Digit Carry – C Carry/ Borrow
(2/ 6)
Registros Especiales
(3/ 3)
• OPTION_REG – Es un registro de lectura/ escritura que permite configurar • TMR0 • Interrupción Externa • pull- ups del puerto B
Registros Especiales
(4/ 6)
• Bits de OPTION_REG – RBPU Pull- up Enable – INEDG Interrupt Edge Select – T0CS TMR0 Clock Source Select – T0SE Source Edge Select – PAS Prescaler Assignm ent – PS2:PS0 Prescaler Rate Select
Registros Especiales
(5/ 6)
• INTCON – El registro INTCON es un registro de lectura/ escritura que contiene las llaves para habilitar las fuentes de interrupción.
Registros Especiales
(6/ 6)
• Bits de INTCON – GIE Global Interrupt Enable – PEIE Peripherical Interrupt Enable – T0IE TMR0 Overflow Interrupt Enable – INTE RB0/ INT Ex ternal Interrupt Enable – RBIE RB Port Change Interrupt Enable – T0IF TMR0 Overflow Interrupt Flag – INTF RB0/ INT Ex ternal Interrupt Flag – RBIF RB Port Change Interrupt Flag
Lógica de Interrupción
PCL & PCLATH
Direccionam iento
Puertos de E/ S(1/ 4)
RA5, RA3:RA0
RA4
Puertos de E/ S(2/ 4) • Configurables pin a pin como I/ O. • I/ O se multiplex an con otros periféricos. • Cuando se usa para el periférico no se usa como pin digital • Durante una misma ejecución se puede alternar el uso del pin. Ejemplo SDO cuando se habla con un dispositivo con SS. RB7:RB4
Puertos de E/ S(3/ 4) • Registros TRIS y PORT (pp 31 de la hoja de datos) • Detalles a tener en cuenta- "La letra chica de lo hoja de datos" • Puertos analógicos de salida vs operaciones de bit. • Puertos digitales que se mueven "despacio" • 0 y 1 en algo que "tiene" un hardware conectado.