grabar un pic con bootloader desde mplab x - geek factory.pdf

9
Grabar un PIC con Bootloader desde MPLAB X by Jesus Ruben | mar 29, 2014 | Tutoriales, Tutoriales PIC | 6 Comments En esta entrada te enseñamos a configurar MPLAB X de manera que puedas grabar un PIC con bootlader directamente desde el IDE en el momento en el que se compila de manera satisfactoria un proyecto sin la necesidad de utilizar un programador para descargar el Hex. Esta técnica es utilizada por muchas herramientas de bajo costo, como las ya conocidas placas Arduino y las variantes que utilizan microcontroladores PIC como el Chipkit Uno32. De hecho, los tips que escribimos a continuación pueden utilizarse también para cargar programas realizados en MPLAB X a placas Chipkit Uno32 o a cualquier otra placa diseñada a medida basada en microcontroladores PIC. En la portada del articulo: MPLABX ejecutando la herramienda de DS30 Loader en sistema operativo MAC OSX. ¿Que es un bootloader? Un bootloader es una pieza de software que se incluye precargada en la memoria de un microcontrolador con el propósito de facilitar la descarga de nuevo firmware por medios convencionales como RS-232, USB, Tarjetas SD, etc. En vez de requerir un programador y hardware especializado. En dispositivos terminados que salen al mercado, es especialmente útil cuando se requiere alguna actualización del firmware, de manera que el usuario final pueda llevar a cabo dichas actualizaciones sin requerir hardware adicional (un programador especializado como el PICKit, por ejemplo). Durante la fase de desarrollo y aprendizaje, un bootloader también puede ser de utilidad al evitar que se requiera un programador para realizar la carga del software experimental, lo cual supone un ahorro considerable para el estudiante o el aficionado que recién comienza. Una desventaja del bootloader es que abarca espacio en la memoria flash del microcontrolador, reduciendo el espacio disponible para la aplicación final. Su uso también hace necesario tomar en cuenta otros aspectos sobre los recursos que Categorías del Blog Arduino Artículos Destacados Artículos y proyectos Circuitos de I/O EAGLE Ejemplos para entrenadora PIC Empresa Experimentos Hacking Herramientas de desarrollo Herramientas Electrónica Iluminación Informática y Equipos Librerías Librerias en C Microcontroladores AVR Microcontroladores MSP430 Microcontroladores PIC Microcontroladores Varios Personal Productos Nuevos Proyectos Interesantes Radio Raspberry Pi Redes Robótica Software Tutoriales Tutoriales Arduino Tutoriales EAGLE Tutoriales PIC Videojuegos y consolas Buscar posts y productos Comentarios Recientes Buscar

Upload: reynaldo-andrade-vidal

Post on 22-Dec-2015

110 views

Category:

Documents


14 download

TRANSCRIPT

Page 1: Grabar un PIC con Bootloader desde MPLAB X - Geek Factory.pdf

27/3/2015 Grabar un PIC con Bootloader desde MPLAB X ­ Geek Factory

http://www.geekfactory.mx/tutoriales/grabar­un­pic­con­bootloader­desde­mplab­x/ 1/9

Grabar un PIC con Bootloader desde MPLAB Xby Jesus Ruben | mar 29, 2014 | Tutoriales, Tutoriales PIC | 6 Comments

En esta entrada te enseñamos a configurar MPLAB X  de manera que puedas grabar un PIC con bootladerdirectamente desde el IDE en el momento en el que se compila de manera satisfactoria un proyecto sin la necesidad deutilizar un programador para descargar el Hex. Esta técnica es utilizada por muchas herramientas de bajo costo, comolas ya conocidas placas Arduino y las variantes que utilizan microcontroladores PIC como el Chipkit Uno32. De hecho, lostips que escribimos a continuación pueden utilizarse también para cargar programas realizados en MPLAB X a placasChipkit Uno32 o a cualquier otra placa diseñada a medida basada en microcontroladores PIC.

En la portada del articulo: MPLABX ejecutando la herramienda de DS30 Loader en sistema operativo MAC OSX.

