Está en la página 1de 21

CIRCUITOS DIGITALES Y

MICROCONTROLADORES
2024

Facultad de Ingeniería
UNLP
Introducción a la familia AVR MCU
Ing. José Juárez
Historia de 8-bits según Microchip
• http://www.microchip.com/design-centers/8-bit

Marzo 2024
Familia completa Microchip AVR

Folleto AVR: doc4064

http://ww1.microchip.com/downloads/en/DeviceDoc/doc4064.pdf

Marzo 2024
ARDUINO y el Atmega 328P (Data sheet)

Marzo 2024
Atmega328P

Marzo 2024
Características Atmega328P PDIP

• CPU: AVR 8-bit ISP=In System Reprogrammable

• 32 kB Memoria FLASH (ISP, 10.000 ciclos)


• 2 kB Memoria SRAM
• 23 Entradas/salidas de propósito gral.
• 3 Puertos: PORTB, C y D
• Interfaz para depuración (debugWIRE)
• Reloj del sistema: hasta 20MHz
• Alimentación 1.8V a 5V
• 6 modos de bajo consumo (sleep modes) Arduino
• 1 kB Memoria EEPROM (ISP, 100.000 ciclos) Nano

• 2 Timers 8 bits y 1 Timer 16 bits


• 6 Generadores PWM
• 8 canales, 10bit ADC
• Interfaces Series: USART, SPI, I2C
• Watch Dog “perro guardián”
TQFP
• Comparador analógico
Marzo 2024
ARDUINO y el Atmega 2560

• AVR 8 bits
• 256kB FLASH
• 8kB RAM
• 16MHz
• 100 pines
• Puertos A,B,C,D
E,F,G,H,J,K,L
• 4kB EEPROM
• JTAG interface

Marzo 2024
Link diferentes modelos de la Familia AVR MCU
AVR- CPU
• RISC: 131 instrucciones ejecutadas en
su mayoría en 1 ciclo de clock
• Hardvard: Memoria de programa y
memoria de datos con buses
independientes
• Reloj hasta 20MHz (20 MIPS ideal)
• Arquitectura basada en registros:
• 32 registros CPU de 8 bits
• Operaciones sobre registros CPU
minimizando el acceso a memoria
• El contador de programa (PC) indica la
dirección de memoria de la siguente
instrucción a ejecutar.
• El “Instruction Register” contiene el
Opcode y permite seleccionar los
operandos a usar en la ejecución.
• A su vez el OPcode es decodificado en
el “decoder” para generar las señales
de control para ejecutar la instrucción.
Marzo 2024
Documento: AVR Instrucción Set
Ejecución de Instrucción
• AVR: Pipeline de 2 etapas
• Ejecución y búsqueda de instrucción en paralelo

CH6 data sheet


Marzo 2024
Libro de Espinosa CH 1 y 2
Libro de Mazidi CH 3
ALU
• Operaciones aritméticas y lógicas en 1 ciclo
• Multiplicación 8x8 en 2 ciclos
• Permite operaciones entre registros y entre registros y constantes
• El estado del resultado de una operación (Flags) se actualiza en el “status
Register”

CH6 data sheet


Marzo 2024
Libro de Espinosa CH 1 y 2
Libro de Mazidi CH 3
Memoria de Programa –Atmega328P
16bits
• 32kB FLASH
• Organización: 16K x 16bits (256 pag. de 64 words)
• Contador de programa (PC) de 14bits
• Las instrucciones AVR son
codificadas en 16 y 32 bits
• También se pueden almacenar constantes o tablas
• 2 instrucciones de acceso LPM (Load from Program Memory) y
SPM (Storage to Program Memory)
• Esta dividida en dos secciones: Boot (o arranque) y
Aplicación (o programa de usuario)
• Programable externamente a través de
Interfaz SPI o debugWire (requiere programador)
• Programable x Bootloader code
(Read-While-Write Operation) (requiere interfaz serie)
• Trabas de seguridad contra escritura (Lock bits)
CH7 data sheet
Marzo 2024
Memoria de Datos – Atmega328p
• Las primeras 96 direcciones Data 8bits
R0
Data
corresponden a los registros 0
Address R1
Address

CPU (32) y a los registros de los $0000


General
R2 $0000
General

...
periféricos I/O (64) Purpose Purpose

...
...
R31
$001F Registers $001F Registers
• Este espacio de memoria $0020 $0020
puede accederse con las Standard I/O I/O Address
$00
Standard I/O
Registers Registers
instrucciones IN,OUT en 1 ciclo

...

...
$01
(SFRs) (SFRs)
de reloj $005F $005F

...
96 $0060 $0060
• A partir de las dirección 0x60 Extended SREG
$3E
$3F Extended
solo puede accederse a partir

...
I/O Memory I/O Memory
de las instrucciones $00FF $01FF

LOAD/STORE. $0100 $0200


Internal Internal
• Se puede acceder de 5 formas
...

...
SRAM SRAM
o modos de direccionamiento $21FF
$2200
• Los registros I/O pueden ser External External
accedidos como RAM, y SRAM SRAM
$FFFF $FFFF
también pueden accederse de ATmega640/V
a bits individuales. ATmega328 ATmega1280/V
ATmega64 ATmega1281/V
• El acceso de lectura/escritura ATmega128 ATmega2560/V
SRAM es de 2 ciclos de clock. ATmega2561/V

Marzo 2024
Registros CPU – 8 bits

• Optimizados para el conjunto de instrucciones


RISC AVR permiten operaciones:
1 operando de 8 bits -> 8
2 operandos de 8 bits -> 8
2 operandos de 8 bits -> 16
1 operando de 16 bits -> 16
• La mayoría de las instrucciones que operan
sobre los registros son de 1 ciclo de reloj
• “mapeados en memoria” en las 32 primeras
direcciones para flexibilizar el acceso al
espacio de datos
• Los pares de registros 26-27, 28-29 y 30-31 se
denominan X, Y, Z para permitir el
direccionamiento indexado
• X, Y, Z son punteros de 16 bits que permiten
acceder a la memoria de datos de manera
Indirecta, incluso pueden apuntar a los
registros.

Marzo 2024
Registros I/O PORTS – 8bits CH13 Data sheet

• Cada Puerto I/O tiene 3 Registros asociados


• Por ejemplo el puerto B:

Marzo 2024
Registros I/O PORTS– 8bits

• Control de dirección de un puerto I/O

Veremos en otra clase la estructura interna de los puertos I/O

Marzo 2024
Otros Registros I/O – 8bits
• Control de CPU en el espacio I/O:

Stack pointer (SP)


Status Register (SREG)

• Ejemplos de Registos de Control de periféricos:

Timer control (TCCRx)


Timer counter (TCNTx)
Timer output (OCRx)
E2PROM control (EEARx)
Serial Interface Control (BAUD, UCSR)
ADC Control (ADLAR, ADCR…)

Listado completo de registros: pág. 423 ATMEGA328 Data Sheet

Marzo 2024
Comparación entre dos arquitecturas
actualmente en uso 0.53 coremark/MHz
https://www.eembc.org/coremark/scores.php

• AVR Atmega328p
Especificaciones:

-AVR 8 bits CPU


-RISC: 131 instrucciones ejecutadas en su mayoría en 1
ciclo de clock
-16MHz clock (0.37 DMIPS/MHz )
-Pipeline 2 etapas (Fetch - Execute)
-ALU 8 bits con Multiplicación 8x8 en 2 ciclos (con y sin
signo)
-Hardvard: Memoria de programa y memoria de datos con
-buses independientes
Program Counter de 14bits (16K words)
Instrucción de longitud fija: 16 y 32 bits
Ejecución en 1,2 y 3 ciclos de reloj
ARDUINO NANO
-Arquitecturas basadas en registros:
$9000 - $15000 32 Registros CPU de 8 bits
3 registros de 16 bits (X,Y,Z)
-21 fuentes de interrupción vectorizadas
-Modo de bajo consumo SLEEP
Marzo 2024 https://www.microchip.com/en-us/product/ATmega328P
Comparación entre dos arquitecturas
actualmente en uso 1,50 CoreMark/MHz
https://www.eembc.org/coremark/scores.php

• STM32F103C8T6 Especificaciones:

- ARM 32-bit Cortex-M3 CPU Core


- Corre a una frecuencia de 72 MHz (1.25 DMIPS/MHz)
- 64 KB de memoria Flash
- 20 KB de SRAM
- RTC integrado c/ entrada de batería de respaldo
- Modo Sleep, Stop y Standby
- 26 GPIO, la mayoría tolerantes a 5V
- Interrupciones en todas las I/O
- 2 A/D de 12-bit de 1 us, (10 entradas analógicas)
- 7 temporizadores
- 2 interfaces I2C
BluePill board - 3 interfaces USART
$8000 - $15000 - 2 interfaces SPI
+ Program. $10000 - Interface CAN
- Micro USB para alimentación y comunicaciones
- Se puede depurar con SWD (con ST-Link V2)
Marzo 2024
https://www.st.com/en/microcontrollers-microprocessors/stm32f103c8.html
Comparación entre dos arquitecturas
actualmente en uso
• RP2040 Especificaciones:

-Dual ARM Cortex-M0+ @ 133MHz


-264kB on-chip SRAM in six independent banks
-Support for up to 16MB of off-chip Flash memory via
dedicated QSPI bus
•- -DMA controller
-Fully-connected AHB crossbar
•- -Interpolator and integer divider peripherals
-On-chip programmable LDO to generate core voltage
-2 on-chip PLLs to generate USB and core clocks
-30 GPIO pins, 4 of which can be used as analogue inputs
-2 UARTs
-2 SPI controllers
Raspberry Pi Pico W -2 I2C controllers
$11000 - $25000 -16 PWM channels
-USB 1.1 controller and PHY, with host and device support
-8 PIO state machines
Marzo 2024
https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html
Comparación entre dos arquitecturas
actualmente en uso
• ESP32-c3 Especificaciones:

-32-bit RISC-V single-core MCU @160MHz


-384 KB of ROM
-400 KB of SRAM
-8 KB of RTCSRAM
-Working Voltage: 3 V to 3.6 V
-Up to 22 GPIOs (7 GPIOs need for flash/PSRAM)
-2 ADC 12-bit (up to 6 channels)
•- -1 I2C interface
-1 I2S interface
-3 SPI interface
-2.4 GHz Wi-Fi and Bluetooth®Low Energy (Bluetooth LE)
-Security: AES, SHA, RSA, RNG, Secure Boot, Flash
ESP32-C3-DevKitC Encryption

$15000 - $25000

Marzo 2024 https://www.espressif.com/en/products/socs/esp32-c3


Programación de la arquitecta AVR en lenguaje assembler

Material de estudio Opcional

• Clase04_asm.pdf Clase sobre el


set de instrucciones AVR.

• Los Microcontroladores AVR de ATMEL.


Felipe Espinoza. 2012. (CH3)

• The AVR Microcontroller and Embedded System.


Mazidi. 2011. (CH1 a CH6)

También podría gustarte