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:
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:
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
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.
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.
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.
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.
-
-
- 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
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.
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.
Oscillator Selection:
Permite seleccionar entre las 12 opciones posibles de reloj:
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.
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.
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.
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.
2DA Firma:
Implementar en protoboard el ejemplo B: ALU de la guía anterior P02
A. Carátula con la Firmas del DOCENTE y/o AUXILIAR que avalen la realización de la práctica
C. Conclusiones