DINASTIA SOFT
Home Page
NOTAS 
e-mailFormulario de consultasHome Page

 

AT90S2313 (AVR )

Es un microcontrolador de 8 bits con un encapsulado de 20 pines. Parte de estos pines
tienen una función específica y no pueden ser reconfigurados (VCC, GND, RESET,
XTAL1 y XTAL2). Otros, tienen un modo de trabajo totalmente configurable por
programa y dependerá de la aplicación en la que se aplique.


Descripción de los pines

 

Pin 1 (RESET): (Entrada).
Reinicia la ejecución de instrucciones del microcontrolador
cuando está a 0 lógico. Un 1 lógico no afecta al funcionamiento del microcontrolador.
Como mínimo este terminal debe estar a 0 dos ciclos de máquina para que se procese el
RESET.

Pines 20,10 (VCC, GND): (Alimentación).
Vcc debe estar comprendido entre 2,7 y 6V.
Usualmente la alimentación esta en 5V estabilizados

Pines 4,5 (XTAL1,XTAL2):
(Entradas de reloj). Entre estas líneas se conecta el cristal
de cuarzo con la frecuencia de resonancia adecuada para la generación del reloj interno,
o por el terminal XTAL1 se introduce la señal de reloj del sistema.

 

 

Pin 2 PD0 (RX). (Bidireccional).
Este terminal puede funcionar como entrada o salida digital asociado al BIT 0 del puerto D, además puede tener la función especial de recepción de datos serie para la UART.

Pin 3 PD1 (TX). (Bidireccional).
Este terminal puede funcionar como entrada o salida digital asociado al BIT 1 del puerto D, también puede tener la función especial de transmisión de datos serie desde la UART.

Pin 6 PD2 (INT0). (Bidireccional).
Este terminal puede funcionar como entrada o salida digital asociado al BIT 2 del puerto D, además puede usarse para la generación externa de interrupción.

Pin 7 PD3 (INT1). (Bidireccional).
Este terminal puede funcionar como entrada o salida digital asociado al BIT 3 del puerto D, además puede usarse para la atender interrupciones externas.

Pin 8 PD4 (T0). (Bidireccional).
Este terminal puede funcionar como entrada o salida digital asociado al BIT 4 del puerto D, además puede usarse como entrada de reloj para el temporizador/contador 0.

Pin 9 PD5 (T1). (Bidireccional).
Este terminal puede funcionar como entrada o salida digital asociado al BIT 5 del puerto D, además puede usarse como entrada de reloj para el temporizador/contador 1.

Pin 11 PD6 (ICP). (Bidireccional).
Este terminal puede funcionar como entrada o salida digital asociado al BIT 6 del puerto D, además puede usarse como entrada de captura de cuenta del temporizador/contador 0.

Pin 12 PB0 (AIN0). (Bidireccional).
Este terminal puede funcionar como entrada o salida digital asociado al BIT 0 del puerto B, además puede usarse como una de las dos entradas analógicas del comparador analógico integrado.

Pin 13 PB1 (AIN1). (Bidireccional).
Este terminal puede funcionar como entrada o salida digital asociado al BIT 1 del puerto B, además puede usarse como una de las dos entradas analógicas del comparador analógico integrado.

Pin 14 PB2. (Bidireccional).
Este terminal puede funcionar como entrada o salida digital asociado al BIT 2 del puerto B.

Pin 15 PB3 (OC1). (Bidireccional).
Este terminal puede funcionar como entrada o salida digital asociado al BIT 3 del puerto B, además puede usarse como salida del temporizador/contador 1.

Pin 16 PB4. (Bidireccional).
Este terminal puede funcionar como entrada o salida digital asociado al BIT 4 del puerto B.

Pines 16,17,18 / PB5,6,7 (MOSI,MISO,SCK). (Bidireccionales).
Estos terminales pueden funcionar como entradas o salidas digitales asociadas a los bits 5,6,7 del puerto B, además pueden usarse como terminales para la comunicación serie síncrona para la programación de la memoria flash interna.

 

