PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009....

19
1 Escuela Politécnica Superior Universidad Autónoma de Madrid Juan González PIC 16F87X Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems

Transcript of PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009....

Page 1: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

1

Escuela Politécnica SuperiorUniversidad Autónoma de Madrid

Juan González

PIC 16F87X

Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009.

Andrés Prieto-Moreno Ricardo Gómez

Flir Networked Systems Flir Networked Systems

Page 2: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

2

PIC 16F87X

MÓDULO 1:

Introducción al PIC16F87X

Page 3: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

3

Vistazo general PIC16F876

● Flash: Hasta 8K

● RAM: 256 bytes

● EEPROM: Hasta 256 bytes

● Instrucciones: 14 bits

● Datos: 8 bits

● Pila: 8 niveles

213=23 .210

=8K

29=512

Page 4: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

4

Patillaje pic16f876a

Page 5: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

5

Programación ICSP(In-Circuit Serial Programing)

● 5 cables

● Pin RB7: Datos

● Pin RB6: Reloj

● Comunicación serie síncrona

Page 6: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

6

PICMIN: “Hola mundo PIC”

● Ejemplo de conexionado mínimo para que el PIC funcione:

● Circuito de Reloj

● Reset

● Alimentación

Page 7: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

7

Programación en lenguaje C

Page 8: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

8

Entorno de trabajo

● HARDWARE:

● PIC16F876A

● Tarjeta SKYPIC (Hardware libre)

● http://www.iearobotics.com/wiki/index.php?title=Skypic

● SOFTWARE:

● Compilador C: SDCC 2.8.0● http://sdcc.sourceforge.net/

● Ensamblador: GPUTILS

● http://gputils.sourceforge.net/

● Grabación: Mediante Bootloader. Programa PYDOWNLOADER

● http://www.iearobotics.com/wiki/index.php?title=Pydownloader-wx

● LINUX: piklab

● http://piklab.sourceforge.net/

Entorno libre y multiplataforma

Page 9: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

9

Metodogía de trabajo

Fich1.c

Fich2.c

FichN.c

Fich1.asm

Fich2.asm

FichN.asm

Fich1.o

Fich2.o

FichN.o

Programa.hex

Ficheros fuente(en C)

Compilar Ensamblar Enlazar

Ficheros fuente(en ensamblador)

Código máquina(objetos)

Ejecutable

Gra

bació

n

Inicio

“Compilación”

+

Page 10: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

10

Puerto B Servos ResetP

ulsadorP

ruebas (R

B0)

Puerto  C

Alimentación (4.5­6v)

Pue

rto A

Pue

rto d

eP

rog.

ICD2 RS232

Tarjeta Skypic

Led de pruebas (RB1)

Page 11: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

11

#include <pic16f876a.h>

typedef unsigned int word;

word at 0x2007 CONFIG =

_RC_OSC &

_WDT_ON &

_PWRTE_OFF &

_BODEN_ON &

_LVP_ON &

_CPD_OFF &

_WRT_OFF &

_DEBUG_OFF &

_CP_OFF;

void isr() interrupt 0

{

}

void main()

{

}

Plantilla para SDCC

2.-Palabra de configuración del PIC

1- Cabecera con el PIC a emplear

3.- Rutina de atención interrupciones

4.- Programa principal

Page 12: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

12

#include <pic16f876a.h>

void main()

{

TRISB1 = 0;

RB1 = 1;

while(1);

}

Ejemplo “Hola Mundo”

● Palabra de configuración establecida al grabar bootloader● No se usan interrupciones● Encender el led de la Skypic

Configurar pin RB1 para salida

Activar pin RB1 (salen 5v)

Bucle infinito

Page 13: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

13

Compilando “Hola Mundo”

sdcc -Wl-ainhx8m -mpic14 -p16f876a -o hola_mundo hola_mundo.c

● Compilación en línea de comandos:

Comando

Formato para el ejecutable (.hex)

Familia PIC16

PIC a emplear

Fichero de salida

Fichero fuente

Page 14: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

14

Compilando “Hola Mundo” (II): Anjuta

● Abrir proyecto curso_c_hola_mundo.anjuta● Usamos fichero Makefile● Pulsar shift-F11 o bien ir a Construir/Construir proyecto

Page 15: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

15

Compilando “Hola Mundo” (III): Piklab

● Abrir proyecto: hola_mundo.piklab (Proyecto/Open) ● Pulsar F8 o bien ir a Construir/Construir proyecto

Page 16: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

16

Descargando el firmware en la Skypic

● Seleccionar puerto serie donde está conectada la Skypic

Windows Linux

COM1 /dev/ttyS0

COM2 /dev/ttyS1

● Si usamos conversores USB-serie en Linux, los dispositivos se llaman: /dev/ttyUSB0 ...

● Pinchar en Buscar y seleccionar el fichero .hex a descargar● Pinchar en Grabar● La descarga comienza automáticamente (si está puesto el jumper JP4). Si no, hay que pulsar el botón de reset en la Skypic● Otra formas más rápida es arrastrar directamente el fichero .hex al pydownloader● Una vez finalizada la carga (tarda 1 seg. Más o menos), se encederá el led de la Skypic.

Page 17: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

17

Descargando el firmware en la Skypic (II)

● El Programa trae opciones para cargar directamente firmware de pruebas● Muy útil para probar la placa sin tener que estar compilando ningún fichero

Prueba 1: Parpadeo del led

Prueba 2: Parpadeo del led (más rápidamente)

Programas específicos. El botón ECO carga un programa que hace eco de todo lo recibido por el puerto serie. Se puede comprobar abriendo un terminal de comunicaciones

Page 18: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

18

Listos para programar el PIC!

Page 19: PIC 16F87X - WikiRobotics€¦ · Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009. Andrés Prieto-Moreno Ricardo Gómez Flir Networked Systems Flir Networked Systems.

19

Escuela Politécnica SuperiorUniversidad Autónoma de Madrid

Juan González

PIC 16F87X

Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009.

Andrés Prieto-Moreno Ricardo Gómez

Flir Networked Systems Flir Networked Systems