Introducci - PowerPoint PPT Presentation

1 / 104
About This Presentation
Title:

Introducci

Description:

... (CAD) La velocidad de muestreo determina la m xima ... una variaci n de una entrada digital o ... niveles de iluminaci n en LCDs, control de motores, ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 105
Provided by: JavierGB
Category:

less

Transcript and Presenter's Notes

Title: Introducci


1
Introducción a los Microcontroladores
2
Introducción a los Microcontroladores
  • Introducción
  • Arquitectura
  • Memoria
  • I/O
  • Interrupciones
  • Timers/PWM
  • Interfaces y Otros Periféricos

3
Introducción
  • Uso de los microcontroladores
  • Microondas, Lavarropas, Televisores, ...
  • Automóviles, aviones, barcos
  • Teléfonos
  • Automatización industrial
  • Pequeños dispositivos ad-hoc
  • ...

4
Introducción
  • Ejemplo. Se quiere
  • Leer periódicamente una temperatura
  • Prender y apagar un calefactor
  • Mostrar en un display la temperatura
  • Permitir al usuario ajustar la temperatura
  • Posibilidad de actualizar la funcionalidad con un
    interfase serie

5
Introducción
  • Diseño discreto. Se requiere
  • Un microprocesador
  • 20 líneas 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)

6
Introducción
  • Diseño discreto.

7
Introducción
  • Diseño Integrado.

ATmega16 (atmel)
8
Oferta de Microcontroladores
  • Estructurada por familias y subfamilias.
  • Por ejemplo, cada familia tiene el mismo nucleo
    del procesador (su código será compatible)
    8051,PIC,HC,ARM
  • O son familias orientadas a la aplicación
  • O por performance (de diferente tipo)

9
Oferta de Microcontroladores
10
Oferta de Microcontroladores
11
Oferta de Microcontroladores
12
Oferta de Microcontroladores
  • Dentro de cada familia hay mucha varidad de
    dispositivos
  • Pueden estar agrupados en subfamilias
  • Una forma de clasificación es en base a los
    perifericos que integran o memoria

13
Oferta de Microcontroladores
  • MC9RS08KA Family

14
Arquitectura
15
Arquitectura Procesador
REPASO
16
Arquitectura
  • Von Neuman vs. Hardvard
  • CISC vs. RISC
  • Tamaño/variedad de las instrucciones
  • Velocidad clock 8/16/32 bits

17
Arquitectura
REPASO
  • de las instrucciones
  • Por stack
  • Por acumulador
  • Dos direcciones
  • Tres direcciones

18
Arquitectura
REPASO
  • Modos de direccionamiento

19
Memoria
  • Registros (memoria de corto plazo)
  • Pequeña (relativamente)
  • Almacenamiento temporario p/CPU
  • Memoria de datos
  • Relativamente Grande
  • Almacena datos mientras el MCU funciona
  • Memoria de programa
  • Relativamente Grande
  • De preferencia, mantiene el programa incluso con
    el MCU apagado.

20
Memoria Tipo físicos
REPASO
21
Memoria Atención
  • S/DRAM sin limite de escrituras
  • EEPROM 100.000 ciclos de borrado
  • Flash 10.000 ciclos de borrado

22
Memoria Direccionamiento
  • Separado
  • Cada tipo físico se direcciona por separado (por
    ejemplo, usando diferentes registros índices)
  • Hay direcciones repetidas
  • Contínuo
  • Se accede siempre igual y la logica interna
    accede a la memoria que corresponde
  • No hay direcciones repetidas

23
Memoria Direccionamiento
  • Separado

24
Memoria Direccionamiento
  • Continuo

25
Memoria ejercicio
  • For (i100igt0i--)
  • Inadvertidamente i es almacenada en EEPROM
  • Inadvertidamente i esta implementada como
    unsigned
  • Como la EEPROM es lenta, cada iteración 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)
  • En cuanto tiempo me quedo sin microcontrolador?

26
I/O
27
Digital I/O
  • Implementadas por pines de conexión directa al
    exterior
  • Los MCU tienen en general de 8 a 32 pines (o
    más).
  • Se agrupan en ports de a 8 pines.
  • En general, los pines se pueden configurar como
    entrada o salida
  • La lógica puede ser positiva o negativa.
  • Los pines pueden tener otras funciones
    alternativas.

28
Digital I/O
29
Digital I/O
  • Los pines se controlan mediante 3 registros
  • Data Direction Register (DDR) hay uno por cada
    puerto y cada bit determina la dirección de un
    pin.
  • Port Register (PORT) uno por cada puerto y cada
    bit controla el estado del puerto (si es de
    salida)
  • Port Input Register (PIN) uno por cada puerto y
    cada bit da el estado de su respectivo pin, esté
    este configurado como entrada o salida.

