Está en la página 1de 11

Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

CIRCUITO BASICO CON MICROCONTROLADOR


1.- Introducción
Se montará y evaluará un circuito básico con un microcontrolador PIC18F452 de
Microchip. El trabajo a realizar servirá de base para futuros proyectos, y entregará
conocimientos y experiencia en los siguientes tópicos:
· Características generales del PIC18F452.
· Componentes y conexionado de un circuito básico.
· Características del programador PICkit3.
· Manejo del software que se utilizará para programar el PIC.
· Desarrollo de un programa de ejemplo.
2.- Microcontroladores PIC
Un microcontrolador (𝜇C), o MCU (MicroController Unit), es un microcomputador en
1 chip. A diferencia de un microprocesador (como el de un PC), un 𝜇C contiene
(además de la CPU) memoria RAM para almacenar datos, memoria ROM para
almacenar programas, puertas paralelas y seriales, conversor A/D, y otros
periféricos y dispositivos auxiliares. Por otro lado, los buses clásicos de los
microprocesadores (datos, dirección y control) no están disponibles, y la capacidad
y velocidad de procesamiento son mucho menores [1].
Debido a sus características de bajo costo, bajo consumo de potencia y mínima
complejidad circuital externa, los 𝜇C resultan ideales para fabricar "sistemas
embebidos", es decir, para incorporar inteligencia a productos tales como máquinas
de oficina, instrumentos, electrodomésticos, etc. [2].
Los PIC (Programmable Interface Controller, o Programmable Intelligent Computer)
constituyen una familia de microcontroladores fabricados por Microchip [3], que
tiene las siguientes características principales:
· Áreas de memoria separadas para programas y datos (arquitectura Harvard).
· Número relativamente reducido de instrucciones.
· Bajo costo.
Existen varias series o familias de PIC. En este curso se utilizará un PIC de la serie
18, el PIC18F452.
Los PIC de la serie 18 manejan los datos en palabras de 8 bit, y las instrucciones
en palabras de 16 bit. Por lo tanto, pueden ser considerados como procesadores de
8 bit.
Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

Referencias
[1] Archivo MPLAB_GettingStarted.pdf, pag. 1. (*)
[2] Proyectos con 𝜇C: http://www.best-microcontroller-projects.com/
[3] Microchip: http://www.microchip.com/

3.- Microcontrolador a usar


Algunas de las características más importantes del microcontrolador que se utilizará
en el curso (PIC18F452) son:
· Encapsulado: PDIP (Plastic Dual-In-line Package), 40 pin, compatible con un
protoboard. Ver figura 3.1.
· Memoria de programa: Flash, 32 kB (16384 instrucciones).
· Memoria de datos volátil: SRAM, 1536 bytes
· Memoria de datos no volátil: EEPROM, 256 bytes
· Líneas digitales de entrada / salida: 36
· Conversor A/D: 8 / 10 bit, 10 mseg, 13 entradas análogas
· Interrupciones externas: 3
· Interfaz SPI (Serial Peripheral Interface Bus)
· Interfaz I2C (Inter-Integrated Circuit)
· USART (interfaz RS-232C, niveles TTL): 1
· Comparadores de nivel: 2
· Timers: 4
· Salidas PWM (Pulse-Width Modulation): 2
· WTD (Watch Dog Timer)

Figura 3.1. Encapsulado PDIP, 40 pin.


Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

La referencia principal para el PIC es su hoja de datos [1]. El documento contiene


información para varios tipos de PIC, y para el 18F452 con diferentes encapsulados.
Examine las siguientes secciones:
· Características generales, págs. 1, 2, 7, 8, 9
· Encapsulado, pág. 3, abajo
· Diagrama en bloques, pág. 11
· Descripción de pines, págs. 12 a 16
Referencias
[1] Archivo PIC18F452_DataSheet.pdf

4.- Protocolo ICSP


Los programas desarrollados se cargarán en el µC por medio de un programador
/debugger (depurador) modelo PICkit3, mostrado en la figura 4.1. Este dispositivo
se conecta al PC mediante la puerta USB y al µC por medio de la interfaz serial
ICSP (In Circuit Serial Programming) de Microchip.

Figura 4.1. Programador / depurador PICkit3.


