Nothing Special   »   [go: up one dir, main page]

2.1 - Estructura Del Microcontrolador ATmega328P

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

Universidad de Colima

Facultad de Telemática

Ingeniería en Tecnologías de Internet

Arquitectura y Programación de Microcontroladores

Semestre: Febrero - Julio 2021

Informe

Estructura Interna del Microcontrolador ATmega328P

Profesor de la asignatura:
Estrada González Fermín Pascual

Equipo número: 2

Integrantes del equipo: Abraham Carrillo


Miguel Ángel Ruíz Ruiz

Colima, Col., 22 de marzo 2021


Estructura Interna del Microcontrolador ATmega328P

7. AVR CPU Core


1. Identificar y registrar:
a. Las principales funciones del CPU.
R= Asegurar un correcto funcionamiento en la ejecución de programas,
además debe de lograr acceder a las distintas memorias, controlar
periféricos, realizar cálculos y controlar interruptores.

b. El tipo de arquitectura del microcontrolador AVR y sus características


R= Utiliza una arquitectura de harvard, de sus características
principales es:

1.-Se separa en memorias y buses de datos para manejar programas y


datos
2.- Ejecuta una instrucción por cada ciclo del reloj
3.- La memoria de programa es una memoria Flash reprogramable en el
sistema.

c. Cantidad de Registros de Propósito General (Archivo de Registros de


Propósito General), ubicación en memoria y organización.
R= El archivo de registro de acceso rápido contiene 32 x 8 bits de uso
general, el archivo resultante es guardado en un register file y
organizados mediante una ALU,

d. Las operaciones que puede llevar a cabo la ALU y fuentes de los operandos.
R= Una alu puede llevar a cabo operaciones aritmeticas y logicas
siendo permitida una sola operación de registros por ciclo, sus fuentes
son:
1.- Registros
2.- Combinación entre constantes y registros

e. Función del Registro de Estado y propósito.


R= Un registro de estado contiene información acerca del resultado de
la instrucción aritmetica ejecutada mas recientemente esta información
se puede utilizar para alterar el flujo del orden de programas con el fin
de realizar operaciones, este estado se actualiza despues de todas las
operaciones de una ALU

La funcion de propositro cuenta con una optimización dada por el AVR


Enhanced RISC instruction set donde su funcion es lograr el
rendimiento y flexibilidad requeridos en los distintos ciclos de
instrucciones

f. Descripción de los bits que conforman el Registro de Estado.


Bit 7 – I: Global Interrupt Enable
La funcion de este I-BIT es la de habilitar la función de interruptores, si
este es limpiado, ninguno de los interruptores podrá ser habilitado
independientemente de su configuración individal.

2.
Bit 6 – T: Copy Storage
Las instrucciones Bit Copy BLD (Bit LoaD) y BST (Bit STore) utilizan
este bit como una fuente o destino de los bits en operación.
Un bit de un registro en el archivo de registro se puede copiar en T
mediante la instrucción BST, y un bit en T se puede copiar en un bit en
un registro en el archivo de registro mediante la instrucción BLS.

Bit 5 – H: Half Carry Flag


Half Carry Flag es muy utilizado en el BCD arithmetic. llamesé “See the
Instruction, Set Description for detailed information.”

Bit 4 – S: Sign Flag, S = N ㊉ V


El bit S es siempre un exclusivo entre la bandera negativa N y la
bandera de desbordamiento de complemento a dos V.

Bit 3 – V: Two’s Complement Overflow Flag


El indicador de desbordamiento de complemento a dos V admite
aritmética de complemento a dos.

Bit 2 - N: Bandera negativa


La bandera negativa N indica un resultado negativo en una operación
aritmética o lógica.

Bit 1 - Z: Bandera cero


La bandera de cero Z indica un resultado cero en una operación
aritmética de lógica.

Bit 0 - C: Bandera de transporte


La bandera de acarreo C indica un acarreo en una operación aritmética
o lógica.

a. Función del Apuntador de Pila, cómo y dónde se implementa.


R= El apuntador de pila es utilizado comunmente como un contenedor
de datos temporales, este se implementa desde las altas localizaciones
de memoria como las bajas apuntando siempre al dato mas elevado

b. El espacio de memoria de Entrada y Salida, cantidad de direcciones


disponibles, y cómo pueden ser accesadas.
R= Todas las ubicaciones de E / S pueden ser accedidas por el
Instrucciones LD / LDS / LDD y ST / STS / STD, transfiriendo datos entre
los 32 trabajos de propósito general
registros y el espacio de E / S. Los registros de E / S dentro del rango
de direcciones 0x00-0x1F son directamente accesibles por bits
utilizando las instrucciones de SBI y CBI. En estos registros, el valor de
bits individuales se puede verificar usando
las instrucciones SBIS y SBIC.

c. Tiempos de ejecución de las instrucciones.


R= La CPU del AVR es impulsado por el reloj de la CPU clkCPU,
generado directamente desde la fuente de reloj seleccionada para el
chip, en esta parte no se utiliza la división interna del reloj.

d. Manejo del Reset e Interrupciones, fuentes de interrupción, vectores, cómo


se genera una interrupción, memoria en donde se implementan, y tiempos de
respuesta.
R= Las direcciones más bajas en el espacio de memoria del programa
se definen por defecto como los vectores de Reset e Interrupción,
cuando se genera una interrupción el interurptor global es limpiado y
todos los interrupores son deshabilitados, implementados en MCU
Control Register, Boot Flash section, su tiempo de ejecución es de
minimo de cuatro ciclos de reloj. Después cuatro ciclos de reloj, se
ejecuta la dirección del vector del programa para la rutina de manejo de
interrupciones real

8. Memorias AVR

El ATmega328 / P contiene 32 Kbytes de memoria Flash reprogramable en el sistema en


chip para programas almacenamiento.
La memoria Flash tiene una resistencia de al menos 10,000 ciclos de escritura / borrado. El
programa ATmega328 / P El contador (PC) tiene 14 bits de ancho, por lo que se dirige a las
ubicaciones de memoria del programa de 16K.

El funcionamiento de Boot: autoprogramación de lectura mientras se escribe.

a. Función de la memoria SRAM, distribución de registros y datos,


instrucciones para acceder a las diferentes regiones, y tiempos de
acceso de lectura y escritura.
La SRAM es un tipo de memoria basada en semiconductores que a diferencia de las
Memorias DRAM, es capaz de mantener los datos (mientras esté alimentada) sin
necesidad de circuito de refresco (no se descargan). También se puede conocer qué
es un microcontrolador complejo con más unidades periféricas de las que se
pueden admitir dentro de las 64 ubicaciones reservadas en el código de operación
para las instrucciones IN y OUT.

Las ubicaciones inferiores de la memoria de datos 2303 abordan tanto el archivo de


registro, la memoria de E / S, la E / S extendida
memoria y la SRAM de datos internos.

Las primeras 32 ubicaciones se dirigen al archivo de registro, las siguientes 64


ubicar la memoria de E / S estándar, luego 160 ubicaciones de la memoria de E / S
extendida y las siguientes 2K ubicaciones direccionar la SRAM de datos internos.
Esta es la manera en que tiempos, se puede acceder a los datos internos realizados
en dos ciclos de clkCPU.

b. Memoria EEPROM, cantidad disponible, y accesos de Lectura y


Escritura.
El ATmega328 / P contiene 1K bytes de memoria EEPROM de datos. Está organizado
como un espacio de datos separado, en el que se pueden leer y escribir bytes individuales.
La EEPROM tiene una resistencia de al menos 100.000 ciclos de escritura / borrado.

