Vous êtes sur la page 1sur 0

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
15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 2
PIC downloaderV1.8

En la placa explicada en el tema anterior
En la placa explicada en el tema anterior

GRABADOR
GRABADOR
PARA EL PIC 16F876
PARA EL PIC 16F876

, se indic
, se indic

que se utilizar
que se utilizar

a una
a una
aplicaci
aplicaci

n de distribuci
n de distribuci

n gratuita, esta utilidad es el


n gratuita, esta utilidad es el
PIC
PIC
downloaderV1
downloaderV1
.8
.8
que podemos obtener en la
que podemos obtener en la
web
web
:
:
www.ehl.cz.pic/pic_e.htm
www.ehl.cz.pic/pic_e.htm
PIC downloaderV1.8
15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 3

La p
La p

gina en cuesti
gina en cuesti

n es:
n es:
15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 4
PIC downloaderV1.8

Si hacemos clic sobre PIC
Si hacemos clic sobre PIC
downloader
downloader

Se nos activar
Se nos activar

la siguiente ventana:
la siguiente ventana:
PIC downloaderV1.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:
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 6
PIC downloaderV1.8
En ella indicamos el sitio donde deseamos guardar el
En ella indicamos el sitio donde deseamos guardar el
fichero, as
fichero, as

el nombre con que se guardar


el 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.
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 7
PIC downloaderV1.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:
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 8
PIC downloaderV1.8
Volvemos a descomprimir los ficheros bootldr103 y
Volvemos a descomprimir los ficheros bootldr103 y
PIC_downloader_source
PIC_downloader_source
_108 obtenemos:
_108 obtenemos:
9
PIC downloaderV1.8
De todo lo obtenido lo que utilizaremos es:
De todo lo obtenido lo que utilizaremos es:
PIC_downloader
PIC_downloader
: es la aplicaci
: es la aplicaci

n, o programa de
n, o programa de
grabaci
grabaci

n propiamente dicho, si ejecutamos la aplicaci


n propiamente dicho, si ejecutamos la aplicaci

n
n
obtenemos la siguiente ventana:
obtenemos la siguiente ventana:
PIC downloaderV1.8
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 10
Fichero de texto
Fichero de texto
bootldr
bootldr
, 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
pic
pic
con el que estemos trabajando
con el que estemos trabajando
Fichero de texto
Fichero de texto
readme
readme
que contiene informaci
que contiene informaci

n de
n de
c
c

mo utilizar la aplicaci
mo utilizar la aplicaci

n
n
PIC_downloader
PIC_downloader
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 11
Como utilizar el bootloader/downloader
Abrimos el fichero de texto
Abrimos el fichero de texto
readme
readme
, que nos da
, que nos da
indicaciones sobre como utilizar el
indicaciones sobre como utilizar el
bootloader
bootloader
, en nuestro
, en nuestro
caso las adaptamos al entorno MPLAB V6.4
caso las adaptamos al entorno MPLAB V6.4
15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 12
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 13
Adaptacin 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 Microchip
sobre 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
bootloader
bootloader
, para ello utilizaremos el
, para ello utilizaremos el
asistente de creaci
asistente de creaci

n de proyectos
n de proyectos
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 14
Adaptacin del programa bootloader.asm
2.
2.
Fijamos el tipo de microcontrolador que utilizaremos
Fijamos el tipo de microcontrolador que utilizaremos
en nuestro caso el PIC16F876
en nuestro caso el PIC16F876
3.
3.
Seleccionamos el entorno
Seleccionamos el entorno
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 15
Adaptacin del programa bootloader.asm
4.
4.
Indicamos los
Indicamos los
path
path
5. Incluimos en el proyecto el fichero
5. Incluimos en el proyecto el fichero
bootldr.asm
bootldr.asm
que se
que se
gener
gener

al descomprimir y que habremos llevado a la


al descomprimir y que habremos llevado a la
carpeta donde hemos situado el proyecto
carpeta donde hemos situado el proyecto
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 16
Adaptacin del programa bootloader.asm
6.
6.
Picamos en finalizar
Picamos en finalizar
para indicar que hemos
para indicar que hemos
terminado con la
terminado con la
inicializaci
inicializaci

n del proyecto
n del proyecto
7. El resumen del proyecto que acabamos de crear es:
7. El resumen del proyecto que acabamos de crear es:
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 17
Adaptacin del programa bootloader.asm
8.
8.
Abrimos el programa
Abrimos el programa
bootloader.asm
bootloader.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
bootloader
bootloader
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 :
15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 18
15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 19
Seccin fijada por el usuario
Esta es la parte del programa que
deberemos modificar en funcin
del micro F. de oscilacin,
velocidad de comunicacin.
15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 20
Adaptacin del programa bootloader.asm
Seguidamente se traduce la secci
Seguidamente se traduce la secci

