Microcontroladores de Atmel



Documentos relacionados
INSTITUTO TECNOLÓGICO SUPERIOR DE PÁNUCO APUNTES DE LA MATERIA DE: MICROPROCESADORES Y MICROCONTROLADORES I

La memoria principal. Los subsistemas de E/S. Los buses del sistema

Microcontroladores PIC de Microchip: generalidades

Programación y diseño de dispositivos mediante microcontroladores PIC

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

Ensamblador. Interrupciones. Dentro de una computadora existen dos clases de interrupciones:

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1

Arquitectura de Computadores

PROBLEMAS DE FUNDAMENTOS DE TECNOLOGÍA DE COMPUTADORES T5. MEMORIAS

Autómata Siemens S7-200

Universidad Autónoma de Baja California Facultad de Ingeniería Mexicali

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

Memoria 24LC256 I. I NTRODUCCIÓN

Organización de Computadoras. Turno Recursantes Clase 8

SENSOR DE MOVIMIENTO

Tema 2. Diseño del repertorio de instrucciones

Tema 7: Esquema del Funcionamiento de una Computadora. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Unidad 1: Conceptos generales de Sistemas Operativos.

INGENIERIA EN MICROCONTROLADORES. Protocolo RS-485. Introducción

Señal de petición de Interrupción

GUIA GENERAL PARA LA PROGRAMACIÓN DEL SISTEMA PICCITO 16F88 INDICE

MICROCONTROLADORES PIC EEPROM. Memoria de programa Características

Programación de Microcontroladores

Figura 1.4. Elementos que integran a la Tecnología de Información.

Control Digital en PC con MS-DOS

BUS I2C: IMPLEMENTACIÓN PRÁCTICA CON MICROCONTROLADORES PIC MEMORIAS EEPROM SERIE

Qué es un Microcontrolador?

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Curso sobre Microcontroladores Familia HC9S08 de Freescale

RB7/PGD RB6/PGC RB5 RB4 RB3/PGM RB2. RB1 RB0/INT VDD Vss RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4 RC7/RX/DT RC6/TX/CK RC5/SD0 RC4/SDI/SDA RD3/PSP3 RD2/PSP2

GUIA GENERAL PARA LA PROGRAMACIÓN DEL SISTEMA EB88 BOOTLOADER: TINY INDICE

Capitulo V Administración de memoria

BUS I2C. IES Los Viveros Sevilla Dpto. Electrónica. 1

Clase 20: Arquitectura Von Neuman

Microchip Tips & Tricks...

MODELO: 301 RESPALDO DE TARJETA SIM

DISCOS RIGIDOS. Forman el principal elemento de la memoria secundaria de un ordenador, llamada así en oposición a la memoria principal o memoria RAM

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

Análisis general de un Microprocesador

2.1 Funcionamiento del MPLS

Requerimientos Principales de un Sistema Operativo. Descripción y Control de Procesos. Proceso

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Tema 5 Repertorios de instrucciones: Modos de direccionamiento y formato

Proyecto final Diseño de un circuito secuencial. utilizando un contador binario de cuatro bits

REQUISITOS MÍNIMOS RECOMENDADOS para Windows 7

INTRODUCCIÓN. Definiciones ORDENADOR (RAE 1992): En esta asignatura computador y ordenador tiene el mismo significado

PROYECTO MASI MODELO DE ADMINISTRACIÓN DEL SISTEMA IMPOSITIVO

3.8 Construcción de una ALU básica

DESARROLLO DE UN COLECTOR DE DATOS PORTÁTIL

Entrada/Salida. Polling e Interrupciones. Verano de Mariano Moscato. Organización del Computador 1

Pipelining o Segmentación de Instrucciones

Maqueta: Osciloscopio y generador

En el presente capítulo se describe la programación del instrumento virtual y cómo

Guía de práctica. Dispositivo

Se encarga de realizar las funciones básicas de manejo y configuración del ordenador. La BIOS tiene más tareas fundamentales: Chequearse a sí misma.

Lo que definimos como CPU (Central Process Unit) o Unidad Central de Proceso, está estructurado por tres unidades operativamente diferentes:

SALIDAS ANALÓGICAS. Adquisición de datos y acondicionamiento de la señal Tema 6

Servicios de Formación:

HP Backup and Recovery Manager

Departamento técnico. Guía rápida CC-LINK. Autómatas serie Q con variadores FR-E 1 / 33

DESCRIPCION DEL SITEMA MASTER.

PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones:

TEMA EL BUS I 2 C (Inter Integrated Circuit Bus) I2C EN C

COMPONENTES INTERNOS DE UN ROUTER CISCO 1900 JESUS DAVID SIERRA ARANGO INSTRUCTOR JUAN DAVID LONDOÑO MARTINEZ

Mis claves. Manual de usuario. versión 1.1. Pertusoft 21/12/

Instalación de Sistema Operativo Mac OsX Lion en VirtualBox.

ESPAÑOL BLACK-VS. Guía de uso e instalación

MANUAL COPIAS DE SEGURIDAD

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Redes I Clase # 3. Licda. Consuelo E. Sandoval

Winide y Kit EVALQTY CDM 2011

Como sacarle mayor provecho a las herramientas disponibles para la familia HC908

Guía para El Proveedor **********

10 En este caso indica la dirección GPIB del instrumento.

UNIDAD 4: El procesador: Camino de los datos y Control.


Actividad N 1. Primer procesador creado por Intel

RESERVACIONES ONLINE MANUAL DE REFERENCIA

Paquete de regulación solar KNX, de RTS

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Diseño con Microcontroladores

Informática I Notas del curso

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010

Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles Ángel Serrano Sánchez de León

Instrucciones de Instalación

ENTORNO DE TRABAJO PARA LA SIMULACIÓN HARDWARE DE UNA COMPUTADORA SENCILLA

Manual IOCard USB DimControl. Fecha:19/08/15 Rev.:1.1

PUERTOS DE ENTRADA Y SALIDA

1 El plan de contingencia. Seguimiento

Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Síntesis Lecturas Recomendadas. Arquitectura de Computadoras

EDU_NA005 Mouse PS/2 Emulado por el EDUKIT08...

Semana 3: Entorno de programación CX Programmer

Temporizadores y contadores en tiempo real: El módulo Timer0 y el prescaler del PIC

PROGRAMACIÓN ORIENTADA A OBJETOS

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.

- El programador no funciona con los siguientes sistemas operativos: Windows NT, ni la familia de Windows 2000

Transcripción:

Microcontroladores de Atmel Familia AVR Ing. Marone José

Introducción: Historia Los AVR son una familia de microcontroladores RISC de Atmel. La arquitectura de los AVR fue concebida por dos estudiantes en el Norwegian Institute of Technology, y posteriormente refinada y desarrollada en Atmel Norway, la empresa subsidiaria de Atmel, fundada por los dos arquitectos del chip. El acronimo AVR fue reportado como Advanced Virtual RISC, pero hay rumores de que se debe a sus diseñadores: Alf and Vegard [RISC]. Aunque Atmel dice que no se refiere a nada particular Mas info sobre la arquitectura http://doru.info/projects/hdl/pavr/index.html

Introducción: El AVR fue diseñado desde un comienzo para la ejecución eficiente de código C compilado. Por lo tanto, algunas instrucciones tales como 'suma inmediata' ('add immediate' en inglés) faltan, ya que la instrucción 'resta inmediata' ('substract immediate' en inglés) con el complemento dos puede ser usada como alternativa. El set de instrucciones de los AVR es más regular que la de la mayoría de los microcontroladores de 8-bit (por ejemplo, los PIC). Sin embargo, no es completamente ortogonal: Los registros punteros X, Y y Z tienen capacidades de direccionamiento diferentes entre sí. Los registros 0 al 15 tienen diferentes capacidades de direccionamiento que los registros 16 al 31. Las registros de I/O 0 al 31 tienen distintas características que las posiciones 32 al 63. La instrucción CLR afecta los 'flag', mientras que la instrucción SER no lo hace, a pesar de que parecen ser instrucciones complementarias (dejar todos los bits en 1, y dejar todos los bits en 0 respectivamente).

Familia AVR La familia de microcontroladores AVR es muy numerosa, incluye 71 dispositivos que comparten el núcleo, pero difieren en recursos. Por ejemplo el atemega8:

Arquitectura - Encapsulados

CPU (Core) Para maximizar el rendimiento y paralelismo, el AVR usa una arquitectura Harvard con memorias y buses separados para instrucciones y datos. Las instrucciones en la memoria de Programa son ejecutadas con una segmentación de dos etapas. Mientras una instrucción está siendo ejecutada, la siguiente es pre-capturada de la memoria de programa (fetching). El Archivo de Registros contiene 32 registrosde propósito general de 8 bits, habilitados para un acceso rápido. El AVR fue diseñado desde un comienzo para la ejecución eficiente de código C compilado. Por lo tanto, algunas instrucciones tales como 'suma inmediata' ('add immediate' en inglés) faltan, ya que la instrucción 'resta inmediata' ('substract immediate' en inglés) con el complemento dos puede ser usada como alternativa.

Arquitectura de la CPU

CPU (Core) Seis de los 32registros pueden ser usados como apuntadores de 16 bits para direccionamiento indirecto en el espacio de datos, habilitando cálculos de direcciones eficientes. Uno de estos apuntadores también puede usarse como apuntador para tablas de búsqueda (look up tables) en la memoria de programa. Para ello, estos registros se denominan X, Yy Z. Después de una operación aritmética, el registro de Estado (Status Register) es actualizado, para reflejar información acerca de la operación. La mayoría de instrucciones AVR tienen un formato en una palabra de 16-bits. En un ciclode reloj se pueden leer 2 registros que funcionen como operandos para la ALU, que se realice la operación y el resultado quede disponible para escribirse en uno de esos registros.

CPU (Core) Para la ejecución, la duración del ciclo es suficiente para permitir la lectura de registros, la operación de la ALU y la escritura en el registro destino.

Mapa de Memoria Desde 1 a 256K Toda la memoria de datos se puede direccionar directamente

Mapa de Memoria

Memoria de programa Espacio continuo de memoria Flash cuyo tamaño varia entre procesadores, para el ATMega 8 es de 8 Kbytes, organizados como 4K x 16 bits. Soporta hasta 10,000 ciclosde escritura/borrado. La memoria se puede particionar en una sección para aplicación y una sección de arranque, donde podría manejarse un cargador para auto programación (Boot Loader Support Read-While- Write Self-programming).

Memoria de Programa: (IRQ s) En el espacio de almacenamiento se incluyen a los Vectores de Interrupciones, iniciando en la dirección $000. El número de vectores, en la familia AVR, varia de procesador a procesador, en función de los recursos existentes. Un programa debería iniciar en una ubicación, mas allá de estos vectores. (rjmp Reset)

Memoria de dato Es un espacio de 1120 localidades de 8 bits e incluyen: - Un conjunto de 32 localidades (Registros). - 64 Registros I / O (Puertos, configuración de recursos, etc). - 1024 localidades de propósito general. (RAM) Optimizado para el repertorio de instruccione s AVR. Son accedidos mediante las instruccione s INy OUT

Memoria de dato (Registros I/O) La arquitectura asegura el estado de los registros luego de un reset. -Mas info en el datasheet OJO!!! Una rutina de atención a interrupciones debe terminar con la instrucciónreti, la cual recupera el valor de la pila para el PC.

Memoria de dato (EEPROM) La memoria EEPROM está en un espacio independiente y se requiere del uso de 3 registros I/O para su acceso:

