Tema 4: Microcontrolador AT90S2313

Anuncio
Tema 4: Microcontrolador AT90S2313
• - Descripción externa
• - Arquitectura interna
• - Organización de memoria
• - Registros de propósito general
• - Registros de entrada/salida (SREG,SPL)
• - Modos de direccionamiento
• - Juego de instrucciones
1
• - Directivas de ensamblador y entorno de program.
Microcontrolador AT90S2313
Presentación
• Arquitectura Risc. 8 bits
• Frecuencia de reloj de hasta 10 Mhz (Xtal1,Xtal2)
• Hasta 10 Mips
• 2 Kb Flash, 128 b SRAM,
128 b EEprom
• Diversos periféricos
• Encapsulado 20 pines
• Versiones bajo consumo
2
Microcontrolador AT90S2313
Descripción externa
• VCC,GND : Terminales de alimentación
• #RESET: Reinicia ejecución de instrucciones
• XTAL1,XTAL2 : Entradas de reloj
• PD6-0
• PB7-0
• Pines de puerto con funciones
alternativas
3
Microcontrolador AT90S2313
Descripción interna
4
Microcontrolador AT90S2313
Mapa de memoria (programa y datos)
5
Microcontrolador AT90S2313
Mapa de memoria de datos (detalle)
6
Microcontrolador AT90S2313
Registros de propósito general
• Son 32 registros
• Las instrucciones con modo inmediato sólo
usan los 16 registros superiores. Registro X, Y,
Z para modos indirectos
7
Microcontrolador AT90S2313
Registros de propósito general (cont.)
• Registros X, Y, Z para modos indirectos
8
Microcontrolador AT90S2313
Registros de entrada/salida
• Permiten el acceso y control de los periféricos y
de los recursos del microcontrolador.
9
Microcontrolador AT90S2313
Registros de entrada/salida (SREG)
• Registro de estado.
– El banderín I (interrupción) habilita o inhabilita la
generación de interrupciones.
– El banderín T (bit de propósito general)
– Los bits (flags o banderines) C, Z, N, V, S, H
cambian dependiendo del resultado de la ejecución
de diferentes instrucciones (aritméticas, lógicas,
rotación/desplaz. y de modificación de flags).
–
–
10
Microcontrolador AT90S2313
Registros de entrada/salida (SREG) cont.
• Bit C (Acarreo)
– - Bit de acarreo de la etapa 7 de la ALU.
• Bit Z (Zero)
– - Se pone a 1 para resultado cero, 0 en otro caso.
• Bit N (Negative)
– - Bit 7 del resultado.
• Bit V (Overflow en Ca2) A,B operand. y R resultado
– - V = A7 B7 R7' + A7' B7' R7 en suma
– - V = A7 B7' R7' + A7' B7 R7 en resta
11
Microcontrolador AT90S2313
Registros de entrada/salida (SREG) cont.
• Bit H (HalfCarry)
– - Bit de acarreo de la etapa 3 de la ALU
(semiacarreo).
• Bit S (Sign en Ca2)
–-S=NV
– - Es el signo correcto del resultados en operaciones
en Ca2.
12
Microcontrolador AT90S2313
Registros de entrada/salida (SPL)
• Registro PUNTERO de PILA.
– Apunta al área de pila que defina el usuario.
– El SP se decrementa al meter en pila y se
incrementa al sacar.
– Si el programador usa subrutinas o interrupciones,
es necesario inicializar el puntero de pila. En estos
casos el SP se incrementa o decrementa
automáticamente en dos unidades.
13
Microcontrolador AT90S2313
Modos de direccionamiento para datos
• Directo
• Indirecto
• Indirecto con predecremento
• Indirecto con postincremento
• Indirecto con desplazamiento
• Constantes del programa
• Inmediato
14
Microcontrolador AT90S2313
Direccionamiento registro directo
• La instrucción define el registro cuyo contenido
se verá afectado por la propia instrucción.
• Ejemplo: COM R4
15
Microcontrolador AT90S2313
Direccionamiento registro directo (2 reg.)
• La instrucción define el registro fuente (Rr) y
destino (Rd).
• Ejemplo: MOV R2, R4
16
Microcontrolador AT90S2313
Direccionamiento registro e/s directo
• La instrucción define el registro de E/S (P) y el
registro, destino o fuente, n.
• Ejemplo: IN R14,34 ; OUT 34,R14
17
Microcontrolador AT90S2313
Modo de direccionamiento directo
• La instrucción contiene la dirección de memoria
además de un campo (Rd/Rr) que contiene el
registro destino o fuente.
• Ejemplo: LDS R23,$D0 ;STS $12,R1
18
Microcontrolador AT90S2313
Modo de direccionamiento indirecto
• La instrucción referencia al registro X,Y o Z que
contiene la dirección del operando..
• Ejemplo: LD R1,X ;ST Z,R10
19
Microcontrolador AT90S2313
Direccionamiento indirecto postincremento
• La instrucción referencia al registro X,Y o Z que
contiene la dirección del operando, que
después se incrementa en una unidad.
• Ejemplo: LD R0,X+ ;ST Z+,R1
20
Microcontrolador AT90S2313
Direccionamiento indirecto predecremento
• La instrucción referencia al registro X,Y o Z
que, primero se decrementa en una unidad, y
después, accede al operando.
• Ejemplo: LD R15,-X ;ST -Y,R1
21
Microcontrolador AT90S2313
Direccionamiento indirecto con desplazamto.
• La dirección del dato se obtiene mediante la
suma del contenido del registro Y o Z y una
constante q (0<q<64).
• Ejemplos: LDD R1,Y+10 ;STD Z+1,R1
22
Microcontrolador AT90S2313
Direccionamiento constantes de memoria
• El dato está en la memoria de programa
(instrucción LPM). La dirección del dato se
sitúa en el registro Z.
23
Microcontrolador AT90S2313
Direccionamiento inmediato
• El dato está está codificado en la propia
instrucción
• Ejemplos: LDI r16,255, ANDI r25,0x10
24
Microcontrolador AT90S2313
Modos de direccionamiento para programas
• Son utilizados por las instrucciones de salto y
llamada a subrutinas (procedimientos)
– Modo de direccionamiento de programa
indirecto
– Modo de direccionamiento de programa relativo
25
Microcontrolador AT90S2313
Direccionamiento de programa indirecto
• La ejecución del programa salta a la posición
de memoria indicada por el registro Z.
• Ejemplos: IJMP, ICALL
26
Microcontrolador AT90S2313
Direccionamiento de programa relativo
• La instrucción contiene un desplazamiento K que
se suma al contenido del PC para encontrar la
siguiente instrucción a ejecutar. (-2048 <K<
2047).
• Ejemplos: RJMP, RCALL
27
Microcontrolador AT90S2313
Juego de instrucciones: representación
• Instrucciones sin operandos
– Mnemónico
• Instrucciones con un operando
– Mnemónico opfuente/destino
• Instrucciones con dos operandos
– Mnemónico opdestino,opfuente
• Representación de las instrucciones:
Mnemónico
•
Operandos
Descripción Rango de valores Descripción
posibles para los simbólica
operandos
Flags del SREG
28
Microcontrolador AT90S2313
Juego de instrucciones
• - Instrucciones de transferencia de datos
• - Instrucciones aritméticas y lógicas
• - Instrucciones de bifurcación
• - Instrucciones de desplazamiento y rotación
• - Instrucciones de bit
• - Instrucciones de control
29
Microcontrolador AT90S2313
Juego de instrucciones: Transferencia de datos
• - MOV
•
• - LDI
•
• - LDS
•
• - STS
30
Microcontrolador AT90S2313
Juego de instrucciones: Transferencia de datos
• - LD
•
•
•
• - ST
•
31
Microcontrolador AT90S2313
Juego de instrucciones: Transferencia de datos
• - LDD
•
• - STD
•
• - IN
•
• - OUT
•
32
Microcontrolador AT90S2313
Juego de instrucciones: Transferencia de datos
$00
MOV R1,R2
32 registros
IN R1,$10
ST Z,R1
STD Y+1,R30
STS $DE,R4
OUT 12,R3
64 registros E/S
LD R1,Z
LDD R30,Y+2
LDS R23,$10
SRAM
$DF
33
Microcontrolador AT90S2313
Juego de instrucciones: Transferencia de datos
• - PUSH
•
• - POP
•
• - LPM
•
• -SWAP
•
34
Microcontrolador AT90S2313
Juego de instrucciones: Aritméticas y lógicas
• - Los operandos sólo pueden ser registros o
constantes.
• - Suma aritmética
– - Sin acarreo
– - Con acarreo
– - Suma con registros 16 bits y dato inmediato
35
Microcontrolador AT90S2313
Juego de instrucciones: Aritméticas y lógicas
• - Resta aritmética
– - Sin acarreo
– - Con dato inmediato
– - Con acarreo
– - Con dato inmediato y acarreo
– - Con dato inmediato y con registros de 16 bits.
36
Microcontrolador AT90S2313
Juego de instrucciones: Aritméticas y lógicas
• - Comparación
– - 2 registros sin acarreo
– - 1 registro con dato inmediato
– - 2 registros con acarreo
–
–
• - INCrementa y DECrementa
•
•
37
Microcontrolador AT90S2313
Juego de instrucciones: Aritméticas y lógicas
• - CLR (poner a cero)
•
• - SER (poner a $FF)
•
• - NEG (Ca2)
•
38
Microcontrolador AT90S2313
Juego de instrucciones: Aritméticas y lógicas
• - AND
•
• - OR
•
• - EOR
•
• - COM
•
39
Microcontrolador AT90S2313
Juego de instrucciones: Instrucciones de bifurcación
• - Saltos incondicionales:
– - Relativo, - Absoluto, -Indirecto
•
• - Llamada a subrutinas:
– - Usan la pila (STACK) para almacenar el retorno.
– - Relativo, - Absoluto, -Indirecto
•
40
Microcontrolador AT90S2313
Juego de instrucciones: Instrucciones de bifurcación
• - De regreso de subrutinas.
•
• - Saltos condicionales:
– * Esquivar la siguiente instrucción:
–
41
Microcontrolador AT90S2313
Juego de instrucciones: Instrucciones de bifurcación
• * Saltar grupo de instrucciones:
– - Entre -64 instrucciones y 63 instrucciones
– - Destinos más lejanos requieren de instrucciones
de salto incondicionales situadas en destinos
previos.
– - Consultan el estado de algún bit del SREG o
combinación de estos.
– - Instrucciones BRBS y BRBC:
•
42
Microcontrolador AT90S2313
Juego de instrucciones: Instrucciones de bifurcación
– - Instrucciones BREQ y BRNE:
–
–
– - Instrucciones BRCS y BRCC:
–
–
– - Instrucciones BRVS y BRVC:
•
43
Microcontrolador AT90S2313
Juego de instrucciones: Instrucciones de bifurcación
– - Instrucciones BRTS y BRTC:
–
–
– - Instrucciones BRHS y BRHC:
–
–
– - Instrucciones BRIE y BRID:
–
–
–
44
Microcontrolador AT90S2313
Juego de instrucciones: Instrucciones de bifurcación
– - Instrucciones BRPL y BRMI:
–
–
– -Instrucción BRSH
– - Salta si igual o mayor
– - Sin signo
–
– - Instrucción BRLO
– - Salta si menor
– - Sin signo
–
45
Microcontrolador AT90S2313
Juego de instrucciones: Instrucciones de bifurcación
– - Instrucción BRGE
– - Salta si igual o mayor
– - Con signo
–
– - Instrucción BRLT
– - Salta si menor
– - Con signo
–
–
–
•
46
Microcontrolador AT90S2313
Juego de instrucciones: Instrucciones de bifurcación
Resumen de las instrucciones de saltos condicionales y sus
dependencias de los banderines del SREG
47
Microcontrolador AT90S2313
Juego de instrucciones: Desplazamiento y rotación
• - Desplazamiento.
•
•
0
Rn
C
Rn
C
0
•
• - Desplazamiento aritmético
–
•
Rn
C
7
48
Microcontrolador AT90S2313
Juego de instrucciones: Desplazamiento y rotación
• - Rotaciones.
•
Rn
•
C
•
C
Rn
• - Instrucciones
–
•
49
Microcontrolador AT90S2313
Juego de instrucciones: De manejo de bits
• - De puertos: SBI, CBI
•
•
• - De registro de estado SREG
•
•
•
•
50
Microcontrolador AT90S2313
Juego de instrucciones: De control
• - NOP
•
• - WDR
•
• - SLEEP
•
•
•
51
Microcontrolador AT90S2313
Directivas de ensamblador
• Son comandos al programa que genera el código
objeto y que se encuentran mezclados en el
fichero fuente con las instrucciones del micro.
• - CSEG-Code Segment
• Sintaxis: .CSEG
• - DSEG-Date Segment
• Sintaxis: .DSEG
• - DB-Define Byte en Program Memory
• Sintaxis: .DB expressionlist
• Const: .DB
0,255, 0b01010101,-128,0xaa,$45
52
Microcontrolador AT90S2313
Directivas de ensamblador
• - DW – Define Word en Program Memory
• Sintaxis: .DW expressionlist
• Const: .DW 0,0xFFFF, -32768,65535,
0b1111111100000000
•
• - BYTE – Reserva bytes a una variable
• Reserva en SRAM. Posible sólo en DSEG
• Sintaxis: label: .BYTE expresion
• Var1: .BYTE 1
• Tabla: .BYTE 10
53
Microcontrolador AT90S2313
Directivas de ensamblador
• - DEF – Asigna un nombre simbólico a un registro.
• Sintaxis: .DEF symbol=register
• .DEF temp = r16
• .DEF ior= r0
• - EQU – Símbolo igual a expresión
• Sintaxis: .EQU label = expression
• .EQU puertas = 2
•
•
54
Microcontrolador AT90S2313
Directivas de ensamblador
• - ORG – Establece el origen del programa
• Sintaxis: .ORG expression
• .DSEG
• .ORG 0X37
• Variable: .BYTE 1
•
• .CSEG
• .ORG 0x10
• Mov r0,r1
•
55
Herramientas de desarrollo del ATMEL
AT90S2313
• Wavrasm
• AVR ISP
• AVR-Studio
• STK-200
• STK-500
56
Herramientas de desarrollo del ATMEL
AT90S2313
• Wavrasm
• AVR ISP
• AVR-Studio
• STK-200
• STK-500
57
Wavrasm (cont.)
• Editor de texto para escribir programas en
lenguaje ensamblador ( .asm )
• Ensamblador integrado
– Permite el uso de directivas
– Permite la identificación de los errores en el
programa escrito
– Genera ficheros con las extensiones (.lst) que
mezcla nuestro programa con el código objeto,
(.obj) que contiene sólo el código objeto y (.hex)
o formato Intel Hex que se usará, en último
lugar, por el AVR ISP para la programación física
del microcontrolador.
58
AVR ISP
59
AVR ISP (cont.)
• Software de programación
• Requiere el STK200 conectado al puerto
paralelo a través de un conector especial o
“dongle”
• Abre ficheros (.hex) generados por AVRASM y
programa su contenido en un modelo de
microcontrolador previamente escogido
• Permite
– Borrar dispositivo
– Programar EEPROM datos
– Programar EEPROM de programa
60
AVR ISP (cont.)
– Verificar programa almacenado
– Chequeo del dispositivo
– Comprobación de Cheksum
– Programación fusibles
– Otros
61
AVR STUDIO
62
AVR STUDIO (cont.)
• En las primeras versiones sólo contenía un
simulador.
• A partir de la versión 3, es un entorno integrado que
permite la edición de programas, generación de
código máquina, programación y simulación.
• La programación se realiza a través del puerto serie
hacia el STK500
• Permite incorporar en la simulación código escrito en
lenguaje C.
63
STK-200
• Placa STK200
64
STK-200 (cont.)
• Establece un entorno de funcionamiento para el
microcontrolador permitiendo la realización de
ensayos básicos.
• Zócalos de diferentes tamaños para los distintos
modelos de la familia AT90
• Oscilador de cristal
• Driver’s RS232 con conector DB9
• Conector para la programación del microcontrolador
a través del puerto paralelo
65
STK-200 (cont.)
• Conjunto de diodos LEDS
• Conjunto de pulsadores mecánicos
• Conectores de expansión
• Regulador de alimentación
• Zócalo para LCD.
66
STK-500
• Placa STK500
67
STK-500 (cont.)
• Se comunica con el PC a través del puerto serie
• Software actualizable
• Frecuencia de reloj programable desde el PC (AvrStudio)
• Voltaje de alimentación de los μC regulable desde PC.
• Conjunto de leds
• Conjunto de pulsadores
• Zócalos de diferentes tamaños
• Conectores de expansión.
68
Descargar