Introduccin Este curso es sobre el funcionamiento, diseo e implementacin de la computadora digital. No obstante la enorme variedad de situaciones que pueden ser resueltas o controladas por una computadora digital estas poseen una estructura fsica interna con pocas variaciones entre una y otra. Las diferencias realmente radican en la programacin y en el tipo de perifricos o puertos utilizados en su diseo, los cuales dependen estrechamente del tipo de aplicacin. Dos son los elementos esenciales que componen a una computadora digital, uno es el hardware y otro el software. El hardware es bastante convencional y est formado por todos los elementos fsicos que conforman a la computadora y que a su vez implementan tres secciones elementales: el microprocesador o a veces llamado CPU (Unidad Central de Procesamiento), la memoria y los perifricos. El software es el conjunto de programas conformados por las instrucciones que controlan el quehacer de la computadora y los datos que estos requieren para su operacin. Tanto los datos como los programas residen en la memoria de manera permanente algunos (programas monitores y/o sistemas operativos) y temporal otros. Una variante o ms bien una extensin del microprocesador es el microcontrolador MCU el cual integra en un solo dispositivo las tres secciones mencionadas con el objetivo de realizar alguna aplicacin de control, de all el trmino MCU. El objetivo principal del curso es el estudio del hardware, del software y de sus variantes enfocados en el diseo y programacin de una computadora tipo genrica. Aunque es posible describir el hardware de una computadora sin hablar del software llegar el momento en el que hay que probar su implementacin. La nica forma de hacerlo es programar funciones bsicas que prueben el funcionamiento correcto de todas sus partes, es aqu en donde el software es importante. Para lograr este objetivo se ha seleccionado una plataforma especfica integrada por el MC98S12C128 como elemento fsico parte del hardware y el CodeWarrior como interfaz de desarrollo para su programacin (software). Esta prctica y las subsiguientes estn orientadas al estudio de estos elementos, inicialmente es necesaria la familiarizacin con el IDE o Entorno Integrado de Desarrollo (Integrated Development Enviroment) de CodeWarrior para tal fin siga el siguiente procedimiento. Procedimiento 1. Instale el CodeWarrior1 2. Ejectelo y en el Startup Dialog seleccione Run Getting Started Tutorial. La mejor forma de aprender a utilizar un nuevo IDE es ejecutando los tutoriales que le acompaan. Los tutoriales son sencillos y pueden realizarse con poco esfuerzo de su parte. 3. En el panel izquierdo de la ventana de ayuda se presenta un grupo de siete tutoriales. Ejecute los tutoriales siguiendo las indicaciones presentes en el propio tutorial pero tomando en cuenta las consideraciones que a continuacin se listan. C Tutorial: Paso 1 hgalo tal cual. Clic en el botn de Create a New Project en la ventana de inicio. Si el Code Warrior ya est corriendo, invoque un nuevo proyecto usando File New Project Paso 2 seleccione HCS12 >> HCS12C >> MC9S12C128 en vez de 1 El procedimiento de instalacin de CodeWarrior no difiere del de instalacin de otros programas similares, existe un CD con el programa y los datos necesarios para su instalacin. Ing. M. Logreira V. A.
Prctica No 1 de Computadoras Digitales
Tutoriales de CodeWarrior HSC12 MC9S12DP256 ya que este no se provee y aquel s. Opte por Full Chip Simulation Paso 3 ubique su proyecto en un directorio en la raz de su disco y con el nombre del grupo de laboratorio (Las primeras silabas de los apellidos de los integrantes s y ubquelo en un directorio en la raz del Disco. Por ejemplo: c:\CWPRJ12\LOJOCRUZx\TutoC Grupo formado por Lpez, Jolie y Cruz). Paso4 hgalo tal cual. Paso5 hgalo tal cual. Paso 6 abra el archivo MCS9S12C128.h en el directorio includes y dele un recorrido visual rpido y observe que en el archivo se declaran todos los smbolos que corresponden a los registros de configuracin de los recursos con los que cuenta el mcu 12C128. Haga un listado con los primeros diez (el Puerto B incluido) recursos que se listan en este archivo, los recursos se especifican como comentarios en color rojo y aparecen entre los indicadores de comentario de C /*** PORTA ... ***/ esta es la nica parte del recurso que se requiere aparezca en el listado. - PORTAB - Port AB Register; 0x00000000 - PORTA - Port A Register; 0x00000000 - PORTB - Port B Register; 0x00000001 - PORTE - Port E Register; 0x00000008 Paso 7 Despus de realizar el COPY and PASTE cambie DDRB = 1 por DDRB = 0x80 y PORTB_BIT0 = ~PORTB_BIT0 por PORTB_BIT7 = ~PORTB_BIT7 este cambio es para apreciar el LED. Paso 8 hgalo tal cual Paso 9 hgalo tal cual Paso 10 recuerde que se cambi el bit 0 por el bit 7 as en vez de variar entre 0 y 1 variar entre 0 y 80 conforme se ejecuta el paso a paso sealado Paso 11 hgalo tal cual Paso 12 conecte el APS12C128 proporcionada en el almacn y seleccione TBDML en vez de P&E Multilink/Cyclone Pro para activar el modo de Depuracin en el Trasfondo siga el resto de las indicaciones. Paso 13 hgalo tal cual Paso 14 cuando realice la ejecucin continua el LED permanece encendido y no se nota el parpadeo. Cuando realice el paso a paso note que el LED se ilumina cada dos clics. Paso 15 hgalo tal cual Esta parte culmina con el primer tutorial, haga una recopilacin de los recursos utilizados del MCU y de los comandos del Code Warrior que utilizo. ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ _________________. Liste al menos 5 tareas que aprendi a hacer en el Code-Warrior en este tutorial: 1. Crear un nuevo proyecto; 2. __________________________________________________; 3. ____________________________________; 4. __________________________________; 5. ____________________________________. a. Relocatable Assembly Tutorial, en este tutorial se trabaja en assembler en vez de C pero se crean programas que pueden ser dispuestos en cualquier lugar de la memoria por eso el adjetivo de relocalizable Paso 1 hgalo tal cual. Ing. M. Logreira V. A.
Prctica No 1 de Computadoras Digitales
Tutoriales de CodeWarrior HSC12 Paso 2 seleccione HCS12 >> HCS12C >> MC9S12C128 en vez de MC9S12DP256 ya que este no se provee y aquel s. Paso 3 seleccione el mismo directorio anterior base pero cambie el nombre del proyecto TutAsm1 para que no se mezcle con el del tutorial anterior, ejemplo c:\CWPRJ12\LOJOCRUZx\TutAsm1, recuerde marcar y desmarcar lo que se pide. Paso 4 hgalo tal cual. Paso 5 Traduzca al espaol el prrafo que detalla el paso 5: ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Paso 6 abra el archivo MCS9S12C128.inc en el directorio includes y dele un recorrido visual rpido y observe que en el archivo se declaran todos los smbolos que corresponden a los registros de configuracin de los recursos con los que cuenta el mcu 12C128. Haga un listado con los primeros diez (el Puerto B incluido) recursos que se listan en este archivo, los recursos se especifican como comentarios en color rojo y aparecen entre los indicadores de comentario de C /*** PORTA ... ***/ esta es la nica parte que atae al recurso que se requiere aparezca en el listado. ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Paso 7 posterior al copy and paste cambie las instrucciones LDAA #$01 por LDAA #$80 ya que se utilizar el LED conectado al pin 7 del PORTB Paso 8 hgalo tal cual. Paso 9 hgalo tal cual. Paso 10 hgalo en la segunda parte dele clic derecho con el cursor ubicado en la ventana Data y en el men que aparece Add Expresion... y luego escriba PORTB. Paso 11 hgalo tal cual. Paso 12 conecte el APS12C128 proporcionada en el almacn y seleccione TBDML en vez de P&E Multilink/Cyclone Pro para activar el modo de Depuracin en el Trasfondo siga el resto de las indicaciones. Paso 13 hgalo tal cual. Paso 14 cuando realice la ejecucin continua el LED permanece encendido y no se nota el parpadeo. Cuando realice el paso a paso note que el LED se ilumina cada dos clics. Paso 15 antes de cerrar el depurador haga un listado de las instrucciones utilizadas en el mainLoop incluyendo una descripcin de la operacin que realiza c/u: ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Esto culmina este tutorial, liste al menos 4 tareas que aprendi a hacer en el CodeWarrior en este tutorial: 1. ______________________________________; 2. ________________________________________; 3. ______________________________________; 4. _________________________________________ b. Absolute Assembly Tutorial Se espera que este tutorial pueda realizarlo por usted corrigiendo en donde sea necesario los pasos de manera similar al tutorial anterior. Se sugiere TutAsm2.mcp para el nombre. Ing. M. Logreira V. A.
Prctica No 1 de Computadoras Digitales
Tutoriales de CodeWarrior HSC12 Cul es la diferencia entre relocatable y absolute assembly: ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Cul es la direccin donde se ubica el programa _Startup: ___________________________________ c. Processor Expert Tutorial para facilitar el uso del MCU el codewarrior cuenta con esta caracterstica que nos permite en un ambiente grfico amigable configurar los diferentes registros que controlan el funcionamiento de los perifricos con que cuenta el MCU. Active este tutorial y siga los pasos del instructivo. Paso 1 hgalo tal cual. Paso 2 seleccione HCS12 >> HCS12C >> MC9S12C128 en vez de MC9S12DP256 ya que este no se provee y aquel s. Paso 3 hgalo tal cual. Note que ahora usa el botn de Siguiente en vez de Finalizar como en los tutoriales anteriores. Paso 4 hgalo tal cual. Paso 5 hgalo tal cual. En este paso es donde se selecciona el Processor Expert. Paso 6 hgalo tal cual. Se recomienda usar la animacin. Use las flechas ubicadas en la lnea superior para moverse de pregunta en pregunta del asistente. Paso 7 hgalo tal cual no atienda el error, posteriormente ser subsanado Paso 8 hgalo tal cual. Use la animacin. Aqu se trabaja con un concepto avanzado llamado interrupcin. En realidad nuestros LEDs son verdes. Paso 9 recuerde que en nuestro board PB0 no tiene LED, el que tiene es PB7 as que use PB7_ADDR7_DATA7 en vez del que se pide, la direccin sigue siendo salida. (Use la animacin si tiene dudas). Paso 10 hgalo tal cual. En los mtodos del Beam solo permita generacin de cdigo para SetDir y NegVal. Paso 11 hgalo tal cual. Use la animacin. Se selecciona el canal que produce la interrupcin y el periodo entre interrupciones en medio segundo. Paso 12 hgalo tal cual aparece en la animacin. Paso 13 hgalo tal cual aparece en la animacin. Paso 14: o GreenLed depende del paso 8. Paso 15: hgalo tal cual. Paso 16 siga las instrucciones pero recuerde seleccionar TBDML en lugar de Full chip simulation y que el CPU del que disponemos es el C128. Luego active la simulacin y ejecute con la flecha verde. Presente el resultado de su trabajo al instructor para que le firme en el espacio sealado esto le da derecho a la primera Nota:__________________________________________ Qu se espera como comportamiento en la tarjeta cuando ejecuta esta aplicacin usando la flecha verde? ___________________________________________________________________________________. Liste lo aprendido en este tutorial: ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ d. C with Device Initialization Tutorial la inicializacin del dispositivo permite realizar la configuracin inicial de los recursos (perifricos) en un ambiente grfico amigable. Ejecute este tutorial y siga los pasos que se indican. Paso1: hgalo tal cual. Paso 2 seleccione HCS12 >> HCS12C >> MC9S12C128 en vez de MC9S12DP256 ya que este no se provee y aquel s. Ing. M. Logreira V. A.
Prctica No 1 de Computadoras Digitales
Tutoriales de CodeWarrior HSC12 Paso 3: hgalo tal cual, pero recuerde ubicar su proyecto en el directorio de trabajo prestablecido. Paso 4: hgalo tal cual. Paso 5: hgalo tal cual. Paso 6: hgalo tal cual. Paso 7: hgalo tal cual. Paso 8: habilite el Pin 7 en vez del 0 ya que este es el que tiene LED en nuestra tarjeta. Paso 9: este paso cambia, haga clic en CPU y expanda Clock setting y luego Input clock, en Clock type seleccione External clock source, en Clock frecuency escriba 4 <Intro> y verifque la frecuencia interna del MCU ______________________, finalmente seleccione Ok. Paso 10 antes de hacer lo que se indica, haga clic en la opcin TIM, luego expanda Clock settings y en el Prescaler seleccione Bus Clock / 32 para obtener la frecuencia de 62.5 KHz que sugiere el paso anterior, a partir de aqu siga el instructivo del paso tal cual. Paso 11: hgalo tal cual, tenga en cuenta el mensaje que sale al final y corrija lo que se indica en caso que sea necesario. Paso 12: solo para lectura. Paso 13 Recuerde que el terminal que tiene LED es PORTB7, el archivo MCUinit.c se puede acceder en la estructura a la izquierda en el grupo Generated Code y la seccin del programa que hay que modificar es: __interrupt void LEDtimer (void) { // enter your code here } Paso 14: hgalo tal cual (recuerde cambiar el modo de simulacin a TBDML). Paso 15: haga un listado de lo aprendido en este tutorial: ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Muestre al instructor su trabajo y la tarjeta con el LED que debe estar destellando. _______________________________________ Firma del Instructor. 4. Breakpoints y su uso: como ya experiment el IDE de CodeWarrior Freescale posee herramientas que son muy tiles que nos ayudan a programar en cdigo assembler, en cdigo c y con ayuda del Processor Expert y Device Initialization nos permite manejar perifricos en forma un tanto independiente de los detalles propios de esta tarea. una herramienta que no ha sido puesta en prctica es el uso de los breakpoints para corregir este detalles hagamos lo siguiente: a. En la sesin del simulador de la ltima parte del tutorial anterior, active la ventana Source y en la barra de mens haga clic en Source luego en Open Source File... y luego seleccione el archivo MCUinit.c para que aparezca en la ventana. b. Ubique en este archivo la entrada donde aparece la ISR _interrupt void LedTimer (void), apntele con el cursor a la instruccin que hace el complemento del bit 7 del puerto B (PORTB_BIT7=~PORTB_BIT7) y haga clic derecho. Note que la primera opcin es Set Breakpoint sela y note la marca que aparece en la instruccin. Los breakpoints son tiles durante la depuracin de un programa ya que permite la ejecucin en tiempo real del cdigo hasta el punto donde se estableci el mismo, quedando el estado de los registros y de todos los recursos que utiliza el programa, disponibles para su inspeccin.
Ing. M. Logreira V. A.
Prctica No 1 de Computadoras Digitales
Tutoriales de CodeWarrior HSC12 c. Pruebe usando el comando de ejecucin continua del Debugger u oprima la tecla F5. Note como el procesador detiene la ejecucin y queda resaltada la instruccin donde se ubic el breakpoint, en este momento podemos inspeccionar el estado de los registros de las banderas y de los recursos. d. En la ventana Data 2 haga clic derecho y seleccione la opcin Add Expresion luego escriba el nombre del recurso PORTB para desplegar su valor en la ventana de datos. e. Ejecute nuevamente el programa y verifique como cambia el valor en la salida PORTB. Anote los valores que se obtienen en PORTB cuando realiza este punto repetitivamente: _____________________________________________________________________________ Preguntas: (Las respuestas a estas preguntas determinan el 25% de la nota de la gua) 1. Cul es el principal aspecto en el que una computadora digital se diferencia de otra? ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ 2. Cules de los siguientes elementos pueden ser catalogados como hardware o software: El archivo que constituye esta gua, la pantalla en la que se refleja la informacin, el teclado usado para captarlo, la memoria en la que reside? ____________________________________________________________________________________ ____________________________________________________________________________________ ___________________________________________________________________________________ 3. Cul es la diferencia entre un microprocesador y un MCU? ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ 4. Cules elementos conforman la base prctica de este curso? ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ 5. Cul es la funcin de los comandos Make y Debug del IDE del CodeWarrior? (cada uno por separado) ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ 6. Cul es la diferencia entre el usar Full Chip Simulation y TBDML a la hora de crear nuestro proyecto? ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ 7. Cul es el nombre del MCU usado en esta prctica? ____________________________________________ 8. Presente un listado de los registros que contiene el MCU del curso? ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Presente esta gua con los espacios completados.