ICSP es un protocolo de hardware y software que permite programar
microcontroladores sin necesidad de retirarlos del circuito (para enchufarlos en un
programador), lo que resultaría riesgoso debido a la ESD (*), e inconveniente
cuando el 𝜇C está soldado. En la figura 4.2 se muestra el conector ICSP del PICkit3.
(*) Estudie la nota técnica "Descarga Electroestática".
Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

Figura 4.2. Contactos del conector ICSP del PICkit3.


La programación ICSP se realiza en forma serial mediante 2 pines, ICSPCLK (clock)
e ICSPDAT (data), mientras se aplica un voltaje alto (12 V) al pin Vpp/MCLR del µC.
Si el programador detecta que el µC no está polarizado, lo alimenta
automáticamente con 5 V por medio del pin VDD Target.
El cable ICSP consta de 2 pin headers (ver figura 4.3) de 6 contactos y cable plano
de 6 conductores. Los pin headers son compatibles con el conector ICSP del PICkit3
y con los contactos de los protoboards. El cable plano incluye un conductor de color
rojo, el cual se asigna al pin 1 del conector ICSP. Ver figura 4.4.

Figura 4.3. Pin header.

Figura 4.4. Cable ICSP y detalle de uno de los conectores.

5.- Circuito del microcontrolador


Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

En la figura 5.1 se muestra el diagrama del circuito que se montará en el protoboard.


Antes de manipular el PIC se debe descargar la electricidad estática del cuerpo.

Figura 5.1. Diagrama del circuito a armar.


Se pueden distinguir las siguientes partes:
1. Alimentación: el µC se polarizará con 5 V provenientes del programador PICkit3.
Se conectarán los 2 pines de VDD y los 2 pines de VSS del chip. Se colocarán los
2 capacitores de desacoplo mostrados (*).
2. Clock del 𝜇C: el PIC puede operar con un reloj interno o con uno externo [1].
Se utilizará el reloj interno controlado con un cristal de cuarzo, ya que de esta forma
se obtiene una frecuencia conocida y estable, característica necesaria para
asegurar un baud rate válido en la comunicación RS-232C, y para tener una base
de tiempo confiable en los proyectos que la requieran.
(*) Estudie la nota técnica "Capacitores de Desacoplo".
3. Reset: el pin 1 del PIC (MCLR, o Master CLeaR) inicializa el chip cuando es
llevado a nivel lógico 0. Cuando conmuta a nivel lógico 1, se inicia la ejecución del
programa grabado en la memoria del PIC [2]. La configuración más simple para este
pin sería una conexión directa a +5 V, dado que el PIC se inicializa automáticamente
durante el encendido (POR, o Power On Reset); sin embargo, dado que el pin 1
Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

actúa también como VPP para la programación del 𝜇C, se conecta por medio de
una resistencia de pull-up.
4. Conexión ICSP: el pin header del cable ICSP se conectará en el punto indicado
en la figura 5.1. El programador PICkit3 controla la línea MCLR/VPP, suministra
alimentación al circuito del PIC, y programa al 𝜇C por medio de las líneas DAT y
CLK [3]. La conexión ICSP es una especie de cordón umbilical del PIC, de gran
utilidad durante el desarrollo del proyecto, pero que luego se puede desconectar,
bastando con aplicar 5 V al circuito para que éste funcione en forma autónoma.
5. LED: el 𝜇C es un computador sin pantalla. Para verificar el funcionamiento del
primer programa, se utilizará un LED como salida. Asumiendo una caída de tensión
de 2 V en el LED, la resistencia de 1 kΩ limita la corriente a unos 3 mA, adecuada
para un brillo normal en un recinto cerrado.
Diagrama circuital
Cuando se desarrolla un circuito electrónico, se debe contar con un diagrama
circuital completo y actualizado. El diagrama ayuda a perfeccionar el circuito,
detectar errores, prevenir daños a componentes, realizar consultas, etc.
El diagrama debe ser ordenado, claro y de fácil actualización. Se recomienda utilizar
una hoja doble (cuadernillo) de cuadros chicos, un portaminas de 0.7 mm y una
goma de borrar de buena calidad. No es necesario utilizar una regla.
Copie el circuito de la figura 5.1 cerca del centro del cuadernillo, haciendo coincidir
los pines del 𝜇C con las líneas de la hoja de cuadros chicos.
El diagrama dibujado se usará a lo largo del curso, y deberá mantenerse
sincronizado con los cambios efectuados en el protoboard.
Referencias
[1] Archivo PIC18F452_DataSheet.pdf, pags. 17 a 20.
[2] Archivo PIC18F452_DataSheet.pdf, pags 25 a 33.
[3] Archivo PICkit3_UserGuide.pdf, pags. 25 y 26
6.- Armado y conexionado
Descargue la electricidad estática del cuerpo antes de tocar las conexiones.
Siga las instrucciones en el orden indicado.
1. Monte el circuito de la figura 5.1 en forma meticulosa y ordenada en el
protoboard, tomando en cuenta las siguientes recomendaciones:
· Los alambres usados para interconectar los elementos en el protoboard no deben
ser curvados a 90º, ya que se cortan fácilmente.
Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

