Práctica 5

Anuncio
Práctica 5: Ejecución de programas en el dsPIC
Informática Industrial
1.
Procedimiento de configuración inicial
Durante la instalación del MPLAB IDE 1 existe la opción de dejar preinstalados los drivers para la conexión mediante USB del dispositivo de depuración y
programación MPLAB ICD 2, de forma que cuando se conecte éste por primera
vez se realiza la instalación de dichos drivers. Esta primera conexión ya ha sido
realizada en los ordenadores de prácticas puesto que se necesitan privilegios de
administrador. A continuación se describe el resto del procedimiento que hay
que llevar a cabo para configurar el MPLAB IDE para el uso del MPLAB ICD2:
1. Conectar el ICD 2 al PC con el cable USB. El ICD 2 no debe tener nada
más conectado en este momento.
2. Ejecutar el MPLAB IDE.
3. Seleccionar el modelo dsPIC30F6010 en Configure/Select Device.
4. Seleccionar el MPLAB ICD 2 como herramienta de depuración en el
menú Debugger/Select Tool
5. Si en ese momento no sale automáticamente el cuadro para configuración
del MPLAB ICD 2, obtenerlo en Debugger/MPLAB ICD 2 Setup Wizard.
En ese cuadro se realizan sucesivamente unas preguntas, en las que debe
escogerse:
Método de conexión: USB.
MPLAB IDE conecta automáticamente con ICD 2: DESACTIVADO
(si en lugar de esto, sale algo relacionado con “target power source”,
es que se hizo mal la elección del punto 3; volver allı́).
ICD 2 carga automáticamente sistema operativo: ACTIVADO.
6. Conectar la placa de desarrollo al ICD 2, y alimentar la placa de desarrollo.
Si todo se ha realizado correctamente, ya está listo para su uso. Puede verificarse
que la conexión del MPLAB IDE con el ICD 2 es correcta con Debugger/Connect:
en la ventana output saldrán mensajes indicando el resultado de la conexión.
Si la conexión se realiza por primera vez, es decir, en un equipo de desarrollo
nuevo, se pedirá confirmación para cargar el sistema operativo o firmware en él.
Sólo hay que aceptar y esperar a que se realice la carga, que puede durar unos
minutos.
1 También
es posible a posteriori. Consultar la documentación en caso necesario.
1
2.
Método de conexión y desconexión del sistema
Cuando no haga falta llevar a cabo el procedimiento del apartado anterior
porque sea seguro que la configuración del MPLAB no ha sido cambiada en los
aspectos contemplados en el mismo, lo único que hay que hacer para preparar
el sistema es lo siguiente:
1. Conectar el ICD 2 al PC con el cable USB. El ICD 2 no debe tener nada
más conectado en este momento.
2. Conectar la placa de desarrollo al ICD 2, y alimentar la placa de desarrollo.
3. Ejecutar MPLAB IDE.
El procedimiento de desconexión es el inverso del anterior y no se debe apagar
el PC sin haberlo realizado antes.
Existen otras configuraciones de conexión entre PC, ICD2 y placa de desarrollo, por ejemplo alimentando el ICD 2 en lugar de la placa de desarrollo de
forma que la placa de desarrollo se alimenta indirectamente a través de la conexión con el ICD 2. Sin embargo la potencia que llega a la placa de desarrollo
usando dichas configuraciones no es suficiente en los modelos dsPIC30F.
3.
Depuración de un proyecto
Cuando el sistema está listo para su uso, normalmente se abrirá un proyecto antiguo o se creará uno nuevo. Después de compilar (Build All o Make),
hay que seleccionar el MPLAB ICD2 como herramienta de depuración en el
menú Debugger/Select Tool (si no lo está ya) y activar la conexión del MPLAB
IDE con el ICD 2 con Debugger/Connect. Luego se transfiere el código binario
del programa al dsPIC con Debugger/Program y ya está listo para la depuración. Cada vez que se realice un cambio en el programa y se recompile, se
deberá transferir de nuevo al dsPIC.
En la depuración se procede básicamente igual que con el simulador, aunque
a veces se observarán distintos comportamientos y posibilidades respecto a éste,
como por ejemplo:
Sólo es posible tener dos puntos de ruptura activos a la vez al depurar con
el ICD2.
El inicio de la ejecución o la ejecución de un paso de programa puede
realizarse muy lentamente si se tienen abiertas determinadas ventanas del
menú View, como por ejemplo la de los SFR. Para evitarlo, usar la ventana
Watch y poner en ella sólo las variables/registros que se quieren ver. Ello
se debe al tiempo requerido para transferir los valores desde el dsPIC al
MPLAB IDE.
Para evitar ciertos conflictos con las zonas de memoria reservadas en el
dsPIC para el uso del ICD2 en modo depuración que provoca comportamientos extraños en la ventana Watch (variables que no se actualizan o
que no muestran su valor en dicha ventana), hay que activar la opción
2
“Link for ICD2” en el menú Project/ Build Options/Project, dentro
de la lengüeta “MPLAB LINK 30”.
Cuando se está realizando la ejecución paso a paso, no se realizan llamadas
a interrupciones.
El Watchdog tiene que estar deshabilitado en depuración. Esto se hace en
Configure/Configuration bits. Si no se hace, el MPLAB IDE avisa de
ello al intentar depurar con el ICD2.
Para más información acerca de estos aspectos, se puede consultar el archivo:
Microchip\MPLAB IDE\Readmes\Readme for MPLAB ICD 2.txt
o también el documento MPLAB ICD 2 In-Circuit Debugger User’s Guide.
4.
Programación de un proyecto
Cuando un proyecto está en su estado definitivo de uso, se puede usar el
ICD2 para programar el dsPIC de forma que luego pueda ejecutarse el programa independientemente del PC y del ICD2. Otra diferencia del método que se
describirá a continuación frente al mencionado en el anterior apartado es que
no se transfiere cierto código de apoyo, necesario para la depuración.
Para programar el dsPIC para funcionamiento autónomo se activa la opción Programmer/Select Programmer/MPLAB ICD 2. Además debe tenerse en
cuenta que el ICD2 nunca debe estar seleccionado a la vez como programador y
como depurador. Si se intenta activar uno con el otro activado, el MPLAB IDE
avisará y pedirá confirmación para desactivar el otro.
Una vez hecho, aparece disponible la opción Programmer/Program, que transfiere el programa al dsPIC. El programa no empieza a ejecutarse inmediatamente porque por defecto es mantenido en RESET. Existen dos opciones en dicho
menú Programmer (y sus botones equivalentes en la barra de herramientas) para
quitar y poner dicho estado RESET.
Una vez programado el dsPIC se puede desconectar la placa de desarrollo del,
ICD2. En modo autónomo comenzará inmediatamente a ejecutarse el programa
almacenado en el dsPIC, pudiendo usar en cualquier momento el botón RESET
para reiniciar el programa.
5.
Caracterı́sticas de la placa de desarrollo
Se describirán a continuación algunas caracterı́sticas fı́sicas y de configuración de la placa de desarrollo. En las descripciones fı́sicas se considerará que se
mira la placa orientada para leer de forma natural el siguiente texto serigrafiado:
MICROCHIP dsPIC30F Motor Control Development Board.
5.1.
Frecuencia de reloj del procesador
La frecuencia de reloj del procesador es configurable, pero por defecto tiene
el valor 7,378 Mhz.
3
5.2.
Diodos LED
Los cuatro LEDs rojos contiguos se denominarán, de arriba a abajo: 1, 2,
3 y 4. Se encienden poniendo a 1 las lı́neas RA9, RA10, RA14 y RA15, respectivamente. El quinto LED rojo apartado viene etiquetado FWD/REV, y se
enciende al poner a 1 la lı́nea RD7.
5.3.
Botones o pulsadores
Los cuatro pulsadores debajo de la pantalla LCD se denominarán, de izquierda a derecha: 1, 2, 3 y 4. Cuando son pulsados se ponen a 0 las lı́neas RG6,
RG7, RG8 y RG9, respectivamente. El pulsador que se encuentra a la izquierda
de éstos viene etiquetado como TRIP y al pulsarlo se pone a 0 la lı́nea RE8.
5.4.
Potenciómetros
Los dos potenciómetros disponibles están etiquetados como VR1 y VR2.
Ambos están alimentados a 5V y por lo tanto proporcionan una salida entre 0 y
5V. El potenciometro VR1 está conectado a la lı́nea de entrada AN12, mientras
que el VR2 está conectado a la lı́nea de entrada AN7.
6.
Problema propuesto
1. Programar el dsPIC para leer el nivel de tensión existente en el potenciometro VR1 y programar los LEDS de forma que cada LED (1,2,3 y 4) se
encienda si la tensión medida supera los valores de 1,2,3 y 4V respectivamente.
2. Programar el pulsador 1 de forma que al pulsarse detenga el procesamiento
y los LEDS se mantenga en su valor. Reiniciar el procesamiento al volver
a pulsar este botón.
3. Programar el pulsador 2 de forma que al pulsarlo se detenga el procesamiento y los LEDS se apaguen. Al volver a pulsar se reanudará el procesamiento.
4. Hacer compatibles los dos últimos casos.
4
Descargar