Descripción interna.
En la siguiente figura muestra el diagrama en bloques de la arquitectura interna del AT90S2313 AVR (RISC)


Detalles de los bloques del diagrama:

  • Un banco de 32 registros de 8 bits de propósitos generales, sobre los que se realizan la totalidad de las operaciones de cálculo.

  • Una ALU de 8 bits para el cálculo aritmético y lógico con los datos almacenados en
    el banco de registros de propósitos generales.

  • Una RAM de 128x8 bits, para almacenamiento de datos

  • Una EEPROM interna de 128x8, para el almacenamiento de datos que deban
    mantenerse, aun cuando no este con alimentación del microcontrolador.

  • Una memoria Flash EPROM de 1Kx16 bits para el almacenamiento de las instrucciones del programa. Esta memoria dispone de un bus dedicado, distinto del de datos, por el que transitan las instrucciones hacia el decodificador de instrucciones,encargado de su ejecución.

  • Un puerto serie asíncrono o UART

  • Un puerto serie síncrono SPI

  • Un contador /temporizador de 8 bits

  • Un contador /temporizador de 16 bits con funciones de PWM, generación de salida, control, etc.

  • Un WATCHDOG o perro guardián que vigila el correcto funcionamiento del
    programa.

  • Un comparador analógico

  • 15 líneas de entrada/salida

  • Una unidad de generación de interrupciones

 

En la siguiente figura se muestra el mapa de memoria de programa y datos.


Como podemos observar, el microcontrolador utiliza una arquitectura HARVARD,
donde la memoria de datos y programa tienen buses independientes


La memoria de programa presenta 1k direcciones de 16 bits. Cada instrucción,
A pesar de los diferentes modos de direccionamiento que presente, ocupa 16 bits, por lo
que cada dirección de la memoria de programa contiene aproximadamente una instrucción.

La memoria de datos se divide en tres regiones. La inferior, que ocupa las primeras 32
direcciones, esta ocupada por el banco de registros de propósitos generales (direcciones
$00-$1F); La región central, cubre 64 direcciones en donde se ubican los registros
asociados a los diferentes puertos de entrada/salida del microcontrolador, UART,
comparador analógico, PUERTO B, PUERTO D, etc (direcciones $20-$5F). La región
más alta, ocupa 128 posiciones y está asociada a la memoria SRAM (direcciones $60-$DF).

 

Registros de propósitos generales



Todas las instrucciones que operan con los contenidos de los registros tienen acceso al
conjunto del banco, salvo las instrucciones que cargan datos de forma inmediata como
SBCI, SUBI, CPI, ANDI, ORI y LDI que sólo acceden a la segunda mitad de los
registros (R16..R31)
Como ya se dijo con anterioridad, cada registro está también mapeado en memoria, así
el registro r31 ocupa la dirección $1F del espacio de memoria de datos, etc.
Los últimos 6 registros del banco, r26-r31, pueden tener funciones alternativas como
apoyo a los modos de direccionamiento y, en ese caso, se agrupan por pares para
constituir los registros X,Y,Z de 16 bits cada uno.


 

 

La memoria de datos SRAM
La siguiente figura muestra cómo esta organizada la memoria datos


Muchas instrucciones utilizan el nombre del registro (R0..R31) en lugar de la dirección
que ocupa este en el espacio de direccionamiento de datos.

De forma parecida ocurre con los registros de I/O. Las instrucciones de entrada y salida
permiten reasignar un número a cada uno de ellos, de forma que el primer registro de
este tipo que encontramos se numera como 0 (dirección $20), el siguiente, 1 (dirección
$21) y así sucesivamente.

 


Modos de direccionamiento de datos y programas

