sábado, 8 de agosto de 2015

Tarjeta de pruebas PICBoard28

PLACA PICBoard28 

Les doy la bienvenida a todos lo amantes del mundo de la electrónica, En esta entrada quiero compartir mi experiencia en la elaboración de una placa que la he denominado PICBoard28.


Desde tiempo atrás he sido un programador de micro controladores PIC empezando desde los PIC16 y actualmente trabajando en proyectos recientes con PIC32, como ustedes sobran actualmente esta de moda el prototipado ya sea con Arduino, ESP, o alguna otra, por la facilidad de poder en marcha un sistema electrónico sin tener que perder tiempo en aspectos técnicos para construir el hardware.

Considero que dependiendo de la finalidad del sistema a elaborar puede resultar una buena alternativa emplear una de estas placas, y porque no pensar en construir una propia, que pueda adaptarse a nuestra necesidad de trabajo, personalmente creo que un diseño propio ayudaría a comprender mejor el funcionamiento de nuestro proyecto electrónico si mencionar la experiencia generada para beneficiar el aprendizaje.
 
Fig1. Placa de pruebas
 
Esta placa puede ser empleada con microcontroladores PIC de 28 pines tanto la familia PIC16 o PIC18 (según compatibilidad), en mi caso estoy utilizando un PIC16F886 el cual dispone de 24 pines I/O distribuidos en tres puertos A,B y C respectivamente.
Para la programación o grabador se dispone de la conexión ICSP, pero para ello necesitaremos un programador como el Pickit. En nuestro caso gracias a la memoria self-write de este PIC, es posible pre-cargar un código bootloader que nos permitirá realizar la programación sin necesidad de un grabador ICSP.
 
 
La placa emplea un regulador 7805 y un diodo para protección de polaridad inversa, no se incluye protección en los pines I/O.
 
Notaran que existe otro Microcontrolador en la placa, de hecho se trata de un PIC16F1454 este PIC actúa como un conversor serial-USB, el cual emplea la clase CDC de Para crear un puerto COM virtual en el sistema Windows, por seguridad prefiero emplear el modo Self-Powered Only para lo cual debo quitar el puente tal como se ilustra en la imagen.

La velocidad por defecto es 9600bps, y el pulsador S1 permite des-habilitar el modulo UART y colocar los pines RXD/TXD del PIC16F1454 en alta impedancia.
El diodo led indica el estado:

  • Apagado, Sin alimentación o UART PIC16F1454 deshabilitado.
  • Encendido, Modulo energizado y UART PIC16F1454 habilitado.
  • Parpadeo, Modulo correctamente conectado al puerto USB de la PC. 
El pulsador S2 permite reiniciar el PIC16F886 y sera necesario cada vez que carguemos nuestro código con tinybootloader.
A continuación se muestra una lista de los programas requeridos:

Materiales y montaje de la placa
Dejo el esquema y la lista de los componentes requerido para armar esta placa.
 
Fig2. Esquema de circuito de la placa

1 PIC16F886
1 PIC16F1454
1 Diodo LED.
1 Zócalo DIP28
1 Zócalo DIP14
1 Conector USB para placa
1 Peineta de 4 Contactos 2.54MM
3 Peineta de 8 Contactos para los puertos
1 Peineta de 6 Contactos para programación
1 Bornera de 2 Contactos 2.5MM
1 Diodo 1N4004
1 Regulador 7805
1 Capacitor 100uF /16V
1 Capacitor 0.1uF/50V
1 Capacitor 1uF
2 Pulsadores SPST
2 Resistencias 10K
2 Resistencias 1K

Aqui tienes el enlace con todos los archivos PCB, driver USB, el firmware bootloader y usbpic. 
Para cargar los archivos HEX en ambos PIC necesitaras un grabador ICSP.

Una vez finalizado el montaje sugiero revisar nuevamente y comprobar si el regulador trabaja correctamente antes de insertar los PIC en sus zócalos.
Una vez revisado y con los PIC instalados puede conectar al puerto USB y notara que iniciara la instalación del driver. Si es la primera vez que se instala en su PC demorara unos minutos hasta que le aparezca el mensaje de que se instalo correctamente, caso contrario intente una instalación manual con los drivers que se proveen en este link.
Una vez instalado puede ir al administrador de dispositivos y comprobar el numero de puerto COM que le asigno Windows, el puerto se identifica como USB Serial Port.

Fig3. Detección del puerto virtual COM

Para mi caso, el sistema me asigno el puerto COM15. A través de este puerto serie podre cargar el código HEX al microcontrolador empleando TinyBooloader para lo cual debo configurar las opciones de comunicación como se ilustra a continuación.

Fig4. Configuración con Tinybootloader

Para hacer una prueba del bootloader y la conexion USB presione y libere el pulsador S2 esto reinicia el PIC16F886, luego click en CheckPIC. Vera el mensaje de conexión y respuesta que indica el modelo del PIC. Si todo ha funcionado estamos listos para empezar a utilizar MPLABX, si ha tenido algún inconveniente revise lo siguiente:
  • Compruebe si realmente el sistema asigno el puerto COM, esto lo puede realizar conectando y desconectado varias veces y revisando el administrador de dispositivos.
  • Debe presionar y soltar S2, luego debe hacer click en CheckPIC sin esperar demasiado (max 2seg). ya que es el tiempo que el bootloader espera para iniciar la carga.
Ahora esta listo para comenzar a elaborar su primer proyecto empleando MPLABX + XC8, Un ultimo paso antes de programar es adicionar una directiva al linker del compilador en propiedades del proyecto, luego linker XC8 busque la categoría Memory model y en el cuadro ROM ranges debe escribir: default, -1F80-1FFF. como se ve en la imagen. 

Fig5. Configuración de la memoria

Esto impide que el compilador utilice el rango de memoria donde esta almacenado el bootloader. este punto no es necesario si vas a emplear un programador ICSP.

Para finalizar, solo quiero agradecer tu visita al blog y cualquier consulta no dudes en escribirme a pablinzte@gmail.com

Pablo Zárate Arancibia

Ingeniero Electrónico

Santa Cruz - Bolivia

No hay comentarios.:

Publicar un comentario