· Delimite la zona asignada al 𝜇C con alambres provisorios y no lo inserte hasta que


el circuito esté armado, para minimizar el riesgo de daño por ESD.
· Utilice cables de color adecuado para VDD y para VSS.
· No corte los terminales de los componentes, ya que se dificulta su reutilización.
· Monte el cristal y los capacitores de 22 pF cerca del 𝜇C. (La inductancia y
capacidad parásita de los cables podría llevar al circuito de clock del PIC a oscilar
a una frecuencia diferente a la del cristal).
· Compruebe que el 𝜇C esté totalmente insertado en el protoboard, presionándolo
con fuerza si es necesario.
2. Verifique cuidadosamente el circuito montado. La verificación es más efectiva
cuando la ejecuta una persona diferente a la que montó el circuito.
3. Conecte el cable ICSP al programador PICkit3 y al protoboard, cuidando que la
orientación y alineación de los pin header sean correctas. El conductor rojo del cable
plano se debe asignar al pin 1 del conector ICSP, indicado con el símbolo en la
figura 4.1.
4. Encienda el PC y espere que se cargue el sistema operativo.
5. Conecte el cable USB del programador al PC. En el momento de la conexión el
programador se energizará, pero el circuito del PIC no lo hará.
Observe los indicadores luminosos del programador [1]:
· Power (verde): indica que el programador está energizado mediante la puerta USB
del PC. Debe estar encendido.
· Active (blue): indica que el programador está conectado al PC por el puerto USB
y la comunicación está activa.
· Status: (verde): indica que el programador está ejecutando alguna acción, tal como
programar al 𝜇C. (rojo parpadeante)
Error (rojo): El programador ha encontrado un error.
El botón negro (azul parpadeante) permite que una imagen de la memoria del PIC
sea descargada en el PICkit 3 para realizar más adelante la programación en un
PIC específico. No es necesario contar con el software o PC para programar los
dispositivos una vez que el PICkit 3 está configurado en el modo de Programación
-To -Go. Una fuente de alimentación USB para el PICkit 3 es todo lo que se necesita.
Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