30
Digital I/O
31
Digital I/O
32
Digital I/O
Ejemplo
PTBDD 0x80 // initialize PTB7 as output PTBD
0 // initialize PTB to 0 PTBD_PTBD7
PTBD_PTBD7 // invert the output
33
Digital I/O
  • PORT Register de preferencia debe escribirse con
    operaciones de escritura de bit, si estan
    disponibles
  • Caso contrario usar Read-Modify-Write con
    cuidado.

34
Digital Input
  • La entrada se muestrea con cada pulso (flanco
    ascendente normalmente) del clock, lo que
    ocasiona metaestabilidad

35
Digital Input
  • Normalmente incorporan un Schmitt-trigger.
  • Para reducir la metaestabilidad se introducen
    sincronizadores

36
Digital Input
  • Cancelación de ruidos
  • Resistencias de pull-up/down en las entradas
    puede (debe) programarse su conexión/desconexión
    (a veces mediante el registro PORT).

37
Digital Output
  • Apenas el DDR setea un pin como salida, el MCU
    excita el pin de acuerdo al contenido del
    registro PORT correspondiente.
  • Cuidado con los cortocircuitos
  • Orden de seteo de DDR y PORT

38
Analog I/O
  • Conversión DIGITAL a ANALOGICA
  • Usando un modulador de ancho de pulso

39
Conversión DIGITAL a ANALOGICA
REPASO
  • Por redes del tipo R-2R. Para r bits sería

40
Conversión Analógica-Digital (CAD)
  • Comparador determina si V1 gtV2 y arroja 1, ó 0
    en caso contrario.

41
Conversión Analógica-Digital (CAD)
REPASO
  • Conversion de valor

42
Conversión Analógica-Digital (CAD)
REPASO
  • La velocidad de muestreo determina la máxima
    frecuencia posible de muestrear (fmaxltfs/2).
    Además, hay que tener en cuenta el tiempo que
    puede llevar la conversión.
  • La conversion lleva tiempo para asegurar la
    estabilidad se usa una etapa de retención
    (sample-hold)

43
Conversión Analógica-Digital (CAD)
REPASO
  • Directa (flash) muy rápida (1 bit time) muy cara

Este modo de conversión rápido es utilizado en
algunos MCU y por lo general, no hay mas de 1 o 2
canales rápidos.
44
Conversión Analógica-Digital (CAD)
REPASO
  • Seguidor (tracking) muy lenta (2r bit times) y
    variable barata.

45
Conversión Analógica-Digital (CAD)
REPASO
  • Aproximaciones sucesivas velocidad media y fija
    en r1

Este es el modo mas utilizado
46
Conversión Analógica-Digital (CAD)
  • Control del CAD

47
Conversión Analógica-Digital (CAD)
  • Los MCU pueden tener de 4 a 16 o más entradas
    (canales) y un solo CAD, de 8 a 12 bits de
    precisión.
  • Se multiplexan los canales (aumentan los tiempos)
  • Autoincremento al leer un canal, se pasa al
    siguiente y se efectúa un SC automáticamente.
  • Existe el modo contínuo y de disparos sucesivos
    mediante el RTC
  • Una conversión puede dispararse por eventos
    como un timer, una variación de una entrada
    digital o una señal externa.

48
CAD Ejemplo de características en un MCU
  • Linear successive approximation algorithm with 12
    bits resolution.
  • Up to 28 analog inputs.
  • Output formatted in 12-, 10- or 8-bit
    right-justified format.
  • Single or continuous conversion (automatic return
    to idle after single conversion).
  • Configurable sample time and conversion
    speed/power.
  • Conversion complete flag and interrupt.
  • Input clock selectable from up to four sources.
  • Operation in wait or stop3 modes for lower noise
    operation.
  • Asynchronous clock source for lower noise
    operation.
  • Selectable asynchronous hardware conversion
    trigger.
  • Automatic compare with interrupt for less-than,
    or greater-than or equal-to, programmable value.

49
CAD Ejemplo de implementación en un MCU
50
CAD Ejemplo de un registro de configuración
51

// Configures ADC peripheral (ADC clock
6.25MHz) // Bus clock as clock source, 12-bit
conversión and divisor4 ADCCFG 0x44
52
Conversión Analógica-Digital
53
Conversión Analógica-Digital
54
Introducción a los Microcontroladores
  • Introducción
  • Arquitectura
  • Memoria
  • I/O
  • Interrupciones
  • Timers
  • Interfaces y Otros Periféricos

55
Interrupciones
  • Un programa sin uso de interrupiones (polling)

inconvenientes?
56
Interrupciones
  • Con interrupciones

