adquisicion
-
Upload
luis-angel-alegria-jimenez -
Category
Documents
-
view
20 -
download
0
Transcript of adquisicion
-
16 elektor, la electrnica que sorprende - 11/2007
SOBRE EL TERRENO OBTENIENDO DATOS
Tarjeta USB de Adqude Datospor Jos Luis Ruprez Fombellida
Esta tarjeta de adquisicin de datos para su conexin al puerto USB dispone de 8 salidas digitales, 8 entradas digitales, dos salidas analgicas de 10 bits y 8 entradas analgicas de 10 bits para tensiones comprendidas entre 0 V y + 5 V. El corazn del sistema es un microcontrolador USB inteligente de la casa Microchip, del tipo PIC 18F4550, programado en lenguaje C. El circuito est construido sobre una Placa de Circuito Impreso (PCI) compacta y no requiere el uso de una fuente de alimentacin externa.
Los sistemas y las tarjetas de medida que podemos conectar a un ordenador han sido siempre un factor del xito constante a lo largo de la historia de Ele-ktor. Tanto si se trata de dispositivos au-tnomos controlados por los puertos RS 232 o por el puerto LPT (alguien recuerda ya esto?), como si hablamos de una tar-jeta conectada al bus ISA o, ms recien-temente, tarjetas conectadas al bus USB, siempre es un acontecimiento si nues-tros lectores pueden generar y leer se-ales de control digitales y pueden hacer lo mismo para las seales analgicas! La tarjeta que se describe en este artculo podra ser el centro de un gran nmero de aplicaciones que se podran hacer en entornos de medida y control.
Queremos USBEn la actualidad podemos argumen-tar que tanto los dispositivos RS 232 como los ISA, e incluso los Centronics, son cosas del pasado cuando se trata de seales analgicas y digitales es-
pecficas para realizar medidas y con-troles por medio de un ordenador. El bus USB es la manera ms avanzada, en trminos de velocidad y facilidad de conexin, aunque este ltimo tr-mino es un tema complejo ya que suele estar relacionado con el programa de aplicacin. Por ejemplo, es necesario una gran cantidad de trabajo (y tiem-po) para conseguir que el ordenador re-conozca un dispositivo USB vlido!Afortunadamente, en este artculo vamos a intentar ayudar, tanto a aquellos lecto-res que slo estn interesados en la co-nectividad analgica y digital con el mun-do real, como aquellos que estn ms in-teresados en profundizar en cmo trabaja actualmente el bus USB en un microcon-trolador. Por supuesto, igual importancia puede tener el hecho de hacer algo real-mente til y a muy bajo coste.
El PIC 18F4550 para USB Por suerte, existen microcontroladores que hacen que el interfaz USB entre el
ordenador (el husped) y el circuito que desea-mos disear (el dispositi-vo USB), sea ms o menos
transparente. Esto se debe a que estn equipados con un programa y un circuito
dedicado para implementar el interfaz USB de una forma sencilla. Por supuesto, todo esto es totalmente invisible para aquellos que tan slo quieren utilizar el dispositivo USB y no les interesa saber nada sobre el mismo (algo que no nos incluye)! Uno de estos procesadores es el PIC 18F4550 de la casa Microchip, que tiene la ventaja adicional de disponer de una gran can-tidad de programas (gratui-tos) disponibles para poder utilizarlos con l. Adems, este componente est dispo-nible en un encapsulado DIP 40, algo que puede ser muy
-
1711/2007 - elektor, la electrnica que sorprende
uisicin Analgica y Digital; Entrada y Salida
bien recibido por parte de todos aque-llos que siempre dicen eso de odio los componentes SMD.
El CircuitoEl esquema elctrico de esta pequea maravilla de la tecnologa lo podemos ver en la Figura 1. Dicho circuito no es mucho ms grande que una poten-te CPU (IC1) rodeada por una serie de conectores de entrada y salida y unos pocos diodos LEDs de estado. La fun-cin de los conectores est relacionada con las correspondientes lneas del mi-crocontrolador PIC que se indican en-tre parntesis:
K1 = Salida digital de 8 bits para las variaciones TTL de 0 a 5 V (RD0-RD7).K2 = Conector USB para el enlace con nuestro ordenador (RC4-RC5).K3 = Entrada digital de 8 bits para las variaciones TTL de 0 a 5 V (RB0-RB7).K4 = Dos salidas analgicas para las variaciones de tensin de 0 a 5 V
(RC1-RC2).K5 = 8 entradas analgicas para las variaciones de tensin de 0 a 5 V (AN0/RA0-AN7/RE2).
Se utilizan resistencias internas de pull-up para las lneas digitales de entrada del puerto RB. Las salidas analgicas tienen una resolucin de 10 bits cada una y utilizan PWM (mo-dulacin de ancho de pulso) a una fre-cuencia de 2.9 kHz. Si fuese necesario, stas salidas pueden ser filtradas con una sencilla red RC. La tensin conti-nua (DC) de salida Vo obtenida des-pus del filtrado, puede ser calculada por medio de la frmula:
Vo = 5D [voltios]
donde la variable D se corresponde con el ciclo de trabajo de la seal PWM, y toma un valor comprendido entre 0 y 1.Las entradas analgicas tambin tie-nen una resolucin de 10 bits.El oscilador en el interior del microcon-trolador PIC trabaja a una velocidad de
20 MHz utilizando un cristal de cuarzo, X1, y el tradicional par de pequeos condensadores para la carga en para-lelo, junto con una resistencia (R5) de alto valor.En nuestro circuito el microcontrolador trabajaba a una frecuencia de 48 MHz generada internamente con la ayuda de un PLL y de un divisor de frecuen-cia, que trabajan a partir de la seal de 20 MHz suministrada por el cristal de cuarzo. La frecuencia de 48 MHz es un mltiplo exacto de la velocidad del bus USB (cuya velocidad mxima es de 12 Mbits/s).Dos diodos LED de estado, D1 y D2, indican el estado del bus USB. Obvia-mente, el diodo LED D3 es el encarga-do de indicar el estado de la fuente de alimentacin, que luce cuando la tar-jeta est conectada al puerto USB de nuestro ordenador.La tensin de alimentacin del circui-to llega a travs del conector USB K2 y de una pequea bobina de choque, L1, que suprime el posible ruido de la seal, con la ayuda del condensador C4 para esta funcin.
AN0/RA0 2
AN1/RA1 3
AN2/RA2 4
AN3/RA3 5
AN4/RA5 7
AN5/RE0 8
AN6/RE1 9
AN7/RE2 10
RB0 33
RB1 34
RB2 35
RB3 36
RB4 37
RB5 38
RB6 39
RB7 40
MCLR1 RA4 6
VDD
11
VDD
32
VSS
12
VSS
31
OSC1
13
OSC2
14
RC015
RC116
RC217
VUSB
18
RD019
RD120
RD221
RD322
RD427
RD528
RD629
RD730
RC423
RC524
RC625
RC726
IC1
PIC18F4550
R51MX1
20MHzC5
22p
C6
22p
1 23 45 67 89 10
K1
+5V
+5V
1 23 45 67 89
see text
10
K3
+5V
1 23 45 67 89 10
K4+5V
1 23 45 67 89 10
K5
+5V
RD0RD1
RD2 RD3RD4 RD5RD6 RD7
RB0 RB1RB2 RB3RB4 RB5RB6 RB7
AN0 AN1AN2 AN3AN4 AN5AN6 AN7
AN0AN1AN2AN3AN4AN5AN6AN7
RB0RB1RB2RB3RB4RB5RB6RB7
R6
1k
D1
LED0
R7
1k
D2
LED1
R2470R
R1
10K
+5V
C3
100n
S1
1234
5 6
K2R3
27RR4
27R
C4
10n
+5V
C1
100n
C2
470n
CCP1 CCP2
R8
1k
D3
+5V
RD0
RD1RD2RD3RD4RD5RD6RD7
CCP2CCP1
070148 - 11
L1
*
*
Figura 1. Esquema elctrico del circuito de la Placa de Adquisicin de Datos con conexin USB.
-
18 elektor, la electrnica que sorprende - 11/2007
SOBRE EL TERRENO OBTENIENDO DATOS
Esto tan slo nos deja a estudiar los componentes S1, R1, R2 y C3 sobre la entrada MCLR del microcontrolador. Pues bien, estos componentes son
El Programa Interno (Firmware) del PICDonde habitualmente encontramos muy pocos componentes es de su-poner que encontraremos una gran cantidad de programa detrs de to-dos ellos y, usualmente, dentro de al-gn microcontrolador. El firmware (cdigo objeto interno) del microcon-trolador, que se ejecuta fielmente en este dispositivo, fue creado por el au-tor de este artculo utilizando dos he-rramientas de programacin gratui-tas de la casa Microchip: IDE MPLAB V7.5 y C18 Student Edition V3.02. La pgina web de la casa Microchip proporciona informacin acerca de la instalacin y uso de ambos pro-gramas. El cdigo fuente del progra-ma interno del microcontrolador es diferente del original proporcionado por Microchip. Todo el programa del proyecto est disponible para su des-carga gratuita con la referencia del fichero # 070148-11.zip en la pgina web www.elektor.com. Nuestros lec-tores encontrarn ah al menos tres directorios con los nombres driver, firmware y PC. El contenido de todo ello es una cueva de Aladino para los aficionados al lenguaje C, los microcontroladores PIC y el bus USB (que debe satisfacer a la gran mayora de nuestros lectores). En la Figura 2 se muestra un trozo de cdi-go y lenguaje C. Con esto podremos verificar que estamos comprando un circuito integrado ya programado su-ministrado por Elektor.El fichero con el programa interno a volcar sobre el microcontrolador con-tiene el proyecto completo y el resulta-do de su compilacin, cuyo nombre es TAD_v1.hex. El microcontrolador tiene que ser programado con este fichero.Aquellos de nuestros lectores que estn interesados en profundizar en cmo trabaja el bus USB deben saber que la conectividad implementada en la tarjeta descrita en este artcu-lo est definida por el programa inter-no del microcontrolador PIC 18F4550. Se ha utilizado el siguiente bloque de configuracin: BUS POWER MODE; CUSTOMCLASS; FULL-SPEED (12 MBIT/S) and INTE-RRUPT TRANSFER.
MontajeEl circuito est construido sobre una placa de circuito impreso de doble cara compacta. En la Figura 3. se muestran los planos de colocacin de los componentes de ambas caras. En ambas caras se han dejado algunos
tan slo una tradicional red de reini-cio (Reset).
Figura 2. Tambin RU sobre MPLAB? Es lo que dirn, muchos de los lectores de Elektor. El cdigo en lenguaje C para el proyecto tambin contiene informacin muy til sobre la configuracin establecida sobre el PIC. Una fuente continua de confusin para muchos de los aficionados a los microcontroladores (y no tan slo para aquellos que trabajan sobre PICs).
Banco de Entrenamiento de la Tarjeta de Adquisicin de DatosEl autor de este artculo ha desarrollado cuatro placas sencillas adicionales para verificar nuestra tarjeta de adquisicin de datos con las siguientes funcionalidades:
1. Tarjeta de diodos LED: con 8 diodos LED para visualizar las salidas digitales.
2. Tarjeta de pulsadores y conmutadores: con cuatro pulsadores y cuatro conmutadores para hacer ejercicios con las 8 entradas digitales.
3. Tarjeta con voltmetro LED: con dos diodos LED que cambian su intensidad de brillo de ac-uerdo con las dos salidas analgicas.
4. Tarjeta con potencimetros: 8 poten-cimetros para verificar el funcionamiento correcto de las 8 entradas analgicas.
Los esquemas elctricos y los ficheros correspondientes a los diseos de los cir-cuitos impresos de las tarjetas adicionales se han comprimido en un fichero .zip adi-cional que puedes descargar gratuita-mente de la web de Elektor. Los archivos estn en formato OrCad.
Para comprobar el sistema completo tambin se ha desarrollado un programa escrito en C++ CLR, para el que se ha utilizado el compilador (gratuito) Visual C++ 2005 Express. Este programa est basado en ejemplos de la casa Microchip.
Jorge Alberto Acosta
-
1911/2007 - elektor, la electrnica que sorprende
espacios vacos para poder sujetar la placa con tornillos.Aunque la implantacin de los com-ponentes sobre la placa no debe su-poner mayores problemas para nues-tros lectores ms experimentados, vamos a dar algunos consejos para aquellos que acaban de comenzar a trabajar con el bus USB con la pre-sente tarjeta.La abertura en el cuello de cada co-nector del tipo boxheader sirve como ayuda a la orientacin del co-lector y debe colocarse sobre el flan-co de la placa para permitir que un conector IDC o un cable plano pueda ser conectado.Los componentes SMD se tienen que montar a ambos lados de la placa, por lo que tendremos que estudiar los dos esquemas de implantacin de compo-nentes para establecer la correcta po-sicin de cada componente, as como la orientacin del encapsulado de los diodos LEDs SMD.
Recomendamos montar el microproce-sador PIC 18F4550 ya programado so-bre un zcalo DIL de 40 terminales de buena calidad. La orientacin correcta de este gran circuito integrado es tal que su terminal 1 cae cerca del conmu-tador S1 de reinicio (reset).
Por ltimo, la bobina L1 est for-mada por un rosario de ferrita con tres o cuatro agujeros a travs de los cuales se debe pasar un trozo de hilo de cobre esmaltado u otro tipo de hilo rgido. Tambin puede ser vlido un ncleo de ferrita con
D3D2
R7R6
X1
K1K3
K5S1
R8L1K2
D1IC1
K4
Figura 3. Planos de implantacin de componentes de la cara superior y la cara inferior de la placa de circuito impreso. La informacin de toda la PCI est en un formato PDF para su descarga gratuita en nuestra pgina web, pero debemos tener en mente que la placa es de doble cara y con taladros pasantes plateados.
R5C1
C6C5
C3R1 R2
C4R4 R3
C2
Lista de materiales Resistencias(todos los componentes son SMD con
encapsulado 0805)R1 = 10 k1R2 = 470 1R3, R4 = 33 1R5 = 1 M1R6, R7, R8 = 1 k1
Condensadores(todos los componentes son SMD con en-
capsulado 0805)C1, C3 = 100 nF C2 = 470 F C4 = 10 nFC5, C6 = 22 pF
SemiconductoresIC1 = PIC 18F4550 I/P (programado,
con cdigo de pedido en Elektor SHOP 070148-41).
D1, D2, D3 = Diodo LED SMD encapsu-lado 1206
VariosK1, K3, K4, K5 Conector tipo boxheader
de 10 terminales.K2 Conector USB tipo B para montaje en PCI.X1 cristal de cuarzo de 20 MHz.L1 VK 200 o pequeo rosario de ferrita con
2 - 4 vueltas de hilo de cobre estaado y esmaltado.
S1 pulsador para montaje sobre PCI, con huella de 6 mm.
Zcalo DIL 40 para IC1.Programa del proyecto en fichero #
070148-11.zip, descarga gratuita de la pgina web de Elektor (www.elektor.com).
PCI (sola) con cdigo de pedido # 070148-1, en Elektor Shop.
-
20 elektor, la electrnica que sorprende - 11/2007
SOBRE EL TERRENO OBTENIENDO DATOS
un nico agujero y tres vueltas de hilo que pasen a su travs. El valor de la inductancia final de esta bobi-na choque de RF fabricada de esta manera no es crtico.Para evitar posibles daos sobre el ordenador, tenemos que verificar que no hay ningn cortocircuito o cual-quier otro problema en los termina-les del conector USB K2.
Primeras ConexinUna vez que la tarjeta est totalmente equi-pada con sus componentes (y con el micro-controlador programado adecuadamente),
la conectaremos al ordenador por medio de un cable USB estndar. El diodo LED D3 de encendido se debe iluminar y uno de los diodos LEDs, D1 y D2, debe parpadear mientras el otro permanece apagado. Al mismo tiempo, el ordenador nos dir que un nuevo dispositivo USB ha sido conecta-do y detectado y que se requiere la insta-lacin de un controlador. A continuacin, diremos al sistema operativo Windows donde se encuentra localizado el contro-lador (directorio driver\mchpusb.inf). Una vez que el controlador ha sido instalado, el diodo LED de estado USB debe parpadear de forma intermitente. En este momento la placa est lista para su uso.
Siga Estos PasosEl programa para ordenador disponible para este proyecto debiera ser relativamente fcil de instalar, usar y/o adaptar, si seguimos estos sencillos pasos:
1. Instalar Visual C++ 2005 Express: http://msdn2.microsoft.com/en-us/express/aa975050.aspx)
2. Instalar Visual C++ 2005 Express SP1: http://msdn2.microsoft.com/en-us/express/aa975050.aspx
3. Instalar PSDK: Plataforma SDK de Microsoft para Microsoft Visual C++ 2005 Express: http://msdn2.microsoft.com/en-us/express/aa975050.aspx
4. Actualizar el Sistema Operativo utilizando la herramienta Windows Update.
5. Decir a Visual C++ que utilice PSDK.
La secuencia para hacer esto sugerida por Microsoft es la siguiente:
5.1 Actualizar los directorios de Visual C++ en la seccin de Projects and Solutions (Proyectos y Soluciones), en la caja de dilogo Options (Opciones). Aadir los caminos a las sub-secciones correspondientes:Ficheros Ejecutables: C:\Program Files\Microsoft Platform SDK para Windows Server 2003 R2\Bin;
Ficheros Include: C:\Program Files\Microsoft Platform SDK para Win-dows Server 2003 R2\Include;
Ficheros de Library: C:\Program Files\Microsoft Platform SDK para Windows Server 2003 R2\Lib.
5.2. Actualizar el fichero corewin_express.vsprops.Es necesario dar un paso ms para hacer que Win32 template trabaje en Visual C++ Express. Necesitamos editar el fichero corewin_ex-press.vsprops (localizado en C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults) y cambiar las sentencias:
AdditionalDependencies=kernel32.lib a:
AdditionalDependencies=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib.
5.3. Generar y construir una aplicacin Win32 para comprobar nuestros caminos.En Visual C++ Express, el tipo Win32 Windows Application est deshabilitado en el entorno Win32 Application Wizard. Para habili-tar este tipo necesitamos editar el fichero AppSettings.htm que est localizado en el directorio:
%ProgramFiles%\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1033\.
En un editor de textos, colocar en comentarios las lneas que van des-de 441 a 444 colocando una // (doble diagonal) al principio de cada lnea, tal y como se muestra aqu:
// WIN_APP.disabled = true;
// WIN_APP_LABEL.disabled = true;
// DLL_APP.disabled = true;
// DLL_APP_LABEL.disabled = true.
Salvar y cerrar el fichero y abrir Visual C++ Express.
Ficheros y Localizacin de FicherosEl proyecto completo de la aplicacin para el ordenador est localizado en el directorio PC\TAD_V1_win\ y su nombre es TAD_V1_win.vcproj. El programa compilado est en el directorio PC\TAD_V1_win\Release y su nombre es TAD_V1_win.exe (para el programa que se ejecuta, del mismo modo, la librera dinmica de enlace mpusbapi.dll, creada por Microchip, debe estar en el mismo directorio). El fichero ejecutable necesita la aplicacin .NET Framework. Se recomienda encarecida-mente tener el sistema operativo actualizado por medio de la aplicacin
Windows Update (Actualizacin Automtica de Windows).
Si deseamos modificar el proyecto para adaptarlo a nuestras necesidades deberemos instalar el compilador Visual de Microsoft C++ 2005 Express y actualizarlo con el Service Pack 1: Visual C++ 2005 Express SP1. Posteri-ormente, instalaremos la Plataforma SDK de Microsoft (Microsoft Platform SDK) parar Microsoft Visual C++ 2005 Express. Esto nos permitir de-sarrollar aplicaciones WIN32 (en este caso necesitaremos acceder a la DLL mpusbapi.dll). Todo esto del gratuito y lo podemos descargar de la pgina web de Microsoft. Aqu encontraremos tambin instrucciones de cmo re-alizar la instalacin y ejemplos de dicho proceso.
VID/PID(ID del Producto / ID del Vendedor)
Todos los dispositivos USB tienen una combinacin nica formada por dos n-meros, de manera que no puede haber dos dispositivos iguales. El primer n-mero, denominado VID, identifica al fa-bricante del dispositivo, mientras que el segundo, denominado PID, identifica al propio producto.La combinacin utilizada en este proyecto utiliza como VID uno de la casa Microchip y como PID el de unas placas de demos-tracin para el PIC 18F4550 de Microchip. Si queremos utilizar la Tarjeta de Adquisi-
-
2111/2007 - elektor, la electrnica que sorprende
cin de Datos por USB con propsitos co-merciales, es esencial obtener una confi-guracin de nmeros VIP / PID diferentes. Esto se puede conseguir, por ejemplo, a travs de la pgina web www.isb.org o a travs de la casa Microchip.Esta nueva combinacin debe ser in-cluida en el cdigo fuente del progra-ma interno, que tendra que ser com-pilado de nuevo para poder obtener un fichero hex actualizado, y con el que tendramos que volver a programar el microcontrolador.El programa que se ejecuta sobre el or-denador tambin tendra que ser modi-ficado del mismo modo, ya que el pro-grama interno del microcontrolador y el programa que se ejecuta en el ordena-dor deben tener la misma configuracin VID / PID. Por ltimo, tambin se tendra que modificar el fichero mchpusb.inf del controlador.
PrecaucionesDebemos mencionar tambin algunas precauciones a tener en cuenta por nuestros lectores. Todos los conectores de expansin, K1, K3, K4 y K5 incluyen dos terminales de alimentacin, + 5 V y masa, para poder alimentar cualquier tarjeta que vaya a ser conectada a nues-tra tarjeta. Debemos poner un gran cui-dado en evitar que se produzcan corto-circuitos en estos terminales y que no se produzca un consumo mayor de 100 mA en ninguno de ellos. Tambin debe-mos recordar que estos terminales estn conectados directamente de los termi-nales + 5 V y masa del puerto USB de nuestro ordenador (y no queremos que se produzcan daos en el ordenador que utiliza toda la familia).Si para ciertas aplicaciones necesitamos un consumo mayor de corriente, tendremos que considerar el uso de una fuente de alimenta-
cin externa uniendo tan slo los terminales de masas de la aplicacin y los de la Tarjeta de Adquisicin de Datos por USB.Para las entradas digitales (en K3) hay que tomar tambin algunas precaucio-nes: no debemos aplicar tensiones por debajo de cero o superiores a + 5 V, de esta forma evitaremos daos en el micro-controlador PIC.Sobre las salidas digitales (K1), cada l-nea puede proporcionar una corriente mxima de 25 mA para un nivel lgico alto o un nivel lgico bajo.En las entradas analgicas (K5), sucede lo mismo que con las entradas digitales.En las salidas analgicas (K4), cada l-nea puede suministrar una corriente mxima de 25 mA para un nivel lgico alto y para un nivel lgico bajo de la seal PWM.Por ltimo, la suma de todas las co-rrientes de todas las seales de salida digitales y analgicas no debe superar los 200 mA.
Trabajos en CursoLa Tarjeta de Adquisicin de Datos por USB tiene un gran potencial y el autor ha desarrollado (y sigue ocupado en el desarrollo) de las siguientes placas de aplicacin:
1. Tarjeta de triacs para las ocho sali-das digitales, la cual es capaz de con-trolar cargas alimentadas desde la ten-sin de red de un modo muy conforta-ble. Esta tarjeta est aislada por medio de optotriacs.2. Una tarjeta conversora de resisten-cia a tensin, que proporciona una tensin proporcional a la resistencia de entrada. Esta tensin es aplicada a la entrada digital.3. Una tarjeta voltmetro, con una lectu-ra por medio de barras de diodos LED.
4. Una tarjeta con control de velocidad para un motor DC. Esta tarjeta con-trola la velocidad y direccin de giro de un motor a travs de las salidas analgicas.5. Tarjeta controladora para motores paso a paso, capaz de generar micros-pasos a travs de las salidas digitales.6. Tarjeta con sensores de distancia que utilizan las entradas analgicas.7. Tarjeta de rels bajo el control de las salidas digitales.
(070148-I)
Acerca del AutorEl autor es un ingeniero tcnico de te-lecomunicaciones que trabaja como profesor de electrnica en una escuela profesional en Madrid desde 1984. Es un gran aficionado a la electrnica. Ha desarrollado esta tarjeta para permitir que esos estudiantes puedan controlar pequeos robots a partir del puerto USB de un ordenador por medio de progra-mas escritos en lenguaje C.
Publicidad