¿Que es un bootloader?Un bootloader es una pieza de software que se incluye precargada en la memoria de un microcontrolador con elpropósito de facilitar la descarga de nuevo firmware por medios convencionales como RS-232, USB, Tarjetas SD,etc. En vez de requerir un programador y hardware especializado.

En dispositivos terminados que salen al mercado, es especialmente útil  cuando se requiere alguna actualización delfirmware, de manera que el usuario final pueda llevar a cabo dichas actualizaciones sin requerir hardware adicional (unprogramador especializado como el PICKit, por ejemplo). Durante la fase de desarrollo y aprendizaje, un bootloadertambién puede ser de utilidad al evitar que se requiera un programador para realizar la carga del software experimental,lo cual supone un ahorro considerable para el estudiante o el aficionado que recién comienza.

Una desventaja del bootloader es que abarca espacio en la memoria flash del microcontrolador, reduciendo el espaciodisponible para la aplicación final. Su uso también hace necesario tomar en cuenta otros aspectos sobre los recursos que

Categorías del BlogArduino

Artículos Destacados

Artículos y proyectos

Circuitos de I/O

EAGLE

Ejemplos para entrenadoraPIC

Empresa

Experimentos

Hacking

Herramientas de desarrollo

Herramientas Electrónica

Iluminación

Informática y Equipos

Librerías

Librerias en C

Microcontroladores AVR

Microcontroladores MSP430

Microcontroladores PIC

Microcontroladores Varios

Personal

Productos Nuevos

Proyectos Interesantes

Radio

Raspberry Pi

Redes

Robótica

Software

Tutoriales

Tutoriales Arduino

Tutoriales EAGLE

Tutoriales PIC

Videojuegos y consolas

Buscar posts yproductos

Comentarios Recientes

Buscar

Page 2: Grabar un PIC con Bootloader desde MPLAB X - Geek Factory.pdf

27/3/2015 Grabar un PIC con Bootloader desde MPLAB X ­ Geek Factory

http://www.geekfactory.mx/tutoriales/grabar­un­pic­con­bootloader­desde­mplab­x/ 2/9

son utilizados por dicho software, como el tiempo de arranque del programa, uso y configuración del puerto decomunicaciones, etc.

Representación de la memoria de programa que muestra el flujo de ejecución del

bootloader en microcontroladores PIC.

Requisitos para grabar un PIC mediante BootloaderNo todos los PIC soportan el uso de bootloader, los siguientes puntos deben considerarse para saber si un bootloader esadecuado o posible en nuestra aplicación:

Para poder grabar un PIC con Bootloader es necesario que este soporte la escritura de la memoria Flash mediante

software, es decir, requerimos que sea capaz de “autoprogramar” su memoria flash. La mayoría de los dispositivos PIC

modernos tienen esta característica, sin embargo, algunos modelos que aún son populares en el mercado educativo

como el PIC16F84 y el PIC16F628 no pueden utilizar un bootloader para actualizar su firmware, ya que no soportan

la escrutura de memoria flash bajo el control del software. En este caso utilizaremos un PIC16F88 que es similar a los

anteriores y podemos instalarle un Bootloader.

Es necesario también que el dispositivo que aloja el bootloader disponga de memoria suficiente para la aplicación,

ya que el bootloader ocupa una cantidad de memoria flash que puede hacer que la aplicación del usuario no quepa,

siempre hay que considerar esto.

También vamos a requerir un programador de PICs para cargar el bootloader al PIC que se encuentra en blanco.

Tener el entorno de software listo MPLAB  instalado, bootloader descargado y listo, etc.

jhoana en Reseña estaciónde soldadura Aoyue 968

Francisco Lopez Ogalla enProyecto de radio controlsencillo a 433 Mhz

Ricardo Ramon Trujillo enProyecto de radio controlsencillo a 433 Mhz

Gerardo Rodriguez enBluetooth HC-05 y HC-06Tutorial de Configuración

Kaisgoo en Bluetooth HC-05 yHC-06 Tutorial deConfiguración

Encuesta¿Como nos conociste? Google

Anuncio en Internet

