tema 13 programa bootloader

38
15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 1 PIC PIC downloader downloader 1.08 1.08 PIC 16F876 PIC 16F876

Upload: claludio

Post on 24-Oct-2015

23 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Tema 13 Programa Bootloader

15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 1

PIC PIC downloaderdownloader 1.081.08PIC 16F876PIC 16F876

Page 2: Tema 13 Programa Bootloader

15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 2

PIC downloader V1.8En la placa explicada en el tema anterior En la placa explicada en el tema anterior ““GRABADOR GRABADOR PARA EL PIC 16F876PARA EL PIC 16F876””, se indic, se indicóó que se utilizarque se utilizaríía una a una aplicaciaplicacióón de distribucin de distribucióón gratuita, esta utilidad es el n gratuita, esta utilidad es el PIC PIC downloaderV1downloaderV1.8.8 que podemos obtener en la que podemos obtener en la webweb: : www.ehl.cz.pic/pic_e.htmwww.ehl.cz.pic/pic_e.htm

Page 3: Tema 13 Programa Bootloader

PIC downloader V1.8

15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 3

La pLa páágina en cuestigina en cuestióón es:n es:

Page 4: Tema 13 Programa Bootloader

15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 4

PIC downloader V1.8 Si hacemos clic sobre PIC Si hacemos clic sobre PIC downloaderdownloader

Se nos activarSe nos activaráá la siguiente ventana:la siguiente ventana:

Page 5: Tema 13 Programa Bootloader

PIC downloader V1.8

15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 5

En ella indicamos que deseamos guardar el fichero, En ella indicamos que deseamos guardar el fichero, pasando a la siguiente ventana:pasando a la siguiente ventana:

Page 6: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 6

PIC downloader V1.8

En ella indicamos el sitio donde deseamos guardar el En ella indicamos el sitio donde deseamos guardar el fichero, asfichero, asíí el nombre con que se guardarel nombre con que se guardaráá: en nuestro caso : en nuestro caso en la carpeta descargas y dejamos el nombre que trae por en la carpeta descargas y dejamos el nombre que trae por defecto.defecto.

Page 7: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 7

PIC downloader V1.8 Una vez finalizada la descarga tendremos un fichero Una vez finalizada la descarga tendremos un fichero comprimido como el mostrado:comprimido como el mostrado:

Descomprimimos el fichero obteniendo:Descomprimimos el fichero obteniendo:

Page 8: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 8

PIC downloader V1.8 Volvemos a descomprimir los ficheros bootldr103 y Volvemos a descomprimir los ficheros bootldr103 y PIC_downloader_sourcePIC_downloader_source_108 obtenemos:_108 obtenemos:

Page 9: Tema 13 Programa Bootloader

9

PIC downloader V1.8 De todo lo obtenido lo que utilizaremos es:De todo lo obtenido lo que utilizaremos es:

PIC_downloaderPIC_downloader: es la aplicaci: es la aplicacióón, o programa de n, o programa de grabacigrabacióón propiamente dicho, si ejecutamos la aplicacin propiamente dicho, si ejecutamos la aplicacióón n obtenemos la siguiente ventana:obtenemos la siguiente ventana:

Page 10: Tema 13 Programa Bootloader

PIC downloader V1.8

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 10

Fichero de texto Fichero de texto bootldrbootldr, que contiene un programa escrito , que contiene un programa escrito en ensamblador para los PIC y sobre el que deberemos en ensamblador para los PIC y sobre el que deberemos efectuar modificaciones para adaptarlo al modelo de efectuar modificaciones para adaptarlo al modelo de picpiccon el que estemos trabajandocon el que estemos trabajando

Fichero de texto Fichero de texto readmereadme que contiene informacique contiene informacióón de n de ccóómo utilizar la aplicacimo utilizar la aplicacióón n PIC_downloaderPIC_downloader

Page 11: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 11

Como utilizar el bootloader/downloaderAbrimos el fichero de texto Abrimos el fichero de texto readmereadme, que nos da , que nos da

indicaciones sobre como utilizar el indicaciones sobre como utilizar el bootloaderbootloader, en nuestro , en nuestro caso las adaptamos al entorno MPLAB V6.4caso las adaptamos al entorno MPLAB V6.4

Page 12: Tema 13 Programa Bootloader

15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 12

Page 13: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 13

Adaptación del programa bootldr.asm

Las indicaciones descritas anteriormente se pueden Las indicaciones descritas anteriormente se pueden resumir en los siguientes pasos, que iremos efectuando resumir en los siguientes pasos, que iremos efectuando sobre el entorno MPLAB 6.4 de Microchipsobre el entorno MPLAB 6.4 de Microchip

