Trabajar con chips PIC en Linux es a la vez una tarea desalentadora y una tarea sorprendentemente fácil.
Primero necesitas conseguirte un programador PIC. El que obtuve fue un clon del Pickit fuera de ebay por solo unas pocas libras Hay muchos otros alrededor. El PicKit3 es probablemente una mejor opción que el PicKit2, pero he tenido buenos resultados con los míos hasta ahora.
En segundo lugar está el software. Para la programación real del PIC, necesitará un software adecuado para el programador que obtenga. Para mi PicKit2 utilizo la utilidad de línea de comandos de Linux pk2cmd
descargable desde Microchip. Al principio, cuando comencé a usarlo, estaba muy perdido acerca de cuáles eran las opciones de la línea de comandos: la documentación es bastante deficiente. Pero, después de algunas excavaciones, resolví la siguiente línea de comandos que siempre uso:
$ sudo pk2cmd -p -m -r -f file.hex
Eso detecta automáticamente el chip que está utilizando (-p), programa toda la memoria (-m), restablece el PIC después de la programación para que se ejecute (-r) y use el archivo / ruta / a / hex / archivo (-f ...)
Otro útil es:
$ sudo pk2cmd -p -i
Lo que te dice qué PIC ha detectado.
Recientemente, me encontré con un problema con pk2cmd recientemente: no es compatible con los chips PIC más nuevos (en particular, el PIC18F46K22 que estaba tratando de usar). Sin embargo, hay otra versión en algún lugar de Internet (no recuerdo dónde ahora) que se ha modificado para admitir las últimas versiones de chips. Puede o no puede necesitar eso dependiendo del PIC que elija.
Luego está la programación del propio firmware. Microchip ha portado muy cuidadosamente su MPLAB-X IDE a Linux, para que pueda obtener todo el software que necesita para la programación aquí . Todavía está en fase beta en este momento, así que espere algunos errores, pero puede obtener el IDE y todas las implementaciones de C que desee. La documentación en línea dentro del IDE es bastante buena, pero necesitará la hoja de datos del PIC elegido a mano.
Si bien hay otros IDE disponibles, este es el que he obtenido mejores resultados (es decir, es el único que realmente he trabajado con Ubuntu).
PS. Tengo una comunidad wiki'd esta respuesta para que la gente pueda desarrollarla.