October 10, 2011 Authored by: Raul Barreto Quinteros
1
Contents El Hardware ................................................................................................................................................... 3 Lista de materiales ........................................................................................................................................ 5 El firmware .................................................................................................................................................... 6 El Driver ......................................................................................................................................................... 6 El software .................................................................................................................................................... 6 Funcionamiento ............................................................................................................................................ 7 Simulacin ..................................................................................................................................................... 8 Recomendaciones ....................................................................................................................................... 10 Aplicaciones ................................................................................................................................................ 11 Agradecimientos ......................................................................................................................................... 12
2
DAQ con PIC 18F4550 El presente artculo describe la construccin de un sistema de adquisicin y control de datos similar al que vende national instruments, el costo aproximado para desarrollar el proyecto es de unos 20 dlares.
FIGURA 1. Hardware mnimo para desarrollar el proyecto Las prestaciones son las siguientes; 8 entradas analgicas resolucin 10 bits (Puerto RA0:RE2) 8 entradas digitales (Puerto RB0:RB7) 8 salidas digitales (Puerto RD0:RD7) Comunicacin USB (emulando RS232) Antes de empezar quiero agradecer a los administradores y amigos de www.forosdeelectronica.com, www.muchotrasto.com y www.sixca.com quienes tuvieron colaboracin directa con el desarrollo de este proyecto. Comencemos.
RA0/AN0 2 RA1/AN1 3 RA2/AN2/VREF-/CVREF 4 RA3/AN3/VREF+ 5 RA4/T0CKI/C1OUT/RCV 6 RA5/AN4/SS/LVDIN/C2OUT 7 RA6/OSC2/CLKO 14 OSC1/CLKI 13 RB0/AN12/INT0/FLT0/SDI/SDA 33 RB1/AN10/INT1/SCK/SCL 34 RB2/AN8/INT2/VMO 35 RB3/AN9/CCP2/VPO 36 RB4/AN11/KBI0/CSSPP 37 RB5/KBI1/PGM 38 RB6/KBI2/PGC 39 RB7/KBI3/PGD 40 RC0/T1OSO/T1CKI 15 RC1/T1OSI/CCP2/UOE 16 RC2/CCP1/P1A 17 VUSB 18 RC4/D-/VM 23 RC5/D+/VP 24 RC6/TX/CK 25 RC7/RX/DT/SDO 26 RD0/SPP0 19 RD1/SPP1 20 RD2/SPP2 21 RD3/SPP3 22 RD4/SPP4 27 RD5/SPP5/P1B 28 RD6/SPP6/P1C 29 RD7/SPP7/P1D 30 RE0/AN5/CK1SPP 8 RE1/AN6/CK2SPP 9 RE2/AN7/OESPP 10 RE3/MCLR/VPP 1 U1 PIC18F4550 R1 1k C1 1u X1 20Mhz C2 22p C3 22p VCC D+ D- GND J1 AU-Y1007-R ENTRADAS ANALOGICAS PUERTO A PUERTO E ENTRADAS ANALOGICAS PUERTO D SALIDAS DIGITALES P U E R T O
B E N T R A D A S
D I G I T A L E S NO TE OLVIDES CONECTAR PINES 11 Y 32 A +5V PINES 12 Y 31 A GND Raul Barreto Quinteros
3
El Hardware Hace unos meses atrs publique dos artculos en www.forosdeelectronica.com , el primero titula PICKit 2 + Hid Bootloader y el segundo Hid Bootloader + Tarjeta de prototipos para pic de 40 pines, en los cuales describo con detalle la construccin de una tarjeta base que permite desarrollar y ensamblar proyectos basados en microcontrolador.
FIGURA 2. Esquemtico para la tarjeta de prototipos de 40 pines El modulo posee una fuente de alimentacin de 5V, un zocalo ZIF para albergar al microcontrolador, un conector USB, un conector SiL para conectar a PICKit, y borneras tipo tornillo para que puedas conectar lo que desees en cada pin del PICmicro. Te adjunto a continuacin las fotos de dos tarjetas que he construido;
4
FIGURA 3. Fotos de las tarjetas construidas
5
Lista de materiales 1 Zcalo ZIF 40Pines 2 Capacitores electrolticos 470U, 4.7U 2 Capacitores cermicos 22pF 3 Leds de colores verde, amarillo y rojo 2 Conectores en lnea Macho y Hembra 5 pines 1 Cristal de 20MHz 2 Botones (pulsantes) 2 resistencias de 1k, 3 resistencias de 470 Ohms 1 conector tipo B y cable USB 1 CI7805 Un Jack para adaptador Borneras (son 36 tornillos en total)
TABLA 1. LISTA DE MATERIALES Antes de armar el sistema fijarse muy bien en la imagen que muestro a continuacin;
FIGURA 4. Indicaciones para el ensamblaje
6
Para ms detalles en la construccin del mismo me remito a los artculos publicados anteriormente. Adjunte screen y layer listos para que apliques el mtodo de la plancha. Adems te recomiendo leer mi artculo publicado en este mismo foro titulado. Mejorando el aspecto de tus PCBs El firmware El firmware para grabar en el microcontrolador no es programado por m, lo descargue de www.sixca.com. Entonces para no aducirme un crdito que no es mo, te cuento que el archivo usbdaq.hex lo descargue y agradezco a su autor por tan magnfico trabajo. Adjunto el usbdaq.hex para que lo grabes en el microcontrolador, el cdigo fuente fue desarrollado en PIC-C18, pero no lo tengo ya que nunca fue publicado. Fue todo un problema descubrir la configuracin de bits para grabar en el microcontrolador, me di tantas vueltas que al cabo de varias horas lo consegu, antes de grabar el micro, con PicKit2 asegrate que la configuracin de bits sea la siguiente: 0e24 1e3e 8300 0081 c00f e00f 400f El Driver El driver es el mismo que ha proporcionado microchip, el famoso mchpcdc.inf para emulacin RS232 utilizando la clase CDC (Comunicatin Device Class). Cuando te pida que instales el driver del dispositivo indica la carpeta donde lo guardaste El software De la misma pgina me descargue el software de ejemplo, al parecer desarrollado en Delphi, con el cual t puedes graficar una seal analgica que recibes por el pin RA1, monitorear las 8 entradas digitales que recibes por el puerto B y adems activar y desactivar las ocho salidas digitales por el puerto D.
FIGURA 5. Software de prueba, descargado en www.sixca.com
7
Yo he hecho una que otra travesura por aqu y por all y he desarrollado un programa en VISUAL BASIC 6.0 y otro programa en labVIEW 8.5 Incluso lo he monitoreado a travs de internet utilizando el control datasocket que ofrece national instruments. Pero bueno eso es otra historia que les contare en otra ocasin. Vete enterando con las imgenes que muestro a continuacin;
FIGURA 6. Software desarrollado en Visual Basic 6.0 Funcionamiento Este dispositivo emula comunicacin RS232, haciendo que el sistema operativo vea al puerto USB como si fuera el antiguo puerto SERIE (UART), por lo tanto podrs comprobar el protocolo de comunicaciones, es decir los comandos, con un programa terminal como el Hiperterminal de Windows XP, o el SIOW que se instala con PIC CCS, tambin existe el Docklight que es mi favorito y puede descargarse la versin DEMO que est disponible en la red, incluso con PROTEUS se instala el ejemplo COMPIM y tambin nos puede servir como terminal de comunicaciones. El protocolo de comunicaciones trabajara a una velocidad de 19200 bps, no paridad, 1 bit de stop, 8 bits de datos y funciona de la siguiente manera: Para leer una seal analgica deberemos enviar el siguiente comando:*AK#13 Para leer una seal digital deberemos enviar el siguiente comando: *B#13 Para escribir una seal digital deberemos ejecutar este otro comando: *ANS#13 Revise la siguiente tabla;
8
Command Command PC Send PIC respone Write digital output *ANS#13 - Read digital input *B#13 *BHH#13 Read analog input *AK#13 *AKXXXX#13 When : N = bit that we need to set or clear (0-7) S = state of bit (0-1) HH = Input status from digital input port (00-FF) K = Channel of analog input ( 0-7) XXXX = analog input value in decimal of 10 bit binary (0000-1023 ) #13 = end of command
Example to set bit 0 of digital output *A01#13
Example to clear bit 0 of digital output *A00#13
Example to read digital input *B#13 then PIC respone with *B7F#13 This mean bit 7 of digital input was low
Example to read analog input channel 4 *C4#13 then PIC response with *C41023#13 This mean that analog channel 4 have 5 volt on this channel because 1023 = 3FFh Figura 7. Comandos para DAQ Usb Simulacin Es increble lo que se puede hacer con Proteus 7.8 SP2, sin duda este es el mejor simulador de circuitos que existe y no conozco otro que sea digno para compararlo con Proteus. Infinitas gracias al equipo de labcenter por tan majestuoso trabajo.
9
Figura 8. Simulacin Para simular siga los siguientes pasos 1. Instale los usbdrivers que incluye ISIS de Proteus 7.8 2. Dibuje el esquemtico 3. Cargue el archivo usbdaq.hex en el microcontrolador virtual a una velocidad de 20Mhz 4. arranque la simulacin y en seguida aparecer un mensaje, esa burbuja que aparece cada vez que conecta un dispositivo al puerto USB, informando que un nuevo hardware ha sido encontrado 5. Cuando le pida instalar el controlador, indique la carpeta donde se encuentra el mchpcdc.inf 6. Verifique que en el administrador de dispositivos se ha encontrado nuevo hardware 7. Configure el nuevo hardware, buffers de Tx y Rx al nivel ms bajo posible, elija el COM5 o menor Es decir que engaamos al sistema operativo, hacindole creer que un dispositivo real ha sido conectado al puerto USB virtual. Luego ejecute el software que me descargue en www.sixca.com y funciona, tal cual como si hubiera conectado el dispositivo real es ingenioso verdad?
10
Figura 9. Nuevo Hardware detectado El pequeo problemilla es que la simulacin correr nicamente en sistemas operativos WIN98/Me/Win2000/XP/Vista/Windows7 de 32 bits. No funciona en 64 bits. Esperemos que con el tiempo se corrija esta falencia. A continuacin veremos una imagen de la simulacin funcionando:
Figura 10. Simulando el DAQ Recomendaciones 1. Antes de grabar el usbdaq.hex, configure la siguiente palabra en PICKit2 0e24 1e3e 8300 0081 c00f e00f 400f Esto es HS, PLL5, NODEBUG, NOLVP, NOWDT, NOBROWNOUT, NOPWRT 2. Cuando le pida informacin de la instalacin del dispositivo indique la carpeta donde se encuentra el archivo mchpcdc.inf 3. A veces la simulacin falla, no s cul sea la razn, con todo reinstale los USB drivers que vienen junto con el software PROTEUS y el problema se resuelve 4. Tanto para simular como para echar andar el hardware real debe configurar el puerto virtual como se indica en la figura, es decir los buffer de transmisin y recepcin deben estar al nivel ms bajo:
11
Figura 11. Configuracin del UART virtual
5. El cristal externo para el PICmicro puede ser de 16 o 20 Mhz (preferible que sea de 20 Mhz) 6. El sistema no necesita alimentacin externa, se alimenta directamente con los 5V que proporciona USB Aplicaciones Este sistema lo he utilizado para controlar la iluminacin de un cuarto midiendo el nivel de luz con un LDR por una puerta analgica y luego activando o desactivando lmparas segn se desee por el puerto de salida digital. Los mismos que conecte a una tarjeta con triacs He controlado leds para regular su brillo y obtener un efecto RGB He construido una estacin del tiempo, tomando los datos de sensores de Humedad, Luz y Temperatura He controlado un ascensor por computadora (en maqueta, no vayas a creer que controle un ascensor de verdad) En fin las aplicaciones son diversas y sinceramente me divertido con este juguetito, pero llego el tiempo de compartirlo disfrtenlo.
12
Agradecimientos Estimados amigos del foro, es todo en cuanto puedo decir en honor a la verdad, esperando que sus sugerencias, comentarios y dems aportes sean enriquecedores y que vayan en favor del progreso de este proyecto me despido agradecindoles por su atencin. Atentamente
Ral Barreto Quinteros. Ecuador, 30 septiembre 2011 dino_barreto@hotmail.com. Telf.:087017318 Tened cuidado con aquel primate al que llamis hombre, Porque es el pen del diablo, Su sabidura ha de ir de la mano con su estupidez, Matara a su hermano, por deporte, avaricia o por Poseer su tierra, Convertir tu hbitat en desierto, y tambin el suyo No lo dejis que se multiplique en grandes nmeros, Llevadlo lejos, a la madriguera donde pertenece Pues es el heraldo de la muerte -.Tomado del rollo sagrado de los simios.-