1.1. Abrimos el entorno MPLAB y creamos un proyecto Abrimos el entorno MPLAB y creamos un proyecto que denominaremos que denominaremos bootloaderbootloader, para ello utilizaremos el , para ello utilizaremos el asistente de creaciasistente de creacióón de proyectosn de proyectos

Page 14: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 14

Adaptación del programa bootloader.asm2.2. Fijamos el tipo de microcontrolador que utilizaremos Fijamos el tipo de microcontrolador que utilizaremos en nuestro caso el PIC16F876en nuestro caso el PIC16F876

3.3. Seleccionamos el entornoSeleccionamos el entorno

Page 15: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 15

Adaptación del programa bootloader.asm4.4. Indicamos los Indicamos los pathpath

5. Incluimos en el proyecto el fichero 5. Incluimos en el proyecto el fichero bootldr.asmbootldr.asm que se que se genergeneróó al descomprimir y que habremos llevado a la al descomprimir y que habremos llevado a la carpeta donde hemos situado el proyectocarpeta donde hemos situado el proyecto

Page 16: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 16

Adaptación del programa bootloader.asm6.6. Picamos en finalizarPicamos en finalizar

para indicar que hemospara indicar que hemosterminado con laterminado con lainicializaciinicializacióón del proyecton del proyecto

7. El resumen del proyecto que acabamos de crear es:7. El resumen del proyecto que acabamos de crear es:

Page 17: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 17

Adaptación del programa bootloader.asm

8.8. Abrimos el programa Abrimos el programa bootloader.asmbootloader.asm, para ello , para ello simplemente hacemos doble clic sobre su nombre.simplemente hacemos doble clic sobre su nombre.

7. El programa 7. El programa bootloaderbootloader se muestra en las siguientes se muestra en las siguientes transparencias, y sobre transparencias, y sobre éél deberemos hacer modificaciones l deberemos hacer modificaciones para ajustarlo a nuestro proyecto :

Hacer doble clic para abrir

para ajustarlo a nuestro proyecto :

Page 18: Tema 13 Programa Bootloader

15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 18

Page 19: Tema 13 Programa Bootloader

15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 19

Sección fijada por el usuarioEsta es la parte del programa que deberemos modificar en función

del micro F. de oscilación, velocidad de comunicación ….

Page 20: Tema 13 Programa Bootloader

15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 20

Adaptación del programa bootloader.asmSeguidamente se traduce la secciSeguidamente se traduce la seccióón que debern que deberáá fijar el fijar el usuario:usuario:

;================== ;================== UserUser settingsetting sectionsection ============================================================================

listlist p=16f876p=16f876 ; <<< fijar el tipo de ; <<< fijar el tipo de micronctroladormicronctrolador; Poner el mismo microcontrolador en el proyecto; Poner el mismo microcontrolador en el proyecto

#include#include <p16f876.<p16f876.incinc> > ; <<< Poner el fichero *.; <<< Poner el fichero *.incinc para el microcontrolador seleccionadopara el microcontrolador seleccionado

#define#define FOSC D'4000000'FOSC D'4000000' ;<<< Poner la frecuencia del cuarzo (;<<< Poner la frecuencia del cuarzo (HzHz), ), maxmax. 20 . 20 MHzMHz#define#define BAUD D'9600'BAUD D'9600' ;<<< Poner la velocidad de transmisi;<<< Poner la velocidad de transmisióón n baudbaud raterate ((BdBd))#define#define BAUD_ERRORBAUD_ERROR D'4'D'4' ;<<< Poner la tasa de error (%) ;<<< Poner la tasa de error (%) #define#define TIMETIME ;<<< Poner el m;<<< Poner el méétodo de todo de dede inicio del inicio del bootloaderbootloader

;PIN/TIME/AUTO;PIN/TIME/AUTO; ; ; ;

;Disparo por puesta a nivel bajo ;Disparo por puesta a nivel bajo sweswe la sela seññal de disparoal de disparo;TIME;TIME inicia la recepciinicia la recepcióón del n del bytebyte despudespuéés del RESETs del RESET

#define#define PORT PORTBPORT PORTB ; <<< solo para el PIN del puerto en juego PORTB/PORTC/PORTD/PO; <<< solo para el PIN del puerto en juego PORTB/PORTC/PORTD/PORTERTE#define#define PORT_BITPORT_BIT 77 ; <<<Solo para PIN, poner el bit de la l; <<<Solo para PIN, poner el bit de la líínea seleccionada 0/1/2/3/4/5/6/7nea seleccionada 0/1/2/3/4/5/6/7#define#define TIMEOUTTIMEOUT D'3'D'3' ; <<< solo para TIME ; <<< solo para TIME –– fijar el tiempo (0.1 s), fijar el tiempo (0.1 s), maxmax. 25.5 s. 25.5 s

