Está en la página 1de 8

954 - MICROPROCESADORES Y MICROCONTROLADORES

CÓDIGO: 309696A

Unidad 2 - Paso 3 - Análisis del proyecto

Presentado a:

OMAR ALBEIRO TREJO

Entregado por:

YERITZA MARIBEL RODRIGUEZ VEGA


Código: 1090471248

Grupo: 309696_15

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD


ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
25-10-2021
SAN JOSE DE CUCUTA
MICROPROCESADOR ATmega48PA

El ATmega48PA / 88PA / 168PA / 328P es un microcontrolador CMOS de 8 bits de bajo consumo basado en la
arquitectura RISC mejorada de AVR. Al ejecutar poderosas instrucciones en un solo ciclo de reloj, el
ATmega48PA / 88PA / 168PA / 328P logra rendimientos cercanos a 1 MIPS por MHz, lo que permite al diseñador
del sistema optimizar el consumo de energía frente a la velocidad de procesamiento.
Diagrama de bloques

VCC
GND
Perro Supervisión debugWIRE
guardián
de energía
Temporiza
POR / BOD
& RESET
Oscilador

Circuitos
Destello SRAM
de
oscilador /
Generació
n de reloj
UPC

EEPROM

AVCC

AREF

GND

8 bits T / C 0 Conv. A /
D

Comp. Interno
T / C 2 de
BUS DE
DATOS

8 bits Analó Bandgap


gica

USART 0 SPI TWI

PUERTO D PUERTO B PUERTO C


(8) (8) (7)
REINICIAR

XTAL [1..2]

PD [0..7] PB [0..7] PC [0..6] ADC [6..7]


ARQUITECURA ATmega48PA/88PA/168PA/328P

La arquitectura es más eficiente en código y logra rendimientos hasta diez veces más rápidos que los
microcontroladores CISC convencionales.

El ATmega48PA / 88PA / 168PA / 328P proporciona las siguientes características: 4/8/16 / 32K bytes de Flash
programable en el sistema con capacidades de lectura mientras se escribe, 256/512/512 / 1K bytes EEPROM, 512
/ 1K / 1K / 2K bytes SRAM, 23 líneas de E / S de propósito general, 32 registros de trabajo de propósito general,
tres temporizadores / contadores flexibles con modos de comparación, interrupciones internas y externas, un
USART programable en serie, una interfaz en serie de 2 hilos orientada a bytes, un puerto serie SPI, un ADC de
6 canales y 10 bits (8 canales en paquetes TQFP y QFN / MLF), un temporizador de vigilancia programable con
oscilador interno y cinco modos de ahorro de energía seleccionables por software.

El dispositivo está fabricado utilizando la tecnología de memoria no volátil de alta densidad de Atmel. El ISP Flash
en chip permite reprogramar la memoria del programa en el sistema a través de una interfaz en serie SPI, mediante
un programador de memoria no volátil convencional o mediante un programa de arranque en chip que se ejecuta
en el núcleo del AVR. El programa de arranque puede usar cualquier interfaz para descargar el programa de
aplicación en la memoria Flash de la aplicación. El software de la sección Boot Flash seguirá ejecutándose
mientras se actualiza la sección Application Flash, lo que proporciona una verdadera operación de lectura mientras
se escribe. Al combinar una CPU RISC de 8 bits con un flash autoprogramable en el sistema en un chip monolítico,
el Atmel ATmega48PA / 88PA / 168PA / 328P es un potente microcontrolador que proporciona una solución
altamente flexible y rentable para muchas aplicaciones de control integradas.

El AVR ATmega48PA / 88PA / 168PA / 328P es compatible con un conjunto completo de herramientas de
desarrollo de programas y sistemas que incluyen: compiladores de C, ensambladores de macros, depuradores /
simuladores de programas, emuladores en circuito y kits de evaluación.

FUNCIONAMIENTO DE TODOS LOS PINES

En esta oportunidad estudiaremos exclusivamente las funciones de cada uno de los pines externos que tiene
este µC.

2
CONFIGURACION DE PINES

Pinout ATmega48PA / 88PA / 168PA / 328P

Parte superior de TQFP Vista PDIP