El tiempo de acceso a escritura está en el rango de 2.5 - 4 ms, dependiendo de los voltajes
de VCC. Una función automática permite al software del usuario detectar cuándo puede
inscribirse el próximo byte. El funcionamiento de la CPU bajo estas condiciones puede
provocar que el contador de programa realice saltos involuntarios y en el futuro ejecutar el
código de escritura de EEPROM. Para afianzar la integridad de la EEPROM, se aconseja al
usuario usar un circuito externo de reset de bajo voltaje en este caso.
Cuando se está escribiendo en la EEPROM, la CPU se detiene durante dos ciclos del clock
antes de que la próxima instrucción se ejecute. Cuando se lee la EEPROM, la CPU se
detiene durante cuatro ciclos del clock antes de que la próxima instrucción se ejecute.

c. Memoria de Entrada y Salida, cantidad disponible, ubicación en el mapa


de memoria.
La memoria de Entrada/Salida, es una unidad de gestión de memoria (MMU) que
conecta un bus de E/S con capacidad de acceso directo a memoria (compatible con
DMA) a la memoria principal.

Todas las E / S y periféricos del dispositivo se colocan en el espacio de E / S. Se


puede acceder a todas las ubicaciones de E / S mediante las instrucciones LD / LDS
/ LDD y ST / STS / STD, transfiriendo datos entre los 32 registros de trabajo de
propósito general y el espacio de E / S.

El dispositivo contiene tres registros de E / S de uso general, registro de E / S de


uso general 0/1/2 (GPIOR0 / 1/2). Estos registros se pueden utilizar para almacenar
cualquier información y son particularmente útiles para almacenar variables globales
e indicadores de estado, usa un rango de direcciones 0x00 - 0x1F, del cual estos
son directamente accesibles en bits mediante las instrucciones SBI, CBI, SBIS y
SBIC.

d. Función, ubicación e instrucciones para acceder a los Registros de


Propósito general.
Registro de direcciones EEPROM

Los registros de dirección de la EEPROM (EEARH y EEARL) especifican las direcciones de


EEPROM en los 512 byte de espacio de EEPROM para los AT90S8515. Los bytes de datos
de la EEPROM son direccionados linealmente entre 0 y 512.
Registro de datos de EEPROM

Bits 7:0 – EEDR[7:0]: EEPROM Data


Para la operación de escritura de la EEPROM, el registro EEDR contiene los datos que van
a ser escritos en la EEPROM en la dirección dada por el registro EEAR. Para la operación
de lectura de la EEPROM, el EEDR contiene los datos leídos fuera de la EEPROM en la
dirección dada por EEAR.

Registro de Control de EEPROM

Estos bits son bits reservados en el AT90S8515 y siempre se leen como cero.

El bit EEMWE determina, si se pone EEWE a uno, que la EEPROM sea escrita. Cuando
EEMWE esté a set (uno), poniendo a set EEWE se escribirán datos a la EEPROM a la
dirección seleccionada. Si EEMWE es cero y se pone a set EEWE no tendrá efecto. Cuando
EEMWE ha sido puesta a set (uno) por software, el hardware borra el bit a cero después de
cuatro ciclos de clock.
9. Sistema de Reloj y Opciones de Reloj

a. Las diferentes señales de Reloj que produce la Unidad de Control del


AVR.

El sistema de reloj determina la velocidad de trabajo del microcontrolador. Con 16 MHZ se


ejecuta una instrucción en 62,5 nanosegundos (1/16 Mhz), correspondiente a 1 ciclo de
máquina.

Sistema de reloj y su distribución


La señal de reloj es distribuida por la unidad de control a los diferentes bloques existentes: la
CPU, las memorias, los módulos de entrada/salida, los contadores/timers, el SPI y la USART, al
igual que el conversor Análogo Digital ADC.

● Reloj de la CPU
El reloj de la CPU se enruta a partes del sistema relacionadas con el funcionamiento del
núcleo AVR. Ejemplos de dichos módulos son el archivo de registro de propósito general, el
registro de estado y la memoria de datos que contiene el puntero de pila.

● Reloj de E / S
El reloj de E / S es utilizado por la mayoría de los módulos de E / S, como Timer / Counters,
SPI y USART. El reloj de E / S es también utilizado por el módulo de interrupción externa,
pero tenga en cuenta que la detección de la condición de inicio en el módulo USI se lleva a
cabo de forma asincrónica cuando se detiene clkI / O, reconocimiento de dirección TWI en
todos los modos de suspensión.

● Reloj flash
El reloj Flash controla el funcionamiento de la interfaz Flash. El reloj Flash suele estar activo
simultáneamente con el reloj de la CPU.
● Reloj temporizador asíncrono
El reloj del temporizador asincrónico permite que el temporizador / contador asincrónico se
registre directamente desde un reloj o un reloj de cristal externo de 32 kHz.

● Reloj ADC
El ADC se proporciona con un dominio de reloj dedicado. Esto permite detener la CPU y los
relojes de E / S para reducir el ruido generado por los circuitos digitales. Esto proporciona
resultados de conversión ADC más precisos.

b. Las diferentes fuentes de reloj y sus características (cómo se producen,


velocidades mínimas y máximas, conexiones, dispositivos de apoyo,
etc.).

Fuentes de reloj

El reloj de la fuente seleccionada se ingresa al generador de reloj AVR y se enruta a los


módulos apropiados.

Fuente de reloj predeterminada


El dispositivo se envía con un oscilador RC interno a 8.0MHz y con el fusible CKDIV8
programado, lo que da como resultado un reloj del sistema de 1.0MHz. El tiempo de inicio
está configurado al máximo y el período de tiempo de espera está habilitado: CKSEL =
0010, SUT = 10, CKDIV8 = 0, lo que garantiza que todos los usuarios puedan realizar su
configuración de fuente de reloj deseada utilizando cualquier interfaz de programación
disponible.

c. Secuencia de arranque del Reloj.

Para garantizar suficiente VCC (cosa que cualquier fuente de reloj necesita), el dispositivo
emite un reinicio interno con un retardo de tiempo de espera (tTOUT) después de que todas
las demás fuentes de reinicio liberan el reinicio del dispositivo. El retardo (tTOUT) se
cronometra desde el oscilador Watchdog y el número de ciclos del retardo se establece
mediante los bits de fusible SUTx y CKSELx.
El tiempo de arranque del oscilador recomendado depende del tipo de reloj y varía de 6
ciclos para unreloj aplicado externamente a 32K ciclos para un cristal de baja frecuencia.

La secuencia de inicio del reloj incluye tanto el tiempo de espera como el tiempo de inicio
cuando el el dispositivo se inicia desde el reinicio. Cuando se inicia desde el modo de
ahorro de energía o apagado, se supone que VCC está en un nivel suficiente y solo se
incluye el tiempo de puesta en marcha.

d. Prescalador del sistema de Reloj.


El dispositivo tiene un preescalador de reloj del sistema, y ​el reloj del sistema se puede
dividir configurando el Registro de preescala de reloj (CLKPR). Esta función se puede
utilizar para reducir la frecuencia del reloj del sistema y el consumo de energía cuando el
requisito de potencia de procesamiento es bajo.

Al cambiar entre las configuraciones del pre-escalador, el pre-escalador del reloj del sistema
asegura que no ocurran fallas en el sistema del reloj.

Desde el momento en que se escriben los valores de los bits de selección del preescalador
de reloj (CLKPS [3: 0]), se necesitan entre T1 + T2 y T1 + 2 * T2 antes de que se active la
nueva frecuencia de reloj. En este intervalo, se producen dos flancos de reloj activos. Aquí,
T1 es el período de reloj anterior y T2 es el período correspondiente a la nueva
configuración del preescalador.

Para evitar cambios drásticos en la configuración predeterminada del reloj, se sigue estos
pasos:

● Escriba el bit Clock Prescaler Change Enable (CLKPCE) en '1' y todos los demás
bits en CLKPR en cero: CLKPR = 0x80.
● En cuatro ciclos, escriba el valor deseado en CLKPS [3: 0] mientras escribe un cero
en CLKPCE: CLKPR = 0x0N

También podría gustarte