domingo, 8 de mayo de 2016

microlinux_vem 2 revisión 2. Programación de microcontroladores PIC y AVR

1 Presentación




Esta distribución (puedes descargar la imagen .ISO del CDROM y su virtualización con Qemu desde aquí) ofrece un entorno básico de trabajo orientado a la programación de microControladores de las familias AVR (Atmel) y PIC (Microchip) sobre GNU/Linux.


Desde una interfaz de consola el usuario será capaz de editar código, ensamblar/compilar, simular (AVR) y grabar el dispositivo de forma sencilla y rápida.


Puede ser de utilidad tanto a personas familiarizadas con las herramientas de desarrollo bajo Windows como aquellas otras que inician su andadura en el apasionante mundo de los Dispositivos Programables.


Es conveniente conocer el manejo de Linux en modo texto para moverse con soltura dentro de microLINUX_vem 2.0. Si deseas ayuda escribe:


#taller


Donde encontrarás un grupo de actividades destinada al aprendizaje de los fundamentos de Linux.


2 Necesidades Hardware para trabajar con ulvem2rev2



Tanto el tamaño de la distribución así como el formato de presentación (CD-ROM) imponen unos recursos mínimos del computador mayores que en la versión anterior.


Otro aspecto a considerar es el hardware adicional necesario para la programación de los icrocontroladores y su canal de conexión con el sistema.

Esto implica la necesidad de nuevos elementos del PC:


  • Lector de CD-ROM
  • Memoria RAM igual o superior a 16 Mbytes
  • Procesador 486 o superior
  • Disquetera (si la BIOS no puede iniciar el sistema desde la unidad de lectura óptica)
  • Teclado expandido QWERTY con la disposición de teclas en Español
  • Monitor 14 pulgadas o superior
  • Tarjeta gráfica EGA o superior
  • Puerto Serie (programador PIC, por ejemplo T-20se)
  • Puerto Paralelo (según el programador del AVR)
  • Programador + cable de conexión + microControlador AVR
  • Programador + cable de conexión + microControlador PIC


Opcionalmente es interesante contar con:


  • Disco duro (y S.O. con entorno gráfico, visor de imágenes y lector de ficheros ".pdf")
  • Puerto USB
  • Entrenador de PIC y/o AVR


3 Contenido Software

General



  • Comandos y utilidades del sistema: BusyBox versión v1.00-rc1
  • Editor de textos: Nano versión 1.2.5
  • Compilador de C: Tcc (Tiny C Compiler) versión 0.9.23
  • Disco de inicio para acceder al CD-ROM y arrancar microLINUX_vem 2.0 desde un disquete (orientado a equipos con BIOS antiguas) freeDOS versión 1.0
  • nano (Editor de textos)
  • make (Automatización de tareas de ensamblado/compilado)

Específico

PIC



  • Herramientas de desarrollo: Gputils versión 0.13.2
  • Compilador C (Hi-tech): Picl versión 8.05PL1
  • Programador vía serie: Picprog versión 1.7
  

AVR



  • Herramientas de desarrollo: Binutils versión 2.15
  • Compilador de C: Avr-gcc versión 3.4.3
  • Depurador: Avr-gdb versión 6.1
  • Simulador: Simulavr versión 0.1.2.2
  • Programador: Uisp versión 20050207


4 Programando en lenguaje ensamblador



El desarrollo de un programa en Ensamblador se compone de las siguientes etapas:


1º Especificación del problema
2º Diseño del diagrama de flujo
3º Escritura del programa en lenguaje ensamblador:


#nano <fichero_fuente.asm>


4º Ensamblado:


#ensamblapic <fichero_fuente.asm> (uControlador PIC) ó
#ensamblavr  <fichero_fuente.asm> (uControlador AVR)


5º Simulación y depuración:


#simuavr  <opciones> [fichero_binario.hex] (uControlador AVR)
#depuravr <opciones> (uControlador AVR)
 
Nota: Puedes obtener más información escribiendo, sin parámetros, las órdenes
siguientes.


#ensamblapic
#ensamblavr
#simuavr
#depuravr


5 Programando en lenguaje de alto nivel



El desarrollo de un programa en Lenguaje C se compone de las siguientes etapas:


1º Especificación del problema
2º Diseño del programa en pseudocódigo
3º Escritura del programa en lenguaje C:


#nano <fichero_fuente.c>


4º Compilado:


#compilapic <fichero_fuente.c> (uControlador PIC) ó
#compilavr  <fichero_fuente.c> (uControlador AVR)


