Sei sulla pagina 1di 15

Laboratorio de Microprocesadores I Ing.

Roger Guachalla Narváez

4. Grabación del Código: Bootloader USB - ICSP


4.1 Objetivos
 Conocer los requisitos para el funcionamiento adecuado de un proyecto con microcontrolador
 Entender el concepto de un Bootloader (Gestor de arranque)
 Realizar la grabación en memoria ROM Flash del PIC18F4550 mediante el USB mikroBootloader
 Conocer el protocolo ICSP para grabar en la memoria ROM Flash del PIC18F4550 usando el
grabador PICKIT2
 Entender el significado de los Bits de Configuración y su uso en la grabación del PIC18F4550 sin
usar el Bootloader

4.2 Requisitos de funcionamiento de un proyecto


Se deben cumplir 3 requisitos para que un proyecto con microcontrolador funcione adecuadamente:

4.2.1 HARDWARE debe estar armado correctamente.


 Tomar en cuenta que los paquetes de diseño de Diagramas Esquemáticos como el Proteus,
generalmente no muestran los pines de conexión a alimentación: V CC, Gnd o VDD y VSS. Un error
común es omitir estas conexiones en el protoboard.
 Si se lee un pin ‘al aire’ en tecnologías como TTL, esto equivale a un ‘1 lógico’. Sin embargo, los
microcontroladores usan tecnologías CMOS donde un pin ‘al aire’ se puede leer como 1 o 0, es
decir no está definido. Para asegurar lecturas correctas de valores lógicos, se debe asegurar valores
lógicos 1 o 0 a través de resistencias conectadas a VCC y Gnd.
 Siempre se debe colocar los capacitores de 15 a 33 pF entre los terminales del cristal y tierra para
asegurar una buena oscilación del reloj.
 Para la conexión en protoboard, no se debe utilizar cables excesivamente cortos (formando
ángulos de 90o en los extremos) porque arriesgamos una rajadura del cable que provocará
conexiones intermitentes en el circuito. Tampoco usar cables excesivamente largos porque
provocan ruido y desorden. Usar una longitud de cable intermedia que permita un leve ‘arco’ entre
puntos de conexión.
 Procurar no tener cables con extremos de cobre al descubierto o terminales de componentes (R,
C, etc.) muy largos para minimizar riesgos de un corto circuito.
 El uso de cables de color Rojo para conexiones a VCC y cables de color Azul o Negro para conexiones
a Gnd.
 En la visualización en protoboard, respetar el orden del peso posicional de los bits (b7, b6, b5, b4,
b3, b2, b1, b0) de izquierda a derecha para la conexión física de leds y micro interruptores
(switches).
 Antes de encender la fuente, revisar mediante continuidad, si no existe un corto circuito en el
protoboard.
 Usar un protoboard que este en buenas condiciones ya que un protoboard defectuoso provocará
que el circuito, aunque bien armado, falle.
 Ser pulcro y ordenado en el armado del circuito en el protoboard.

Ing. Roger Guachalla Narváez 1


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

4.2.2 El SOFTWARE debe estar escrito correctamente.

 Siempre crear un nuevo folder (o carpeta) independiente para cada nuevo proyecto (o una
variación de este) que se realice. Un error común es utilizar un mismo folder para varios proyectos
o variaciones de estos.
 El nombre del folder del proyecto debe incluir toda la información necesaria para su posterior uso:
 Breve y resumida descripción del proyecto
 Lenguaje usado para la creación del proyecto
 Microcontrolador usado
 Fecha de creación
Como ejemplo, para un proyecto de un Contador de Leds en Binario, realizado en MikroCPro for
PIC usando el microcontrolador PIC18F4550 en fecha 14 de septiembre de 2019, un nombre
completo sería:
LedBinCont MkCPPIC P18F4550 14 Sep 2019
 Al usar el Wizard para nuevos proyectos, utilizar nombres significativos para el Nombre de
Proyecto. Preferiblemente usar el mismo nombre descriptivo del folder del proyecto. Para el
ejemplo del punto anterior, el nombre del proyector sería: LedBinCont
Si se desea añadir separación entre palabras, no usar el Espacio, sino el carácter de subrayado. Es
decir: Contador_de_Leds_en_Binario
 NO usar nombres genéricos como ‘x’ que no indican nada. También evitar el uso de vocales
acentuadas (á, é, etc.), las letras ‘ñ’ o ‘Ñ’, o caracteres fuera de los primeros 127 códigos ASCII
estándar.
 Usar nombres de variables significativos (Ej. Velocidad, Sensor, etc.) y no nombres genéricos que
además de no indicar nada, pueden ser usados como registros internos del microcontrolador (Ej.
La variable ‘S’ se reserva para la bandera de Signo del microcontrolador)
 El compilador MikroC detecta automáticamente los Errores de Sintaxis, es decir aquellos que
tienen que ver con faltas a las reglas del lenguaje. Por ejemplo, si queremos hallar la multiplicación
de dos variables y almacenarla en una tercera, el siguiente código genera un error de sintaxis:

Salida = * Var1 Var2; //lo correcto es Salida=Var1*Var2

Sin embargo, los Errores de Semántica, es decir aquellos que tienen que ver con fallas del
significado o concepto, no son detectados. Por ejemplo, si queremos hallar el promedio de dos
variables y almacenarlo en una tercera, el siguiente código NO genera un error a pesar de contener
un error de semántica:

Promedio=Var1+Var2/2; //lo correcto es Promedio=(Var1+Var2) / 2

 Cuando se tienen dudas del uso acerca de una función o palabra reservada del lenguaje MikroC, lo
más sencillo y rápido es utilizar es sistema de Ayuda que proveen dichos lenguajes. Basta con
posicionar el cursor dentro de la palabra o función que se quiere conocer y presionar la tecla F1.
 Grabar el circuito esquemático de Proteus en el mismo folder de proyecto donde se encuentran el
código fuente y los demás archivos generados por MikroC.
 Para realizar una depuración de errores de programación en Proteus, utilizar la función Debug que
permite correr un programa paso a paso con la posibilidad de observar y cambiar los valores de los
registros y variables del programa

Ing. Roger Guachalla Narváez 2


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

 Tomar en cuenta que el software Proteus ISIS realiza la simulación sin tomar en cuenta la Palabra
de Configuración del microcontrolador. Así mismo, aunque no se conecte el reloj de cristal, el
circuito Reset y otros dispositivos que son obligatoriamente necesarios en hardware, Proteus
realizará la simulación de todas maneras. Por ser Proteus una herramienta 100% software, sujeta
a errores de programación, existen varios eventos que no son simulados o peor aún que se simulan
mal. Por esta razón, la Simulación en Proteus es un paso Necesario más NO Suficiente para
asegurar el funcionamiento real en hardware.

4.2.3 Los Bits de Configuración deben estar correctos


 Es obligatorio que no se omita este paso, pues, aunque los incisos a) y b) estén correctos, una mala
configuración no permitirá el correcto funcionamiento del proyecto en hardware.
 El software de simulación PROTEUS, no toma en cuenta la configuración del microcontrolador y
por ende muchas veces los proyectos “funcionarán” en este software.
 En el caso del usar un Bootloader, los bits de configuración ya están grabados en el
microcontrolador y los programas que se realicen ‘adoptarán’ automáticamente esta
configuración. Esto puede verse como ventaja si se está empezando en el aprendizaje, pero puede
convertirse en desventaja si se desea optimizar los recursos que posee el microcontrolador.

4.3 Bootloader - Gestor de Arranque


4.3.1 ¿Qué es un Bootloader?
Un Bootloader es un pequeño programa residente en la memoria Flash de un microcontrolador que se
ejecuta después de cada reinicio y que a su vez escucha por el puerto USB para la recepción de bytes
de código de programa mandados típicamente desde una PC. Si el bootloader detecta la recepción de
un nuevo programa, recibe estos bytes y los almacena en la memoria de programa de usuario en el
microcontrolador, de otro modo, rescinde el uso del procesador y pasa el control a un otro programa
que haya sido grabado con anterioridad

4.3.2 Ventajas de utilizar un Bootloader


Los Bootloaders llevan tiempo utilizándose en los dispositivos microcontroladores y su uso ha sido
fundamental en el éxito de muchas tarjetas de desarrollo como Arduino.

Ing. Roger Guachalla Narváez 3


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

Estas tarjetas basan su éxito en facilitar al usuario una plataforma económica con la que empezar a
programar los microcontroladores y para ello es fundamental reducir costos, como el no tener que
utilizar un programador externo para cargar las aplicaciones de usuario.
Estas tarjetas de desarrollo vienen ya con el Bootloader grabado en la memoria Flash ROM del
microcontrolador, por lo que no se necesita de ningún hardware adicional para empezar a programar
el microcontrolador insertado en la placa de desarrollo.
Otra ventaja de utilizar un Bootloader es que se puede grabar el programa de usuario de manera fácil
y sin necesidad de sacar el dispositivo fuera de la placa donde esté montado.
Adicionalmente, el software Bootloader ya está configurado para un funcionamiento ‘normal’ del
microcontrolador y esto hace que sea innecesario realizar la programación de los Bits de Configuración.

4.3.3 Desventajas de utilizar un Bootloader


El inconveniente principal e inevitable de utilizar un Bootloader es el espacio de memoria Flash ROM
(alrededor de 2kbyte) que implica tenerlo cargado en la memoria del microcontrolador de forma
permanente.
Se debe tomar en cuenta que cada Bootloader está configurado para un modelo específico de
microcontrolador, en este caso el PIC18F4550. Es decir, no se puede usar el mismo programa
Bootloader para modelos distintos de microcontroladores PIC, incluso si son de la misma familia.
Cuando se energiza el circuito el programa del usuario no correrá inmediatamente porque se debe
esperar 3 segundos hasta que el Bootloader deje de funcionar y de paso al programa del usuario.
Otra desventaja es la imposibilidad de configurar al microcontrolador de manera distinta a la que ya
posee el Bootloader. Esto limita la optimación de los recursos que posee el PIC18F4550

4.4 Grabación INICIAL del software Bootloader


Por primera y única vez, usando un grabador convencional (por ejemplo, el PICKIT2) se debe grabar
en el microcontrolador PIC18F4550 el software bootloader.
El archivo a grabar es: USB_Boot_P18F4550_4MHz_xtal_48MHz_USB.hex

4.5 Circuito Mínimo Bootloader USB con el PIC18F4550


Para todos los proyectos, usando el USB mikroBootloader, el circuito a armar es el siguiente:

Ing. Roger Guachalla Narváez 4


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

El diagrama esquemático es:

4.6 Preparación del cable USB


a) Tomar un cable USB de 4 hilos y cortar un extremo. Los cables USB que se usan para
transferencia de archivos tienen cuatro hilos mientras que los que se usan solo para cargar
dispositivos solo cuentan con dos.

Ing. Roger Guachalla Narváez 5


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

b) Soldar cuatro cables de conexión a protoboard respetando el código de colores y aislando cada
cable con cinta adhesiva

- Rojo: + 5 Volt
- Negro: Gnd
- Blanco: D ̶
- Verde: D+

c) IMPORTANTE: Para evitar posibles daños por corto circuito al puerto USB del computador,
verificar con un multímetro, la polaridad de la alimentación de +5V. Realizar esta tarea
conectando solo el cable USB al computador y midiendo el voltaje entre los pines VCC y GND.
d) La alimentación de +5 Volts para el circuito vendrá del mismo puerto USB.
El puerto USB provee hasta 500 mA de corriente lo que es más que suficiente para alimentar leds,
displays, etc. Solo cuando se requiera mayor corriente, como en el caso de motores, se usará una
fuente externa.

4.7 Uso del USB HID mikroBootloader con el PIC18F4550


a) Abrir el software USB HID mikroBootloader
b) Conectar el Circuito Mínimo Bootloader USB al computador personal

Ing. Roger Guachalla Narváez 6


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

 Hacer click en el botón del Paso 1: Wait for USB link


El software auto detectará el Dispositivo (Device: PIC18F4550) y el tipo de
microcontrolador (MCU Type: PIC18)

 Hacer click en el botón del Paso 2: Connect to MCU


En la ventana ‘History Window’ aparecerá el mensaje ‘Connected’ indicando que se
realizó una Conexión exitosa

 Hacer click en el botón del Paso 3: Browse for HEX


Ubicar el archivo .hex del programa a grabar en el microcontrolador

 Hacer click en el botón del Paso 4: Start bootloader


El software grabará el programa en el microcontrolador. Este proceso se muestra en la
barra de progreso ‘Bootloading progress bar’

c) La ventana emergente indica que la grabación ha sido exitosa y para que el programa se ejecute
se debe hacer Reset en el circuito y esperar tres segundos para que el bootloader termine y de
paso al programa de aplicación.

d) Comprobar el funcionamiento del programa en protoboard.

4.8 Protocolo ICSP (In-Circuit Serial Programming)


Si no se usa el Bootloader para programar al microcontrolador, la otra opción es hacerlo a
través del protocolo ICSP utilizando un circuito programador externo
Este protocolo es válido para todos los microcontroladores PIC de la gama baja PIC12, de la
gama media PIC16F y de gama alta PIC18, PIC24 y dsPIC
Las señales ICSP provistas al PIC para programarlo son las siguientes:
- VPP: Voltaje de Programación aplicado al pin MCLR/VPP del PIC (+12 volt)
- VDD: Voltaje de Alimentación provisto al PIC (+5 volt)
- GND: (Ground): Conexión a tierra
- PGC: (Program Clock): Señal de reloj provista al PIC para sincronía
- PGD: (Program Data): Línea serial de datos para escritura y lectura de la ROM Flash

Ing. Roger Guachalla Narváez 7


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

4.9 Programador ICSP - PICKIT2


Cuando se desea optimizar el funcionamiento del microcontrolador PIC18F4550 o se quiere trabajar
con un modelo de microcontrolador distinto, será necesario prescindir del Bootloader y utilizar un
circuito programador que permita modificar los Bits del Configuración del dispositivo.
Existen en el mercado una gran variedad de circuitos programadores para los PIC. Uno de los más
utilizados es el PICKIT2 debido su versatilidad y facilidad uso.
Incluso es posible armar el PICKIT2 en protoboard ya que el grabador está disponible para su
descarga en internet con el nombre de PICKIT2 CLONE

Las características principales de este grabador son:


 Desarrollado inicialmente por Microchip, ahora es un proyecto libre bajo el nombre PICKIT2
CLONE
 Grabador universal para microcontroladores PIC: familias PIC10, PIC12, PIC16, PIC18, dsPIC, PIC24
 Utiliza el protocolo ICSP
 Conexión al computador a través de puerto USB
 Software para Windows PICKIT2 v.2.61

4.10 Bits de configuración del PIC18F4550


A través de estos bits se optimiza el funcionamiento del microcontrolador en áreas referentes a:
- Tipo de reloj utilizado
- Asignación de canales analógicos al puerto RB
- Uso de los mecanismos de confiabilidad de funcionamiento
- Uso del temporizador Watchdog Timer
- Protección del código de usuario en las distintas áreas de memoria
- Configuración del Reset
- Etc.

Ing. Roger Guachalla Narváez 8


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

- Los bits de configuración están distribuidos entre 12 Registros de Configuración


mapeados a partir de la dirección de memoria 300000h.
-

-
-
- A continuación, se realiza una explicación de los principales Bits de Configuración en
el microcontrolador PIC18F4550 que deben ser configurados en MikroC si es que NO
se usa el Bootloader
-

-
-
- Diagrama parcial del esquema de Reloj del PIC18F4550

Ing. Roger Guachalla Narváez 9


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

 PLL Prescaler Selection: (Controlado por PLLDIV (0...2))

La función de esta configuración es dividir la señal a la salida del Primary Oscillator entre las
siguientes escalas: 1 (No divide), 2, 3, 4, 5, 6, 10 o 12. Esto mediante la configuración de los 3 bits
PLLDIV. Por ejemplo, si se usa un cristal de 20MHz y se configura ‘Divide by 5’ se obtendrá 4MHz a
la salida del MUX.
Por otro lado, al seleccionar “No prescaler (4 MHz oscillator input drives PLL directly)” se desactiva
la función de divisor, y el oscilador mantiene su frecuencia.
La finalidad, es obtener 4 Mhz de frecuencia que son necesarios para hacer funcionar el bloque 96
MHz PLL, el cual genera, una salida de 96 MHz que luego, al ser dividida entre 2, permite usar el
USB.

 System Clock Postscaler Selection: (Controlador por CPUDIV (0…1))

Si la señal proviene de la salida del circuito 96 MHz PLL, se puede dividir entre 2, 3, 4, o 6 para así
obtener 48, 32, 24 y16 MHz como frecuencias de reloj.
Si la señal proviene de la salida del Primary Oscillator, se puede dividir entre 1, 2, 3 o 4

 USB Clock Selection (used in Full-Speed USB mode only; UCFG): (Controlado por
USBDIV)

Esta configuración indica de donde proviene la frecuencia de reloj para el Modulo USB.
USB clock source comes from the 96 MHz PLL divided by 2: Los 48 MHz requeridos para el
modulo USB serán proporcionados de la división de 96 MHz entre 2 generados por el bloque ‘96
MHz PLL’.
USB clock source comes directly from the primary oscillator block with no postcale: Los 48 MHz
requeridos para el modulo USB serán proporcionados desde el oscilador primario.

Ing. Roger Guachalla Narváez 10


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

 Oscillator Selection:
Permite seleccionar entre las 12 opciones posibles de reloj:

Oscilador HS (High Speed) de frecuencia mayor a 4 MHz


Oscilador XT (Crystal) de frecuencia menor o igual a 4 MHz
Oscilador EC (External Clock) frecuencia external de reloj que ingresa a OSC1
Internal oscillator en base a RC con un error del 5% (no recomendable para aplicaciones donde el
control de tiempo es importante)
Nótese que esta configuración de selección del tipo de Oscilador está ligado a los primeros 3 bits
de configuración. Por ejemplo, al elegir la opción ‘HS oscillator, PLL enabled (HSPLL)’ se está
activando el uso del Postscaler dando la oportunidad de configurar el bloque System Clock
Postscaler Selection donde, dependiendo de la escala de división, se obtendrá 48, 32, 24 o 16 MHz.
Caso contrario, si se selecciona la opción ‘HS oscillator (HS)’ se está deshabilitando la opción del
Postscaler y la configuración ‘System Clock Postscaler Selection’ solo nos da la opción de dividir o
no al reloj principal. Estos mismos efectos son válidos para las opciones de ‘XT oscillator, PLL
enabled (XTPLL)’ y ‘XT oscillator (XT)’.
La fuente de reloj primaria y la del USB son independientes, es decir que el microcontrolador puede
funcionar directamente con la fuente primaria y el USB con los 48 MHz proporcionados por el
Postcaler o en su caso las ambas fuentes con 48 MHz.

 Fail - Safe Clock Monitor:


Permite detectar un fallo de la fuente de reloj. El FSCM (Fail-Safe Clock Monitor) monitorea el
funcionamiento externo y permite al microcontrolador continuar con la ejecución de programa en
caso de que el oscilador falle por alguna razón. En tal caso, el oscilador interno toma su función.
El monitor detecta un fallo al comparar las fuentes de reloj interno y externo. Si los pulsos del
oscilador externo tardan más de 2mS en llegar, la fuente de reloj será automáticamente cambiada
por la interna. Así, el oscilador interno sigue funcionando controlado por los bits del registro
OSCCON. Si el bit OSFIE del registro PIE2 está a uno, se producirá una interrupción.

Ing. Roger Guachalla Narváez 11


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

 Internal/External Oscillator Switchover


El modo de cambio automático de velocidad de reloj se utiliza para reducir el consumo de corriente
cuando el microcontrolador funciona en modo de reposo.
Cuando se configura en modo LP, XT u HS, el oscilador externo se desactiva al pasar a modo de
reposo para reducir el consumo de corriente total del dispositivo. Cuando se cumplen las
condiciones para "despertar", el microcontrolador no se pone a funcionar inmediatamente puesto
que debe esperar a que se estabilice la frecuencia de señal de reloj. Este tiempo muerto dura
exactamente 1024 pulsos, después de que el microcontrolador continúa con la ejecución del
programa. El caso es que se ejecutan sólo unas pocas instrucciones antes de que el
microcontrolador vuelva al modo de reposo.
Eso significa que la mayoría de tiempo, así como la mayoría de corriente de baterías se ha perdido
en vano. El caso se soluciona utilizando el oscilador interno para ejecutar el programa durante la
duración de 1024 pulsos. Tan pronto como se estabilice la frecuencia del oscilador externo, él
retoma automáticamente "el papel principal". Todo el procedimiento se habilita al poner a uno el
bit de palabra de configuración.

 Power-up Timer