57
Interrupciones
REPASO
  • Las interrupciones se generan cuando cuando
    cambia un estado.
  • Permiten la reacción ante eventos
  • Restricciones de tiempo real
  • Polling vs. Interrupts
  • Interrupt Service Routine (ISR)

58
Interrupciones
  • Control de Interrupciones
  • Interrupt Enable (IE) bit que se setea para
    habilitar al controlador que llame a la ISR
    cuando se produce el evento.
  • Interrupt Flag (IF) lo setea el MCU cuando se
    produce el evento. Se limpia automatica o
    manualmente.
  • Interrupt mode (IM) mas de un bit para indicar
    si la interrupcion se produce por flanco
    ascendente, descendente, , etc.
  • Global Interrupt Enable.

59
Interrupciones
  • Control de Interrupciones
  • Inhabilitar las interrupciones no implica perder
    eventos.
  • Cuidado al limpiar la IF
  • Normal Interrupts and NMI

60
Interrupciones
REPASO
  • Interrupt Vector Table es una tabla donde se
    indica para cada interrupcion en donde se
    encuentra la ISR que la atiende.
  • Puede contener la dirección de la primera
    instrucción de la ISR respectiva o una instrucion
    jump (JSR) a la ISR (depende el MCU)

61
Interrupciones IVT
  • En el Atmega128 (Atmel)

62
MC9S08QG8 (Freescale)
63
Interrupciones
  • Prioridades fijas o variables
  • Dentro de una ISR se puede establecer cuales
    interrupciones se permiten (sin hacerlo a mano
    vía los IE)
  • Cancelación de ruidos
  • Eventos internos