5º Simulación y depuración:


#simuavr  <opciones> [fichero_binario.hex] (uControlador AVR)
#depuravr <opciones> (uControlador AVR)
 
Nota: Puedes obtener más información escribiendo, sin parámetros, las órdenes
siguientes.


#compilapic
#compilavr
#simuavr
#depuravr


6 Simulación y depuración de un programa

Simulador



Su función consiste en ejecutar un programa codificado para un microcontrolador
concreto con la intención de mostrar información de la memoria interna y
registros de este en tiempo de ejecución. También es posible ajustar
manualmente algunos parámetros como:


  • Contenido de un registro
  • Modificación del contador de programa
  • Valor de la memoria (sram, eeprom, flash)
  

Depurador



Encargado de mostrar los sucesos internos de un programa mientras se está
ejecutando ó bien presenta su estado interno en el momento en que se interrumpió
inesperadamente. Por tanto ayuda a localizar y corregir errores de un programa
durante la ejecución del mismo.


Las acciones más importantes pueden resumirse en:


  • Someter a un programa a ciertas condiciones
  • Examinar el estado interno del programa cuando se ha parado
  • Observar el estado de las variables durante la ejecución del programa
  • Cambiar cosas del programa con la intención de corregir los efectos de los fallos y continuar su análisis


Simulador y depurador trabajando unidos



Usando conjuntamente el depurador "avr_gdb" y el simulador "simulavr", es
posible ejecutar un programa sobre un determinado microcontrolador a través del
simulador mientras el depurador observa la ejecución del código y su repercusión
paso a paso sobre el dispositivo.


7 Almacenamiento del programa sobre el microcontrolador

Grabación de un dispositivo



El término "grabación" representa la acción de trasladar el fichero binario
(ejecutable) con extensión ".hex" obtenido en la fase de ensamblado (o
compilado) al interior del microcontrolador (uC) para su ejecución. La orden
correspondiente es:


#grabapic <ejecutable.hex> (En el PIC) ó  |
#grabavr  <ejecutable.hex> (En el AVR)     |  PC (ejecutable.hex) => uC
  

Opciones del programador



Las aplicaciones de grabación proporcionan otras funciones con las que es
posible el tratamiento del programa almacenado en el microcontrolador.


#leepic <fichero.hex> ó  |
#leeavr <fichero.hex>     | Programa del uC => PC (dentro de fichero.hex)


#borrapic <dispositivo> ó |
#borravr  <dispositivo>     | Quita el programa del uC

Proceso de programación



Siempre que el S.O. interactúa con el microcontrolador es necesario seguir un
protocolo de actuación encaminado a garantizar la ejecución satisfactoria del
grabado del chip:


1º Conectar el programador al puerto del computador con el cable adecuado.
2º Preparar el dispositivo para recibir el programa:


  • Hacer una copia de seguridad del programa actual (opcional)
  • Borrar el microcontrolador


3º Grabar el programa.
4º Verificar el correcto resultado de la operación.


Nota: Puedes obtener más información escribiendo, sin parámetros, las órdenes
siguientes.


#grabavr
#grabapic
#leeavr
#leepic
#borravr
#borrapic


8 Archivos fuentes incluidos en la distribución



Todos los ficheros fuente suministrados por microLINUX_vem 2.0 están
localizados en la siguiente jerarquía de directorios:


  /usr/fuentes/asm/avr              > Código ensamblador para el uC AVR (avr-as)
                             /pic              > Código ensamblador para el uC PIC (gpasm)
                             /c/ejercicios > Ejercicios de lenguaje C   (tcc)
                             /avr              > Código C para el uC AVR    (avr-gcc)
                             /pic              > Código C para el uC PIC    (picl)
Con ellos podrás utilizar las diferentes aplicaciones de esta distribución.


Nota: Para evitar los problemas asociados al permiso de escritura (el
directorio <usr> se toma directamente del CD-ROM), el usuario deberá colocar
los ficheros con los que trabaje en algún lugar del directorio <home>.

9 Equipamiento de 𝝻controladores utilizado

Programador PICs T20-SE





Entrenador para PICs 16F84





Entrenador para AVRs AT90S8515





9.1 Diseño y fabricación asistidos por computador (CAM / CAD). Esquemas de los entrenador

Grabador PICs


Entrenador PICs + Fuente de alimentación





Entrenador AVRs + Fuente de alimentación







1 comentario: