BootLoader para 18F2550 (Entrenador NeoTeo)

Mario Sacco . Vista 65209 veces

Un BootLoader es un pequeño conjunto de instrucciones que forman un programa y se graban, en este caso en un microcontrolador, para permitir un posterior manejo y actualización de sus programas internos (firmware) sin necesidad de utilizar programadores (hardware) específicos. Es decir, utilizas un programador (o quemador) de microcontroladores una única vez para cargarle el mencionado BootLoader al microcontrolador y luego te bastará con una sencilla aplicación en tu ordenador para cambiar a tu antojo el funcionamiento de tus sistemas. Todo mediante una vulgar conexión al puerto USB. Las plataformas modernas que se asemejan a Arduino (incluida ésta) utilizan este sistema de programación y NeoTeo no podía quedar afuera. Ahora la programación está al alcance de todos.


  • Es imposible resumir en un sumario de pocas palabras las infinitas ventajas que posee un BootLoader. Sólo debes imaginarte la situación: tu hardware, tu ordenador y un cable de conexión USB entre ambos. Eso es todo lo que necesitas para transformar al entrenador NeoTeo en un voltímetro, en un videojuego, en un operador de servomotores y en miles de cosas más. A pesar de que el conector ICSP es una de las herramientas maestras de las que dispone una persona que se dedica a experimentar con microcontroladores, la utilización de un BootLoader te ahorra el uso de un hardware adicional de trabajo como es el programador (o quemador).

    Con un BootLoader pre-cargado en el microcontrolador, eliminas el uso de un programador especial (quemador) Con un BootLoader pre-cargado en el microcontrolador, eliminas el uso de un programador especial (quemador)

    Un ejemplo de las miles de ventajas que puedes tener sería este: Tú le has vendido a Max una aplicación y luego de un tiempo de uso él te expresa su lamento y pesar sobre algunas deficiencias del producto, mientras te comenta que desearía que hagas algunas mejoras para lograr un funcionamiento óptimo y acorde a sus necesidades. ¿Qué deberías hacer en esa situación? ¿Pedirle a Max que desarme todo el equipo y te lo envíe? Imposible. ¿Viajar tú de un país a otro para cambiar dos líneas de programa, conectar el hardware programador y demorar menos de cinco minutos en resolver el problema? ¡De locos! En cambio, si el sistema inicial posee la sencilla carga previa de un BootLoader, le envías a Max un pequeño archivo por correo electrónico y él mismo podrá actualizar la versión de firmware con un elemental cable USB conectado a su ordenador. Así trabajan Arduino, Amicus y todas las plataformas similares que compiten en la web. Así de sencillo y tentador. ¿Quieres verlo? Observa como se cambia de una aplicación a otra diferente en apenas algunos segundos:



    El principio de funcionamiento de un BootLoader es fácil de comprender. Se trata de un pequeño software, que se instala en un microcontrolador y ocupa un pequeño espacio de memoria dentro de él. Su única funcionalidad es servir de “anfitrión” para permitir la programación o re-programación del microcontrolador sin necesidad de un hardware específico, a veces costoso y que no es sencillo de armar ni utilizar. Toda la tarea de reinstalar un nuevo software para lograr diferentes trabajos por parte del microcontrolador, o al menos una actualización del firmware ya existente y funcional, se resume a un cable que une el microcontrolador con el ordenador. Puede ser una conexión por puerto serie (COM) o, lo que es mejor aún y que se utiliza en la actualidad, por puerto USB. Aquí tienes otro ejemplo de cómo funciona un sistema de carga con BootLoader (carga un programa que enciende el LED amarillo)



    El resto del trabajo lo realiza una aplicación instalada en el ordenador que será la encargada de detectar la petición de grabación desde el microcontrolador y cargarle un nuevo programa o, como mencionamos antes, actualizar el existente. Si el microcontrolador no realiza un llamado de solicitud anunciando una conexión para una grabación de datos, el ordenador interpretará la conexión como un hecho natural y atenderá a la aplicación existente y funcional dentro del microcontrolador trabajando en conjunto con este dispositivo y realizando las operaciones que la aplicación requiera. Por ejemplo, el Voltímetro NeoTeo. También puede suceder que no necesites conectar nunca tu aplicación a un ordenador para que realice su trabajo y cumpla una tarea.

    Por ejemplo: algunos de los carteles de LEDs que indican el recorrido de un transporte de pasajeros. Ese es un claro ejemplo donde el desarrollo no se utiliza “enlazado” a un ordenador. El empleado que se encarga de diagramar los viajes conecta un ordenador portátil mediante un cable USB, ejecuta una aplicación y con un simple clic del ratón cambia los textos del cartel indicador. Otros sistemas más modernos y sofisticados le transmiten al cartel la actualización de información mediante un enlace Wi-Fi. ¿Y cómo cargan la información recibida dentro del microcontrolador? Mediante el BootLoader anfitrión que el microcontrolador ya posee en su interior.



    La Ley De Moore al acecho
    Además, el camino irreversible de la miniaturización y la alta integración de los semiconductores nos entregan día a día dispositivos más pequeños y en encapsulados (package) muy difíciles de manipular. La mayoría de los microcontroladores “poderosos” del mercado comienzan a aparecer en encapsulados muy pequeños. Esto significa que retirarlos de una placa,  colocarlos en un programador y luego restituirlos al PCB donde cumplen su función es un trabajo imposible de realizar sin destruir al menos una docena de pines y/o calcinar el dispositivo y/o las vías del PCB. Por lo tanto, amigos, los tiempos de gloria del 16F84A, del 16F628A y hasta del mismo 18F2550 (que utilizamos en nuestra placa de entrenamiento) están llegando a su final. Quizás la visión de quien escribe estas líneas pueda parecer algo pesimista. Pero si se detienen a observar la mayoría de (por no decir todas) las placas de entrenamiento que comercializan las marcas líderes en microcontroladores, notarán que poseen versiones de montaje superficial para sus MCU (microcontroladores) y los medios de programación son el ICSP (con hardware programador) y por medio de BootLoaders. Estos últimos pueden ser por puerto serie o por puerto USB.



    Para muestra, basta el botón que acabas de ver: MPLAB Starter Kit for PIC 18F MCU (que sería el primer escalón para comenzar a trabajar en el mundo de Microchip - MPLAB utilizando los PIC de la línea 18F) trabaja mediante el uso de BootLoaders. Toda la intervención con el hardware se limita a conectar un cable USB y a cargar nuestros programas. El soldador (cautín) ya comienza a desaparecer de la mesa de trabajo del desarrollador. En su lugar comienzan a abundar otras herramientas virtuales que ayudarán a reducir en forma notoria muchos métodos de “prueba y error” utilizados hasta ahora. Ya no bastará con que el sistema funcione en el simulador dentro del ordenador sino que también deberá hacerlo en la placa de entrenamiento. Pues entonces si hacia allí vamos, adaptemos nuestra placa de entrenamiento NeoTeo con el 18F2550 e ingresemos al futuro nosotros también.

    Una solución de código abierto
    Microchip posee herramientas gratuitas que se pueden descargar desde su sitio web y nos pueden ayudar a desarrollar aplicaciones con un mínimo de inversión y con la posibilidad de adquirir un aprendizaje muy importante. Dentro de las posibilidades que ofrece el sitio para trabajar con BootLoaders encontramos una aplicación dedicada a la familia del PIC 18F4550 mediante la conectividad USB que este microcontrolador brinda. Sobre esta plataforma basaremos nuestro trabajo adaptando el “programa base” que Microchip ofrece para satisfacer nuestras necesidades de uso dentro de la placa de entrenamiento NeoTeo.

    Microchip ofrece una multitud de ejemplos y programas gratuitos para iniciarse en el mundo de los microcontroladores Microchip ofrece una multitud de ejemplos y programas gratuitos para iniciarse en el mundo de los microcontroladores

    Por ejemplo: en el BootLoader ofrecido (para el 18F4550) se utiliza el puerto D para colocar un LED indicador de estado. El 18F2550 no posee puerto D y en consecuencia tendremos que efectuar alteraciones allí. Por otro lado, un pulsador ubicado en el pin 4 del puerto B (en el desarrollo de Microchip para el 18F4550) nos resulta incómodo ya que el puerto B de nuestro entrenador estaría dedicado a un LCD alfanumérico y al bus I2C. Esta sería entonces otra variante a realizar sobre el programa original. Dicho nuevamente: partiendo de un sistema “base” reformaremos el BootLoader original para migrar desde un 18F4550 a un 18F2550. Atención!: Esto no termina aquí. Avanza a la siguiente página y comencemos a trabajar. ¡Manos a la obra!