PC3
/
PCINT13) PC4 (ADC4 /
SCL

PC2 (ADC2 / PCINT10)


PD2 (INT0 / PCINT18)

PD0 (RXD / PCINT16)


PD1 (TXD / PCINT17)

PCINT12)
(ADC3 / PCINT11)
/
PC6 (RESET /

(ADC5
PCINT14)

/
SDA
PC5

(PCINT14 / RESET) PC6 PC5 (ADC5 / SCL / PCINT13)


32
31
30
29
28
27
26
25

(PCINT16 / RXD) PC4 (ADC4 / SDA /


PD0 (PCINT17 / TXD) PD1 PCINT12) PC3 (ADC3 /
(PCINT19 / OC2B / INT1) PC1 (ADC1 /
(PCINT18 / INT0) PD2 PCINT11)
PD3 (PCINT20 / XCK / PCINT9) PC0 (ADC0
(PCINT19 / OC2B / INT1) PC2 (ADC2 /
T0) PD4 / PCINT8) ADC7
PD3 (PCINT20 / XCK / T0) PCINT10) PC1 (ADC1
TIE TIER
PD4 / PCINT9) PC0 (ADC0
RRA RA
VCC / PCINT8) TIERRA
VCC AREF
GND (PCINT6 / XTAL1 / AREF
TIE ADC6
TOSC1) PB6 (PCINT7 / AVCC
RRA AVCC
XTAL2 / TOSC2) PB7 PB5 (SCK / PCINT5)
VCC PB5 (SCK / PCINT5)
(PCINT21 / OC0B / T1) PD5 PB4 (MISO / PCINT4)
(PCINT6 / XTAL1 / TOSC1)
eci
séi

(PCINT22 / OC0A / AIN0) PB3 (MOSI / OC2A /


10
11
12
13
14
15
di
9

PB6 (PCINT7 / XTAL2 /


PD6 (PCINT23 / AIN1) PD7 PCINT3) PB2 (SS / OC1B /
TOSC2) PB7
(PCINT0 / CLKO / ICP1) PB0 PCINT2) PB1 (OC1A /
CLKO / ICP1) PB0 (PCINT1
PD5 (PCINT22 / OC0A /
AIN0) PD6 (PCINT23 /
(PCINT21 / OC0B / T1)

/ OC1A) PB1 (PCINT2 / SS

OC2A / MOSI) PB3


(PCINT4 / MISO) PB4
AIN1) PD7 (PCINT0 /

/ OC1B) PB2 (PCINT3 /

PCINT1)

28 Vista superior de MLF 32 Vista superior de MLF PC3


/
PCINT13) PC4 (ADC4 /
PC3
/
PCINT13) PC4 (ADC4 /

SCL

PC2 (ADC2 / PCINT10)


SCL

PD2 (INT0 / PCINT18)

PD0 (RXD / PCINT16)


PD1 (TXD / PCINT17)
PD2 (INT0 / PCINT18)

PD0 (RXD / PCINT16)


PD1 (TXD / PCINT17)

PCINT12)
PCINT12)

(ADC3 / PCINT11)
(ADC3 / PCINT11)

/
/

