ARG001 Class

122
105 ASP Comenzando con la Arquitectura Y Periféricos de Arquitectura Y Periféricos de Línea Base en Assembler © 2007 Microchip Technology Incorporated. All Rights Reserved. Slide 1 105 ASP

description

microcontroladores

Transcript of ARG001 Class

  • 105 ASPComenzando con la

    Arquitectura Y Perifricos deArquitectura Y Perifricos de Lnea Base en Assembler

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 1105 ASP

  • Objetivos del curso

    A finales del hoy usted debe poder:

    Entienda la arquitectura de los qMicrocontroladores PIC Lnea Base

    - Sepa programar los perifricos de la familia deSepa programar los perifricos de la familia de Lnea Base

    Sepa escribir y eliminar errores de los tili l it tprogramas que utilizan la arquitectura y

    perifricos de Lnea Base

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 2105 ASP

  • Agenda del Curso

    z Introduccin a la Arquitectura de los Microcontrladores PIC Linea BaseMicrocontrladores PIC Linea Base

    z Caractersticas Especialespz Perifricos de la familia Linea Base

    Puertos I/O Puertos I/O Timer 0 Conversor ADC ComparadorComparador

    z Metiendo las manos Laboratorios que se ejecutan con cada perifrico

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 3105 ASP

    ejecutan con cada perifrico

  • Introduccin a losIntroduccin a los Microcontroladores PIC

    Lnea Base

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 4105 ASP

  • Microcontroladores PIC Linea Base Resumen

    PROGRAMMEMORY Motor de funcionamiento

    DATAMEMORYOscillatorNo Volatil

    V l il

    del Microcontrolador

    Working

    STATUSContiene las

    instrucciones

    VolatilContiene d t d

    OPTIONdel Programa

    que le dicea la CPU

    datos decontrol dde

    lasCPUque hacer instrucciones

    El cerebro ejeucuta todaslas instruccines, lgica, y proceso matemtico

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 5105 ASP

    y p

  • Memoria de Programa

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 6105 ASP

  • Organizacin de la Memoria de Programag

    Almacena las instrucciones de su cdigo Page 0

    Dice a la CPU que hacer

    El Set de Instrucciones del PICEl Set de Instrucciones del PIC Tienen todas de12-bits

    1 instruccin = 1 Direccin de 1024 x 12-bits

    Memoria de ProgramaDividida en Pginas Page 1

    La cantidad de memoria de programa depende del

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 7105 ASP

    programa depende del dispositivo

  • Porqu paginacin de la memoria del programap g

    Con una instruccin de 12 bits solamente 9 bits pueden ser usadospara especificar una a direccin de memoria de programa

    Instruccin GOTO en Memoria de ProgramaInstruccin GOTO en Memoria de Programa01234567891011

    Opcode

    gg

    0 0 0 0 1 0 1 0 1

    929 = 512 = nmero de direcciones de memoriaaccedidos por un operando de 9-bit

    Algunos programas necesitan mas que512 direcciones de memoria de programa !

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 8105 ASP

  • Contador de ProgramaProgram Counter

    0 00123456789

    0 0 0 0 0 0 0 0

    Program Counter

    1 0 011 0111 0 11 1 01 1 1Program

    PCLz 10-bit PC

    Program Memory

    210 = 1024 direcciones de memoria

    z Contiene la direccin de la siguientez Contiene la direccin de la siguienteinstruccin

    z Funciona libremente a travs de los Lmites de la pgina

    z Eventos que modifican la secuencia del PC: Instrucciones: CALL, GOTO, RETLW Cualquier instruccin que usa el PCL como un

    operando

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 9105 ASP

    operando

  • Usando el STATUS como Registro Selector de pginas de Programap g g

    GPWUF CWUF PA0 TO PD Z DC CSTATUS

    z PA0: Bit de preseleccin Program Memorypde Pgina de Programa

    GPA0 0 PA0 = 1

    z Pgina 1(200h 3FFh)

    PAGE0PA0 = 0

    z Pgina 1(200h 3FFh)

    PA0 = 0z Pgina 0(000h 1FFh) PAGE1PA0 = 1

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 10105 ASP

  • Como se implementa la Paginacin

    01234567891011

    OpcodePA0

    Instruccin GOTO en Memoria de ProgramaInstruccin GOTO en Memoria de Programa

    0 0 0 0 0 1 0 1 0 10PA0STATUS

    p

    0123456789

    0 0 0 0 0 0 1 0 1 1

    Direccin EfectivaDireccin Efectiva

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 11105 ASP

    Contador de Programa

  • El Registro STATUS

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 12105 ASP

  • Registro Status

    GPWUF CWUF PA0 TO PD Z DC C

    STATUS

    Zero bit (Z): result of arithmetic/logic operation is zeroCarry/borrow (C)( ) g pi.e. 1 1 = 0 (Z = 1)

    move zero value into a register (Z = 1)z Contiene:

    Bits del estado Aritmtico

    y ( )Suma: Indica cuando el resultado excede 255 (28 1)

    125 + 140 = 265 (C = 1)Rotar a la derecha o izquierda: M C d t d l b l b d l i t

    C01010101Rotate RightRotate Left

    El estado de RESET Seleccin de Pgina de Memoria de Programa

    125 + 140 = 265 (C = 1)125 + 125 = 250 (C = 0)Mueve C dentro del msb o lsb del registro

    C01010101 Flags para despertar desde el SLEEPResta: Indica cuando hay un resultado negativo

    1 0 1 0 1 0 1 0C 1 0 1 0 1 0 10 C 1 0 1 0 1 01 0 C 1 0 1 0 10 1 0 C 1 0 1 01 0 1 0 C 1 0 10 1 0 1 0 C 1 01 0 1 0 1 0 C 10 1 0 1 0 1 0 CMSB LSB

    125 - 140 = -15 (C = 0)125 - 120 = 5 (C = 1)

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 13105 ASP

  • Memoria de Datos

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 14105 ASP

  • Organizacin de la Memoria de Datos

    z Agrupados en BANK of Data Memoryz Agrupados en BANCOS

    SFR

    z Contiene

    SFR

    Registros de FuncionesFunciones Especiales (SFR) Registros de GPR Registros de Propsitos Generales (GPR)

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 15105 ASP

    (GPR)

  • Registros de Funciones Especiales

    z Controlan las funciones de la CPU and Perifricos

    PIC12F510 Memoria de datos

    de la CPU and Perifricos Controlan la operacin del

    dispositivo

    INDFTMR0

    0001

    dispositivo

    SFR direccionado como

    PCLSTATUS

    FSR

    020304z SFR direccionado como

    fijoFSR

    OSCCALGPIO

    040506

    z El nmero de SFRs es CM1CON0ADCON0

    0708

    especfico del dispositivo ADRES09

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 16105 ASP

  • Registros de Propsito General

    z Almacenan DatosC t l l

    BANCOde Memoria de Datos

    z Controlan la informacin de un comando de las i t i

    SFRsinstrucciones

    z Almacenan variablesz Almacenan variables definidas por el Usuario

    Di i i G Direccionamiento seleccionable

    z El nmero de GPRs

    GPREl nmero de GPRs es especfico del device

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 17105 ASP

  • Organizacin de la Memoria de DatosBank 0 Bank 1

    INDFTMR0PCL

    STATUS

    00010203

    Bank 0INDFTMR0PCL

    STATUS

    INDFTMR0PCL

    STATUS

    z Los registros de memoria de ciertos datos son accedidos

    20212223STATUS

    FSROSCCAL

    GPIO

    03040506

    STATUSFSR

    OSCCALGPIO

    STATUSFSR

    OSCCALGPIO

    datos son accedidos desde cualquier BANCO

    z Otros No lo son

    23242526

    CM1CON0ADCON0ADRESGPR1

    0708090A

    CM1CON0ADCON0ADRESGPR1

    CM1CON0ADCON0ADRESGPR1

    z Es mostrada la Memoria de Datos del PIC12F510

    2728292A

    GPR2GPR3GPR4GPR5

    0A0B0C0D0E

    GPR1GPR2GPR3GPR4GPR5

    GPR1GPR2GPR3GPR4GPR5

    El nmero de Bancos y accsibilidad a los registros vara con el Dispositivo

    2B2C2D2EGPR5

    GPR60E0F

    GPR5GPR6

    GPR5GPR6

    10

    Dispositivo

    11

    2E2F3031

    Las direcciones de losGPRsdespues de 0Fh y 2Fh

    12131415

    32333435

    p ySolo pueden ser accedidas si

    la CPU setea el BANK(PIC12F510)

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 18105 ASP

    PIC12F510

    15(PIC12F510)

  • Porque Banqueado de datos

    OPCODE12 6 5 4 0

    dOPCODE OPERAND

    Las Instrucciones de los PIC Linea Base tienen solo 5Las Instrucciones de los PIC Linea Base tienen solo 5 bits para describir el destino de una instruccin ( OPERAND)

    25 = 32 nicos destinos direccionables !

    Muchas Aplicaciones para PIC Lnea Base requieren d 32 l li i M i d D t !

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 19105 ASP

    ms de 32 localizaciones en Memoria de Datos !

  • Como se implementa el Banqueado de Datos

    z Banqueando extendemos el rango de direccionamiento del MCU por combinacin deldireccionamiento del MCU por combinacin del OPERANDO de la instruccin con 2 bits en el registro FSRregistro FSR

    0 0 0 0 00 0 0 0 10 0 0 1 00 0 0 1 10 0 1 0 00 0 1 0 10 0 1 1 0

    Codigo de operacin 12-bit Registro FSR

    0 0 0 0 00 0 0 0 10 0 0 1 00 0 0 1 10 0 1 0 00 0 1 0 10 0 1 1 0Bits selectores de

    BANCOOPERANDO

    27 bits = 128 direcciones de memoria nicas

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 20105 ASP

  • Como se v la memoria de datos

    0

    0A09

    10

    BANK 0 BANK 1 BANK2 BANK 31F

    FSR Bits seleccionanl BANCO

    0 00 1101 1

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 21105 ASP

    el BANCO

  • El Set de Instrucciones de la Linea Basede la Linea Base

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 22105 ASP

  • Set de instrucciones de la Linea Base

    Operaciones orientadas a Byte Operaciones Orientadas a Bitaddwf f,d Add W and f bcf f,b Bit Clear fandwf f,dclrf fclrw -

    AND W with fClear fClear W

    bsf f,bbtfsc f,bbtfss f,b

    Bit Set fBit Test f, Skip if ClearBit Test f, Skip if Set

    comf f,ddecf f,ddecfsz f,d

    Complement fDecrement fDecrement f, Skip if 0

    Operaciones con Literales y controlandlw kcall k

    AND literal with WCall subroutine

    incf f,dincfsz f,diorwf f,d

    Increment fIncrement f, Skip if 0Inclusive OR W with f

    clrwdt -goto kiorlw k

    Clear Watchdog TimerGo to addressInclusive OR literal with W

    movf f,dmovwf fnop -

    Move fMove W to fNo Operation

    movlw koption -retlw k

    Move literal to WLoad OPTION RegisterReturn with literal in W

    rlf f,drrf f,dsubwf f,d

    Rotate Left f through CarryRotate Right f through CarrySubtract W from f

    sleep -tris fxorlw k

    Go into standby modeLoad TRIS RegisterExclusive OR literal with W

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 23105 ASP

    swapf f,dxorwf f,d

    Swap nibbles in fExclusive OR W with f

  • El Registro de Trabajo W

    z El Trabajo del Registro W de 8 bits:

    Instruccin de 2 Operandosz un operando es tpicamente el registro W (Trabajo)z un operando es tpicamente el registro W (Trabajo) z el otro operando se encuentra en un registro del archivo (en

    Memoria de datos) o en una constante inmediata

    Instrucciones de Operacin simplez El operando se encuentra en el registro W o en un registro del

    hiarchivo

    Mover un valor dentro de un registro del archivo de la Memoria de D tDatos

    Mover un valor desde un registro del archivo de la memoria de datos a

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 24105 ASP

    otro

  • Operaciones Orientadas a Bytes

    z Operan sobre el Registro o Byte enterop g yz Operaciones aritmticas (ADDWF, SUBWF)z Operaciones lgicas (ANDWF, XORWF, COMF)Operaciones lgicas (ANDWF, XORWF, COMF)z Operaciones de desplazamiento (RRF, RLF)z Movimiento de Datos (MOVF, MOVWF, SWAPF)z Movimiento de Datos (MOVF, MOVWF, SWAPF)z Operaciones de Salto (INCFSZ, DECFSZ)

    CODIGO de OP Direccin del registrodCODIGO de OP Direccin del registrod

    d = 0 destino es W

    addwf GPIO, F 1 0 0 1 1 01 1 1 1 00d = 0 destino es Wd = 1 destino es f

    operacinArchivo a

    direccionar

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 25105 ASP

    operacin direccionar0x06h (01102)

    destino

  • Operaciones Orientadas a Bit

    z Manipulacin de Bit simple (BSF, BCF)

    z Testeo de Bit simple (BTFSS, BTFSC)

    CODIGO OP Direccin del RegNumero bitCODIGO OP Direccin del Reg.Numero bit

    bcf GPIO, 3 0 1 1 0 0 1 1 01 0 00

    operacinRegistro a Direccionar

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 26105 ASP

    operacin Direccionar0x06h (01102)

    Nmero de Bit

  • Operaciones con Literales y de Control

    z Instruccin Literal:z Instruccin Literal: Emplea valores definidos por el usuario

    O i l i (ANDLW XORLW ) Operaciones lgicas (ANDLW, XORLW)Cdigo OP Valor Literal

    z Instrucciones de control: SLEEP CLRWDT GOTO CALL RETLWmovlw 0xFF 1 1 1 1 1 1 1 11 0 01

    SLEEP, CLRWDT, GOTO, CALL, RETLW

    operacin Valor Literal0 0 1 0 1 0 1 101 01t F i

    Cdigo OP Direccin de Mem. Prog

    (1111 11112) 0 0 1 0 1 0 1 101 01goto Funcin

    Los bits de la paginacin

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 27105 ASP

    operacin Direccin de Memoria

    p gvienen del STATUS

  • Addressing Modes

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 28105 ASP

  • Modos de direccionamientoAccesos a Memoria de datos:z Accesos a Memoria de datos: Directamente desde la instruccin en Memoria de

    DatosDatos

    ejemplo:jclrf

    I di d l R i S l d Indirectamente usando el Registro Selector de Archivos (FSR) como un puntero

    ejemplo:movlw movwf FSR;Puntero para clrf INDF ;Borra

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 29105 ASP

    ;apuntado por el FSR

  • Modos de Direccionamiento

    z Direccionamiento Directo:R i t

    100 0 0 0 00 0 0 0 10 0 0 1 00 0 0 1 10 0 1 0 00 0 1 0 10 0 1 1 00 0 1 1 1

    El Banco es Seleccionado usando FSR

    Instruccin de 12-bit Cdigo OP

    Registro (FSR)

    La Direccin de la Memoria de datos esta incluida en la instruccin

    Selecciona el BANCOSeleccionala Localizacin

    de la Memoria de Programa

    00

    0F10

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 30105 ASP

    BANCO 0 BANCO 1

  • Modos de Direccionamiento

    z Direccioonamiento directo: Direccin de la Memoria

    0 0 0 0 00 0 0 0 10 0 0 1 00 0 0 1 10 0 1 0 00 0 1 0 10 0 1 1 00 0 1 1 110

    Direccin de la Memoria de Datos incluida en la instruccin de la Memoria de Programa

    Registro Selector de Archivos(FSR)

    El BANCO es seleccionado usando FSR

    Selecciona BancoSelecciona

    Localizacin

    z Direccionamiento

    Localizacin00

    z Direccionamiento Indirecto: La direccin de la

    Memoria de Datos es escrita dentro del File Registro Selector de Archivos (FSR)

    0F10

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 31105 ASP

    La direccin es accedida via el registro INDF

    BANK0 BANK1

  • Pipelining de Instrucciones

    MAINMOVLW 0x03 ;mover 0x03 (00000011) a WregMOVWF GPIO l W d t d l GPIO

    z El Oscilador es internamente dividida x 4Ciclo de instruccin (TCY) = FOSC/4 = TOSC x 4

    MOVWF GPIO ;mover valor en Wreg dentro del GPIOGOTO Label_1 ;saltar a la etiqueta llamada Label_1BSF GPIO, 1 Ciclo de instruccin (TCY) = FOSC/4 = TOSC x 4

    z Bsqueda de una Instruccin = 1 TCYLabel_1 ;Codigo en otra parte en memoria

    z Ejecucin de una Instruccin = 1 TCYz Pipelining = Ejecucin / Bsqueda SimultneosTCY1 TCY2 TCY3 TCY4 TCY5 TCY6

    TOSCp g j q

    Busqueda/Ejecucin = 1TCYSaltos de Programa = 2 TCY

    Busqueda MOVLW 0x03

    Ejecucin MOVLW 0x03

    Bsqueda Ejecucin

    TCY1 TCY2 TCY3 TCY4 TCY5 TCY6

    Saltos de Programa = 2 TCYBsquedaMOVWF GPIO Ejecucin MOVWF GPIOBsqueda

    GOTO SUB_1Ejecucin GOTO SUB_1Bsqueda FLUSH

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 32105 ASP

    qBSF GPIO,1 BSF GPIO,1

    BsquedaLabel_1

    EjecucinLabel_1

  • Instruccin GOTO

    01234567891011

    Cdigo PA001234567

    STATUSSTATUS Instruccin GOTO en Memoria de ProgramaInstruccin GOTO en Memoria de Programa

    0 0 0 0 0 1 0 1 0 10 g

    0123456789Contador de Contador de Programa 10 Programa 10 Bit Bit

    0 0 0 0 0 0 1 0 1 1

    11--bit del STATUSbit del STATUSDetermina la PginaDetermina la Pgina

    99--bits de instruccin bits de instruccin 2299 = 512 Direcciones de = 512 Direcciones de

    LocalizacionesLocalizaciones

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 33105 ASP

  • Las Instrucciones CALL y RETLW

    0123456789101101234567STATUSSTATUS Instruccin CALL en Memoria de ProgramaInstruccin CALL en Memoria de Programa

    OpcodePA00

    PA0 del STATUSPA0 del STATUS88--bits de la instruccinbits de la instruccin2288 = 256 Direcciones = 256 Direcciones

    0 0 0 0 1 0 1 1

    z CALLEmpuja al STACK

    0123456789

    0 0 0 0 0 0 1 0 1 1

    0 S US0 S USDetermina la PginaDetermina la Pgina

    Contador de Contador de Programa dePrograma de Empuja al STACK

    z mueve el valor del PC sobre el tope del nivel

    Siempre clearedo Siempre clearedo con la ejecucincon la ejecucin

    Programa de Programa de 1010--BitBitPU

    SHPO

    P

    Solo las primeras 256direcciones sobre

    l d d ddel nivel

    z Clears bit 8 of the PC

    jjdel CALLdel CALL

    P

    2 Level2 LevelSTACKSTACK

    la page dada puedenser accedidas usando

    un CALLPC z RETLW

    Recuperar STACK

    STACKSTACKun CALL

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 34105 ASP

    pz mueve el PC desde

    el Tope del nivel

  • Caractersticas Especiales de la CPUEspeciales de la CPU

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 35105 ASP

  • Osciladores

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 36105 ASP

  • Osciladores sobre el PIC12F510

    0-8MHzFREQUENCY RANGEEl PIC12F510 puede operar en 4 diferentes modos de

    il d 0-8MHzFREQUENCY RANGEosciladores :

    LP: Cristal de Baja Potencia (0 - 200kHz)High Medium LowACCURACY

    LP: Cristal de Baja Potencia (0 - 200kHz)

    XT: Resonador o Cristal (0 - 4MHz)

    COST Low LowMedium Zero

    ( )

    INTOSC: Oscilador Interno 4/8MHz Low LowMedium Zero

    EXTRC: Capacitor y Resistor Externo (0 - 4MHz)

    OSCILLATOR LP0 - 200 kHz

    XT0 4 MHz

    INTOSCUp to 8 MHz

    RCUp to 8 MHz

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 37105 ASP

  • Oscilador Interno

    z La Mayora de los Dispositivos Linea Base contienen un Oscilador Interno de 4 y/ocontienen un Oscilador Interno de 4 y/o 8MHz Calibracin de fbrica hasta 1%

    Calibrado usando el Calibrador del Oscilador (OSCCAL) SFR (reg. Funciones Especiales)(OSCCAL) SFR (reg. Funciones Especiales)z Las especificaciones del oscilador dependen del

    Vdd y la Temperatura y p

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 38105 ASP

  • Registro calibrador del Oscilador (OSCCAL)( )

    CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0

    bits 7-1 CAL : Estos Bits calibran el Oscilador

    z Calibrates internal oscillator precision

    bits 7-1 CAL : Estos Bits calibran el Oscilador

    0111111 = Frecuencia MximaCalibrates internal oscillator precisionz Must be loaded upon any RESET

    .

    .

    .0000000 = Frecuencia Central...1000000 = Frecuencia Mnima

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 39105 ASP

    bit 0 Sin Implementar: Leido como 0

  • Cargando el valor del OSCCAL

    z Vector RESET La ejecucin del cdigo

    Working F t l OSCAL l

    automaticamente cargado sobre RESET

    Program Memorj gcomienza aqu Contiene los bits de

    Calibracin del Comienzo del prog.0000h0001hOSCAL

    Factory cal. OSCAL valuemovwf OSCCAL

    Factory cal OSCAL value

    Program Memory

    Calibracin del Oscilador

    OSCCAL es cargado en 01FFhCargando el valor al OSCCAL PAGE0

    Factory cal. OSCAL value

    z OSCCAL es cargado en la direccin 0000h 0200h

    01FFh PAGE0PAGE1ORG 0x3FF

    movlw k;El valor de calibracin del RC interno ;es almacenado en 0x3FF por Microchip

    z El Programa de usuario comienza a ejecutarse

    0001h 03FFh

    ;es almacenado en 0x3FF por Microchip;como un movlw k, donde la k es un valor ;literal.

    en 0001h movlw OSCCALvalue03FFhRESETVECTOR

    ORG 0x000movwf OSCCAL ;actualiza el

    ;registro con el valor de cal de fabrica

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 40105 ASP

  • Reset

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 41105 ASP

  • RESET

    z PIC12F510 diferencias entre varios tipos de RESET: MCLR Reset (External)RESET:SFRs are RESET (Check Datasheet) and MCLR Reset (External) Power-on Reset (POR)

    WDT Ti t R t

    SFRs are RESET (Check Datasheet) andGPR values are unknown. WDT Time-out Reset Despertar desde SLEEP sobre cambio de Baseline PIC Microcontroller begins program execution at the RESET Vectorestado en pin Despertar desde SLEEP sobre Cambio en el

    program execution at the RESET Vectorp

    Comparador

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 42105 ASP

  • Reset por Master Clear (MCLR)

    z Executado por excitacin del pin GP3/MCLR/VPP con un estado Bajoestado Bajo

    z Habilitado/Desabilitado usando los bits de configuracinVDD

    VDD

    CPU EXECUTINGRESET

    R V = VDDV = VSS

    EXECUTINGCODE

    RESET

    GP3/MCLR/VPP

    R

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 43105 ASP

    VSS

  • Watchdog Timer (WDT)

    z WDT tiene su propio

    1 10 0 1 1 1 10 1 1 0 0 11 0 0 0 1 11 0 1 1 1 01 1 0 0 1 1 1 11 1 1 1 0 0 0 00 0 0 0oscilador corriendo libre

    WDT

    separado del oscilador principal

    STATUS Register WDT funcionar en el

    SLEEP 1STATUS Register

    0TO

    z RESETS del PIC si el ft l CPUsoftware se colg CPU

    EXECUTING CODERESET

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 44105 ASP

  • Comando CLRWDT

    z Borra WDT para evitar el overflowWDT solo RESETEA al PIC sobre un overflow WDT solo RESETEA al PIC sobre un overflow

    z Resets los bits TO y PD en el STATUSz Borra el Prescalerz Borra el Prescaler

    RESETB l WDT idi tRESET

    YES

    Borra el WDT peridicamenteasegura que ocurra el RESET solo si

    el software se cuelgaTO = 0? CLRWDT

    YES

    NO

    el software se cuelga

    Programa de Aplicacin

    NO

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 45105 ASP

    Aplicacin

  • WDT Postscaler Bits Selectores del Rango

    01 0 0 01 0 0 11 0 1 01 0 1 1OPTION

    01 0 0 01 0 0 11 0 1 01 0 1 1PS

    PSA

    PS WDT RATE

    approximately 56Hz (T = 18ms)

    000 1:1001 1:2010 1:4

    Free-Running WDT Oscillator El Perodo del WDT puede 010 1:4011 1:8100 1:16

    Prescaler used by Timer0

    configurarse desde ~18ms a ~2.3 segundos

    101 1:32110 1:64111 1:128

    by Timer0WDT is not scaledWDT Time-Out (Postscaler

    Output)

    a 3 segu dos

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 46105 ASP

    111 1:128Output)

  • Secuencia Power UpAli t iAlimentacin

    a VDD

    VDDVDD suficiente para realizarPower On Reset (POR)

    InternalPower-on RESET Interno genera un

    perodo de tiempo para permitir estabilizar VDDPOR

    POR Inicia el DeviceCPU comienza ahora

    perodo de tiempo para permitir estabilizar VDD

    MCLR

    POR Inicia el DeviceReset Timer (DRT)normal operation

    DRT PeriodDevice RESET Timer

    El perodo de tiempo permite al oscilador estabilizarse

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 47105 ASP

    DRTp p p

  • SLEEP

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 48105 ASP

  • SLEEP

    z Modo Baja Potencia para reducir el consumoS

    Ejecutando el Modo SLEEPpermite:

    z Se ejecuta usando la instruccin SLEEPborrar el WDT

    SETEAR el Bit de Time Out del WDT (STATUS)

    +NORMAL

    MODEMODOSLEEP

    ( )

    Borrar el Bit Power Down (STATUS)

    POWERBATTERY

    LIFE

    Apagar el Driver del OsciladorCONSUMPTION

    Mantener los Ports I/O en condicin de pre-SLEEP

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 49105 ASP

  • Despertar desde el SLEEP Reset

    z PIC MCUs PIC LineaBase permiten despertar del modo SLEEP de la siguiente forma: Reset del MCLR WDT Fuera de Tiempo (Si el WDT esta habilitado) Cambios sobre GP0, GP1 o GP3 si el despertar por

    cambios esta habilitado Cambios en la salida del Comparador (C1OUT) si es

    h bilit d l d t bi l ihabilitado el despertar por cambios en el mismo

    Los Microcontroladores PIC Linea Base se RESETEAN sobre un Despertar

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 50105 ASP

    Ejecutando el Cdigo sobre el Vector de RESET

  • Usando el STATUS para Determinar el RESET

    GPWUF CWUF PA0 TO PD Z DC CGPWUF CWUF PA0 TO PD Z DC C

    z Contiene: GPWUF Bandera indicadora de Estado Artmtico de la

    ALUEl t d d RESET

    TO Time-out bit0 R t d t WDT

    despertar del SLEEP porcambios en los PORTS GP

    El estado de RESET Selector de Pgina de

    la Memoria de

    0 = Reset due to WDT Time-Out1 = Despierto por cambios enlos PORTS I/O

    Programa Banderas Para indicar

    el despertar del SLEEP

    PD Power-down bit1 = Reset due to Power upCWUF - Bandera de despertar porcambio en l comparador

    el despertar del SLEEP (CLRWDT will set these bits)1 = Despierto por la salida delcomparador

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 51105 ASP

  • Usando el STATUS para Determinar el RESET

    z Testear PD y TO para inicializar cualquier

    RESET

    Do PORpara inicializar cualquier registro

    Inicializar prioridad de

    Do PORRSR

    D WDT

    PD = 1?

    z Inicializar prioridad de perifricos para priorizar el Chekeo de los bits GPWUF y CWUF INITIALIZE

    Do WDTRSR

    TO = 0?

    GPWUF y CWUF

    z MCLR reset detemina si S

    INITIALIZE PERIPHERALS

    Gno ha ocurrido el RESET por otro evento

    Do GPWUFRSR

    GPWUF = 1?

    Do CWUFRSR

    CWUF = 1?

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 52105 ASP

    Do MCLRsub_routine

  • Programacin Serie En Circuito (ICSP)En-Circuito (ICSP)

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 53105 ASP

  • Programacin Serie En-Circuito (ICSP)

    z Los PIC pueden ser programados in circuitin-circuit Permite actualizar el Firmware

    VDDVDD

    VSSVPP

    GND

    GP1/ICSPCLK

    GP1/ICSPDAT

    DATA

    GP3/MCLR/VPP

    CLK

    Conector de Seales Externo

    GP3/MCLR/VPP

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 54105 ASP

    Seales Externo

  • Directiva __CONFIG

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 55105 ASP

  • Bits de Configuracin

    z Pueden ser configurados directamente en el MPLABMPLAB

    Oz Adicionados al Archivo Fuente del Firmware

    Directiva __CONFIGS t l bit d fi i d l dz Seta los bits de configuracin del procesador

    z Asegura la configuracin deseada cada vez que se transfiere elfirmware

    __CONFIG exprNota: config is precedido por dos caracteres guion bajo. example:

    CONFIG MCLRE OFF & CP OFF & WDT OFF & INTRC OSC & IOSCFS OFF

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 56105 ASP

    __ _ _ _ _ _ _ _ _ _ _

    ;poner en off MCLR, Code Protection y Watchdog Timer;Configura el dispositivo para el Oscilador interno RC a 4MHz

  • Definiciones de la directiva de configuracin

    La directiva de configuracin son definidas en el archivo inc paracada dispositivo, el cual se encuentra en:p ,

    C:\Program Files\Microchip\MPASM Suite\

    El Archivo P12F509.inc contiene:;=====================================; Configuration Bits;=====================================_MCLRE_ON EQU H'0FFF'_MCLRE_OFF EQU H'0FEF'_CP_ON EQU H'0FF7'_CP_OFF EQU H'0FFF'_WDT_ON EQU H'0FFF'_WDT_OFF EQU H'0FFB'_LP_OSC EQU H'0FFC'XT OSC EQU H'0FFD'

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 57105 ASP

    _XT_OSC EQU H 0FFD_IntRC_OSC EQU H'0FFE'_ExtRC_OSC EQU H'0FFF'

  • Puertos I/O

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 58105 ASP

  • Puertos I/O Revisinz PIC12F510 Tiene un registtro de Puerto de Propsito General Input/Output

    (GPIO) PORT names are not the same for all Baseline PICs !

    z Algunos PIC Linea Base tienen multiples Registros PORT ( PORTA, PORTB)

    z 5 pines I/O configurables como Input o Output usando el registro Tri-State

    Low Pin Count Medium Pin Count( < 8 I/O pins ) ( >8 I/O pins )

    z 5 pines I/O configurables como Input o Output usando el registro Tri-State GPIO , TRISGPIO GP3 es solo entrada

    T fd l i GPIO GP fi bl di it l

    Port Name Configuration Port Name ConfigurationGPIO TRISGPIO PORTA TRISA

    z Tres ofde los pines GPIO GP son configurables como digitales o analgicos Por Default sone ntradas analgicas para culaquier RESET

    VSSVDD TRISGPIO

    PORTx TRISx

    VSS

    GP0/AN0/C1IN+

    VDD

    GP5/OSC1/CLKINGPIO

    TRISGPIOEl nombre de los Puertos I/O y los registros de configuracindependen del dispositivo. Checkear el Datasheet !

    GP1/AN1/C1IN-

    GP2/AN2/T0CKI/C1OUT

    GP4/OSC2

    GPIO

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 59105 ASP

    GP2/AN2/T0CKI/C1OUTGP3/MCLR/VPP

  • Circuito del PORT I/O

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 60105 ASP

  • Registros GPIO y TRISGPIO

    z Dos registros Principales General Purpose Input Output (GPIO)

    T i St t GPIO (TRISGPIO) Tri-State GPIO (TRISGPIO)

    GPIO GP5 GP4 GP3 GP2 GP1 GP0

    DataConfigures Data Direction (write only)

    TRISGP5 TRISGP4 1 TRISGP2 TRISGP1 TRISGP0

    TRISGPIO Direction (write only)

    Always Input

    TRISGP5 TRISGP4 1 TRISGP2 TRISGP1 TRISGP0

    1 = corresponding GPIO pin is input

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 61105 ASP

    0 = corresponding GPIO pin is output

  • Registro General Purpose Input/Output (GPIO)

    z Registro 8-bit I/O Solo son usados los 6 bits mas bajos GP

    bit 7 6 (GP 7 6 ) t i i l t l 0z bits 7 y 6 (GP) estan sin implementar y se leen como 0s

    z Escritura y lectura controladas por software pines I/O son leidos independientemente (input o output)

    GP5 GP4 GP3 GP2 GP1 GP0

    GPIOGP5 GP0GP5 GP4 GP3 GP2 GP1 GP0

    7 0

    GP5

    GP4

    GP0

    GP1

    GP2GP3

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 62105 ASP

    inputonly

  • Tri-State GPIO Registro de Control dedireccin (TRISGPIO)( )

    TRISGPIO (Not Addressable)

    GP5 GP4 GP3 GP2 GP1 GP0Pins Affected1 1 1 1 1 10 0 1 0 0 01 0 1 0 1 0

    Working Register0 0 1 1 1 1 1 10 0 0 0 0 0 0 01 0 1 0 1 0 1 0

    GP5 GP0movlw b00111111

    0 0 1 1 1 1 1 1

    INPUTINPUT

    0 0 0 0 0 0 0 0

    OUTPUTOUTPUT

    1 0 1 0 1 0 1 0

    GP5

    GP4 GP1

    movlw b 00111111TRIS GPIO

    movlw b00000000INPUT

    INPUT

    INPUT

    OUTPUT

    OUTPUTOUTPUT

    GP3 GP2movlw b 00000000TRIS GPIO

    l b10101010

    INPUTINPUT OUTPUT

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 63105 ASP

    movlw b10101010TRIS GPIO

  • Configurando I/O para Digital

    z GP0, GP1 y GP2 son configurables para analogico o digitalanalogico o digital Analogico para multiplexar funciones alternativas

    z comparador y conversor analgico a digitalz comparador y conversor analgico a digital(ADC)

    z Para usar GP como I/O Digital las funciones alternativas debe ser desactivadas El comparador el apagado por borrado del bit

    CM1CON0 La funcionalidad analgica es desactivada por borrar

    los bits ADCON0 ANS en el mdulo ADC

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 64105 ASP

  • Configurando todos los pines como I/O Digital

    z Borrar CM1CON0 bit (desactiva elz Borrar CM1CON0 bit (desactiva el comparador)B bit ANS (T d i di it l)z Borrar bits ANS (Todos pines digital)

    CM1CON00

    CM1CON0

    C1ON

    0 0GP0/AN0/C1IN+ADCON0

    GP1/AN1/C1IN-ANS

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 65105 ASP

    GP2/AN2/T0CKI/C1OUT

  • Resistores de Pull-ups Internos

    10OPTION

    10GPPU

    z Configurar con OPTION Pines GP2, GP1 y GP0 VDD

    GP0/AN0/C1IN+

    GP deben configurarse como entradas

    VDD

    GP0/AN0/C1IN

    entradas

    Bit General Purpose P ll UVDD

    GP1/AN1/C1IN-

    Pull-Up

    Pins no son configurados i d di t t

    GP2/AN2/T0CKI/C1OUT

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 66105 ASP

    independientemente

  • Despertar sobre Cambios de estado

    OPTION

    0z RESETS/WAKES PIC from

    SLEEP modeClear GPWU in

    OPTIONClear GPWU in

    OPTION

    GPWU(General Purpose

    W k )

    0SLEEP modez GPIO must be read prior to Read current

    GP 2 0 l

    OPTION

    Read current GP 2 0 l

    OPTION

    Wake-up)

    1STATUS

    pSLEEP instruction latches current value on pins

    GP values

    Issue SLEEP

    GP values

    Issue SLEEP 1GPWUF

    (General Purpose Wake-up Flag)

    instructioninstruction

    p g)

    GPIO1Low-Power

    ModeRESET

    GP5 GP4 GP3 GP2 GP1 GP0

    7 001 1 0 11 1 1

    1 l l t h d

    configuredas input

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 67105 ASP

    1 values latchedfor referenceGP1 camia estado

  • Instrucciones lectura-Modifica-Escribe para Bitpara Bit

    GPIOVoltaje del Pin comienza

    bi l t t00010000GP4

    VGP4 pin0000000000010001 a cambiar lentamente

    GP40CPU D QLATCH HIGH (1)

    LOW (1)READMODIFYWRITE 1pin

    GPIO pin values

    TRISGP4CONFIGUREDAS OUTPUT

    Clear GPIO bit 40001000000000000

    Set GPIO bit 000010000 GP4 LEDO COMO ALTO DEBIDO A LA

    TRANSICIN LENTA DEL VOLTAJE DEL PIN00010001

    C ea G O b tSet G O b t 0

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 68105 ASP

    DATA BUSRead GP4

  • Shadowing un registro PORTDATA MEMORY

    INDFTMR0Crear a Shadow

    register en

    DATA MEMORY

    PCLSTATUS

    FSR

    register en General Purpose

    RAMFSR

    OSCCALGPIO

    CM1CON00 0 0 1 0 0 0 01Realice cualesquiera

    SFRs

    CM1CON0ADCON0ADRES

    cambios de un solo bit Shadow Register

    Copiar el valor en 0 0 0 0 0 0 0 00 0 0 1 0 0 0 0GPRs user_regCopiar el valor en

    el registro PORT0 0 0 0 0 0 0 00 0 0 1 0 0 0 0

    shadow register

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 69105 ASP

    gdefinido por usuario

  • Timer0

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 70105 ASP

  • Timer0 Revisin

    z Incrementa un registro llamadoTMR0 usando una fuente de clock

    z Puede ser configurado para: Incrementa usando los ciclos de instruccin interna (TCY)

    I t d l lid d l d Incrementa usando la salida del comparador CM1CON0 bit

    Incrementa usando una fuente de clock externa conectada al i T0CKIpin T0CKI

    z La fuente de clock es configurable usando un prescaler

    VSS

    GP0/AN0/C1IN+

    VDD

    GP5/OSC1/CLKIN

    TMR0

    GP0/AN0/C1IN+

    GP4/OSC2

    GP5/OSC1/CLKIN

    GP1/AN1/C1IN-PRESCALER

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 71105 ASP

    GP2/AN2/T0CKI/C1OUTGP3/MCLR/VPPTCY orC1OUT

  • Timer0 Aplicaciones

    z Mdulo TMR0 puede ser usado como :U ti Un timerz Temporiza eventosz Implementare un clock

    Contador de Eventosz Cuenta un evento

    Start Timing

    Stop Timing

    0 0 0 0 0 0 0 10 0 0 0 0 0 1 00 0 0 0 0 0 1 10 0 0 0 0 1 0 0

    z Cuenta un evento

    0 0 0 0 0 0 0 00 0 0 0 0 0 0 10 0 0 0 0 0 1 00 0 0 0 0 0 1 10 0 0 0 0 1 0 0TMR0

    0 0 0 0 0 0 0 10 0 0 0 0 0 1 00 0 0 0 0 0 1 10 0 0 0 0 1 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 10 0 0 0 0 0 1 00 0 0 0 0 0 1 10 0 0 0 0 1 0 0

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 72105 ASP

  • Registros Asociado al Timer

    RBWU RBPU T0CS T0SE PSA PS2 PS1 PS0OPTIONRBWU RBPU T0CS T0SE PSA PS2 PS1 PS0

    Configura el TimerBIT FUNCTION

    T0CS Timer0 Clock Source Select bit

    g

    1 = T0CKI pin0 = Internal clock

    T0SE Timer0 Source Edge bitT0SE Timer0 Source Edge bit1 = high-to-low transition 0 = low-to-high transition

    PSA Prescaler Assignment bit 1 = Assigned to WDT0 = Assigned to Timer0

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 73105 ASP

    PS Prescaler Rate Select bits

  • Cargando el registro OPTION

    GPWU GPPU T0CS TOSE PSA PS2 PS1 PS00 0 1 1 0 0 0 1OPTIONGPWU GPPU T0CS TOSE PSA PS2 PS1 PS0

    Wreg

    0 0 1 1 0 0 0 1

    0 0 1 1 0 0 0 1Wreg

    ;Load desired value into Wreg using inline assembly then issue;OPTION instruction to load OPTION register

    movlw b00110001 ;move desired value into Wmovlw b 00110001 ;move desired value into WOPTION ;move value in W into OPTION

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 74105 ASP

  • Registros asociados con Timer0

    TMR0

    8-bit timer/counter register

    CM1CON0

    8 bit timer/counter registerContiene el conteo o el valor del Tiempo del TMR0

    C1T0CS

    CM1CON0

    Comparator TMR0 Clock Source bitCuando este bit es puesto a 0, salida del comparador 1

    d f t d l l k l TMR0es usado como fuente del clock para el TMR0

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 75105 ASP

  • Diagrama en Bloques del TMR0

    Synchronizes signal

    8with internal clock

    RC5/T0CKI

    FOSC/4

    not scaled

    prescaler

    11 01 111 01 1

    prescaler

    Sync

    RC5/T0CKI

    Comparator Output (C1OUT) TMR0

    Comparator outputor T0CKI pin

    not scaled

    scaledprescalerBIT VALUE Timer0 RATE

    000 1:2

    001 1:4

    prescaler

    C1T0CS

    p ( )T0SE

    T0CS PSAPSSignal on T0CKI pin

    The Prescaler increasesthe clock source period

    scaled

    1010 1010

    001 1:4

    010 1:8

    011 1:16

    100 1 32

    CM1CON0 OPTION

    C1T0CS T0SE

    Signal on T0CKI pin

    T0CS PSA

    the clock source period

    100 1:32

    101 1:64

    110 1:128

    C1T0CS

    Comparator TMR0 Clock Source Bit1 = TMR0 source is T0CKI pin or FOSC/40 = TMR0 is the comparator

    T0SE

    TMR0 Source Edge Select Bit1 = Increment TMR0 on high low transition of T0CKI0 = Increment TMR0 on low high transition of T0CKI

    TMR0 Clock Source Select Bit1 = Selects either C1OUT or T0CKI as TMR0 clock source0 = Selects FOSC/4 as TMR0 clock source

    T0CS

    Prescaler Assignment Bit1 = Prescaler is assigned to the Watchdog Timer0 = Prescaler is assigned to Timer0

    PSA PS

    Prescaler Rate Select BitsPrescaler must be assigned to Timer0

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 76105 ASP

    111 1:2560 TMR0 is the comparator0 Increment TMR0 on low high transition of T0CKI0 Selects FOSC/4 as TMR0 clock source0 Prescaler is assigned to Timer0

  • Sincronizando el TMR0 con un clock externo

    Internal Clock

    TOSCSync with TMR0TOSCExt. Clock Period must be > 4xTOSC_

    PRESCALER Sync. withInternal ClockT0CKI

    External Clock/Prescaler Output

    Internal synchronization samples every 2nd TOSCTMR0 TMR0 + 1 TMR0 + 2Internal synchronization samples every 2 TOSCTMR0 TMR0 + 1 TMR0 + 2

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 77105 ASP

  • Escribiendo al TMR0

    z Escribiendo el TMR0, se inhibe el incremento por 2 ciclos de clockincremento por 2 ciclos de clock

    CLEAR TMR0CLEAR TMR0Register

    WRITE 00001111

    TMR0 SOURCE CLOCK

    TMR0+1 TMR0+2 READ New TMR0NEWTMR0 TMR0+1 TMR0+2

    WRITE 00001111to TMR0

    continue 0 0 0 0 0 0 0 011 00 0 0 0 1 1 1 10 0 0 1 0 0 0 00 0 0 1 0 0 0 1TMR0 Register

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 78105 ASP

    continue 0 0 0 0 0 0 0 011 00 0 0 0 1 1 1 10 0 0 1 0 0 0 00 0 0 1 0 0 0 1

  • Conversor Analgico Digital (ADC)Digital (ADC)

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 79105 ASP

  • Conversor Analgico a Digital (ADC) Revisin

    z Convierte una seal analgica a un valor de 8-bitAl t l l i t ADRES d l ADC Almacena este valor en el registr ADRES del ADC

    z ADC controlado por el registro de control ADCON0z Reloj de Conversin configurable (TAD)z Reloj de Conversin configurable (TAD)z Conversiones comparadas contra VDDz 3 canales de entrada analgicos(AN0 AN1 or AN2)z 3 canales de entrada analgicos(AN0, AN1, or AN2)

    ADRES VDD

    ADC8AN0, AN1or AN2

    VSSGP0/AN0/C1IN+

    VDDGP5/OSC1/CLKINADC

    ADC Conversion

    GP1/AN1/C1IN-

    GP2/AN2/C1OUT

    GP4/OSC2

    GP3/MCLR/VPP

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 80105 ASP

    Clock

  • Deseando con ADCs

    z Proveer los medios para decodificar la salida del trsductor

    ADRES1000110000001101

    Sensores de Presin Termocuplas

    t

    8ADC

    etc

    z Medicin de Tensiones variablesVINz Medicin de Tensiones variablesz Mas conveniente para reconocer

    seales de transicin lentas que el

    VIN

    seales de transicin lentas que el comparador ADRES

    10001100100011011000111010001111

    time

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 81105 ASP

    10001100100011011000111010001111

  • Registro de Control de Conversin del ADC (ADCON0)

    ADCON0ANS1 ANS0 ADCS1 ADCS0 CHS1 CHS0 GO/DONE ADON

    CHS1 CHS0 ADC Channel0 0 Channel 00 (GP0/AN0)

    BIT FUNCTION

    0 0 Channel 00 (GP0/AN0)0 1 Channel 01 (GP1/AN1)1 0 Channel 10 (GP2/AN2)

    ANS Analog Input Pin Select bitsADCS ADC Conversion Clock Select bitsCHS ADC Channel Select bits

    ANS1 ANS0 Pin configured as Analog InputADCS1 ADCS0 C i Cl k R t

    1 1 0.6V absolute voltage reference

    CHS ADC Channel Select bits

    GO/DONE1 = Starts a conversion process. Cleared by hardware when

    conversion is complete0 = Manually clearing will terminate a conversion

    0 0 None0 1 GP2/AN21 0 GP2/AN2 and GP0/AN0

    ADCS1 ADCS0 Conversion Clock Rate0 0 FOSC/320 1 FOSC/160 = Manually clearing will terminate a conversion

    ADON1 = ADC Module is ON0 = ADC Module is OFF

    1 0 GP2/AN2 and GP0/AN01 1 GP2/AN2, GP1/AN1 and GP0/AN0

    0 1 FOSC/161 0 FOSC/81 1 INTOSC/8

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 82105 ASP

  • Registro de Resultado del ADC (ADRES)

    z 8-bit value is stored in result register (ADRES)Example:z 8-bit value is stored in result register (ADRES)z Value represents analog signal as it compares to

    a reference oltage (V )

    Example:

    ADRES = 1000 1010 and VDD = 5Va reference voltage (VDD)Analog input voltage is

    DDV1

    DDV1

    DDV1

    + + = 2 5V 0 156V 0 04V+ + = 2 7V

    ADRES

    DDV2 DDV

    32 DDV

    128+ + = 2.5V 0.156V 0.04V+ + = 2.7V

    DDV21

    DDV41

    DDV81

    DDV161

    DDV321

    DDV641

    DDV1281

    DDV2561

    ADRES

    BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 83105 ASP

  • ADC Disgrama en bloques

    ConversionANS1 ANS0 ResultConversionClock

    0 0 All pins digital0 1 GP2/AN2 is analog

    GP0/AN0 pin

    CHS1 CHS0 CHANNEL SELECTED

    0 0 Channel 00 (GP0/AN0)

    FOSC/32FOSC/16FOSC/8INTOSC/8

    ADC0 1 GP2/AN2 is analog1 0 GP2/AN2 and

    GP0/AN0 are analogGP1/AN1 pin 0 1 Channel 01 (GP1/AN1)

    1 0 Channel 02 (GP2/AN2)ADRES

    GP0/AN0 are analog1 1 GP2/AN2, GP1/AN1

    and GP0/AN0 are all

    GP2/AN2 pin1 0 Channel 02 (GP2/AN2)

    1 1 0.6V absolute voltage reference

    ADCON0CHS

    and GP0/AN0 are all analogreference

    0 00 11 01 1 0 00 11 01 10 00 11 01 1 01CHS

    0.6VREF ADONADC Enable Bit

    ANSADC Analog Input Pin Select Bits

    CHSADC Channel Select Bits

    ADCSADC Conversion Clock Select Bits

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 84105 ASP

    1 = ADC modulo en operacin (consuming power)0 = ADC modulo es apagado (not consuming power)

  • Tiempo de adquisicin de la seal

    Acquisition TimeAcquisition Time Conversion Time

    ADRES VIN

    timeVC

    8

    ADRES

    time

    Tiempo de adquisicin

    8 time

    SOURCEp q

    determinado porCapacidad del Pin e impedancia

    ADC El Tiempo de Adquisicinle permite al capacitor de

    RS < 10k

    de fuente(se recomienda

  • Tiempo de Conversin

    Acquisition Time Acquisition TimeConversion Time

    ADRESVIN

    timeVC

    time8

    ADRES

    ADC Result13 ADC Conversiontime8 13 ADC ConversionClock cycles (TAD)

    ADC time

    +VC-

    CHOLD 5pF

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 86105 ASP

    VSS

  • Conversin Analogica-a-Digital

    11 10 1ADCON0

    Configure ADCON0Configure ADCON0

    ADC Flow11 10 1

    ADONGO/DONE

    Configure ADCON0ensuring that ADC

    is turned on

    Configure ADCON0ensuring that ADC

    is turned onConversion TimeAcquisition Time

    Setear el bit GO/DONEStart ADC conversion by setting the GO/DONE bitStart ADC conversion by setting the GO/DONE bit

    para comenzar Borrar manualmente el bit GO/DONE aborta la

    GO/DONE = 0?GO/DONE = 0?

    NO 13 ADC Clock cycles (TAD)GO/DONE aborta laconversion

    GO/DONE = 0?GO/DONE = 0?

    YES ADRES

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 87105 ASP

    continuecontinue CONVERSION RESULTRESULTADO PARCIAL

  • ADC en Modo SLEEP

    z ADC No puede hacer cualquier en el modoz ADC No puede hacer cualquier en el modo SLEEP

    z Si una conversin esta en proceso cuando el SLEEPes ejecutado, ADRES contendrael SLEEPes ejecutado, ADRES contendra datos parciales de la conversinL bit ADCS CHS t dz Los bits ADCS y CHS son reseteados a las condiciones por Default

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 88105 ASP

  • Comparador

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 89105 ASP

  • Comparador Revisin

    z Compara dos voltajes de entrada de referenciaz Si los dos voltajes difieren, cambia la salida del j ,

    comparadorz Configrar usando el registro de control : CM1CON0z El cambio en el comparador es indicado en el bit

    CM1CON0

    VSSVDD VSS

    GP0/AN0/C1IN++GP5/OSC1/CLKINGP1/AN1/C1IN-

    GP2/AN2/T0CKI/C1OUT

    _GP4/OSC2GP3/MCLR/VPP

    C1OUT

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 90105 ASP

    GP2/AN2/T0CKI/C1OUTGP3/MCLR/VPP

  • Comparador revisin

    Positive Negative

    PositiveReferenceVoltage

    +reference(C1IN+)

    O t t

    Reference (C1IN-)(C1IN+)

    _NegativeReference(C1IN-)

    Output(C1OUT)

    OutputOutput(C1OUT)

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 91105 ASP

  • Deseando con comparadores

    z Deteccin de alto y bajo voltaje Comparador de ventana

    z Contador de Pulsos La salida del comparador puede conectarse al mdulo Timer0 La salida del comparador puede conectarse al mdulo Timer0

    z Configurable como un OPAMP en aplicaciones de bajo costocosto requiere componentes externos

    *Refer to PICmicro Comparator Tips n Tricks

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 92105 ASP

    Refer to PICmicro Comparator Tips n Tricksat www.microchip.com

  • Registro de Control de Comparador (CM1CON0)

    C1OUT C1OUTEN C1POL C1T0CS C1ON C1NREF C1PREF C1WUCM1CON0

    BIT FUNCTIONC1OUT Comparator Output Bit *READ ONLY

    C1OUTEN 1 = C1OUT is read internally only0 = C1OUT value is available on C1OUT pin0 = C1OUT value is available on C1OUT pin

    C1POL 0 = comparator output is inverted

    C1T0CS 0 = Comparator output used as TMR0 clock sourceC1T0CS 0 = Comparator output used as TMR0 clock source

    C1ON 1 = Comparator is ON

    C1NREF1 = Comparator Negative reference is the C1IN- pin

    C1NREF0 = Negative reference is the 0.6V internal reference

    C1PREF1 = Comparator Positive reference is the C1IN+ pin0 = Comparator Positive reference is the C1IN- pin

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 93105 ASP

    0 Comparator Positive reference is the C1IN pinC1WUF 1 = Comparator Wake-up on change is disabled

  • Diagrama en Bloques del comparador

    Wh iti f ltWh iti f ltComparator output (C1OUT bit)is available internally and on

    C1IN+ pinWhen positive reference voltage

    is greater than negative reference voltageC1OUT pin voltage = 1

    When positive reference voltageis greater than negative reference voltage

    C1OUT pin voltage = 0Comparator output (C1OUT bit)

    is available internally only

    is available internally and on the C1OUT pin

    +Data Bus

    C1PREF

    _C1IN- pinC1OUT pin

    C1POL C1OUTEN

    0.6VREF C1NREF

    CM1CON010 10 10 10 10

    Comparator Positive Reference Select BitC1PREF

    Comparator Negative Reference Select BitC1NREFC1NREF

    Comparator Enable BitC1ONC1POL

    Comparator Output Polarity BitC1OUTEN

    Comparator Output Enable Bit

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 94105 ASP

    1 = C1IN+ pin0 = C1IN- pin

    1 = C1IN- pin0 = 0.6V internal reference voltage

    1 = Comparator module is ON0 = Comparator module is OFF

    1 = Output of Comparator is not inverted0 = Output of Comparator is inverted

    1 = Output of Comparator is available internally only0 = Output of Comparator is available internally and on the C1OUT pin

  • Despertar por cambio en el comparador

    01 1 0CM1CON0

    1

    C1WUC1OUTSTATUS

    C1ON

    1CWUF

    READ CM1CON0Input Condition:READ CM1CON0Input Condition Baseline PIC

    wakes RESETs

    D Q

    READ CM1CON0

    to Data BusInput Condition:

    C1PREF > C1NREF(C1OUT = 1)

    READ CM1CON0i.e. movf CM1CON0, W

    LASTIssue SLEEP instruction

    pchanges:

    C1PREF

  • Comparador como clock del TMR0

    01CM1CON0

    01C1T0CS

    +TIMER0 Module

    fi d

    C1OUT

    C1IN++configured as a counter

    TMR011 01 11 0 0

    C1OUT- C1IN-

    TMR0

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 96105 ASP

  • Resumen del Curso

    z Principios Bsicos de los PIC Linea Base Arquitecura del Microcontrolador PICArquitecura del Microcontrolador PIC

    z Caractersticas especialespz PIC12F510 Perifricos

    Puertos Input/Output Puertos Input/Output Timer 0 Conversor ADC ComparadorComparador

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 97105 ASP

  • Fuentes

    z Visite www.microchip.com for:p 24/7 soporte tcnico Notas de aplicacin Notas de aplicacin Web Seminars

    Codigos ejemplos Codigos ejemplos Datasheets

    M h ! y Mucho mas!

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 98105 ASP

  • Gracias!!Traducido por : Andrs Ral Bruno Saravia

    RTC Argentina

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 99105 ASP

  • Lab 1Lab 1Creando un proyecto paraCreando un proyecto para dieo con PIC Linea Base

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 100105 ASP

  • Estructura del directorio

    Directorio existente creado en la computadorapara esta clase depara esta clase de laboratorio

    El archivo Plantilla cargadogen el directorio

    Los archivos plantillas para PIC Linea Base se encuentran en:C:\Program files\Microchip\MPASM Suite\Template\Code

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 101105 ASP

    g p p

  • Abriendo MPLAB

    Desde el MenDesde el Men Project seleccionar:

    Project WizardProject WizardProyecto Mgico

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 102105 ASP

  • 2007 Microchip Technology Incorporated. All Rights Reserved. Slide 103105 ASP

  • Seleccionar el PIC16F506

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 104105 ASP

  • Seleccionar Microchip MPASM Toolsuite

    Entoncces seleccionar lo siguiente

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 105105 ASP

    Entoncces seleccionar lo siguiente

  • Pulse el boton Browse(Ojeando)

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 106105 ASP

  • Nombre el Proyecto

    Browse al:

    C:\RTC\105_ASP\Lab1

    Tipee el nombre que usted quiera que tenga el proyectop q q q g p y

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 107105 ASP

  • Verifique el Nombre del Proyecto y la Localizacin

    Nombre elegido paraEste Proyecto

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 108105 ASP

  • Adicione el archivo PlantillaBusque el archivoC:\RTC\105_ASP\Lab1\16F506TEMP.ASMentonces pulse ADD >> p

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 109105 ASP

  • Confirme detalles del Proyecto

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 110105 ASP

  • Verifique el builds del Proyecto

    Pulse el Icono Build All

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 111105 ASP

  • Build Sucedido !

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 112105 ASP

  • 2007 Microchip Technology Incorporated. All Rights Reserved. Slide 113105 ASP

  • Abra Solution Project

    C:\RTC\105 ASP\lab1\solution\lab1 Solution mcp

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 114105 ASP

    C:\RTC\105_ASP\lab1\solution\lab1_Solution.mcp

  • Build el proyecto

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 115105 ASP

  • Seleccionar el PicKit2 como Programador

    Pulsar el icono PROGRAM Lance el Pin MCLR para permitir al PIC

    para descargar el programaal PIC16F506

    salir del Modo RESET

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 116105 ASP

  • Lab 2: Introduccin alLab 2: Introduccin al Set de instrucciones

    usando el MPLAB SIM

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 117105 ASP

  • Lab 3: DireccionamientoLab 3: Direccionamiento de datos y memoria de

    programa

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 118105 ASP

  • L b 4Lab 4T b j d t I/OTrabajando con puertos I/O

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 119105 ASP

  • Lab 5: Usando el TMR0 para crear Delayspara crear Delays

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 120105 ASP

  • Lab 6: Trabajando con el ADCADC

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 121105 ASP

  • Lab 7: Despertando porLab 7: Despertando por cambios en el comparador

    2007 Microchip Technology Incorporated. All Rights Reserved. Slide 122105 ASP