64
Interrupciones
  • Pasos que ocurren ante una interrupción
  • MCU setea la IF (esté o no habilitada la
    interrupción
  • Se termina la instrucción en curso o si el MCU
    está en estado sleep, se despierta.
  • Se identifica la ISR considerando los IE y la
    interrupcion de mas alta prioridad (si hay mas de
    un IF seteado).
  • Se llama a la ISR (... y ya pasó un tiempito)

65
Interrupciones
  • Ejemplo

El controlador de interrupciones 1 (KBI1) tiene 8
entradas conectadas a determinados puertos
66
Interrupciones
  • Registros de control (ubicación en la memoria)
  • Son 3

67
Interrupciones
68
(No Transcript)
69
Interrupciones
  • Mapeo a variables

70
Interrupciones
  • Ejemplo inicialización

void InitKBI() /KBI1 Init/ KBI1SC_KBIE
0 // Mask KBI1
interrupts KBI1ES_KBEDG3 0
// KBI1P3 internal pull-up, falling edge/low
level KBI1ES_KBEDG2 0
// KBI1P2 internal pull-up, falling edge/low
level KBI1PE_KBIPE3 1
// Enable KBI1P3 interrupts KBI1PE_KBIPE2
1 // Enable KBI1P2
interrupts KBI1SC_KBIMOD 0
// Detect edges only KBI1SC_KBACK 1
// Clear possible false
interrupts KBI1SC_KBIE 1
// Enable KBI1 interrupts //end InitKBI
71
Interrupciones
  • Atención de la interrupción

72
Interrupciones
Alternativa Se le puede definir al linker
(archivo .prm) que guarde la direccion de la
funcion directamente VECTOR ADDRESS 0xFFDA
KBIx-ISR Y entonces la sintaxis
queda interrupt void KBIx_ISR(void) ...
73
Interrupciones
  • En el main

74
Interrupciones
75
Interrupciones
  • Polling vs. Interrupts
  • Siempre hay que analizar la situación puntual,
    pero en general, usar interrupciones cuando
  • Los eventos son infrecuentes
  • Hay mucho tiempo entre eventos
  • El cambio de estado es importante
  • Quiero detectar impulsos cortos
  • Hay eventos generados por hardware (no hay
    rebotes o picos)
  • Hay muy poco para hacer así que conviene estar en
    modo sleep

76
Interrupciones
  • Conviene polear cuando
  • El operador es humano
  • No se requiere una temporización precisa
  • El estado es mas importante que el cambio
  • Los impulsos duran mucho
  • Hay ruido en la señal
  • Hay cosas para hacer en el main (pero no
    demasiado)

77
Introducción a los Microcontroladores
  • Introducción
  • Arquitectura
  • Memoria
  • I/O
  • Interrupciones
  • Timers
  • Interfaces y Otros Periféricos

78
Timers
  • Son contadores que suben o bajan con cada pulso
    de reloj.
  • El valor actual se lee de un registro o se setea
    en el mismo.
  • Cuidado al acceder a timers con longitud de
    registro mayor a la palabra del MCU

79
Timers
  • Los timers generalmente generan una interrupción
    cuando hacen overflow
  • Esto sirve para generar señales o eventos
    peródicos (con acotada precisión)
  • Pueden tener una señal de clock independiente del
    MCU. Con ella se incrementa la cuenta.

80
Timers
  • Prescaler
  • Es otro contador (de 8 o 10 bits) que trabaja
    contra el clock y produce una salida que es la
    que entra al timer.
  • Se logra una extension de tiempos a medir por la
    division del prescaler. Ejemplo
  • 8 bit timer, clock de 1 Mhz -gt cuenta máxima 255
    uS con una resolución de 1 uS
  • 8 bit timer, clock de 1 Mhz, prescaler en 1024 -gt
    cuenta máxima 260 ms con una resolución de 1 ms.

81
Timers
  • Otras fuentes de cuenta
  • Pulsos externos
  • Cristal externo generlamente de 32.768 KHz que
    implementa otro RTC independiente en el MCU
  • Timestamp (input capture)
  • Puede setearse un evento para que automáticamente
    se copie el valor del contador en un registro de
    captura. Ejemplo cuando un comparador cambia,
    tomar la cuenta.
  • Disparo de salida (output compare)
  • Se setea el timer una cuenta y cuando se
    alcanza, automáticamente se levanta una salida, o
    similar.

82
Timers
  • Ejemplo de registros (un solo timer)

Este timer es muy versátil y trabaja tambien como
PWM
83
(No Transcript)
84
Timers
85
Timers
86
Timers
  • Ejemplo de uso simple

ClockBUSclkgt8 Mhz
87
Introducción a los Microcontroladores
  • Introducción
  • Arquitectura
  • Memoria
  • I/O
  • Interrupciones
  • Timers
  • Interfaces y Otros Periféricos

88
Modulación de Ancho de Pulso (PWM)
  • Es un timer que genera una señal periódica de
    salida con período y ciclo de trabajo
    configurables

89
Modulación de Ancho de Pulso (PWM)
  • Además de su uso como CDA, los PWM se usan para
    controlar ABS en autos, niveles de iluminación en
    LCDs, control de motores, etc.

90
Timers y PWM
91
Otras características
  • RTC (Real Time Counters)
  • Watchdog
  • Consumo reduccion de tensión, frecuencia y modo
    sleep
  • Reset, POR y BOR
  • External, Internal (software) Reset
  • Keyboard interrupts

92
Interfaces y Otros Periféricos
  • SCI (UART)
  • Provee una (o mas) interface de comunicación
    asincrónica serie (UART) por medio de dos hiloas
    (Tx y Rx)
  • Parámetros comunes full o half duplex, data
    bits, parity bits, stop bits, baud rate

93
Interfaces y Otros Periféricos
  • SCI (UART)
  • Generalmente los modulos generan interrupciones
    (fin de transmisión, recepción, etc.)
  • De las SCI del MCU se pueden generar con
    componentes externos interfases físicas RS232,
    RS422, RS485, etc.
  • USART (sincrónica)
  • Agrega un hilo para sincronismo, el cual es
    generado por una de las partes
  • Si se usa como UART, el pin se puede usar como
    I/O

94
Interfaces y Otros Periféricos
  • SPI (Serial Peripherical Interface)
  • Para comunicación serie mediante 4 hilos basada
    en master-slave
  • MOSI Master Out Slave In
  • MISO Master In Slave out
  • SCK System Clock, generado por el master
  • SS Slave select. Si hay mas de una linea, con un
    decodificador externo se pueden atender 2n slaves.

95
Interfaces y Otros Periféricos
96
Interfaces y Otros Periféricos
  • IIC (I2C)
  • Inter-IC bus, de Phillips, es un bus sincrónico
    que opera en modo master-slave con dos hilos SCL
    y SDA en modo half duplex, para distancias
    cortas, hasta 3.4 Mbps, mediante el intercambio
    de tramas.
  • No hay límites al numero de dispositivos a
    conectar (capacidad total en el bus lt 400pF)
  • Cada nodo (uno debe ser master, por lo menos)
    tiene una dirección de 7 o 10 bits

97
Interfaces y Otros Periféricos
  • IIC (I2C)

98
Interfaces y Otros Periféricos
  • Ethernet
  • Implementación de 10/100/1000 Ethernet MAC con
    PHY
  • Para conexiones a redes de area local estándar
  • CAN (Controller Area Network) de Bosh y Flexcan
  • Originalmente diseñado para su uso en automoviles
    y ahora extendido a otras areas, permite la
    comunicación por bus en 1 Mbps hasta 40 m.
    mediante broadcast.

99
Interfaces y Otros Periféricos
  • Módulos de criptografía
  • Stack TCP/IP (para módulos 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
  • ...

100
Interfaces y Otros Periféricos
101
Arquitectura
102
(No Transcript)
103
MC9S08LC60
104
MCF52235
Write a Comment
User Comments (0)
About PowerShow.com