;=============== ;=============== EndEnd ofof useruser settingsetting sectionsection ====================================================================

Page 21: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 21

Adaptación del programa bootloader.asm

El resto del programa El resto del programa bootldr.asmbootldr.asm no deber ser no deber ser modificado, seguidamente modificado, seguidamente deberemos ensamblar el deberemos ensamblar el programa que acabamos de modificarprograma que acabamos de modificar para obtener un para obtener un fichero fichero bootldr.HEXbootldr.HEX que es el que grabaremos como que es el que grabaremos como ““RESIDENTERESIDENTE”” en nuestro en nuestro microntroladormicrontrolador y que nos y que nos permitirpermitiráá utilizar la utilidad utilizar la utilidad DOWNLOADER.DOWNLOADER.

Ensamblamos el programa una vez modificado

Page 22: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 22

Fichero bootldr.HEXEl fichero El fichero bootldr.HEXbootldr.HEX que obtenemos, y que podemos que obtenemos, y que podemos abrir dentro del entorno MPLAB es:abrir dentro del entorno MPLAB es:

Page 23: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 23

Fichero bootldr.LST y Mapa de memoria TambienTambien dentro del entorno MPLAB, si abrimos el dentro del entorno MPLAB, si abrimos el fichero fichero bootldr.LSTbootldr.LST y visualizamos la y visualizamos la úúltima parte de ltima parte de dicho fichero podemos comprobar el mapa de memoria:dicho fichero podemos comprobar el mapa de memoria:

Page 24: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 24

Mapa de memoria de bootldr.HEXSi estudiamos el anterior mapa podemos verificar que el Si estudiamos el anterior mapa podemos verificar que el

programa programa bootldrbootldr ocupa las 4 primeras posiciones de ocupa las 4 primeras posiciones de memoria 0000h:0003h y ademmemoria 0000h:0003h y ademáás desde 0x1F04 a s desde 0x1F04 a 0x1FFF.0x1FFF.Esta misma informaciEsta misma informacióón se encuentra en el fichero n se encuentra en el fichero readmereadme..

Page 25: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 25

Mapa de memoria de bootldr.HEXDebemos tener en cuenta por tanto que:Debemos tener en cuenta por tanto que:

1.1. Cuando escribamos un programa a grabar con el Cuando escribamos un programa a grabar con el downloaderdownloader en un microcontrolador que ya tenga en un microcontrolador que ya tenga residente el residente el bootloaderbootloader dicho programa debe comenzar dicho programa debe comenzar en la direccien la direccióón 0x05 (aqun 0x05 (aquíí iriráá la etiqueta la etiqueta INICIOINICIO))

2.2. En la direcciEn la direccióón 0x1F00 deberemos incluir las n 0x1F00 deberemos incluir las siguientes instrucciones:siguientes instrucciones:

ORG 0X1F00ORG 0X1F00bcfbcf PCLATH,4PCLATH,4 ;;selecciseleccióón banco 0 de memorian banco 0 de memoria

bcfbcf PCLATH,3PCLATH,3gotogoto INICIOINICIO ;;INICIO es la etiqueta dondeINICIO es la etiqueta donde

;;comienza el programa creadocomienza el programa creado

Page 26: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 26

Grabación del fichero bootldr.HEX en el microcontrolador

Todos los pasos anteriores han ido encaminados a Todos los pasos anteriores han ido encaminados a obtener un fichero que hemos llamado obtener un fichero que hemos llamado bootldr.HEXbootldr.HEX y y que debemos grabar en nuestro que debemos grabar en nuestro micontroladormicontrolador, donde , donde quedarquedaráá residente. residente.

Es este programa junto con la aplicaciEs este programa junto con la aplicacióón n PIC_downloaderPIC_downloader los que posteriormente nos permitirlos que posteriormente nos permitiráágrabar programas dentro del micro utilizando la USART grabar programas dentro del micro utilizando la USART del propio MICROCONTROLADOR.del propio MICROCONTROLADOR.

Page 27: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 27

Grabación del fichero bootldr.HEX en el microcontrolador

La grabaciLa grabacióón del programa n del programa bootldr.hexbootldr.hex en el en el microcontrolador la realizaremos con los medios microcontrolador la realizaremos con los medios ya utilizados anteriormente:ya utilizados anteriormente:Grabador JDM, TE20Grabador JDM, TE20--SE, o similar, que podemos SE, o similar, que podemos adquirir en tiendas de electradquirir en tiendas de electróónicanica

Page 28: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 28

Grabación del fichero bootldr.HEX en el microcontrolador

Programa ICPrograma IC--progprog, que es de libre distribuci, que es de libre distribucióón y n y que podemos descargar en que podemos descargar en www.icprog.comwww.icprog.com

Page 29: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 29

