¿Qué necesito para poner mi código en un microcontrolador?

Aprendí a codificar un controlador, pero nunca puse el código en el dispositivo físico. Estoy tratando de averiguar qué necesito ordenar para comenzar a desarrollar un sistema integrado básico.

Por ejemplo, si tengo un PIC18F1330, tengo un compilador MPLAB IDE y XC8. Genial, tengo el código compilado y estoy listo para ponerlo en el controlador. ¿Qué necesito para transferir mi código compilado en mi PC al controlador?

He visto cosas como un depurador en circuito y un kit PIC. Estoy perdido en este punto.

Entonces, una vez que tengo un PICkit, ¿el PICkit me permite conectar físicamente mi PC al microcontrolador?
Sí, hay un conector en el PICKit, ICD, etc. que conecta a su placa para la programación y depuración en el circuito.

Respuestas (5)

Hay varias formas de enviar su código a un microcontrolador.

En la web, encontrará muchos programadores hechos a sí mismos, pero por lo general también tienen software hecho a sí mismos y no están (bien) integrados en MPLAB IDE.

La solución más económica de Microchip es un PicKit por ~40€ que solo se conecta al PC a través de USB. Aunque el PicKit tiene algunas opciones de depuración, también está el ICD 'In Circuit Debugger' más potente por ~180€, que tiene más funciones de depuración, pero por supuesto también puede flashear los chips.

Siempre sentí que PicKit es suficiente para mí.

Existen versiones de terceros, ya que microchip publica firmware y esquemas para el PicKit, pero si los compra, asegúrese de obtener lo que cree que obtiene. Una vez vi una oferta por PicKit 3, pero no estaba seguro si no era un PicKit 2.


Solo como comentario: hay MCU de Microchip, que pueden flashear solos. Por ejemplo, usamos la familia PIC18F2450/2550/4450/4550 con USB integrado y le pusimos un cargador de arranque. Cuando se cierra un puente, la MCU ingresa al modo de cargador de arranque en el inicio y puede actualizar su MCU con su código. Todo eso está disponible en Microchip.

Para usar esto, necesita algunas modificaciones en su código. Y, por supuesto, necesita un programador regular para actualizar inicialmente el cargador de arranque en la MCU. Entonces, esta característica no tiene sentido si tienes un programador. Pero es bueno si desea actualizaciones de firmware para sus clientes.

Dado que está utilizando MPLAB IDE con el compilador XC8 C, puede comprobar la compatibilidad desde el menú Configurar->Seleccionar dispositivo (el indicador verde significa totalmente compatible, el amarillo es parcial y el rojo no es compatible).

En este momento, las mejores opciones serían Pickit 3, ICD3 o RealICE (en orden de precio creciente)

Aquí están los programadores compatibles, depuradores:

Realmente desea tener soporte de depuración, así como soporte de programación.

ingrese la descripción de la imagen aquí

Una vez que los controladores del dispositivo están instalados, puede seleccionarlos y conectarse a ellos (un dispositivo determinado solo puede instalarse como depurador o programador en un momento determinado):

ingrese la descripción de la imagen aquí

Luego, cuando se compila su programa (ya sea en forma de depuración o versión), puede programar el microcontrolador con los botones que se muestran a continuación:

ingrese la descripción de la imagen aquí

Físicamente, el PICkit u otra unidad de depuración/programación tiene un conector que se conecta a su sistema. Hay 6 pines, de los cuales 5 se utilizan, incluidos los de alimentación y tierra.

ingrese la descripción de la imagen aquí

Al momento de escribir, hay 3 formas principales de grabar un binario en un microcontrolador. Dependiendo de un micro en particular, 3 de ellos pueden estar disponibles. El método más antiguo es el programador/depurador específico del dispositivo. Los actuales para piezas de Microchip son Pickit3/ICD3, son compatibles con todos los micros PIC actuales y algunos más antiguos. No puede usarlos para programar piezas de otros fabricantes.

El segundo método se llama gestor de arranque. Es un pequeño programa grabado en el micro antes de que tomes posesión de la pieza. El cargador de arranque permite la programación a través de las interfaces estándar de micro: UART, SPI, Ethernet, etc. Los chips ARM a menudo vienen con un cargador de arranque precargado, así como con AVR. No necesita un equipo de programación patentado si hay un cargador de arranque, pero no podrá realizar una depuración de un solo paso fácilmente.

El tercero se llama JTAG. Es una interfaz semigenérica, puede programar muchas partes diferentes con ella y también depurar. Necesitará una pieza de equipo llamada dongle JTAG. Algunas partes de PIC tienen JTAG. Los chips ARM suelen tener JTAG y muchos no tienen ninguna otra interfaz de depuración.

Lo que necesita es un dispositivo de programación de microcontroladores. Esa es una pieza de hardware que se conecta a su PC y al microcontrolador, para realizar las funciones necesarias para cargar el programa en el chip. El depurador de circuito es un dispositivo que tiene más funciones que un programador, como depurar su código mientras se ejecuta en el chip. Puede usar el ICD o el kit PIC para programar el uC. O, si lo desea, también puede usar un circuito muy simple como el programador JDM .

Tenga en cuenta que MPLAB IDE es compatible con PIC Kit e ICD. Pero si usa un programador JDM, tendrá que usar otro software como PICPgm para cargar su chip compilado.

receta general:

  1. Escriba su código en un editor de texto usando el idioma de su elección
  2. Traduce ese lenguaje a código de máquina usando un compilador. El código de máquina es una lista de números hexadecimales: algunos representan una instrucción, el resto son argumentos/parámetros para estas instrucciones. Comúnmente llamado "archivo HEX". Cualquier pieza de programa se reduce a esta sucesión de instrucciones elementales + sus parámetros.
  3. Transfiera este código de máquina a la memoria del programa de su dispositivo. Esto se hace usando un programador. El programador se envía con un controlador, que es una pieza de software que controla el programador: déle un archivo HEX, hará el resto. El programador leerá su archivo HEX y moverá las líneas de programación del dispositivo (una especie de código morse) de forma codificada para escribir realmente la memoria del programa. Cuando se carga el programa, el dispositivo se reinicia y luego, el dispositivo automáticamente comienza a ejecutar código al comienzo de la memoria del programa. Ese es tu código. Esto se dice groseramente, pero es más o menos lo que necesita saber por ahora.

Estás casi allí . Tiene el entorno de desarrollo integrado que hace 1 y 2 de una manera muy fácil de usar. Incluso tiene interfaces para programadores para que no tengas que preocuparte por qué es un archivo HEX (presiona "reproducir" y listo).

Sin embargo, aún necesita el programador físico para conectar su dispositivo con la PC; hay un número disponible para PIC. Pickit es uno de ellos. Si tiene la intención de tomarse en serio la programación integrada, probablemente debería invertir en un depurador en circuito (ICD). Es un programador, y también algo que le permite echar un vistazo o tocar variables y registros en el micro, e incluso recorrer y detener un programa a voluntad.