miércoles, 29 de mayo de 2019

Práctica 1, empezando (Sistema mínimo)


El objetivo de esta práctica es que el estudiante se familiarice con el microcontrolador y las herramientas necesarias para su programación, así como con su configuración. Es como escribir el primer programa de computadora que muestra por la consola de salida el clásico mensaje “hola mundo”, en vez de este mensaje, se prende un led, el cual se ha conectado a la patita 14 (RA4).

Equipo
  • Computadora personal
  • Fuente de poder de laboratorio
  • Programador ICD3, PICkit3 o similar
Material
Cantidad Descripción
   1          PIC32MX220F032B
   1          Capacitor 10 microfaradios de tantalio, puede usarse un electrolítico, pero no se recomienda
   1          Resistencia de 10kΩ
   1          Resistencia de 1kΩ
   1          Diodo Emisor de luz (Led)
   1          Tablilla para prototipo (Protoboard)

Armar el sistema mínimo según la fig 1.1.


Fig 1.1 Circuito que muestra al microcontrolador PIC32MX220F032B con los componentes mínimos necesarios para su funcionamiento. Observar que se ha conectado la alimentación del ADC (patitas 27 y 28), si no se hace esta conexión el ICD3 no identifica al microcontrolador. No se tiene un cristal debido a que se va a usar un reloj interno. El capacitor de 10 microfaradios es para un regulador interno del microcontrolador.


Ya que se tiene armado el hardware del sistema, es momento de escribir el programa.

Creación del programa
Usando cualquier editor de texto o el editor que trae incorporado MPLAB X, se escribe el siguiente programa, se elimina cualquier otro programa que tenga el proyecto y se agrega este. En el resto de prácticas, se usará esta misma estrategia, usar el mismo proyecto y solo cambiar de programa y agregarle los componentes necesarios al sistema mínimo.


Fig. 1.2 Programa para la práctica 1

Se compila el proyecto y si no hay errores, se puede proceder a “programar” el microcontrolador, para ello se usará el ICD3.
El ICD3 se conecta al puerto usb de la PC. Para conectarlo al microcontrolador se hace uso de un conector especial que en seguida se describe. Este programador dispone de una entrada (zócalo) para un conector tipo telefónico de 6 entradas. De las seis conexiones solo se usan 5, las cuales se describen en la figura 1.3



Fig. 1.3 Conexiones del ICD3. Para simplificar el diagrama se omiten las otras conexiones del sistema mínimo.


Las entradas para el PGC y PGD pueden estar asociadas a diferentes patitas, dependiendo del microcontrolador de que se trate. En este caso se tienen tres juegos de estas entradas, en este manual se usarán las que están en las patitas 22 y 21.

Cuando EL ICD3 está conectado al circuito, solo PGC y PGD están en uso y no están disponibles los otros módulos que comparten esas patitas. Cuando se desconecta vuelven a estar disponibles las e/s en esas patitas de los otros módulos.


Programando el microcontrolador con el ICD3

Para realizar la programación del microcontrolador, 
asegurarse que todo está correctamente conectado y presionar el ícono.  

De esta manera el programa se baja al microcontrolador.

Si no se presenta ningún error, el MPLAB X, en la ventana de salida mostrará un mensaje indicando que la operación fue exitosa e inmediatamente el microcontrolador empezará a ejecutar el programa, es decir encenderá el led.

Configuración del microcontrolador(bits de configuración)
Estos microcontroladores usan una arquitectura Harvard modificada, en la memoria FLASH se guarda el programa y en la memoria RAM se acomodan los datos. De esta manera cuando el microcontrolador se desconecta de la energía, el programa no se pierde, solamente se pierden los datos de la RAM.

En la memoria FLASH, además del programa, también se guardan los bits de configuración. Cada microcontrolador puede tener diferentes opciones de configuración. La información de todas las opciones de configuración para este microcontrolador se pueden ver en un documento html localizado en el directorio donde se tiene instalado el compilador XC32, en el caso de la instalación en la que se basa este manual, este archivo se encentra en :
file:///opt/microchip/xc32/v2.15/docs/config_docs/32mx220f032b.html”
En el directorio /opt/microchip/xc32/v2.15/docs/config_docs/ se encuentran los archivos html de todos los microcontroladores PIC32. La carpeta v2.15 corresponde a la versión del compilador xc32. Entonces si alguien instala una versión diferente, pues esta carpeta tendrá como nombre esa versión que se instaló. Además en linux la carpeta microchip se pone en la carpeta /opt, en otros sistemas operativos se instala en carpetas con otros nombres.

Los bits de configuración usan la directiva #pragma config en seguida el nombre de los bits que se van a configurar y el valor que tendrán. Por ejemplo “#pragma config JTAGEN = OFF ” Deshabilita el puerto de depuración JTAG

Descripción del programa (ver fig 1.2)
Cuando el microcontrolador ya tiene cargado el programa, cada vez que se energiza, primero pasa por un proceso de “reset”, donde el CPU y todos los módulos de que dispone se inicializan, después de este proceso se ejecuta el programa cargado. El programa de esta práctica solamente enciende un led conectado a la patita 12 a través de una resistencia de 1k.
El programa finaliza en la llave de cierre del cuerpo de la función main(). A diferencia de otros compiladores, en el XC32, no se regresa hasta el proceso de “reset”, el compilador inserta un ciclo infinito después de la llave final de cierre.

En seguida se describen cada una de las líneas de código del programa de esta práctica:



Línea 1:
Se incluye el archivo de cabecera para el pic32. Es un mismo archivo para toda la familia PIC32.

Línea 2
Comienza la configuración del microcontrolador(Bits de configuración) Estos microcontroladores disponen de un puerto de programación formado por dos entradas; la entrada PGED recibe los datos y la entrada PGEC recibe los pulsos de reloj. A estas entradas se conectan los programadores ICD3 y PICkit3. Para facilitar la disponibilidad de diferentes módulos cuando se realiza la programación y la depuración, se tienen tres juegos de conexión o canales para este puerto. En esta y el resto de prácticas se usará el juego(canal) formado por las entradas PGED2 y PGEC2. Las cuales se configuran en la línea 2.

Línea 4
Se deshabilita el puerto JTAG, este puerto se puede usar para conectar emuladores como el MPLAB REAL ICE.

Línea 5
Deshabilita el oscilador secundario. Esta familia dispone varios osciladores, más adelante se comentan algunas de sus propiedades.

Línea 8-9
Se configura el oscilador. Mas adelante se trata este tema.

Línea 11
Comienza la función principal

Línea 12
Se configura el puerto RA4 como salida

Línea 13
Se pone un uno lógico en el “latch” del puerto RA4

Fin de la práctica 1.


Bibliografía:
MPLAB® ICD 3 In-Circuit Debugger User’s Guide For MPLAB X IDE 2014

No hay comentarios.:

Publicar un comentario