PC6 (RESET /

(ADC5
PC6 (RESET /

(ADC5

PCINT14)
PCINT14)

/
/

SDA
PC5
SDA
PC5

32
31
30
29
28
27
26
25
28
27
26
25
24
23
22

(PCINT19 / OC2B / INT1) PD3 1 21 PC2 (ADC2 / PCINT10) (PCINT19 / OC2B / INT1) PD3 1 24 PC1 (ADC1 / PCINT9)
(PCINT20 / XCK / T0) PD4 2 20 PC1 (ADC1 / PCINT9) (PCINT20 / XCK / T0) PD4 2 23 PC0 (ADC0 / PCINT8)
VCC 3 GND 3 22 ADC7
19 PC0 (ADC0 / PCINT8)
VCC 4 21 TIERRA
GND 4 18 TIERRA
GND 5 20 AREF
(PCINT6 / XTAL1 / TOSC1) PB6 5 17 AREF
VCC 6 19 ADC6
(PCINT7 / XTAL2 / TOSC2) PB7 6 16 AVCC
18 AVCC
(PCINT21 / OC0B / T1) PD5 7 15 PB5 (SCK / PCINT5) (PCINT6 / XTAL1 / TOSC1) PB6 7
17 PB5 (SCK / PCINT5)
(PCINT7 / XTAL2 / TOSC2) PB7 8
10
11
12
13
14
8
9

eci
séi
10
11
12
13
14
15
di
9

s
PD7 (PCINT0 / CLKO /

OC1A) PB1 (PCINT2 / SS /


OC1B) PB2 (PCINT3 /
(PCINT22 / OC0A / AIN0)

ICP1) PB0 (PCINT1 /


PD6 (PCINT23 / AIN1)

OC2A / MOSI) PB3


(PCINT4 / MISO) PB4

CLKO / ICP1) PB0 (PCINT1


AIN0) PD6 (PCINT23 /
PD5 (PCINT22 / OC0A /
(PCINT21 / OC0B / T1)

/ OC1A) PB1 (PCINT2 / SS

OC2A / MOSI) PB3


(PCINT4 / MISO) PB4
AIN1) PD7 (PCINT0 /

/ OC1B) PB2 (PCINT3 /

NOTA: La almohadilla inferior debe soldarse a


tierra. NOTA: La almohadilla inferior debe soldarse a tierra.

3
DESCRIPCION DE PINES

 VCC Voltaje de suministro digital.


 GND Suelo.

 Puerto B (PB7: 0) XTAL1 / XTAL2 / TOSC1 / TOSC2

El puerto B es un puerto de E / S bidireccional de 8 bits con resistencias pull-up internas


(seleccionadas para cada bit). Los búferes de salida del puerto B tienen características de unidad
simétricas con capacidad de fuente y de sumidero alta. Como entradas, los pines del puerto B
que se tiran hacia abajo externamente generarán corriente si se activan las resistencias pull-up.
Los pines del Puerto B tienen tres estados cuando se activa una condición de reinicio, incluso si
el reloj no está funcionando.
Dependiendo de la configuración del fusible de selección del reloj, PB6 se puede utilizar como
entrada al amplificador del oscilador inversor y como entrada al circuito operativo del reloj interno.
Dependiendo de la configuración del fusible de selección del reloj, PB7 se puede utilizar como
salida del amplificador del oscilador inversor.
Si el oscilador RC calibrado interno se usa como fuente de reloj de chip, PB7..6 se usa como
entrada TOSC2..1 para el temporizador / contador asíncrono2 si el bit AS2 en ASSR está
establecido.
 Puerto C
(PC5: 0) El puerto C es un puerto de E / S bidireccional de 7 bits con resistencias pull-up internas
(seleccionadas para cada bit). Los búferes de salida PC5..0 tienen características de excitación
simétricas con alta capacidad tanto de sumidero como de fuente. Como entradas, las clavijas
del puerto C que se bajan externamente generarán corriente si se activan las resistencias pull-
up. Los pines del Puerto C tienen tres estados cuando se activa una condición de reinicio, incluso
si el reloj no está funcionando.

 PC6 /
RESET Si el fusible RSTDISBL está programado, PC6 se utiliza como pin de E / S. Tenga en cuenta que
las características eléctricas de PC6 difieren de las de los otros pines del puerto C.
Si el fusible RSTDISBL no está programado, se utiliza PC6 como entrada de reinicio. Un nivel
bajo en este pin durante más tiempo que la duración mínima del pulso generará un reinicio,
incluso si el reloj no está funcionando.

 Puerto D (PD7: 0) El puerto D es un puerto de E / S bidireccional de 8 bits con resistencias pull-up internas
(seleccionadas para cada bit). Los búferes de salida del puerto D tienen características de unidad simétricas con
capacidad de fuente y de sumidero alta. Como entradas, los pines del puerto D que se tiran hacia abajo
externamente generarán corriente si se activan las resistencias pull-up. Los pines del Puerto D tienen tres estados
cuando se activa una condición de reinicio, incluso si el reloj no está funcionando.

4
PINES DE SALIDAS PWM

En este dispositivo contaremos con 6 salidas PWM (modulación por ancho de pulso), que tienen una resolución
de 8 Bits, lo que en números decimales serían 0 a 255, con lo cual se trabajará en la parte de la programación. A
continuación, se muestra un ejemplo de control de un motor DC, donde 0 es la velocidad mínima y 255 es la
velocidad máxima.

int Motor = 6; // declaramos las variables de tipo entero


int entrada_analogica= A0;

void setup() {
pinMode (Motor, OUTPUT); // designamos los pines como pines de salida y entrada
pinMode (entrada_analogica, INPUT); // entrada
}

void loop() { //entramos a un siclo repetitivo

int valor_entrada_analogica =0; // declaramos las variables de tipo entero


int valor_salida_pwm=0; // declaramos la variable de tipo entero para la
ulizacion de la modulacion por ancho de pulso
// ojo ( estos pines tienes que ser pines de (PWM)

valor_entrada_analogica = analogRead(entrada_analogica); // Guardamos la lectura analogica en la


variable (valor_entrada_analógica)
valor_salida_pwm =map(valor_entrada_analogica,0, 1023,0,255); // guardamos el mapeo en la variable
(valor salida)
analogWrite(Motor, valor_salida_pwm); // manifestamos en el led la
lectura analogica que hemos reducido de( 0 - 255)
// donde 0 es 0 voltios y 255 viene ser 5
voltios

}
PINES DE ENTRADAS ANALÓGICAS (A0 -A5)

Como su nombre lo indica estos puertos son propiamente para las entradas analógicas que tienen una
resolución de 10 Bits C/U, lo que en números decimales sería 0 – 1023, con estos valores se trabajará en la
parte de la programación.

if(tecla){
digitalWrite (al,HIGH);
if(analogRead(A2)<250){
digitalWrite(lamp,HIGH);
}
if(analogRead(A2)>250){
digitalWrite(lamp,LOW);
}
}
if (buttonState==HIGH){
digitalWrite(lamp,LOW);
digitalWrite (al,LOW);
}

8161CS – AVR – 05/09

También podría gustarte