curso pic16f87x 3

Upload: proteus7

Post on 31-May-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Curso PIC16F87X 3

    1/5

    Si habis utilizado unprogramador por elpuerto serie del ordena-dor para programar losPIC16F87X, utilizandoel maravilloso software libre IC-Prog, habris comprobado que eltiempo de carga del PIC16F876,por ejemplo, que tiene 8K es devarios minutos que se haceninterminables, sobretodo cuandoestamos programando y depu-rando programas.

    Lo que presentamos en estecurso es un circuito que a travsde la USAR de los PIC 16F87Xes capaz de ponerse en comuni-cacin con ellos y cargar en lamemoria de programa el cdigo

    hexadecimal del programa quequeremos que se ejecute. Estoreduce considerablemente eltiempo de programacin ya quesolo carga los cdigos del pro-grama que queremos cargar.La placa que hemos diseadoadems de utilizarla como pro-gramadora, se puede utilizarcomo placa de desarrollo, ya quese dispone de acceso a todos ycada uno de los pines del micro-controlador a travs de la tira de

    postes para circuito impresomacho acodados y dispone de uncircuito oscilador a cristal ennuestro caso a 4 MHz, tal y comose puede ver en el circuito de laFigura 1.

    DESCRIPCIN DEL CIRCUITOEl circuito consta de un

    microcontrolador PIC16F876 alque se le han conectado un cristalde cuarzo de 4MHz y loscondensadores de desacoplo de 27pF y un pulsador que cuando seactiva pone un nivel bajo en laentrada MCLR para provocar unRESET del sistema. Adems parapoder conectar la USART delmicrocontrolador al ordenador, seha utilizado un circuito adaptador

    de niveles MAX232, tal y comoindica el fabricante en sus notasde aplicacin, y por ltimo se leha dotado de un conectoracodado DB-9 macho para poderconectar el circuito al puerto serie

    CURSO DEMICROCONTROLADORESPIC16F87X (...y III)

    CURSO DEMICROCONTROLADORESPIC16F87X (...y III)

    Fernando Remiro DomnguezProfesor de Sistemas Electrnicos

    IES. Juan de la Ciervawww.terra.es/personal/fremiro

    M I C R O C O N T R O L A D O R E S

    54RESISTOR

    Programador para PIC16F87X con bootloader.

    Curso microcontroladoresPAGS 27/12/02 10:01 Pgina 54

  • 8/14/2019 Curso PIC16F87X 3

    2/5

    del ordenador. El cable deconexin debe ser un modemnulo, es decir, un cable que solonecesita la l nea de masaconectada al terminal 5 de los dosconectores y se cruzan las l neas 2de un extremo (RxD) con la 3 delotro (TxD) y viceversa. Ver eldiagrama de conexin de laFigura 3.

    Adems la placa dispone deun conector ARJ11, conectado a

    las l neas MCLR, RB3, RB6 yRB7 del microcontrolador, loque permite realizar la conexina un mdulo ICD (Depurador encircuito), que como veremos esuna herramienta de bajo costo

    que conectada al PC y en elmismo entorno del MPLAB,permite la visualizacin de losregistros del microcontroladoren los puntos de ruptura que seestablezcan. Pudindose ejecutarlos programas en tiempo real oen modo paso a paso.

    Figura 1.- circuito de la placa de desarrollo y de programaci n con el bootloadaer

    VSS

    VDD

    VCC

    VCC

    VCC

    VCC

    VCC

    VCC

    VSS

    VCC

    RC2

    TXPC

    RC7RC6

    RB7

    RB3

    R A 5

    R C 7

    R C 6

    R C 5

    R C 4

    R C 3

    R C 2

    R C 1

    R C 0

    R A 0

    R B 7

    R B 6

    R B 5

    R B 4

    R B 3

    R B 2

    R B 1

    R B 0

    R A 4

    R A 3

    R A 2

    R A 1

    RB6

    M C L R

    MCLR

    RC7RC6

    RB3

    MCLR

    RB0

    RC3

    RA3

    RC5

    RB1RA5

    RA2

    RB2

    RB6RA1

    RC1RC0

    RA0

    RC4

    RB4RB5

    RB7

    RA4

    RXPCRXPC

    TXPC

    R2

    100

    R1

    10K

    J1

    CON6

    1234

    56

    C5

    1uF

    C21uF

    C31uF

    C1

    1uF

    C8

    0.1u

    P1DB9

    5 9 4 8 3 7 2 6 1

    C4

    1uF

    U1

    MAX232

    123

    6

    45

    14131211

    910

    87 15

    16

    C1+V+C1-

    V-

    C2+C2-

    T1OUTR1IN

    R10UTT1IN

    910

    87 GND

    VCC

    U2

    PIC16F873

    1234567

    910

    11121314

    2827262524232221

    1817

    16

    15

    2019

    8

    MCLR/VPPRA0/AN0RA1/AN1RA2/AN2RA3/AN3/VREFRA4/TOCKIRA5/SS/AN4

    OSC1/CLKINOSC2/CLKOUT

    RC0/T1OS0/T1CKIRC1/T1OS1/CCP2RC2/CCP1RC3/SCK/SCL

    RB7RB6RB5RB4RB3RB2RB1

    RB0/INT

    RC7/RX/DTRC6/TX/CK

    RC5/SDO

    RC4/SDI/SDA

    VDDVSS

    VSS

    SW1

    RESET

    J2

    CON25

    1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5

    E1

    ESP

    C6 27pF

    C7 27pF

    X1

    4MHz

    CONECTOR RJ11DEBUGE

    Figura 2.- Conexi n del ICD ala placa de desarrollo.

    Figura 3 .- Cable de conexi n MODEM nulo para la conexi n de la placa de desarrollocon el PC.

    Curso microcontroladoresPAGS 27/12/02 10:01 P gina 55

  • 8/14/2019 Curso PIC16F87X 3

    3/5

    COMO UTILIZAR

    EL PROGRAMA

    BOOTLOADER

    1. En primer lugar debemosobtener el programa en lasiguiente web http://www.ehl.cz/pic/pic_e.htm , donde tambin sepuede obtener el PIC donwloa-der V1.8.

    2. Abrir el proyecto bootldr.pjtutilizando el programaMicrochip MPLAB y cambiarlos parmetros de la seccinde usuario marcados dentrodel ensamblador con las mar-cas

  • 8/14/2019 Curso PIC16F87X 3

    4/5

    Es decir, en las posiciones dememoria 0x1F00-0x1F03, escri-

    bimos un salto largo de 14 bits ala posicin de memoria INICIO,que est en el banco cero dememoria de programa. Esto lti-mo debe verificarse si se utilizaun compilador en C.

    6. Recompilar el programa de laaplica

    COMO REALIZAR LA CARGAEN EL MICROCONTROLADOR1. En primer lugar se conecta la

    placa de desarrollo al PCmediante un cable de modem

    nulo, tal y como se comentoanteriormete.

    2. Para realizar la carga del pro-grama de usuario, vamos autilizar un programa de"carga" freware, se trata delPIC downloader de PetrKolomaznik y que hemos con-

    M I C R O C O N T R O L A

    D O R E S

    57RESISTOR

    ;****************************************************************************; Programa TMR0_1.ASM Fecha : 7- Mayo-2002; Este programa utiliza una temporizaci n utilizando TMR0 sin utilizar las interrupciones.;Se realiza una temporizaci n de 32,77 ms que se emplea para hacer parpadear los diodos LED; pares o impares respectivamente conectados al PORTB; Programa preparado para cargar con el PIC downlader; Revisi n : 0.1 Programa para PIC16F87X; Velocidad del Reloj: 4 MHz Reloj Instrucci n: 1 MHz = 1 uS; Perro Guardi n: Deshabilitado Tipo de Reloj : XT; Protecci n del c digo: OFF;*****************************************************************************

    List p=16F876 ;Tipo de procesadorinclude "P16F876.INC" ;Definiciones de registros internos

    ;ORG 0x00 ; Inicio del programa en;goto INICIO

    ORG 0x05 ;salva el vector de InterrupcionesINICIO bcf STATUS,RP1

    bsf STATUS,RP0 ; Banco 1

    movlw b'11010111' ; Valor a cargar en OPTION_REGmovwf OPTION_REG ; predivisor 256 asignado a TMR0clrf TRISB ; PORTB como salidabcf STATUS,RP0 ; Banco 0clrf PORTB ; Apaga los LEDS del PORTB

    BUCLE movlw b'01010101'movwf PORTB ; Enciende los LED impares del PORTBcall RETARDO ; Llamada a subrutina de RETARDOmovlw b'10101010'movwf PORTB ; Enciende los LED pares del PORTBcall RETARDOgoto BUCLE

    RETARDO

    clrf TMR0 ; TMR0 = 0 y empieza su incrementoEXPLORAbtfss TMR0,7 ; Es el bit 7 de TMR0=1?goto EXPLORA ; No ha llegado TMR0 a 128 Decialreturn ; Ha llegado TMR0 al valor 128D y retorna

    ; al programa principalORG 0x1F00bcf PCLATH,4 ;Selecciona el banco 0 de memoriabcf PCLATH,3goto INICIO ;Salta a INICIOEND

    Tabla 2.- Programa TMR0-1.asm para cargar con el bootloader.

    Curso microcontroladoresPAGS 27/12/02 10:01 P gina 57

  • 8/14/2019 Curso PIC16F87X 3

    5/5

    seguido en la webhttp://www.microchipc.com/ .Una vez instalado, al ejecutar-lo, aparece una pantallacomo la que se muestra en laFigura 5.

    3. Seleccionamos la velocidad detransmisin en baudios, ennuestro caso 9600, el puertoserie de comunicacin, en elejemplo hemos seleccionadoel COM2 y buscamos el nom-bre del programa en cdigohexadecimal que queremoscargar en el microcontrolador,TMR0-1.hex.Este programa tiene lassiguientes teclas de funcinrpida:F2 - BsquedaF4 - EscribirESC - CancelacinF10 - Salida

    4. Seguidamente se pulsa elbotn de RESET y el progra-ma se carga en el microcon-trolador PIC. Segn se va rea-lizando la carga, aparece unindicador de carga (l neaazul) y al finalizar la cargasuena una seal acstica.

    5. Si volvemos a actuar manual-

    mente sobre el pulsador deRESET, se ejecutar el pro-grama de usuario.

    M I C R O C O N T R O L A D O R E S

    58RESISTOR

    Salto al Bootloader

    Espacio de memoria,para cargar los

    programas transmitidos

    Salto al programade usuario

    Cdigo del Bootloader

    0x1FFF

    0x1F04

    0x1F00

    0x0004

    0x0000 El Bootloader utiliza las4 primeras posiciones(0x0000-0x0003)

    Espacio disponiblepara el programadel usuario(0x0004-0x1EFF)

    Primeras 4 posicionespara el usuario(0x1F00-0x1F03)

    Cdigo del programaBootloader(0x1F04-0x1FFF)

    Figura 4.- Mapa de memoria del Bootloader para un microcontrola-dor de 8KBytes.

    Figura 5.- Apariencia de la pantalla que aparece al ejecutar el programa PIC dowloader.

    Caractersticas del programa PIC dowloader 1.8 :

    q Compatible con el bootloader de HI-TECH's o de Shane Tolmiepara los microcontroladores PIC16F87x

    q Funcionamientos bajo Windows 9x/ME/NT/2000q Seleccin de la velocidad a partir del 2400 a 56000 Bdq Seleccin del puerto serie entre el COM1-6q Trabaja con datos de EEPROM en el archivo hexadecimalq No env a la palabra de los configuracin a la posicin 0x2007 o

    palabra de la identificacin desde el bootloaderq Mantiene las ltimas configuracionesq Se incluye el cdigo de fuenteq El downloader del PIC se controla al realizar una seal de dispa-

    ro del RESET en el microcontroladorq Se trabaja en ensamblador para todos aquellos programadores

    que no utilizan el lenguaje C. El bootloader es muy f cil de recom-pilar para otros microcontroladores actualizando el pin/tieme y la

    frecuencias del cristal de cuarzo. Solo se necesita el programaMPLAB de Microchip que tambin es gratuito.q Se puede obtener en las siguientes webs: (http://www.ehl.cz/pic/)

    (http://www.microchipc.com/)

    Curso microcontroladoresPAGS 27/12/02 10:01 P gina 58