Este temporizador emplea el oscilador INTRC como fuente de reloj. Proporciona un retardo fijo de
62 ms durante el encendido. Está diseñado para mantener al PIC en reset mientras la fuente de
alimentación se estabiliza.

 Brown-out Reset
El Brown-out Reset es un sistema muy simple que hace que el PIC entre en modo Reset, si la
alimentación VCC baja de un cierto valor que es configurable. Se configura activándolo en el
registro correspondiente y seleccionando el nivel de voltaje por debajo del cual queremos que el
PIC permanezca reseteado.

 USB Voltage Regulator


Este habilita o deshabilita la utilización del regulador interno del Vbus para el USB

 Watchdog Timer
El "Watch Dog Timer" o "Temporizador Perro guardián" lo que hace fundamentalmente es resetear
el micro tras un periodo de tiempo determinado. Su funcionamiento es similar a la Interrupción
por Desbordamiento de un Timer, que se produce cuando un Timer que es incrementado
continuamente pasa de su valor máximo al mínimo para comenzar de nuevo a contar. En el caso
del WDT en lugar de saltar una interrupción se genera un Reset automático en el momento de
producirse dicho desbordamiento.

 PORTB A/D:
Esta configuración permite elegir si los 4 pines inferiores del puerto PORTB <4:0> e configuran
como E/S digitales o como canales de entrada análogos después de un Reset.

Ing. Roger Guachalla Narváez 12


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

 MCLR Pin:

Esta configuración permite habilitar o no la función de Reset Maestro Externo. En ocasiones por
cuestiones de uso del puerto o por ahorro de espacio en placa se desactiva el MCLR y desde esta
configuración se puede realizar.

 Low Voltage Program:

Esta configuración se habilita cuando el microcontrolador pertenece a la familia de nanoWatt


TECHNOLOGY. Ésta familia necesita desde su programación el uso de otros voltajes y
consideraciones.

 Los restantes bits de configuración como el Code Protection (Block 0 -3) y los siguientes, tienen la
finalidad de proteger el código de programa de lecturas o escrituras por medio de debuggers, esto
es útil cuando no deseamos que alguien pueda obtener el código fuente si es que se está
comercializando el circuito.

4.11 Bits de configuración del PIC18F4550 en MikroC


En el compilador MikroC la configuración se realiza accediendo al menú: ‘Project – Edit
Project’
En el recuadro ‘Configuration Registers’ observamos los valores configurados (en
hexadecimal) para cada registro:

Ing. Roger Guachalla Narváez 13


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

4.12 Valores Bits de Configuración del PIC18F4550 sin usar el Bootloader

3.2 Procedimiento de Laboratorio


1ERA Firma:
Implementar en protoboard el ejemplo A: Comparaciones de la guía anterior P02

2DA Firma:
Implementar en protoboard el ejemplo B: ALU de la guía anterior P02

Ing. Roger Guachalla Narváez 14


Laboratorio de Microprocesadores I Ing. Roger Guachalla Narváez

3.3 Informe de Práctica

A. Carátula con la Firmas del DOCENTE y/o AUXILIAR que avalen la realización de la práctica

B. TRABAJO DE INVESTIGACIÓN GRUPAL

TEMA: “Programador Universal USB PICKIT 2”


Características técnicas, Dispositivos soportados, Diagrama en Bloques, Circuito
Esquemático, Listado de componentes, Uso del software PICKIT2
Incluir Fuentes de Información: direcciones web o bibliografía, Impresión de las primeras 2
páginas de la fuente de información, Resumen escrito a mano (mínimo de 6 pg.) (Se puede
imprimir circuitos esquemáticos)

C. Conclusiones

Ing. Roger Guachalla Narváez 15

Potrebbero piacerti anche