Grabación del fichero bootldr.HEX en el microcontrolador

Cable para conectar el programador a travCable para conectar el programador a travéés de COM1 o s de COM1 o COM2 , este cable se puede comprar o fabricar con dos COM2 , este cable se puede comprar o fabricar con dos DB9 unidos por un cable, hay que tener en cuenta que DB9 unidos por un cable, hay que tener en cuenta que dicho cable dicho cable nono tiene que tener cruzadas los pines RX y tiene que tener cruzadas los pines RX y TX; es decir el pin 1 se conecta al 1, el 2 al 2 y asTX; es decir el pin 1 se conecta al 1, el 2 al 2 y asíísucesivamentesucesivamente

Page 30: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 30

Grabación del fichero bootldr.HEX en el microcontrolador

Si solo dispone del grabador/entrenador para 16F84 Si solo dispone del grabador/entrenador para 16F84 que utilizamos en el laboratorio, deberque utilizamos en el laboratorio, deberáá realizar lo realizar lo siguiente:siguiente:

1.1. Extraiga el 16F84 del zExtraiga el 16F84 del zóócalocalo2.2. Inserte la placa en una Inserte la placa en una protoboardprotoboard en la cual tendren la cual tendráá

tambitambiéén situado el micro a grabarn situado el micro a grabar

Page 31: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 31

Grabación del fichero bootldr.HEX en el microcontrolador

3.3. Lleve desde los pines de la placa del F84 al micro a Lleve desde los pines de la placa del F84 al micro a grabar las siguientes segrabar las siguientes seññales:ales:

GND y VCCGND y VCCMCLR/VPPMCLR/VPPRB7/ Data I/ORB7/ Data I/ORB6 /CLKRB6 /CLK

4.4. Grabe el programa en el micro mediante la utilidad Grabe el programa en el micro mediante la utilidad ICPROG y como se ha indicado con anterioridad, desde ICPROG y como se ha indicado con anterioridad, desde este momento ya puede utilizar el programa de este momento ya puede utilizar el programa de grabacigrabacióón PIC n PIC downloaderdownloader

Page 32: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 32

Manejo del programa PIC downloader

Para poder utilizar el programa, es imprescindible que el Para poder utilizar el programa, es imprescindible que el micro a grabar tenga residente el programa micro a grabar tenga residente el programa BOOTLOADER.BOOTLOADER.AdemAdemáás como se ha indicando anteriormentes como se ha indicando anteriormente se habrse habráán n hecho las correspondiente modificaciones en el hecho las correspondiente modificaciones en el programa que deseamos grabar.programa que deseamos grabar.

Como ejemplo se da un programa elemental que Como ejemplo se da un programa elemental que incluyen estas modificaciones:incluyen estas modificaciones:

Page 33: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 33

Modificaciones para trabajarcon el PIC downloader

Page 34: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 34

Inserte la placa de desarrollo en el entrenador (para Inserte la placa de desarrollo en el entrenador (para alimentar el PIC).alimentar el PIC).Conecte la placa de desarrollo al PC mediante el cable Conecte la placa de desarrollo al PC mediante el cable MODEN NULL que hemos construido, MODEN NULL que hemos construido,

Page 35: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 35

Ejecute el programa PIC Ejecute el programa PIC downloaderdownloader, debe visualizar , debe visualizar una ventana como la que sigue:una ventana como la que sigue:

Seleccione el puerto de comunicaciones que utilizarSeleccione el puerto de comunicaciones que utilizaráá..En el caso de que la velocidad de transmisiEn el caso de que la velocidad de transmisióón sea n sea diferente seleccione el valor de 9600 baudios.diferente seleccione el valor de 9600 baudios.

Page 36: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 36

Pulse el botPulse el botóón de bn de búúsqueda (squeda (SearchSearch) y seleccione el ) y seleccione el programa a cargar en el PIC.programa a cargar en el PIC.

Pulse el botPulse el botóón de n de WriteWrite ((óó F4), verF4), veráá la evolucila evolucióón de la n de la carga mediante una barra azul, y a la vez el mensaje carga mediante una barra azul, y a la vez el mensaje writingwriting, , plaseplase waitwait..

Page 37: Tema 13 Programa Bootloader

CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 37

Cuando haya finalizado el proceso, veremos la siguiente Cuando haya finalizado el proceso, veremos la siguiente ventana:ventana:

Si hacemos un reset sobre la placa de desarrollo, el Si hacemos un reset sobre la placa de desarrollo, el programa comenzarprograma comenzaráá a ejecutarse.a ejecutarse.

Page 38: Tema 13 Programa Bootloader

15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 38

El cable de conexiónEl cable de conexión entre la placa y el PC será un MODEM NULL, con 2 DB9H en sus extremos.