Inicialización El ATmega8 tiene cuatro fuentes de Inicialización (Reset) Power-on Reset. El MCU es inicializado cuando el voltaje de la fuente está por abajo del voltaje de umbral de encendido (VPOT). Reset Externo. El MCU es inicializado cuando un nivel bajo está presente en la terminal RESET por un tiempo mayor que la longitud mínima del pulso. Watchdog Reset. El MCU es inicializado cuando el Watchdog Timer está habilitado y su periodo termina. Brown-out Reset. El MCU es inicializado cuando el detector de reducción de voltaje está habilitado y el voltaje VCC de la fuente va por debajo del umbral establecido (VBOT). Una vez que el MCU se recupera de una condición de Reset, espera un tiempo de establecimiento (Tout con un valor típico de 4 ms), antes de recuperar al sistema, para garantizar que los registros tienen su valor inicial.

Pila de programa La pila es implementadaen el espacio de propósito general (RAM). Es usada para almacenamiento temporal de variables (instrucciones PUSH y POP) o durante la llamada de subrutinas o el manejo de interrupciones. El registro SPes el apuntador al tope de la pila. Realmente el SP se compone de 2 registros, para la parte alta (SPH) y para la parte baja (SPL), esto para direccionar al espacio completo de memoria. La pila tiene un crecimiento hacia abajo, es decir, de las direcciones altas de memoria a las direcciones bajas. Después de un reset, el apuntador de Pila tiene el valor de 0x0000, por lo que debe ser inicializadodentro del programa (con 0x0460 para ATMega8), para que realice un almacenamiento dentro de un espacio válido.

Registro de Estado

Puertos de Entrada/Salida Para cada puerto se manejan tres registros, dentro del espacio de registros I/O: Un registro de lectura/escritura sobre un lacth, conectado a la terminal del puerto (PORTx). Un registro de lectura/escritura que define la dirección del puerto (DDRx). Las direcciones pueden configurarse de manera independiente, para cada terminal. 1 Salida 0 Entrada Un registro solo de lectura, para hacer lecturas directas en las terminales de los puertos (PINx). Mucho Cuidado con el señor PINx in RD,PINA

Puertos de Entrada/Salida Si en PORTx.n se escribe un 1 lógico cuando la terminal es configurada como entrada, el resistor de pull-upes activado. Para anular al resistor de pull-up, se debe escribir un 0 en PORTx.n o la terminal se debe configurar como salida (suponiendo que el bit PUD tiene 0). Las terminales están en un treestatecuando una condición de reset llega a estar activa, aún si no haya señal de reloj. Si en PORTxn se escribe un uno lógico cuando la terminal se configura como salida, en PINx.n se tendrá un nivel alto. Si se escribe un cero, se tendrá un nivel bajo. Normalmente, el estado con el pull-up habilitado es aceptable, en un ambiente de alta impedancia no se notará la diferencia entre un nivel alto y el pull-up. Si este no es el caso, con el bit PUD del registro SFIOR se pueden deshabilitar los pull-ups en todos los puertos. Ver manual para conmutar entre estados treestate y salida en alto.

CLOCK Se tienen diferentes fuentes para manejar al oscilador interno y a la vez, la señales de reloj se distribuyen por los diferentes módulos:

Consumo/Modos Sleep Los modos SLEEP habilitan a la aplicación a apagar módulos sin usar en el MCU y por lo tanto, ahorrar energía. El AVR tiene 5 o 6 modos SLEEP y para entrar en alguno de ellos, el bit SE (SLEEP enable) del registro MCUCR (MCU Control Register) debe ponerse en alto. Los bits SM2, SM1 y SM0 de MCUCR determinan el modo:

Consumo/Modos Sleep

Referencias y a la Práctica. Sitio oficial de Atmel: Página de AVR en Atmel Portales, foros: AVRFreaks Guia AVR Mi recomendado AVRBeginners Preguntarle a pepe que tiene bocha. Desarrollo: Referencias de Wikipedia