Mercado Libre

Recomendación

Folleto / PublicidadEscrita

Redes Sociales

Otros medios /buscadores

   Vote   

View ResultsPolls Archive

DistribucionesGeekfactory es distribuidorde las siguientes marcasinternacionales dedispositivos electrónicos:

Page 3: Grabar un PIC con Bootloader desde MPLAB X - Geek Factory.pdf

27/3/2015 Grabar un PIC con Bootloader desde MPLAB X ­ Geek Factory

http://www.geekfactory.mx/tutoriales/grabar­un­pic­con­bootloader­desde­mplab­x/ 3/9

Microcontroladores modernos como el PIC18F4550 soportan la grabación

controlada por software.

Preparando el software del bootloaderVamos a asumir que ya tenemos el hex del bootloader listo (hemos ensamblado el código fuente) y además lo hemosprogramado de alguna manera a nuestro PIC. Si tienes alguna duda te recomendamos revisar el manual odocumentación del bootlader ya que la preparación del bootloader podría extenderse lo suficiente como pararequerir otro artículo. Si hemos adquirido una tarjeta de desarrollo para PIC, puede ser que este paso ya lo hayan hechopor nosotros, incluyendo la grabación del bootloader.

El archivoZIP que hemos descargado desde el sitio web de ds30 loader contiene las herramientas de linea de comandos einterfaz gráfica que se comunican con el bootloader en el PIC. La apariencia de dichas aplicaciones se muestra acontinuación:

Interfaz Gráfica del Bootloader ds30 Loader

Page 4: Grabar un PIC con Bootloader desde MPLAB X - Geek Factory.pdf

27/3/2015 Grabar un PIC con Bootloader desde MPLAB X ­ Geek Factory

http://www.geekfactory.mx/tutoriales/grabar­un­pic­con­bootloader­desde­mplab­x/ 4/9

Conviene que estudiemos los parámetros que recibe este programa a través de la linea de comandos, para esto bastaescribir   ds30loader.exe y el programa nos mostrará todos los parámetros y configuraciones que acepta. No es nuestraintención cubrir cada uno de ellos, sin embargo, como ya dijimos es conveniente comprender el funcionamiento básicode la herramienta para los pasos siguientes.

Procedimiento para grabar un PIC con Bootloader desde MPLABXUna vez que descomprimimos la herramienta de ds30 loader en una ubicación fácil de recordar, procederemos aconfigurar MPLAB para que cargue el Hex generado por nuestros proyectos directamente al microcontrolador. Esnecesario que ya estemos trabajando con un proyecto creado en MPLAB X.

1. Accedemos a las propiedades de dicho proyecto (haciendo click derecho sobre nuestro proyecto en el panel de

proyectos) y luego en el menú contextual que aparece, hacemos click en “Properties”

2. En la ventana de Propiedades del proyecto (Project Properties), hacemos click en el apartado de “Bulding” en la lista

de la izquierda. Esta ventana permite definir programas que se ejecutarán antes y después de que se haya completado la

compilación del código fuente. En esta ventana es necesario activar el checkbox cuya leyenda es “Execute this line

after build” y además escribir en el campo correspondiente la ruta completa donde se ubica la herramienta de linea de

comandos de ds30 loader y sus parámetros. En la siguiente imágen se ve como ha quedado configurado MPLAB X. En la

siguiente imágen podemos apreciar como quedó configurado MPLAB:

NOTA SOBRE LA HERRAMIENTA DE LINEA DE COMANDOS:

Para este tutorial utilizaremos la herramienta de linea de comandos, ya que MPLAB la invocará demanera automática para realizar la carga del código a la memoria del microcontrolador.

Hay que descomprimir la utilidad “ds30LoaderConsole.exe” en una ubicación de fácil acceso en el discoduro de nuestra PC. Por ejemplo, podemos colocarla en “C:\ds30loader”

Page 5: Grabar un PIC con Bootloader desde MPLAB X - Geek Factory.pdf

27/3/2015 Grabar un PIC con Bootloader desde MPLAB X ­ Geek Factory

