Beruflich Dokumente
Kultur Dokumente
Instruction
Decode
DATA memory
Stack Pointer
(SPH:SPL)
Status Register
(SREG) ALU
Seccin para
Software del
256 KB
Usuario
Seccin para
Bootloader
FLASHEND
FLASHEND = 0x1FFFF (ATmega2560)
XTAL1/TOSC1 El dispositivo puede utilizar un cristal de 32.768kHz como parte del oscilador baja frecuencia que posee
el dispositivo. Este cristal puede conectarse a los pines XTAL, cuando se desea que el mismo forme
parte del oscilador que proporciona la seal de reloj del sistema clkSYS, o bien a los pines TOSC cuando
se desea que el mismo forme parte del oscilador para el mdulo TIMER 2 que posee. El valor de los
capacitores externos Ce puede obtenerse a travs de:
XTAL2/TOSC2
Ci: Capacitancia de entrada del pin
Ce + Ci = 2 .CL CS Ci (XTAL1/TOSC1) Ci (XTAL2/TOSC2)
Como lo muestra la figura, el ATmega2560 posee un prescaler para el reloj del sistema. El mismo
puede configurarse a travs del registro CLKPR (0x61). Este recurso puede utilizarse para disminuir
la frecuencia del reloj del sistema y as bajar el consumo de energa del dispositivo (cuando esto sea
un requisito de diseo). El prescaler afecta a todas las opciones de fuente de reloj utilizadas en el
microcontrolador.
Circuito RC p/extender
el reset en el arranque.
Este reset se genera por un nivel bajo en el pin RESET. Este pin puede El dispositivo posee un circuito para deteccin de apagado (BOD) que supervisa el
recibir un pulso que cumpla con las caractersticas indicadas en la siguiente nivel de tensin en AVCC (no pin VCC) durante el funcionamiento, comparndolo con
tabla. Cuando la seal aplicada al pin alcanza el voltaje de reposicin del un nivel de disparo fijo VBOT, Este nivel puede ser seleccionado con los fusibles
umbral VRST (en su flanco ascendente), se produce un estado de reset BODLEVEL. Cuando el BOD est habilitado y la tensin en AVCC disminuye a un
durante un tiempo de espera tTOUT que depende de la configuracin de los valor por debajo del nivel de disparo VBOT-, el Reset de Brown-Out se activa
fusibles SUTx. El reset externo se genera, incluso si el reloj del sistema no inmediatamente. Cuando la tensin en AVCC aumenta por encima del nivel de
est funcionando. disparo VBOT+, se produce un estado de reset durante un tiempo de espera tTOUT que
Caractersticas del External Reset depende de la configuracin de los fusibles SUTx. El circuito BOD slo detecta una
cada en AVCC si la tensin permanece por debajo del nivel de disparo VBOT- durante
un tiempo mayor que tBOD. El nivel de activacin del circuito BOD posee una
histresis para asegurar la deteccin libre de picos. La histresis mencionada, est
dada por:
Caractersticas del Brown-Out Reset V V
VBOT VBOT HYST VBOT VBOT HYST
2 2
donde VBOT depende de los fusibles BODLEVEL.
Observando las tablas anteriores, puede notarse que el ATmega2560 posee preprogramado de fbrica los fusibles CKSELx = 0010, SUTx = 10, CKDIV8 = "0, lo
cual indica que la fuente de reloj del sistema por defecto es el oscilador RC interno en 8 MHz dividida por 8, dando por resultado un reloj del sistema de 1 MHz.
Mientras que el tiempo de inicio (stat-up time) se establece al mximo y el tiempo de espera (tTOUT) activado. Esta configuracin predeterminada garantiza que
todos los usuarios puedan realizar la configuracin de la fuente de reloj deseada utilizando cualquier interfaz de programacin disponible.
Paso 1
Para generar un proyecto en Atmel Studio 7:
Paso 0: Crear una carpeta que alojar el
proyecto Paso 2a
Paso 1: File New Project
Paso 2: En Installed seleccionar:
o a) Assembler si se desea realizar un
proyecto en assembler.
o b) C/C++ seleccionar Create Project Paso 2b
from Arduino sketch si se desea realizar
un proyecto en sketch de Arduino.
Paso 3: Completar:
o Name: Nombre del proyecto.
o Location: Carpeta donde se alojarn los
archivos generados en el proyecto.
Paso 4: Presionar OK.
Paso 5: Seleccionar el micro del Arduino:
o Device Family ATmega
o Para Arduino Mega ATmega2560
o Para Arduino Uno ATmega328p
Paso 6: Presionar OK.
Paso 7: Escribir el programa.
Luego guardar y
cerrar la ventana
Prueba_1 Properties
Seleccionar
Simulator
Save All
Start Debugging
and Break (Alt+F5)
Ventana I/O:
Permite visualizar el
contenido de los registros
I/O del dispositivo.
(cerrar sino se usa)
El marcador se
posiciona en la
primera instruccin
del programa
Ventana Memory:
En este caso muestra lo
que est en la memoria
Flash. (cerrar sino se usa)
Cdigo Mquina
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Mg. Ing. Guillermo A. Fernndez 24
Atmel Studio 7: Debugging (Simulacin)
C E G I
A B D F H
A Start Debugging and Break (Alt+F5): Inicia el proceso de depuracin (debugging) y finaliza la ejecucin del programa en la primera instruccin del
programa.
B Stop Debugging (Ctrl+Shift+F5): Detiene y termina la sesin de depuracin, volviendo al modo de diseo.
D Start Debugging (F5): Inicia el depurador y ejecuta el programa. En modo de depuracin y estando detenido, reanuda la ejecucin.
H Reset (Shift+F5): Resetea el programa, llevando el marcador a la primera lnea del mismo (vector de reset).
J L N
Botn de acceso configurable: Se puede configurar con para tener acceso rpido (con este botn) a las funciones
I indicadas en la siguiente tabla:
Botn de acceso a la ventana Desassembly (Alt+8): La ventana muestra el cdigo del programa desensamblado. Esto es
J til cuando el programa est escrito en un lenguaje de alto nivel como C o C++. Mientras corre la simulacin y se ejecuta el
programa, en esta ventana puede seguirse el marcador a travs de las instrucciones ejecutadas.
Botn de acceso a la ventana Registers (Alt+5): Esta ventana ofrece una forma sencilla de ver los datos almacenados en
K los registros de trabajo (R0.) del dispositivo simulado. Desde esta ventana no puede modificarse el contenido de los
registros mencionados.
Botn de acceso a la ventana Memory 1 (Alt+6): La ventana permite mostrar un esquema de los distintos segmentos de
L memoria que posee el dispositivo simulado. La seleccin de la memoria a visualizar se efecta a travs de un men
desplegable.
Botn de acceso a la ventana Processor Status: En esta ventana puede visualizarse los registros de la CPU del dispositivo
M simulado. Tambin incorpora tres campos: Cycle Counter cuenta el nmero de ciclos de mquina transcurridos desde el reset del
dispositivo; Frequency define la frecuencia de operacin del dispositivo; Stop Watch es un cronmetro que mide el tiempo de ejecucin
del programa, es acumulativo pero puede borrarse en cualquier durante la simulacin (cuando no se ejecuta el programa). Cada uno de
los registros y campos mencionados puede modificarse teniendo efecto sobre la ejecucin del programa.
Botn de acceso a la ventana I/O: Esta ventana mostra los registros de E/S del dispositivo simulado. Est dividida en dos partes: Vista de Perifricos (seccin
N superior), que posee el grupo de mdulos del dispositivo (CPU, puertos, etc); Vista de Registros (seccin inferior), que posee acceso a los registros de configuraciones y de
valores de cada mdulo, los cuales se visualizan seleccionando el mdulo correspondiente en la seccin superior. Para leer o cambiar el valor de los registros mencionados, el
simulador debe correr pero el programa no debe estar ejecutndose. En cuanto a los bits particulares de los registros, cualquier valor puede cambiarse haciendo clic en el
campo correspondiente y escribiendo un nuevo valor. Algunos valores y bits no pueden modificarse ya que son de slo lectura (consultar la hoja de datos del dispositivo para
obtener ms informacin).
Men desplegable
p/seleccin de
segmento de memoria
a visualizar.
Cdigo Mquina
cargado en la memoria
1ra instruccin
(Vector de Reset)
(1 ciclo)
1er. Breakpoint (2 ciclos)
(1 ciclo)
(2 ciclos)
2do. Breakpoint
(A) Processor Status: (B) Processor Status:
PC = 0x00000003; SP = 0x21FF PC = 0x00000006; SP = 0x21FF
Cycle Counter = 3; Stop Watch = 0,19 s Cycle Counter = 6; Stop Watch = 0,38 s
Memory1: Memory1:
0x200 = 0a; 0x201 = 00 0x200 = 0a; 0x201 = 0f
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Mg. Ing. Guillermo A. Fernndez 29
Bibliografa
The AVR microcontroller and embedded systems using assembly and C Muhammad Ali Mazidi,
Prentice Hall, 2011.
Programming and customizing the AVR microcontroller Dhananjay V. Gadre, McGraw-Hill, 2001.
Atmel ATmega640/V-1280/V-1281/V-2560/V-2561/V Datasheet Atmel 2549QAVR02/2014.
Atmel Studio User Guide. Atmel 42167B -09/2016
AVR Instruction Set Manual Atmel 0856L, 11/2016.
Web: https://aprendiendoarduino.wordpress.com/tag/bootloader/
http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_directives.html