Nota: al conectar el circuito del PIC al PC por medio del programador Pickit3,
siempre se debe enchufar primero el conector ICSP y luego el cable USB. Al realizar
el proceso inverso, se debe desconectar primero el cable USB y luego el cable
ICSP. Esta precaución es necesaria ya que la conexión USB no puede realizarse
con los pines invertidos y está protegida contra ESD, mientras que la conexión ICSP
no incluye dichas protecciones.
Referencias
[1] Archivo PICkit3_UserGuide.pdf, pag. 8.
7.- Software para desarrollar programas
Para desarrollar los programas del PIC y transferirlos al 𝜇C se utilizará el programa
MPLAB de Microchip [1] y el compilador de C de CCS [2].
· MPLAB es una IDE (Integrated Development Environment, o "ambiente de
desarrollo integrado") que contiene un manejador de proyectos, editor de código
fuente, ensamblador, y otras herramientas de software requeridas para crear y
evaluar aplicaciones para los PIC. Ver figura 7.1.
MPLAB puede controlar a los dispositivos usados para transferir los programas a
los PIC (tales como el programador PICkit3) y enlazarse con compiladores de C de
Microchip o de otras fábricas.

Figura 7.1. Ejemplo de pantalla principal de MPLAB, mostrando 3 ventanas:


- arriba derecha: archivos del proyecto
Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

- abajo derecha: mensajes de salida


- izquierda: código fuente del programa
· El compilador de C de CCS (Custom Computer Services, Inc.) permite desarrollar
los programas del PIC en lenguaje de alto nivel (C) aislando al programador de un
gran número de detalles y complejidades relacionadas con el hardware del 𝜇C.
Por ejemplo, el PIC18F452 (al igual que la gran mayoría de los 𝜇C) no posee el
bloque de circuitos necesario para efectuar cálculos con números representados en
punto flotante (denominado "coprocesador matemático" en los PC, y que forma
parte de la CPU de éstos desde el 486DX). Sin embargo, al programar en C, el
compilador se encarga de incluir en el código de máquina las instrucciones
necesarias para darle dicha capacidad al PIC (aunque con una velocidad de cálculo
muy inferior a la de un coprocesador).
El compilador CCS incluye un gran número de ejemplos de código C que facilitan el
aprendizaje.
Gracias a la integración entre MPLAB y el compilador CCS, todo el ciclo de
desarrollo del software (edición del código fuente en C, compilación, transferencia
del código de máquina al 𝜇C, ejecución del programa y depuración) puede ser
realizado desde la IDE de MPLAB.
Referencias
[1] Archivo MPLAB_GettingStarted.pdf.
[2] Compilador CCS: http://www.ccsinfo.com/

8.- Creación del programa de prueba


La función del programa de prueba es encender 3 veces el LED conectado al bit 2
de la puerta D (ver figura 5.1).
Cree un directorio denominado "LED1" en el disco D para almacenar el futuro
proyecto de MPLAB.
Utilizando un editor de texto plano tal como el "Bloc de notas" o el "EditPadPro"
ingrese el siguiente código y grábelo en un archivo denominado "Led1.c", en el
directorio creado anteriormente.
Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

No es necesario digitar todos los comentarios, los cuales sólo se incluyen en este
ejemplo porque se trata del primer programa ensayado.
Sí es importante indentar el código, ya que lo hace más legible. Se recomienda usar
3 espacios para cada indentación. No es conveniente indentar con TAB, ya que el
número equivalente de espacios puede variar entre editores. Inspeccione el
contenido de los archivos 18f452.h y fuses.txt.
9.- Creación del proyecto MPLAB
1. Ejecute el programa MPLAB.
2. En el menú "Project" seleccione la opción "Project Wizard", o "asistente del
proyecto", el cual ayuda a crear rápidamente un nuevo proyecto.
3. Seleccione el PIC a usar (PIC18F452).
4. Seleccione la herramienta de programación a usar (compilador CCS de C).
5. Cree un nuevo proyecto, ingresando el nombre del proyecto (LED1) y el directorio
donde se había almacenado previamente el archivo que contiene el código fuente.
6. Añada el archivo "Led1.c" creado anteriormente al proyecto.
7. Finalice el proceso.
10.- Ejecución del programa de prueba
1. En el menú "View" de MPLAB, marque las opciones "Project" y "Output".
Debieran aparecer las 2 ventanas correspondientes.
Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

2. En la ventana del proyecto debiera aparecer "Led1.c". Haga "doble clic" sobre el
nombre para desplegar el código fuente. Ajuste el tamaño y la posición de las
ventanas.
3. En el menú "Programmer", seleccione el PICkit3. El LED "Target" del PICkit3
debiera encender y el microcontrolador debiera estar ahora polarizado con 5 V.

4. Presione el botón para compilar el programa. Examine los mensajes


generados por el compilador en la ventana "Output". Verifique que no existan
errores.

5. Presione el botón para copiar el código máquina al PIC. El LED "Busy" del
PICkit3 debiera encender brevemente durante la transferencia.

6. Presione el botón para levantar el pin de Reset del PIC, lo que iniciará la
ejecución del programa. Observe el LED del circuito. Debiera encender 3 veces.

7. El botón detiene la ejecución del programa llevando el pin de Reset a cero


lógico.

8. El botón (Power on) inicializa el programador y el PIC, cortando la


alimentación del circuito.
9. Experimente modificando algunos parámetros del programa. Por ejemplo,
configúrelo para medir el tiempo de persistencia de la retina.
10. Almacene el proyecto en el disco duro.
11. Cierre MPLAB y examine los archivos que forman parte del proyecto creado.
12. Respalde los archivos del proyecto en algún dispositivo externo al PC (pendrive).

------ o ------

También podría gustarte