¿Y tú, qué opinas?

  • #1 <a href="../../foro/member.php?u=19193" target="_self">Maggi</a>
    Maggi sábado, 12 de junio de 2010, 22:04

    Atento al 100%! siguiendo hasta la ultima letra! Muy bueno Mario.

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #2 mindmaster
    mindmaster domingo, 13 de junio de 2010, 00:57

    muy articulo mario me servira para un trabajo de electronica

    eres grande mario GRANDE

    Responder >> Attention Minus Plus Votos: -2 de 2
  • #3 <a href="../../foro/member.php?u=18623" target="_self">LucasVega</a>
    LucasVega domingo, 13 de junio de 2010, 01:07

    Hola Mario:

    Ya te estabamos extrañando, nos dejaste 3 semanas en espera de tus articulos, pero si que valieron la espera y con muchos honores, porque en verdad que esta excelente la aplicacion, ya que te abre la posibilidad a que los desarrollos que se realicen tengan una flexibilidad muy grande. Muy pero muy bueno este desarrollo.

    Mil gracias, un abrazo desde Colombia

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #4 <a href="../../foro/member.php?u=14432" target="_self">crisma</a>
    crisma domingo, 13 de junio de 2010, 03:02

    #3Buenas:

    me añado a la "extrañez" de la espera, pero como bien dice Yesbond, ha valido la pena :D.
    En mi caso, ademas, estoy haciendo un programador de pics por USB, que requiere un bootloader en un pic 18f2550... Me ha servido bastante para entender el funcionamiento de este "futuro" programador (futuro porque todavia no he conseguido grabar el pic, pero ya lo acabare, ya... :D )

    Un saludo, Mario.

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #5 <a href="../../foro/member.php?u=14432" target="_self">crisma</a>
    crisma domingo, 13 de junio de 2010, 03:20

    Buenas Mario:

    Acabo de mirar los anteriores tutoriales, y no he visto un pcb o un esquematico de la placa de entrenamiento neoteo... Tienes pensado publicarlo? si es asi, podrias ponerlo en los adjuntos de este tutorial? Muchas gracias de antemano ;)

    Un saludo,

    Jakala

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #6 <a href="../../foro/member.php?u=23431" target="_self">kevenisac</a>
    kevenisac domingo, 13 de junio de 2010, 04:43

    Saludos amigo Mario,

    El tema de los Pics cada vez se pone mas interesante, yo tengo como pasatiempo la electrónica y estoy haciendo uno que otro montaje. Excelente articulo Mario!.

    Muchos Saludos.

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #7 comrade k
    comrade k domingo, 13 de junio de 2010, 04:52

    Disculpame editor pero para hacer este experimento necesitamos el esquema pcb y del circuito impreso para elaborar la placa.
    saludos

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #8 <a href="../../foro/member.php?u=16843" target="_self">kianji</a>
    kianji domingo, 13 de junio de 2010, 05:08

    Esta super el articulo u.u, yo uso es un BootLoader por el puerto serial y para grabar, uso el termina de compilador CCS pic-c. Los BootLoader son muy útiles para depurar al instante el cosigo del proyecto y no extraer el pic (se dañan los pindes) para grabarle un ajuste. No se trabajar por el USB (no money =/ ) pero me a entusiasmado los excelente artículos anteriores respecto al tema, mientra estoy revisando uno manuales a ver como simulo el USB en isis proteus.

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #9 <a href="../../foro/member.php?u=15672" target="_self">imported_josequinta</a>
    imported_josequinta domingo, 13 de junio de 2010, 05:20

    Gracias Mario Magnifico aporte.

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #10 juan
    juan domingo, 13 de junio de 2010, 06:06

    Este proyecto esta basado en el entrenador pic?
    http://www.neoteo.com/entrenador-para-pic-18f2550.neo
    Tengo una duda, con este bootloader se puede cargar cualquier programa al pic independiente del lenguaje usado ya sea en assembler o en c?

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #11 <a href="../../foro/member.php?u=19193" target="_self">Maggi</a>
    Maggi domingo, 13 de junio de 2010, 07:44

    #10No importa el lenguaje. El archivo hex que generan todos los compiladores para el pic podrá ser cargado con el bootloader.

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #12 Arka Siradakiler izle
    Arka Siradakiler izle domingo, 13 de junio de 2010, 15:08

    Disculpame editor pero para hacer este experimento necesitamos el esquema pcb y del circuito impreso para elaborar la placa.
    saludos

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #13 <a href="../../foro/member.php?u=8" target="_self">Mario</a>
    Mario domingo, 13 de junio de 2010, 17:33

    #1Hola Jukinch! :))

    Gracias por acompañarnos Maestro!

    Un abrazo!

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #14 <a href="../../foro/member.php?u=8" target="_self">Mario</a>
    Mario domingo, 13 de junio de 2010, 17:35

    #2Hola mindmaster!

    Seguro te será muy útil para "muchos" trabajos con PIC. No lo dudes.

    Saludos!

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #15 <a href="../../foro/member.php?u=8" target="_self">Mario</a>
    Mario domingo, 13 de junio de 2010, 17:43

    Hola Yesbond!

    ¿3 semanas?¿Tanto tiempo?
    A veces uno vive la vida de manera muy acelerada y pierde la noción de los tiempos. Estuvimos muy activos concurriendo a un seminario de microcontroladores que se dictó en Buenos Aires entre otras cosas y el tiempo ha transcurrido sin piedad, pero aquí estamos nuevamente.

    Un BootLoader (o bootloader) es una herramienta magnífica realmente. Le resuelve los problemas a mucha gente. A pesar de que hoy abundan los programadores USB muy económicos y fáciles de construir, liberarse de esa carga es un hecho importante para muchos.

    Me alegra que sea de tu agrado amigo! :))
    Ahora hay que aplicarlo y aprovecharlo.
    Leer más

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #16 <a href="../../foro/member.php?u=8" target="_self">Mario</a>
    Mario domingo, 13 de junio de 2010, 17:47

    #4Hola jakala!

    Esa es la función del artículo presentado.
    Aquellos que no tengan un grabador de PICs sólo deben conseguirlo una vez y cargar en el microcontrolador el BootLoader. Luego todo se realiza mediante el puerto USB.
    Más fácil, imposible! :))

    Éxitos con tu programador!
    Saludos!

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #17 <a href="../../foro/member.php?u=8" target="_self">Mario</a>
    Mario domingo, 13 de junio de 2010, 18:08

    Hola de nuevo jakala!

    Ya he colocado los impresos correspondientes en ambos artículos. El de la placa entrenadora y el del módulo para trabajar con BootLoader al final de este artículo (tercer página)

    La cuestión de los circuitos impresos es algo muy personal y hay oportunidades en que a los usuarios (a mí me sucede) les gusta hacer sus propios diseños de circuito impreso mejorando el que podamos presentar nosotros.

    Muchas veces pensamos: "esta vía debiera ser más fina o más gruesa" o también decimos: "esta vía debiera ir por aquí o por allá" y tal vez por esos motivos trato de dejar a criterio de Uds. el diseño del circuito impreso. Porque es una cuestión ...
    Leer más

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #18 <a href="../../foro/member.php?u=8" target="_self">Mario</a>
    Mario domingo, 13 de junio de 2010, 18:14

    #6Hola amigo Falke!

    Los microcontroladores son extraordinarios respecto a las posibilidades que nos brindan de poder fabricar cosas muy útiles con muy poco esfuerzo. Además nos ayudan a estar a tono con las nuevas tecnologías y técnicas de programación.

    ¡Mira tú! ¿Quién me habría visto a mí programar en MPLAB y C18?
    Tener la posibilidad de estudiar, razonar y aprender (ir a perder el tiempo a una Universidad a buscar un Diploma es otra cosa) es una bendición que hay que aprovechar en esta vida. :)

    ¡Adelante con los montajes y la experimentación! ¡Éxitos amigo!

    Gracias por estar siempre con nosotros. :))

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #19 <a href="../../foro/member.php?u=8" target="_self">Mario</a>
    Mario domingo, 13 de junio de 2010, 18:16

    #7Hola comrade k!

    Ya he colocado los diseños de los impresos que yo he utilizado en sus respectivos lugares dentro de los artículos (Éste y el de la entrenadora).

    Saludos!

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #20 <a href="../../foro/member.php?u=8" target="_self">Mario</a>
    Mario domingo, 13 de junio de 2010, 18:23

    #8Hola Truko!

    Ya no más puerto serie!
    Ahora puedes utilizar siempre un 18F2550 (o algo superior, pero siempre con USB) para todos tus proyectos y manejarte con una netbook simplemente gracias al BootLoader.

    Armas tu programa, lo compilas, conectas la aplicación al puerto USB mientras pulsas el botón, cargas el archivo con el programa que entregamos en este artículo ... y listo!

    Los tiempos cambian y debemos acompañarlo.
    El USB ha llegado para reemplazar a todos los sistemas y sigue creciendo (habrás visto los artículos sobre USB 3.0).

    Saludos Truko! Gracias por estar siempre con nosotros! :)

    Responder >> Attention Minus Plus Votos: 1 de 1
  • « «« Anterior123Siguiente »» »
    Cargando...Cargando...

  • nuevo comentario
    Nombre

    Campo obligatorio

    Email

    Escriba una dirección de correo electrónico con el formato sunombre@ejemplo.com.

    Campo obligatorio

 
Ir arriba