http://www.geekfactory.mx/tutoriales/grabar­un­pic­con­bootloader­desde­mplab­x/ 5/9

3. Para conocer el significado de cada una de las opciones que debemos pasar a la herramienta de linea de comandos,

basta con colocarnos el el directorio donde la descomprimimos y ejecutarla sin ningún parámetro (esto se hace usando la

consola del sistema). La herramienta de consola nos mostrará un mensaje de ayuda indicándonos cuales son los

parámetros obligatorios que requiere para comunicarse con el bootloader en el microcontrolador. La salida del

programa es la siguiente:

El comando completo en Windows nos quedó de la siguiente forma:

El puerto serie en nuestro caso es “COM1″, pero según la configuración del sistema en donde ejecutemos MPLAB, estepuede variar. De igual manera, debemos tener cuidado en la velocidad de bits (baudrate) que estamos utilizando ytambién en pasarle como parámetro a ds30 loader el dispositivo PIC que estamos utilizando (PIC16F88 en este caso). EnMAC OS y Linux también podemos utilizar la herramienta de ds30 Loader pero necesitamos que el entorno deejecución de Mono este instalado. Para MAC, el comando a ejecutar quedó de la siguiente forma.

De nuevo hay que revisar todos los parámetros: puerto serie, baudrate y dispositivo. Cuando estemos listos, hacemosclick en el botón Ok en el cuadro de dialogo de Propiedades del Proyecto.

1 C:\ds30loader\ds30LoaderConsole.exe -p -o -n -d="PIC16F88" -k="COM1" -r="9600" -f=${ImagePath}

1 mono /Users/Jesus/Desktop/ds30Loader/bin/ds30LoaderConsole.exe -p -o -n -d="PIC16F88" -k="/dev/cu.usbserial" -r="9600" -f=${ImagePath}

INICIO TIENDA TUTORIALES >  ¿CÓMO COMPRAR? CONTACTA ALIANZAS >  MI CUENTA U

Page 6: Grabar un PIC con Bootloader desde MPLAB X - Geek Factory.pdf

27/3/2015 Grabar un PIC con Bootloader desde MPLAB X ­ Geek Factory

http://www.geekfactory.mx/tutoriales/grabar­un­pic­con­bootloader­desde­mplab­x/ 6/9

Compilar el proyecto y Grabar un PIC con Bootloader.Una vez que hayamos realizado los pasos anteriores ya podemos hacer un primer intento de compilar el proyecto ygrabar el Hex resultante usando el bootloader. Si el proyecto se compila de manera satisfactoria, el siguiente paso querealiza el IDE es la invocación de la herramienta ds30LoaderConsole.exe. La herramienta devolverá mensajes de estadoen la consola de salida de de MPLAB X mientras intenta comunicarse con el bootloader en el PIC.

Si la comunicación es satisfactoria, deberiamos ver algo similar a lo siguiente en la consola de MPLAB.

Circuito de Interfaz Rs232 para el bootloader.El circuito de interfaz que hemos utilizado es un circuito bastante común. Podemos utilizar un cable  RS-232 o también sepuede pensar en un covertidor USB a TTL serial.  En la siguiente figura mostramos el diagrama que utilizamos para hacerla interfaz RS-232 en nuestra tarjeta entrenadora. El circuito es para un ST3232 (MAX3232) que funciona a con sistemasde 3.3 volts. Para el MAX232, que es más comercial, solamente se deben cambiar los capacitores por electrolíticos de 1uF.

Circuito de Interfaz RS232 con MAX3232 o similar (MAX323, ST3232, etc).

 

 

Contenido Relacionado:

1

Page 7: Grabar un PIC con Bootloader desde MPLAB X - Geek Factory.pdf

27/3/2015 Grabar un PIC con Bootloader desde MPLAB X ­ Geek Factory

http://www.geekfactory.mx/tutoriales/grabar­un­pic­con­bootloader­desde­mplab­x/ 7/9

Usando MPLAB yel ICD2 en Linux

Teclado Matricialcon PIC

