SISTEMA DIGITALES 1 UNIDAD 4: MICROCONTROLADORES · PDF fileIntroducción Uso de los...

Click here to load reader

  • date post

    25-May-2018
  • Category

    Documents

  • view

    218
  • download

    0

Embed Size (px)

Transcript of SISTEMA DIGITALES 1 UNIDAD 4: MICROCONTROLADORES · PDF fileIntroducción Uso de los...

  • SISTEMA DIGITALES 1 UNIDAD 4: MICROCONTROLADORES

  • Temas tratados

    Introduccin

    Arquitectura de un microcontrolador. Procesador. Memorias. Reloj. Mdulos de entrada y salida digital (repaso).

    Implementacin de Redes de Petri en lenguaje C

    Interrupciones. Diseo de la aplicacin. Programacin en modo encuesta y por interrupciones. Administracin de las interrupciones. Criterios de diseo.

    Conversin analgica-digital. Mtodos de conversin. Multiplexado de canales. Conversin digital-analgica.

    Temporizadores. Fuentes de reloj. Pre-escalado y resolucin. Funciones de captura y salida automtica. Modulacin de ancho de pulso.

  • Introduccin

    Ejemplo. Se quiere:

    Leer peridicamente 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

    REPASO

  • Introduccin

    Un diseo discreto requera: 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)

    REPASO

  • Introduccin

    Diseo

    discreto.

    REPASO

  • Introduccin

    Diseo

    Integrado. ATmega16 (atmel)

    REPASO

  • Introduccin

    Uso de los microcontroladores

    Microondas, Lavarropas, Televisores, ...

    Automviles, aviones, barcos

    Telfonos

    Automatizacin industrial

    Pequeos dispositivos ad-hoc

    ...

    REPASO

  • Cada fabricante tiene una oferta estructurada por familias y subfamilias.

    Cada familia tiene el mismo ncleo del procesador (o al menos con compatibilidad de cdigo). El diseo del procesador puede ser propio o de terceros (caso ARM).

    Pueden ser familias orientadas a la aplicacin

    O por performance (de diferente tipo)

    REPASO

    Introduccin

  • Ejemplo: oferta NXP de microcontroladores

    Basados en arquitecturas ARM (varias sub familias)

    Basados en Power Architecture

    Basados en arquitecturas Coldfire de 32 bits

    Basados en arquitecturas S12, HC08, HCS08, 80C51, etc. de 8 y 16 bits

    Con inclusin de procesadores de seal en el chip (DSC)

    De aplicacin muy especfica (encriptado, wireless, etc.)

    REPASO

  • Seleccin de Microcontroladores

    REPASO

  • Seleccin de microcontroladores

  • Seleccin de microcontroladores

  • Seleccin de microcontroladores

  • Seleccin de microcontroladores

  • Seleccin de microcontroladores

  • kit FRDM-KL46Z MCU: Familia KL46

  • Arquitectura

    IA SD1 SD2

    REPASO

  • Arquitectura

    REPASO

  • Memorias en el MCU

    Registros (memoria de corto plazo): Pequea (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.

    REPASO

  • Memoria: Tipo fsicos

    REPASO

  • Memoria

    S/DRAM: sin limite de escrituras

    EEPROM: 100.000 ciclos de borrado

    Flash: 10.000 ciclos de borrado

    REPASO

  • Memoria: Direccionamiento

    Separado:

    Cada tipo fsico se direcciona por separado (por ejemplo, usando diferentes registros ndices)

    Hay direcciones repetidas

    Contnuo:

    Se accede siempre igual y la lgica interna accede a la memoria que corresponde

    No hay direcciones repetidas

    REPASO

  • Memoria: Direccionamiento

    Separado

    REPASO

  • Memoria: Direccionamiento

    Continuo

    REPASO

  • Memoria:

    Anlisis terico:

    Codifico: for (i=100;i>=0;i--){ algn cdigo} 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)

    En cuanto tiempo me quedo sin microcontrolador?

    REPASO

  • Arquitectura

    CISC vs. RISC Von Neuman vs. Harvard Tamao/variedad de las

    instrucciones 8/16/32 bits

    Algunos conceptos bsicos:

    REPASO

  • Arquitectura

    Arquitectura Von Neuman

    Procesador(CPU)

    Bus de Direcciones

    Memoria de Datos y Programa

    (RAM)

    Bus de Datos

    Memoria de Programa(ROM)

    Procesador(CPU)

    Bus de Direcciones

    Memoria de Datos(RAM)

    Bus de Datos

    REPASO

    Algunos conceptos bsicos:

  • Arquitectura

    Arquitectura Harvard

    Procesador(CPU)

    Memoria de Datos(RAM)

    Bus de Direcciones

    Memoria de Programa(ROM)

    Bus de direcciones

    Bus de Datos (Instrucciones)

    Bus de Datos (datos)

    REPASO

    Algunos conceptos bsicos:

  • Arquitectura

    Ejemplo: ARM Cortex M4 Harvard 32 bits (simplificado)

    Debugging

    Alta velocidad

  • Arquitectura: Procesador

    Tamao/variedad de las instrucciones

    8/16/32 bits

    REPASO

  • (Ao 2014)

    REPASO

    Arquitectura: Procesador Tamao/variedad de las instrucciones

    8/16/32 bits

  • Arquitectura: Procesador

    Tamao/variedad de las instrucciones

    8/16/32 bits

    REPASO

  • Arquitectura: Procesador

    Tamao/variedad de las instrucciones

    8/16/32 bits

    REPASO

  • Ejemplo: registros en arquitectura ARMv6m

  • EJEMPLO: del manual de referencia de arquitectura ARMv6-M

  • Arquitectura: Procesador

    Sobre las instrucciones Por stack

    Por acumulador

    Dos direcciones

    Tres direcciones (A+B)*C

  • Arquitectura: Procesador

    Modos de direccionamiento

  • Ejemplo: registros e instrucciones en arquitectura ARMv6m

    Veamos un programa corriendo . . .

  • Fuentes de reloj en los MCU Los diferentes mdulos que componen el

    microcontrolador requieren diferentes relojes para su operacin.

    En general, existe un mdulo generador de reloj SCG (System Clock Generator) MCG (Multipurpose Clock Generator) que provee las diferentes seales necesarias.

    Como cualquier mdulo, las frecuencias que produce el SCG pueden ser programadas/seleccionadas mediante el seteo de registros.

    Sin embargo, el cambio de frecuencias puede requerir un proceso que involucra varias etapas mas que el simple cambio de valores en un registro.

  • Fuentes de reloj en los MCU

    Ejemplo: distribucin de seales de reloj en el MCU MCF51AC256

  • Fuentes de reloj en los MCU

    Ejemplo: generacin de seales de reloj en el MCU KL46Z

    frecuencias al reset?

  • Ver valores luego de un reset

  • Modos/estados de operacion

    Los MCU pueden ponerse en diferentes estados de operacin acorde a las necesidades de la aplicacin.

    Normalmente los estados estn relacionados con el consumo de energa

    Ejemplo: (MC9S08JM60) RUN MODE: modo normal de ejecucin; todos los relojes y

    mdulos funcionando

    Active Background Mode: modo de depuracin on-chip

    WAIT MODE: el CPU se detiene y vuelve al trabajo con una interrupcin

    3 STOP modes: en estos modos, diferentes relojes (mdulos) son apagados; normalmente se mantienen los valores de registros, RAM y pines de I/O

  • Entrada/Salida digital

    REPASO

  • Digital I/O

    Implementadas por pines de conexin directa al exterior: Se agrupan en ports de a 8 / 32 pines.

    En general, los pines se pueden configurar como entrada o salida

    La lgica puede ser positiva o negativa.

    Los pines pueden tener (generalmente tienen) otras funciones alternativas.

    REPASO

  • Digital I/O

    pin 1 del port B Mdulo de Interrupcin 1 - entrada 5 Pin Tx de puerto serie

    Conversor AD canal 5

    REPASO

  • Digital I/O

    Los pines se controlan mediante 2 o 3 registros, como mnimo. Funcionalmente:

    Data Direction Register (DDR): hay uno por cada puerto y cada bit determina la direccin 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

    REPASO

  • Digital I/O

    (del manual de referencia del MCU)

    Solo dos registros

    REPASO

  • Digital I/O

    REPASO

  • Digital I/O

    PTBDD = 0x80; // initialize PTB7 as output

    PTBD = 0; // initialize PTB to 0

    PTBD_PTBD7 = ~PTBD_PTBD7; // invert the output

    1 0 0 0 0 0 0 0

    Ejemplo: bit 7 bit 0

    REPASO

  • Digital I/O

    (del manual de referencia del MCU)

    6 Registros para el port B FREESCALE KL46Z

    REPASO

  • Digital I/O

    GPIOB_PDDR =0x0080; // initialize PTB7 as output

    // mejor: GPIOB_PDDR | = (1

  • Digital I/O:

    Otros registros relacionados: Pin Control Register n (PORTx_PCRn):

    define Interrupt Status Flag and Clear -Interrupt configuration - Pin function (multiplexer) - Driver strength - Filter control - Slew rate - Pullup/down resistor

    Syste