Beruflich Dokumente
Kultur Dokumente
ATMega328P
Contacto: fsantiag@mixteco.utm.mx
OBJETIVO
2
TEMAS
1. El microcontrolador
2. Programación en alto nivel
3. Recursos internos
4. Interfaz y control de periféricos externos
5. Desarrollo de sistemas
3
HERRAMIENTAS DE DESARROLLO
5
EL AVRSTUDIO
EL COMPILADOR DE C
ISIS de Proteus :
• Edición de Esquemáticos
• Simulación Visual de Sistemas
ARES:
• Desarrollo de Circuitos
Impresos
8
BIBLIOGRAFÍA
Libros básicos:
Libros complementarios:
TEMA 1
EL MICROCONTROLADOR
Octubre / 2018
MICROCONTROLADOR
Es un Circuito Integrado con tecnología VLSI que contiene una
Unidad Central de Procesamiento (CPU), memoria para código,
memoria para datos, además de otros recursos necesarios para el
desarrollo de aplicaciones, por lo general con un propósito específico.
Un microcontrolador es de hecho una computadora completa situada
en un chip. También se le refiere como MCU (Micro -Controller Unit).
11
APLICACIONES DE LOS MCU
12
Uso de los Microcontroladores
13
13
Microprocesadores y Microcontroladores
• Microprocesadores • Microcontroladores
• Es una Unidad Central • Además de la CPU,
de Procesamiento en un contiene: RAM, ROM,
circuito integrado. interfaz serial, interfaz
paralela, manejo de
interrupciones,
temporizadores, etc.
Todo en un circuito
integrado.
14
Limitantes en un Microcontrolador
MCU (típico) µP
Velocidad de
16 MHz ~ GHz
procesamiento
8 kB – 32 kB
Capacidad de
(instrucciones) ~Terabytes
direccionamiento
1 kB (datos)
8 bits
Tamaño de los Palabras de 32 o
Manejo directo de
datos 64 bits
bits
15
APLICACIONES
Microprocesadores Microcontroladores
Los microprocesadores son Son la base para los sistemas
comúnmente usados como la embebidos, como hornos de
CPU de una computadora. microondas, cajas registradoras,
cámaras fotográficas, etc.
También se encuentran en
sistemas de procesamiento
intensivo como Consolas de En un Sistema Embebido, el
Video Juegos y Smart MCU administra recursos e
Phones. interactúa con el usuario.
FPGA Microcontroladores
• Bloques e interconexiones • Unidades funcionales bien
configurables, es posible definidas.
diseñar sistemas a medida. • El programa determina el
• El programa define al comportamiento del hardware.
hardware.
• Un programa se ejecuta en
• En un sistema, los diferentes
forma secuencial, aunque
módulos pueden operar en
exista concurrencia en los
forma concurrente.
recursos, su atención por la
• En un FPGA se puede CPU será secuencial.
modelar un MCU.
• Es más rápido obtener
resultados.
17
CLASIFICACIÓN DE LOS MCU’S
Operación: C = A - B
19
19
MICROCONTROLADORES
POPULARES
Organización de un
microcontrolador
Ent/Sal Ent/Sal
Digitales Analógicas
Temporizador/
Contador
CPU
Oscilador Perro guardián
(Watchdog timer)
Memoria
de Programa
Puerto Serie
(UART)
Vcc Memoria
de Datos
Otros
Recursos
Gnd
Bus de Datos
de 8 bits 21
MICROCONTROLADORES AVR
DE ATMEL
Su Arquitectura es Cerrada.
23
23
ASPECTO
EXTERNO
ATMEGA328P
Incluye 3 puertos,
todas las terminales
con más de una
función alterna.
PB – 8 bits
PC – 7 bits
PD – 8 bits
24
AVR CPU CORE
25
INTERIOR DEL MICROCONTROLADOR (ATMEGA328)
26
AVR CPU CORE
La arquitectura Harvard maximiza el rendimiento y
paralelismo en la ejecución de instrucciones.
La CPU tiene acceso a las memorias, realiza cálculos,
controla periféricos y maneja interrupciones.
El Contador del Programa (PC, Program Counter) contiene la
dirección de la instrucción que se está ejecutando.
Se actualiza automáticamente para avanzar entre instrucciones.
El Registro de Instrucción (IR, Instruction Register) mantiene
una instrucción durante su ejecución.
Una instrucción es una secuencia de 1's y 0's que se identifica
por un campo conocido como el opcode o código de operación.
27
AVR CPU CORE
T1 T2 T3 T4 T5
CLK CPU
29
ARCHIVO DE REGISTROS
32 registros de 8 bits, todos de propósito 7 0 Dir.
general. R0 0x00
R1 0x01
R2 0x02
Los registros R26 a R31 pueden ser ...
apuntadores de 16 bits, para R13 0x0D
R14 0x0E
direccionamiento indirecto en el espacio R15 0x0F
de datos. Se denominan X, Y y Z. R16 0x10
R17 0x11
...
El registro Z también puede usarse X {
R26 (XL) 0x1A
como apuntador a la memoria de R27 (XH) 0x1B
R28 (YL) 0x1C
programa. Y {
R29 (YH) 0x1D
R30 (ZL) 0x1E
Z {
R31 (ZH) 0x1F
Arquitectura Optimizada para ejecutar
código C compilado.
30
AVR CPU CORE
Mapa de memoria
31
Memoria de Programa
SRAM EEPROM 33
Memoria SRAM de Datos
34
Los 32 registros de acceso rápido y los registros I/O tienen
direcciones para ser tratados como SRAM de propósito general.
Registros I/O
Read/Write
Valor inicial
– N: Bandera de Negativo
CLK CPU
Registro IR Captura
Incluye 3 puertos, todas las terminales con más de una función alterna.
41
PB – 8 bits
PC – 7 bits
PD – 8 bits
Puertos de Entrada/Salida
DDRxn
RESET
PORTxn
CLR
D
PUD
WDDRx
RDDRx
Puertos de Entrada/Salida
BUS DE DATOS
Pxn Q D
Terminal n del Q
CLR
Puerto x WPORTx
RESET
SLEEP
RPORTx
SINCRONIZACIÓN
RPINx
PINxn
D Q D Q
Q Q
clk I/O
PUD
DDRxn PORTxn E/S Pull-Up Comentario
(en SFIOR)
0 0 X Entrada No Sin resistor de Pull-Up
0 1 0 Entrada Si Con resistor de Pull-Up
0 1 1 Entrada No Sin resistor de Pull-Up
1 0 X Salida No Salida en bajo
1 1 X Salida No Salida en alto
44
Registros para el manejo de puertos
7 6 5 4 3 2 1 0
0x0B PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
0x0A DDRB7 DDRB6 DDRB5 DDRB4 DDRB3 DDRB2 DDRB1 DDRB0 DDRB
0x09 PINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
0x08 - PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC0 PORTC
0x07 - DDRC6 DDRC5 DDRC4 DDRC3 DDRC2 DDRC1 DDRC0 DDRC
0x06 - PINC6 PINC5 PINC4 PINC3 PINC2 PINC1 PINC0 PINC
0x05 PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD0 PORTD
0x04 DDRD7 DDRD6 DDRD5 DDRD4 DDRD3 DDRD2 DDRD1 DDRD0 DDRD
0x03 PIND7 PIND6 PIND5 PIND4 PIND3 PIND2 PIND1 PIND0 PIND
45
EJEMPLO:
46
El Microcontrolador
ATMega328P
TEMA 2
PROGRAMACIÓN EN ALTO NIVEL
Octubre de 2018
PROCESO DE PROGRAMACIÓN
48
¿ENSAMBLADOR O LENGUAJE C?
TIPOS DE DATOS
DEFINICIONES EN WINAVR
52
ELEMENTOS DEL LENGUAJE
OPERADORES
Operador ternario
Aritméticos
Operador Descripción Ejemplo Propocisión1? Proposición2 : Proposición3;
* Producto a*b
/ División a/b
V F
% Módulo a%b Proposición 1
+ Suma a+b
Proposición 2 Proposición 3
- Resta a-b
53
ELEMENTOS DEL LENGUAJE
Trabajan sobre operandos de los tipos: Una variable con cualquier valor
char, int o long. Afectan el resultado al distinto de cero se considera
nivel de bits. verdadera.
54
ELEMENTOS DEL LENGUAJE
Asignaciones
Operador Ejemplo Equivalencia
= a=b a=b
*= a *= b a=a*b
/= a /= b a=a/b
%= a %= b a=a%b
+= a += b a=a+b
-= a -= b a=a-b
<<= a <<= b a = a << b
>>= a >>= b a = a >> b
&= a &= b a=a&b
|= a |= b a=a|b
^= a ^= b a=a^b 55
ESTRUCTURAS DE CONTROL
Dentro de la programación
estructurada se tienen tres tipos
Secuenciales
de Estructuras de Control.
Proposición 1
1. Secuenciales.
2. Selectivas. Proposición 2
3. Repetitivas.
Proposición 3
// Expresiones en secuencia
a = b + c;
. . .
contador++;
57
ELEMENTOS DEL LENGUAJE
ESTRUCTURAS SELECTIVAS
Selección Simple Selección Doble
F V F
Expresión Proposición 1
V
Proposición 2 Proposición 3
Proposición
if(expresión) if(expresión)
Proposición proposición1
else
proposición2
58
ELEMENTOS DEL LENGUAJE
= Constante_1 = Default
Expresión
= Constante_2 = Constante_n
= Constante_3
Proposición 1 Proposición 2 Proposición 3 ... Proposición n Prop. Default
switch (expresión){
case Constante_1:
Proposición 1
case Constante_2:
Proposición 2
. . . .
default:
Proposición default 59
}
ELEMENTOS DEL LENGUAJE
ESTRUCTURAS REPETITIVAS
Repetición por Condición:
Proposición
F
Expresión
V V
Expresión
Proposición
F
do {
while(expresión) proposición
proposición } while(expresión);
60
ELEMENTOS DEL LENGUAJE
Expresión1
F
Expresión2
Expresión3 V
Proposición
proposición
61
62
TIPOS DE MEMORIA
SRAM PARA VARIABLES
Variables: Datos que van a ser leídos o escritos repetitivamente.
La SRAM es el espacio de almacenamiento por default para las
variables.
uint8_tx, y;
inta, b, c;
Si es posible, el compilador utilizará los registros de propósito
general (R0 a R31).
Ejemplos de declaraciones:
const char cadena[] PROGMEM = “Cadena con un mensaje constante”;
const uint8_t tabla[] PROGMEM = { 0x24, 0x36, 0x48, 0x5A, 0x6C };
63
64
x = pgm_read_byte(&tabla[i]);
64
65
EEPROM
Las variables cuyo contenido se quieran conservar aún en
ausencia de energía deberán almacenarse en la EEPROM.
34 12 01 02 03 04 FF FF FF . . .
65
66
ATMEGA8
PB0 1
14
PB0
220 Espera 0.5 Seg.
PB0 0
67
68
INICIO
= 0x00 = 0x0F
¿Dato?
= 0x01 = 0x0E
= 0x02
Portb 0x3F Portb 0x06 Portb 0x 5B ... Portb 0x79 Portb 0x71
69
70
PortC[2:0] Operación
000 R=A+B
001 R=A-B
010 R=A*B
011 R = A AND B
100 R = A OR B
101 a 111 R=0
70
71
= “000” otros
¿Op?
= “001” = “100”
= “010” = “011”
R A + B R A - B R A * B R A & B R A | B R0
PortD R 71
EJEMPLO 4:
CONTADOR DE EVENTOS
ATMEGA328P
a
PB0 a
PB1 b f b
PB2 c g
PD0 d
PB3
e
PB4 e c
f
PB5 g
PB6
d
72
IMPLEMENTACIÓN PRÁCTICA
PC1
PC0