00 IntroALosMicrocontroladores VA

71
Introducción a los Introducción a los microcontroladores José Miguel Gil-García

Transcript of 00 IntroALosMicrocontroladores VA

  • Introduccin a losIntroduccin a los microcontroladores

    Jos Miguel Gil-Garca

  • Microprocesador (MPU)Microprocesador (MPU) Dispositivo electrnico que ejecuta Dispositivo electrnico que ejecuta

    instrucciones

  • Microprocesador (MPU)Microprocesador (MPU) Cdigo (firmware) Cdigo (firmware)

    Datos

    Interfaz - Perifricos

  • MemoriasMemorias

  • Memorias no-voltilesMemorias no voltiles

  • Memorias voltilesMemorias voltiles

  • BloquesBloques

  • ALECOP P2000ALECOP P2000

  • Microcontroladores (MCU)Microcontroladores (MCU) C C

    DSP

  • BloquesBloques

    RAM

    ROM

    PERIFRICO #0

    PERIFRICO #nPERIFRICO #n

  • 80518051

  • Para qu un PC?Para qu un PC?

  • Para ayudarle a proteger su privacidad, PowerPoint evit que esta imagen externa se descargara automticamente. Para descargar y mostrar esta imagen, haga clic en Opciones en la barra de mensajes y, a continuacin, haga clic en Habilitar contenido externo.

    Dnde?Dnde? Dnde no? Dnde no?

  • CORECORE Define el juego de instruccionesDefine el juego de instrucciones

    8051ARM ARM Cortex-Mx

    Diferentes fabricantes

  • # de bits# de bits

    4,8,16 32 bits

  • RelojReloj Ciclo de instruccin Ciclo de instruccin

  • CISC vs RISCCISC vs. RISC

  • Harvard vs Von NeumannHarvard vs. Von Neumann Harvard Harvard

    Von Neumann

  • Big endian vs Little endianBig endian vs. Little endian Viajes de Gulliver Viajes de Gulliver Big endian (Motorola)

    Little endian (Intel) Little endian (Intel)

    Ej: 0x01234567

  • Perifricos IPerifricos I ComunicacionesComunicaciones

    UART (serie, COM) USB LIN CAN

    ETHERNET ETHERNET I2C SPISPI Zigbee Bluetooth

  • Perifricos IIPerifricos II Timers Timers LCDs ADC y DACs Moduladores de anchura de pulso Moduladores de anchura de pulso Comparadores analgicosg Controladores de teclado

  • Bajo consumoBajo consumo

  • Tecnologag

    http://en.wikipedia.org/wiki/File:Comparison_semiconductor_process_nodes.svghttp://www.eetimes.com/electronics-news/4155153/Managing-leakage-power-at-90-nm-and-belowhttp://www.eetimes.com/design/power-management-design/4012184/Minimizing-power-consumption-at-the-chip-level

  • XBOXXBOX Tecnologas ms pequeas requieren Vdd Tecnologas ms pequeas requieren Vdd

    ms bajas

  • Core PerifricosCore < >Perifricos Polling Polling Interrupciones DMA

  • Polling (sondeo)Polling (sondeo)

  • InterrupcinInterrupcin

  • Ejecucin secuencialEjecucin secuencial0000H

    FFFFH

  • IRQIRQ0000H

    SJMP INI

    LJMP ISRx VECTORES DE INTERRUPCIN

    INI:

    IRQ

    INTERRUPCIN

    1

    INTERRUPCINIRQ

    INTERRUPT REQUEST

    FCN2:

    RET

    FCN1:

    RETISRx:

    RETI

    FFFFH

  • ISRISR0000H

    SJMP INI

    LJMP ISRx VECTORES DE

    INI:

    LJMP ISRx C O SINTERRUPCIN

    FCN1:

    ISRx: PUSH PSW PUSH ACC .

    .

    2Salvar el contexto

    FCN2:

    RET

    RET

    ISRx: RUTINA DE SERVICIODE INTERRUPCIN

    . POP ACC POP PSW RETI

    Restaurar el contexto

    FFFFH

    RETI

    DE INTERRUPCIN(ISR)

    FFFFH

  • ContinuacinContinuacin0000H

    SJMP INI

    LJMP ISRx

    INI:

    IRQIRQ

    FCN2:

    RET

    FCN1:

    3

    RETISRx:

    RETI

    RUTINA DE SERVICIODE INTERRUPCIN(ISR)

    FFFFH

  • Proceso completoProceso completo0000H

    SJMP INI

    LJMP ISRx VECTORES DE INTERRUPCIN

    Habilitacin (mascara)

    INTERRUPCIN

    INI:

    IRQ

    INTERRUPCIN

    1

    - Individual- Global

    NMIP i id d INTERRUPCINIRQ

    ISRx: PUSH PSW PUSH ACC

    .

    2

    Prioridad

    FCN2:

    RET

    FCN1:

    . . POP ACC POP PSW RETI

    3

    RETISRx:

    RETI

    RUTINA DE SERVICIODE INTERRUPCIN(ISR)

    FFFFH

  • DesarrolloDesarrollo Firmware Firmware

  • Tool chainTool chain

  • IDEIDE

  • Ensamblador-compiladorEnsamblador compiladorCdigo fuente.C, .PAS...

    Cdigo fuente.ASM

    Compilar

    Cdigo fuente.ASM

    Ensamblar

    Cdigo objeto.OBJ

    Cdigo objeto.OBJ

    EnsamblarCdigo objeto

    .OBJCdigo objeto

    .OBJ

    Enlazar-Linkar Libreras.LIB

    Enlazar-Linkar Libreras.LIB

    Cdigo objetoejecutable

    Cdigo objetoejecutable

    A fomato Intel Hex

    A fomato Intel Hex

    OH

    Intel HexOH

    Cod ejecutable en Intel

    Hex

    Cod ejecutable en Intel

    Hex

  • DepuracinDepuracin Starter kits Starter kits 8 bits 28 32bits 15

  • Kits de desarrolloKits de desarrolloPandaboard 174$Pandaboard 174$

  • Kits de desarrolloKits de desarrollo

  • ProgramadorProgramador Externo Externo ISP

    Emulador

  • 80518051

  • 80518051 En modo microcontrolador En modo microcontrolador

  • 80518051 En modo microprocesador En modo microprocesador

  • 80518051

  • 8051 pinout8051 pinout

  • MemoriaMemoriaFFFFH FFFFH

    MOVC MOVX

    EXTERNAL ROMUpto 64KB

    EXTERNAL RAMUpto 64KB

    MOVMOVCUpto 64KB Upto 64KB

    SPECIAL FUNCTION REGISTERSRAM

    FFH FFH

    INTERNAL ROM4K,8K,12KB..

    RAM(128)

    7FH80H80H

    0000H 0000H00H

  • Memoria

    T

    A

    C

    C

    E

    S

    S

    C

    T

    A

    C

    C

    E

    S

    S

    D

    I

    R

    E

    C

    T

    I

    N

    D

    I

    R

    E

    C

    T

    &

    A

    C

    C

    E

    S

    S

    D

    I

    R

    E

    C

    T

    I

    N

    D

    I

    R

    E

    C

    T

    A

  • SFRsB

    P3

    IPPSW

    ACCB

    SBUF

    P2

    IE

    P3

    TH0

    TH1P1

    SCON

    TMOD

    TL0

    TL1

    TH0

    DPL

    PCON

    DPH

    TCON

    P0

    SP

    DPL

  • Tipos de direccionamientoTipos de direccionamiento Inmediato Inmediato

    DirectoDirecto

  • Tipos de direccionamientoTipos de direccionamientoIndirectoIndirecto

  • Tipos de direccionamientoTipos de direccionamiento Registro base ms ndice Registro base ms ndice

    Matrices

    TABLA DB: 23H,15H,22H,0FEH,00H,AAH

  • Instrucciones aritmticas

  • Instrucciones lgicasInstrucciones lgicas

  • Instrucciones transferencia

  • Instrucciones booleanasInstrucciones booleanas

  • Instrucciones control flujoInstrucciones control flujo

  • Instrucciones control flujoInstrucciones control flujo

  • Aspecto de un programaAspecto de un programa[Etiqueta:] INSTR OP1,OP2 ;Comentario

    INSTR OP1INSTR ;Comentario;

    [Etiqueta:] INSTR OP1INSTRINSTR OP1,OP2 ;ComentarioINSTR OP1INSTR ;Comentario

    [EtiquetaDeNombreMuyLargo:]INSTR OP1INSTR

  • EjemplosEjemplos If then else (BITs) If then else (BITs)

  • If then else (BYTE)If then else (BYTE)

    if (R0==15){if (R0==15){//unas cosas

    }else{//u otras//u otras

    }

  • If then else (BYTE)If then else (BYTE)

    if (R0

  • If then else (BYTE)If then else (BYTE)

    if (R0

  • forfor

    for (R0=0;R0

  • Relacin temporalRelacin temporal

  • Relacin temporalRelacin temporal

  • Direccionamiento indirectoDireccionamiento indirecto Poner a 0 la memoria RAM interna Poner a 0 la memoria RAM interna

    !?

  • AritmticasAritmticas ACC= ACC= B= R0= R1= R1= R7=

  • LgicasLgicas ACC= ACC= R0= R1= P3= P3= C=

  • ACC= (hex) ACC= (hex) B= R1= (oct)

    Feb 11-12

  • B= B= R1= ??=(oct)

    ?? Para que no cambie P2 Jul 11-12