n que deber
n que deber

fijar el
fijar el
usuario:
usuario:
;================== ;==================User User setting setting section section ====================================== ======================================
list list p=16f876 p=16f876 ; <<< fijar el tipo de ; <<< fijar el tipo de micronctrolador micronctrolador
; Poner el mismo microcontrolador en el proyecto ; Poner el mismo microcontrolador en el proyecto
#include #include <p16f876. <p16f876.inc inc> > ; <<< Poner el fichero *. ; <<< Poner el fichero *.inc inc para el microcontrolador seleccionado para el microcontrolador seleccionado
#define #define FOSC D'4000000' FOSC D'4000000' ;<<< Poner la frecuencia del cuarzo ( ;<<< Poner la frecuencia del cuarzo (Hz Hz), ), max max. 20 . 20 MHz MHz
#define #define BAUD D'9600' BAUD D'9600' ;<<<Poner la velocidad de transmisi ;<<<Poner la velocidad de transmisi n n baud baud rate rate ( (Bd Bd) )
#define #define BAUD_ERROR BAUD_ERROR D'4' D'4' ;<<<Poner la tasa de error (%) ;<<<Poner la tasa de error (%)
#define #define TIME TIME ;<<<Poner el m ;<<<Poner el m todo de todo de de de inicio del inicio del bootloader bootloader
;PIN/TIME/AUTO ;PIN/TIME/AUTO
; ; ; ;
;Disparo por puesta a nivel bajo ;Disparo por puesta a nivel bajo swe swe la se la se al de disparo al de disparo
;TIME ;TIME inicia la recepci inicia la recepci n del n del byte byte despu despu s del RESET s del RESET
#define #define PORT PORTB PORT PORTB ; <<< solo para el PIN del puerto en juego PORTB/PORTC/PORTD/PO ; <<< solo para el PIN del puerto en juego PORTB/PORTC/PORTD/PORTE RTE
#define #define PORT_BIT PORT_BIT 7 7 ; <<<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/7 nea seleccionada 0/1/2/3/4/5/6/7
#define #define TIMEOUT TIMEOUT D'3' D'3' ; <<<solo para TIME ; <<<solo para TIME fijar el tiempo (0.1 s), fijar el tiempo (0.1 s), max max. 25.5 s . 25.5 s
;=============== ;===============End End of of user user setting setting section section ================================== ==================================
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 21
Adaptacin del programa bootloader.asm

El resto del programa


El resto del programa
bootldr.asm
bootldr.asm
no deber ser
no deber ser
modificado, seguidamente
modificado, seguidamente
deberemos ensamblar el
deberemos ensamblar el
programa que acabamos de modificar
programa que acabamos de modificar
para obtener un
para obtener un
fichero
fichero
bootldr.HEX
bootldr.HEX
que es el que grabaremos como
que es el que grabaremos como

RESIDENTE
RESIDENTE

en nuestro
en nuestro
microntrolador
microntrolador
y que nos
y que nos
permitir
permitir

utilizar la utilidad
utilizar la utilidad
DOWNLOADER.
DOWNLOADER.
Ensamblamos el programa
una vez modificado
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 22
Ficherobootldr.HEX

El fichero
El fichero
bootldr.HEX
bootldr.HEX
que obtenemos, y que podemos
que obtenemos, y que podemos
abrir dentro del entorno MPLAB es:
abrir dentro del entorno MPLAB es:
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 23
Fichero bootldr.LST y Mapa de memoria

Tambien
Tambien
dentro del entorno MPLAB, si abrimos el
dentro del entorno MPLAB, si abrimos el
fichero
fichero
bootldr.LST
bootldr.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:
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 24
Mapa de memoria de bootldr.HEX

Si estudiamos el anterior mapa podemos verificar que el


Si estudiamos el anterior mapa podemos verificar que el
programa
programa
bootldr
bootldr
ocupa las 4 primeras posiciones de
ocupa las 4 primeras posiciones de
memoria 0000h:0003h y adem
memoria 0000h:0003h y adem

s desde 0x1F04 a
s desde 0x1F04 a
0x1FFF.
0x1FFF.

Esta misma informaci


Esta misma informaci

n se encuentra en el fichero
n se encuentra en el fichero
readme
readme
.
.
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 25
Mapa de memoria de bootldr.HEX

Debemos 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
downloader
downloader
en un microcontrolador que ya tenga
en un microcontrolador que ya tenga
residente el
residente el
bootloader
bootloader
dicho programa debe comenzar
dicho programa debe comenzar
en la direcci
en la direcci