Pantalla LCD 16×2con PIC (Libreríaen C para

Page 8: Grabar un PIC con Bootloader desde MPLAB X - Geek Factory.pdf

27/3/2015 Grabar un PIC con Bootloader desde MPLAB X ­ Geek Factory

http://www.geekfactory.mx/tutoriales/grabar­un­pic­con­bootloader­desde­mplab­x/ 8/9

6 Comentarios Geek Factory México  Iniciar sesión

 Compartir⤤ ordenar por el más nuevo

Únete a la discusión...

• Responder •

Rob T  •  hace 9 meses

Hola, estuve haciendo el diagrama del convertidor TTL a RS232 en base a su diagrama, y tengo duda sobre losleds, ¿van del lado del conector SV6 o del lado del conector db9? ¿Y tampoco los bits se ven afectados por losleds?

 △ ▽  

• Responder •

Jesus Ruben    •  hace 8 meses> Rob T

Hola.

Van a la salida y entrada del MAX, no hemos tenido problema, en caso de que ocurra, se puede jugar conlos valores de resistencias del led.

 △ ▽  

• Responder •

Henry Laredo  •  hace 10 meses

Hola, sabes si existirá una forma de ingresar el ds30Loader al mplabX pero como grabador, en vez de que seejecute con el boton de compilación? Otra, que necesito configurar en mi programa de aplicación para quefuncione con el ds30Loader, hay alguna consideracion que tomar como cargar un nuevo linker file? Saludos!

 △ ▽  

• Responder •

Jesus Ruben    •  hace 10 meses> Henry Laredo

Hola Henry.

Que yo sepa no hay forma de hacer lo que quieres,sin embargo, esto que mostramos en el blog seaproxima bastante. Yo he probado el bootloader ds30loader con PICs de la serie PIC16F, PIC24F yPIC24HJ y no he necesitado ajustar nada en el linker script. Desconozco si para otras series hay quehacer ajuste, pero me parece que en la mayoría de los casos, no es necesario.

Seguro puede haber casos en los que es necesario tocar el linker, pero yo no he llegado a necesitarlo.

Saludos cordiales. △ ▽  

• Responder •

Manuel Balderas  •  hace un año

Hola, Felicidades muy buen trabajo. No aparece la figura de la interfaz rs232 podrias enviarmela a mi correo?Saludos desde Veracruz,Mex.

 △ ▽  

• Responder •

Jesus Ruben    •  hace un año> Manuel Balderas

Hola Manuel.

Te la mando en un rato más, al parecer restauré una versión del artículo que es un borrador anterior. △ ▽  

Suscribirse✉ Agrega Disqus a tu sitiod Privacidad

 Recomendar

Compartir ›

Compartir ›

Compartir ›

Compartir ›

Compartir ›

Compartir ›

Page 9: Grabar un PIC con Bootloader desde MPLAB X - Geek Factory.pdf

27/3/2015 Grabar un PIC con Bootloader desde MPLAB X ­ Geek Factory

http://www.geekfactory.mx/tutoriales/grabar­un­pic­con­bootloader­desde­mplab­x/ 9/9

¿Que es Geek Factory?En Geek Factory seleccionamoslos mejores productos de lasmejores tiendas a nivelinternacional y los traemos para tídirectamente. !Ahora no tienesque esperar meses para obtenerlos productos que requieres en tuproyecto al mejor precio!Nuestra misión es acercar latecnología a todas las personasinteresadas en México. Pero nosolo eso... nuestra misión esayudarte a que usar la tecnologíaresulte más sencillo.

Los más vendidos… Información de laempresa

VisitantesVisitantes recientes en nuestrositio web:

Arduino UNO R3$380.00

HC-SR04 Sensor dedistancia ultrasónicoeconómico$70.00 $50.00

Jumpers paraprotoboard 65 piezas$65.00

Puente H Motores DCL298$150.00 $120.00

Servo SG90 Tower ProServomotor Micro$80.00

¿Quiénes Somos?

Formas de Pago

Política de Privacidad

Servicio de Asesoria

Distribuidores

¿Cómo comprar?

Designed by Elegant Themes | Powered by WordPress