El AVR AT90S2313 permite 5 modos de direccionamiento de datos:

  • Directo
  • Indirecto
  • Indirecto con predecremento
  • Indirecto con postincremento
  • Indirecto con desplazamiento
  • Inmediato

 

MODO DE REGISTRO DIRECTO

La instrucción contiene un campo de 5 bits que permite especificar cualquier registro de
los 32 registros existentes en el mapa de registros

El operando es contenido en registro d (Rd).

 

MODO DE REGISTRO DIRECTO (2 REGISTROS)

La instrucción contiene la dirección del operando fuente (Rr) y del destino (Rd)(ambos
operandos son registros del mapa de registros).

Los Operandos son contenidos en los registros r (Rr) y d (Rd).
El resultado se guarda en registro d (Rd).

 

MODO DE REGISTRO E/S DIRECTO

En este caso, la instrucción contiene la dirección de 6 bits del registro de E/S. N es el registro que actúa como fuente o destino de la información

 

MODO DE DIRECCIONAMIENTO DIRECTO


La instrucción viene acompañada de una palabra de 16 bits que contiene la dirección de
memoria (SRAM, E/S, FILE REGISTER), además de un campo Rd/Rr que contiene el
registro que será fuente o destino de la información

 

MODO DE DIRECCIONAMIENTO INDIRECTO CON DESPLAZAMIENTO

La instrucción contiene el desplazamiento que se sumará al registro Y o Z para formar
la dirección donde se encuentra el operando

 

MODO DE DIRECCIONAMIENTO INDIRECTO

La dirección del operando se encuentra en el registro X, Y o Z especificado en el código
de operación de la instrucción.

 

MODO DE DIRECCIONAMIENTO INDIRECTO CON PREDECREMENTO

Es igual al modo anterior, con la diferencia que en este caso, el registro X,Y,Z previamente se decrementa en una unidad.

 

MODO DE DIRECCIONAMIENTO INDIRECTO CON POSTINCREMENTO

Igual que el modo indirecto, pero al final el contenido del registro X, Y o Z se incrementa
en una unidad.

 

MODO DE DIRECCIONAMIENTO DE CONSTANTES EN MEMORIA DE
PROGRAMA (instrucción LPM)

Es común que los programas contengan valores constantes, estas constantes se almacenan junto con las instrucciones, en la memoria de programa.
Debido a que este microcontrolador presenta una arquitectura Harvard, en donde los buses de datos y programa están separados, el acceso a estas constantes parece una tarea imposible. No obstante, existe un puente entre el bus de datos de la memoria de programa y el bus de datos de la memoria de datos, que de forma controlada, sólo utiliza la instrucción LPM.
Se recuerda que la memoria de programa tiene un tamaño de 1Kx16 bits, mientras que los buses de datos usan un tamaño de 8 bits. En estas condiciones, el acceso a un byte
de la memoria de programa requiere que, en primer lugar, se especifique la dirección del
dato en los 15 bits más significativos del registro Z. El BIT 0 de dicho registro se utiliza
para seleccionar el byte alto o bajo de la constante.
La ejecución de LPM vuelca el dato en el registro R0.

 

MODO DE DIRECCIONAMIENTO DE PROGRAMA INDIRECTO (IJUMP,ICALL)

Estas instrucciones permiten que la ejecución del programa salte a la posición de la
memoria de programa indicada por el contenido del registro Z.


MODO DE DIRECCIONAMIENTO RELATIVO DE PROGRAMA (RJMP ,RCALL)

La instrucción contiene un desplazamiento K que se suma al contenido del PC para
encontrar la siguiente instrucción a ejecutar. Esto es, la ejecución del programa continua
en la dirección PC+k+1 los valores validos de k van desde -2048 a 2047


 

Continuara.....

 

Atención: Esta página se distribuye tal cual con fines didácticos. El autor no se hace responsable de las consecuencias que el uso, indebido o no, de la información que contiene, pueda producir.

 

 Dinastia Soft Copyright 1997-2002 Todos los derechos reservados