n 0x05 (aqu
n 0x05 (aqu

ir
ir

la etiqueta
la etiqueta
INICIO
INICIO
)
)
2.
2.
En la direcci
En la direcci

n 0x1F00 deberemos incluir las


n 0x1F00 deberemos incluir las
siguientes instrucciones:
siguientes instrucciones:
ORG 0X1F00
ORG 0X1F00
bcf
bcf
PCLATH,4
PCLATH,4
;
;selecci selecci n banco 0 de memoria n banco 0 de memoria
bcf
bcf
PCLATH,3
PCLATH,3
goto
goto
INICIO
INICIO
;
;INICIO es la etiqueta donde INICIO es la etiqueta donde
;
;comienza el programa creado comienza el programa creado
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 26
Grabacin del fichero bootldr.HEX enel
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.HEX
bootldr.HEX
y
y
que debemos grabar en nuestro
que debemos grabar en nuestro
micontrolador
micontrolador
, donde
, donde
quedar
quedar

residente.
residente.

Es este programa junto con la aplicaci


Es este programa junto con la aplicaci

n
n
PIC_downloader
PIC_downloader
los que posteriormente nos permitir
los 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.
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 27
Grabacin del fichero bootldr.HEX enel
microcontrolador
La grabaci
La grabaci

n del programa
n del programa
bootldr.hex
bootldr.hex
en el
en el
microcontrolador la realizaremos con los medios
microcontrolador la realizaremos con los medios
ya utilizados anteriormente:
ya utilizados anteriormente:
Grabador J DM, TE20
Grabador J DM, TE20
-
-
SE, o similar, que podemos
SE, o similar, que podemos
adquirir en tiendas de electr
adquirir en tiendas de electr

nica
nica
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 28
Grabacin del fichero bootldr.HEX enel
microcontrolador
Programa IC
Programa IC
-
-
prog
prog
, que es de libre distribuci
, que es de libre distribuci

n y
n y
que podemos descargar en
que podemos descargar en
www.icprog.com
www.icprog.com
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 29
Grabacin del fichero bootldr.HEX enel
microcontrolador
Cable para conectar el programador a trav
Cable 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
no
no
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 as
TX; es decir el pin 1 se conecta al 1, el 2 al 2 y as

sucesivamente
sucesivamente
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 30
Grabacin del fichero bootldr.HEX enel
microcontrolador
Si solo dispone del grabador/entrenador para 16F84
Si solo dispone del grabador/entrenador para 16F84
que utilizamos en el laboratorio, deber
que utilizamos en el laboratorio, deber

realizar lo
realizar lo
siguiente:
siguiente:
1.
1.
Extraiga el 16F84 del z
Extraiga el 16F84 del z

calo
calo
2.
2.
Inserte la placa en una
Inserte la placa en una
protoboard
protoboard
en la cual tendr
en la cual tendr

tambi
tambi

n situado el micro a grabar


n situado el micro a grabar
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 31
Grabacin del fichero bootldr.HEX enel
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 se
grabar las siguientes se

ales:
ales:
GND y VCC
GND y VCC
MCLR/VPP
MCLR/VPP
RB7/ Data I/O
RB7/ Data I/O
RB6 /CLK
RB6 /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
grabaci
grabaci

n PIC
n PIC
downloader
downloader
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.
Adem
Adem

s como se ha indicando anteriormente


s como se ha indicando anteriormente
se habr
se 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:
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 33
Modificaciones para trabajar
con el PIC downloader
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,
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 35
Ejecute el programa PIC
Ejecute el programa PIC
downloader
downloader
, debe visualizar
, debe visualizar
una ventana como la que sigue:
una ventana como la que sigue:
Seleccione el puerto de comunicaciones que utilizar
Seleccione el puerto de comunicaciones que utilizar

.
.
En el caso de que la velocidad de transmisi
En 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.
CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 36
Pulse el bot
Pulse el bot

n de b
n de b

squeda (
squeda (
Search
Search
) y seleccione el
) y seleccione el
programa a cargar en el PIC.
programa a cargar en el PIC.
Pulse el bot
Pulse el bot

n de
n de
Write
Write
(
(

F4), ver
F4), ver

la evoluci
la 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
writing
writing
,
,
plase
plase
wait
wait
.
.
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 comenzar
programa comenzar

a ejecutarse.
a ejecutarse.
15/12/2006 CF D.P.E. PROYECTOS Bootloader/Downloader para PIC 16F876 38
El cable de conexin
El cable de conexin entre la placa y el PC serun
MODEM NULL, con 2 DB9H en sus extremos.