Академический Документы
Профессиональный Документы
Культура Документы
Microcontroladores
Introduccin a los
Microcontroladores
Introduccin
Arquitectura
Memoria
I/O
Interrupciones
Timers/PWM
Interfaces y Otros Perifricos
Introduccin
Uso de los microcontroladores
Microondas, Lavarropas,
Televisores, ...
Automviles, aviones, barcos
Telfonos
Automatizacin industrial
Pequeos dispositivos ad-hoc
...
Introduccin
Ejemplo. Se quiere:
Introduccin
Diseo discreto. Se requiere:
Un microprocesador
20 lneas de I/O (2 chips de 16 c/u)
1 Interfaz serie (1 chip)
1 Timer (1 chip)
Memoria SRAM (para variables)
Memoria Flash (para programa)
Memoria EEPROM (para constantes)
Introduccin
Diseo discreto.
Introduccin
Diseo Integrado.
ATmega16
(atmel)
Oferta de
Microcontroladores
Oferta de
Microcontroladores
Oferta de
Microcontroladores
Oferta de
Microcontroladores
Oferta de
Microcontroladores
Oferta de
Microcontroladores
MC9RS08KA Family
Arquitectura
REPAS
O
Arquitectura: Procesador
Arquitectura
REPAS
O
Arquitectura
de las instrucciones
Por stack
Por acumulador
Dos direcciones
Tres direcciones
REPAS
O
Arquitectura
Modos de direccionamiento
Memoria
Memoria de datos
Pequea (relativamente)
Almacenamiento temporario p/CPU
Relativamente Grande
Almacena datos mientras el MCU funciona
Memoria de programa
Relativamente Grande
De preferencia, mantiene el programa incluso
con el MCU apagado.
REPAS
O
Memoria: Atencin
Memoria:
Direccionamiento
Separado:
Contnuo:
Memoria:
Direccionamiento
Separado
Memoria:
Direccionamiento
Continuo
Memoria: ejercicio
For (i=100;i>=0;i--)
Inadvertidamente i es almacenada en EEPROM
Inadvertidamente i esta implementada como
unsigned
Como la EEPROM es lenta, cada iteracin lleva,
digamos, 10 ms
Que pasa al conectar el MCU?:
el programa se cuelga
Me doy cuenta, digamos, a los 10 segundos
Empiezo a debuggear el programa (pero no apago el
MCU)
I/O
Digital I/O
Digital I/O
pin 1 del port B
Mdulo de
Interrupcin 1 entrada 5
Pin Tx de puerto
serie
Conversor AD
canal 5
Digital I/O
Digital I/O
Digital I/O
Digital I/O
Ejemplo:
bit 7
bit 0
Digital I/O
Digital Input
Digital Input
Normalmente incorporan un
Schmitt-trigger.
Para reducir la metaestabilidad
se introducen sincronizadores
Digital Input
Cancelacin de ruidos
Resistencias de pull-up/down en las
entradas: puede (debe) programarse su
conexin/desconexin (a veces
mediante el registro PORT).
Digital Output
Analog I/O
Conversin DIGITAL a
ANALOGICA:
REPAS
O
Conversin Analgica-Digital
(CAD)
REPAS
O
Conversin Analgica-Digital
(CAD)
Conversion de valor
REPAS
O
Conversin Analgica-Digital
(CAD)
REPAS
O
Conversin Analgica-Digital
(CAD)
Este modo de
conversin rpido
es utilizado en
algunos MCU y por
lo general, no hay
mas de 1 o 2
canales rpidos.
REPAS
O
Conversin Analgica-Digital
(CAD)
REPAS
O
Conversin Analgica-Digital
(CAD)
Conversin Analgica-Digital
(CAD)
Tensin de
Referencia
Entrada
Start Conversion
Habilitacin
Salida (registro)
Conversio
n
Complete
Conversin Analgica-Digital
(CAD)
CAD: Ejemplo de
implementacin en un MCU
Estado,
control
y
reloj
configuracin
multiplexor
comparador
// Configures ADC peripheral (ADC clock = 6.25MHz)
// Bus clock as clock source, 12-bit conversin and
divisor=4
ADCCFG = 0x44;
Conversin Analgica-Digital
Conversin Analgica-Digital
Introduccin a los
Microcontroladores
Introduccin
Arquitectura
Memoria
I/O
Interrupciones
Timers
Interfaces y Otros Perifricos
Interrupciones
Leer
entradas
Procesar
Producir
salidas
...
do_init();
...
for (;;) {
do_inputs();
do_some_process();
set_outputs()
}
inconvenientes?
Interrupciones
Con interrupciones:
Inicializaciones
Pueden no
Procesar
Producir
salidas
Atender
evento 1
Atender
evento 2
...
existir
do_init();
...
interrupts_on;
for (;;) {
do_some_process();
set_outputs()
}
...
Atender
evento n
REPAS
O
Interrupciones
Interrupciones
Control de Interrupciones
Interrupciones
Control de Interrupciones
REPAS
O
Interrupciones
Interrupciones: IVT
En el Atmega128 (Atmel):
MC9S08QG8
(Freescale)
Interrupciones
Interrupciones
4.
Interrupciones
Ejemplo:
Interrupciones
direccin
Interrupciones
Interrupciones
Mapeo a variables:
Interrupciones
Ejemplo inicializacin:
void InitKBI() {
/*KBI1 Init*/
KBI1SC_KBIE = 0;
KBI1ES_KBEDG3 = 0;
KBI1ES_KBEDG2 = 0;
KBI1PE_KBIPE3 = 1;
KBI1PE_KBIPE2 = 1;
KBI1SC_KBIMOD = 0;
KBI1SC_KBACK = 1;
KBI1SC_KBIE = 1;
} //end InitKBI
Interrupciones
Atencin de la interrupcin
Interrupciones
Alternativa:
Se le puede definir al linker (archivo
.prm) que guarde la direccion de la
funcion directamente:
VECTOR ADDRESS 0xFFDA KBIxISR
Y entonces la sintaxis queda:
interrupt void KBIx_ISR(void) { ...
Interrupciones
En el main:
Interrupciones
Interrupciones
Interrupciones
El operador es humano
No se requiere una temporizacin precisa
El estado es mas importante que el
cambio
Los impulsos duran mucho
Hay ruido en la seal
Hay cosas para hacer en el main (pero no
demasiado)
Introduccin a los
Microcontroladores
Introduccin
Arquitectura
Memoria
I/O
Interrupciones
Timers
Timers
Timers
Timers
Prescaler
Timers
Pulsos externos
Cristal externo: generlamente de 32.768 KHz que
implementa otro RTC independiente en el MCU
Timestamp (input capture)
Timers
Timers
Timers
Timers
Clock=BUSclk=>8 Mhz
Introduccin a los
Microcontroladores
Introduccin
Arquitectura
Memoria
I/O
Interrupciones
Timers
Modulacin de Ancho de
Pulso (PWM)
Modulacin de Ancho de
Pulso (PWM)
Timers y PWM
Otras caractersticas
SCI (UART)
SCI (UART)
USART (sincrnica)
IIC (I2C)
IIC (I2C)
Ethernet
Mdulos de criptografa
Stack TCP/IP (para mdulos ethernet)
IEEE 1149.1 Test Access Port (JTAG)
DMA Timers
QSPI (Queued SPI)
EzPort, para programar la memoria flash
interna desde flash externas en forma directa
LCD controllers
...
Arquitectura
MC9S08LC
60
MCF52235