El Microcontrolador
alexakolatroniko5 de Septiembre de 2012
4.424 Palabras (18 Páginas)384 Visitas
MICROCONTROLADOR 16F84A
SUBTEMAS:
Arquitectura Interna
Sistemas de Memoria
Memoria de Datos
Memoria de Programas
Integrantes:
JORGE RODRIGUEZ BELLO
11227057
DIEGO TABORDA CESPEDES
11227023
DOCENTE:
ALEX ERNESTO JIMENEZ DE LA CRUZ
FUNDACION UNIVERSITARIA TECNOLOGICO COMFENALCO
CARTAGENA DE INDIAS
29 DE OCTUBRE DE 2011
Introducción
En este trabajo se tocaran temas como la arquitectura interna de un microcontrolador su sistemas de memoria como están conformada que características tienen las memorias de datos y de programa, como manejan los registros este tipo de memorias la cantidad de instrucciones, como está constituida la unidad aritmético lógica, las versiones de memorias de programa entre otros temas.
Objetivos
La idea de este trabajo es conocer más sobre los micros controladores ya que en este periodo del semestre se estará trabajando con este dispositivo o herramienta. Conocer cómo funcionan, que arquitectura manejan, como se programan, que características tienen.
1. Arquitectura Interna del Microcontrolador 16F84A
Las altas prestaciones de los microcontroladores PIC derivan de las características de su arquitectura. Están basados en una arquitectura tipo Harvard que posee buses y espacios de memoria por separado para el programa y los datos, lo que hace que sean más rápidos que los microcontroladores basados en la arquitectura tradicional de Von Neuman.
Otra característica es su juego de instrucciones reducido (35 instrucciones) RISC, donde la mayoría se ejecutan en un solo ciclo de reloj excepto las instrucciones de salto que necesitan dos.
Posee una ALU (Unidad Aritmético Lógica) de 8 bits capaz de realizar operaciones de desplazamientos, lógicas, sumas y restas. Posee un Registro de Trabajo (W) no direccionable que usa en operaciones con la ALU.
Dependiendo de la instrucción ejecutada, la ALU puede afectar a los bits de Acarreo, Acarreo Digital (DC) y Cero (Z) del Registro de Estado (STATUS).
La pila es de 8 niveles. No existe ninguna bandera que indique que esté llena, por lo que será el programador el que deberá controlar que no se produzca su desbordamiento.
Este Microcontrolador posee características especiales para reducir componentes externos con lo que se reducen los costos y se disminuyen los consumos. Posee 4 diferentes modos de oscilador, desde el simple circuito oscilador RC con lo que se disminuyen los costos hasta la utilización de un oscilador a cristal.
En el modo SLEEP el consumo se reduce significativamente y puede ‘despertarse’ al Microcontrolador utilizando tanto interrupciones internas como externas y señal de reset. Además posee la función Watchdog Timer (Perro Guardián) que protege al micro de ‘cuelgues’ debido a fallos software que produzcan bucles infinitos.
2. Sistemas de memoria del Microcontrolador 16F84A
Esta memoria está basada en tecnología EEPROM, y tiene una longitud de 8 bits, del mismo modo que la memoria de datos. Su tamaño es de 64 bytes y está situada en un bloque distinto y aislado de la de datos.
Los 64 bytes EEPROM de Memoria de Datos no forman parte del espacio normal direccionable, y sólo es accesible en lectura y escritura a través de dos registros, para los datos el EEDATA que se encuentra en la posición 0008h del banco de registros RAM y para las direcciones el EEADR en la 0009h. Para definir el modo de funcionamiento de esta memoria se emplean dos registros especiales, el EECON1 en la dirección 0088h y el EECON2 en 0089h.
Registros que se utilizan con la EEPROM:
• Registro EEDATA (08h): Registro de Datos, lectura/escritura 8 bits
• Registro EEADR (09h): Registro de Dirección, de 0h a 3Fh, 64 bytes
• Registro EECON1 (88h): Registro de Control 1
• Registro EECON2 (89h): Registro de Control 2 (no es un registro físico)
Esta memoria no emplea ningún recurso externo de alimentación. Puede grabarse desde un programador de PIC al igual que el código de programa.
La lectura de una posición de la memoria se obtiene en el registro EEDATA en el próximo ciclo de reloj, si bien podría tardar algo más.
La escritura es mucho más lenta, tardándose del orden de unos 8 ms. Esta se controla mediante un temporizador interno.
Resumen de características:
• Memoria de datos de 64 bytes.
• Lectura rápida de un byte (en el tiempo de uno o varios ciclos de instrucción).
• Escritura de un byte en unos 8 ms.
• Se genera una interrupción cuando se completa la escritura de la memoria.
• 1.000.000 de ciclos de borrado/escritura.
• 40 años de retención de datos.
• Tecnología de baja potencia y alta velocidad CMOS.
3. ¿Cómo está conformada la Memoria de Datos y qué características tiene?
La memoria de programa está organizada con palabras de 14 bits con un total de 1 K, del tipo Flash, que durante el funcionamiento es de solo lectura. Sólo se ejecutará el código contenido en esta memoria, pudiendo almacenar en ella una cantidad limitada de datos como parte de la instrucción RETLW. En una sola palabra se agrupa el código de la instrucción y el operando o su dirección.
El tipo de memoria utilizada en este micro controlador, podrá ser grabada o borrada eléctricamente a nuestro antojo desde el programador. La memoria tipo Flash tiene la característica de poderse borrar en bloques completos y no podrán borrarse posiciones concretas o específicas. Este tipo de memoria no es volátil, es decir, no pierde los datos si se interrumpe la energía.
La memoria para almacenar el programa nos resultará perfecta para realizar pruebas y experimentos, además de para la programación "on-board" o "in-circuit", esto es, nos permite la programación del dispositivo o actualización del programa sin necesidad de retirarlo del circuito donde va montado.
La memoria del programa comienza en la posición 0000h y termina en la posición 03FFh. Esto es 1Kbyte, es decir, 1024 bytes (210).
En la figura también se muestra el PC (Contador de Programa o Program Counter). Que apunta a la dirección de memoria de la instrucción en curso y permite que el programa avance cuando se incrementa.
También se muestra la pila o stack, de 8 niveles (Nivel Pila 1 a Nivel Pila 8). Se utiliza cuando ejecutamos un subproceso o subrutina, es decir, un conjunto de instrucciones que hemos aislado de las demás para simplificar. En este caso el contador de programa (PC) dejará de incrementarse y apuntará a la posición de memoria de programa donde empieza la subrutina; en el primer nivel de la pila se almacenará esta llamada, hasta que se acaben de ejecutar las instrucciones que contiene, momento en el cual se seguirá con las instrucciones desde donde había sido llamada. Por eso es necesario saber donde se quedó el programa almacenándose la dirección en la pila. Podemos hacer hasta 8 llamadas a subrutinas una dentro de otra, como si de muñecas rusas se tratase. A esto se le llaman subrutinas anidadas.
El vector de reset se encuentra en la posición 0000h y el de interrupción en la 0004h.
Debido a que el PIC16F84A tiene un contador de programa de 13 bit puede direccionar un espacio de memoria de 8K x 14, sin embargo sólo el primer 1K x 14 (0000h-03FFh) está implementado físicamente.
Tener acceso a una localización por encima de la dirección físicamente implementada producirá un solapamiento. Por ejemplo, para las localizaciones 20h, 420h , 820h, C20h, 1020h, 1420h, 1820h, y 1C20h, la dirección real será la misma, así 20h es 32d y 420h es 1056d, 1056d menos 1024d es igual a 32d, es decir, se direcciona realmente la localización 20h, en binario 20h es 100000b y 420h es 10000100000b, 1K se direcciona con 10 bits (210 = 1024) de manera que de 10000100000b si sólo se tienen en cuenta 10 bits queda 0000100000b que es 20h. Con esto debe quedar claro que después de 3FF, al incrementarse el PC y pasar a 400, se direccionará de nuevo la posición 0h
Existen varias versiones de memoria de programa para los PIC16f84A:
• Versión Flash. Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. A diferencia de las memoria de tipo ROM, la memoria FLASH es programable en el circuito. Es más rápida y de mayor densidad que la EEPROM. Esta versión es idónea para la enseñanza y la Ingeniería de diseño.
• Versión OTP. ("One Time Programmable") "Programable una sola vez". Sólo se puede grabar una vez por el usuario sin la posibilidad de borrar lo que se graba. Resulta mucho más económica en la implementación de prototipos y pequeñas series.
• Versión QTP. Es el propio fabricante el que se encarga de grabar el código en todos los chips que configuran pedidos medianos y grandes.
• Versión SQTP. El fabricante solo graba unas pocas posiciones de código para labores de identificación, numero de serie, palabra clave, checksum, etc.
Las memorias FLASH han sustituido a las EEPROM
...