«

»

Jul 31

Programando un PIC

Empecemos por los conceptos básicos:

  • ¿Qué es un PIC?

En pocas palabras, es un microcontrolador de Microchip muy extendido y barato. Podemos encontrar cientos de páginas sobre ellos en internet y necesitamos muy poca electrónica externa para hacer un prototipo. En algunos PIC ni siquiera necesitamos un reloj externo, basta alimentar a con una tensión entre 2 y 5.5V y conectar entradas y salidas.

  • ¿Qué necesitamos para empezar?

Necesitamos un PIC (3 €)

Si no somos muy buenos en electrónica y manejamos poco el soldador, mejor que sea en formato DIP. Puede ser uno pequeño en formato DIP8 como el 12F683, hasta un DSPIC en formato DIP40. Hasta ahora se conseguían fácilmente “Samples” gratuitos en la propia página de Microchip, ahora es más difícil, pero en cualquier caso son fáciles de conseguir por E-Bay, o en tiendas grandes de electrónica.

El más conocido es el 16F84, pero hoy en día es preferible su equivalente mucho más potente 16F88. También es muy popular el 18F2550 que incluye todo lo necesario para implementar un interface USB – esclavo.

Necesitamos un programador (25€)

En Internet hay muchos montajes caseros para USB, puerto serie o incluso puerto paralelo. También muchos sitios donde comprar programadores baratos y de buena calidad. Recomiendo comprar uno con un zócalo ZIF, para programar el PIC suelto, y una cable para programar directamente en la placa ya montada por ICSP. Por ejemplo un Pickit2 (original o un clon).

Sensores y actuadores (1€)

Para ver las salidas vale un led con una resistencia. Para las entradas un pulsador y hasta una moneda nos valen.

Fuente de alimentación

Valen 2 pilas AAA de 1,5V, un alimentador regulado de 3,3V o de 5V, uno no regulado con un 7805 y dos condensadores, … hay mil opciones, pero necesitaremos algo que alimente al PIC y los periféricos. En función del PIC el rango de tensiones será más o menos grande, así que habrá que mirar el datasheet en internet.

En función del programador, podrá o no alimentar el PIC mientras está enchufado al mismo, así que para probar pequeñas cosas puede que no necesitemos alimentación externa.

Software 

Depende de si vamos a programar en ensamblador, en C, en Basic… Hay muchas posibilidades, algunas gratuitas y otras de pago. Microchip ofrece gratuitamente MPlab y , a mi me gusta programar en C con CCS, pero hay mil alternativas.

También es interesante un programa para la simulación de circuitos y la realización de las placas, por ejemplo Proteus. Aquí puedes diseñar el circuito, simularlo con programa incluido y luego diseñar las placas.

Vamos a hacer un pequeño ejemplo en CCS, con un PIC pequeño como el 12F683, un programador clon de pickit2 y un led con una resistencia, conectado entre el pin A0 y la masa.

PIC 12F683 + pickit2 clone + led

El que no tenga el PIC ni el programador, lo puede simular con Proteus, claro que es unas veinte veces más barato hacer un prototipo y probarlo que la licencia de Proteus.

Esquema 12F683 + led

Para hacer el programa en CCS, utilizamos el Wizard, seleccionamos el modelo 12F683, la velocidad 8000000 Hz, en las opciones del oscilador ponemos “Internal RC Osc , No CLKOUT” y MCLR enable, activamos el oscilador interno a 8 MHz.

El programa queda:

#include <main.h>

void main()
{

setup_oscillator(OSC_8MHZ);

while(TRUE)
{

output_toggle(PIN_A0);
delay_ms(500);

}

}

 

Compilamos y transferimos al PIC conectando el cable ICSP correctamente (cable rojo con pin 1) y utilizando el software de Pickit 2.

Software de programación pickit2

Si teníamos selecionado /MCLR lo desactivamos al terminar la transferencia y el led empezará a parpadear.

A partir de aquí todo es complicar el programa lo que queramos y conectar más dispositivos al PIC. ¡Basta compilar, transferir y listo!

 

Continuará…

 

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies