# USB con labview



## Lord_Inricam (Nov 3, 2006)

Hola amigos los felcito por tan buena pagina, quisiera ver si me pueden ayudar en algo, resulta que tengo que ver como me puedo comunicar en labview 8 por medio del bus USB, no se si es posible realizar la lectura y escritura de un pendrive o realizar un chat por medio del USB, la idea es ver que herramientas dispongo para establecer esta comunicacion, ojala puedan orientarme en aquello que ha sido un dolor de cabeza para mi,
Muchas Gracias y sigan con tan buena pagina..

Atte Lord_Inricam


----------



## electra26 (Jul 2, 2007)

Quisiera comunicar una tarjeta de adquision de datos que yo estoy fabricando a traves del puerto usb con labview. estoy utilizando el pic 18f2550, y segun he leido en la ayuda de labview para facilitar la conexion se requiere que este sea de clase usbtmc (usb test and measurement class) para configurarlo a traves de visa, quisiera que por favor alguien me facilitara un fireware para que mi dispositivo soporte esta clase o me guíen en como hacerlo. he leido en solicitudes de ayuda de personas en años anteriores como altair que requerian lo mismo que yo, si por favor estas personas ya lograron desarrollar sus proyectos les agradecería mucho toda la ayuda e información q me puedan brindar.
desde ya gracias!!!


----------



## eidtech (Jul 3, 2007)

Electra,

Una de manera de hacer la conexion es mediante el uso de una dll que proporciona Microchip, esta se llama mpusbapi.dll. Hacerla funcionar en Labview es muy sencillo.

Te recomiendo que visites esta pagina:

http://picmania.garcia-cuervo.com/USB_0_Desencadenado.htm

ahi encontraras mucha información que seguro te va a servir en el desarrollo de tu proyecto.

Ademas espero que compartas tus resultados con el foro.

Saludos..


----------



## electra26 (Jul 4, 2007)

hola eidtech, gracias por tu ayuda, pues te cuento el archivo mpusbapi.dll ya lo tengo en un ejemplo q encontre en la pagina www.hobbypic.com, pero segun he leido en la pagina de NI para labview se crea el driver a travez VISA driver debelopment wizard que se encuentra en inicio->todos los programas-> national instrument->visa, alli se genera una archivo .inf y para ello hay q saber el ID vendor y el ID product que en mi caso al programar el pic para usb se establecen estos numeros con el ejemplo q les hable hecho por J1M, una vez se crea este archivo se copia y se instala en la carpeta WINDOWS/INF, ya luego coencto el usb y se supone se insatala normal con este driver pero el problema q ahora tengo es q me pide una archivo llamado "mchpusb.sys" q es de microchip pero una herramietna de NI en la misma parte de VISA llamado VISA interactive control la cual permite la comunicacion del dispositivo con labview no me lo detecta   , y es lo q no entiendo como hacer.


----------



## eidtech (Jul 4, 2007)

Hola!

Yo he utilizado la conexion USB en Labview sin hacer uso de VISA.

Lo hice mediante llamadas a funciones DLL.


----------



## Jaiba2099 (Abr 12, 2008)

Hola
Soy nuevo en esta pagina, pero veo son gente muy capaz y que de hecho saben mucho delo que hablan. Tengo un problema, necesito comunicar labview 8.5 con un dispositivo USB. La idea es ver cuales son los requisitos para que labview pueda interactuar con un dispositivo USB, de preferencia cualquiera. Ya vi lo de usar VISA, pero de nuevo me da problemas con los dll.
Me ayudaria mucho si me pudieran dar alguna referencia de manual o algo asi, pues no cuento con un dispositivo especifico USB con el cual me queiro conectar.
Perdon si sueno un poco vago, pero es toda la información que me han dado y soy nuevo en esto.
Gracias por su tiempo.


----------



## Ligator (Nov 27, 2008)

Hola, yo también he usado el pic18f2550 con labview por medio del puerto usb.

Lo que hice fue aprender la parte de la programación del pic por medio de la página www.muchotrasto.com (te la recomiendo ampliamente), ahí te enseñan a programarlo con las librerías CDC del compilador CCS, esto significa que solo tienes que instalar el archivo *.inf (que la misma página te proporciona) y ya está, tu ordenador reconocerá a tu pic como si estuviera conectado a un puerto serial!. 

Solo tienes que ver en el administrador de dispositivos qué puerto COM le asignó a tu pic y de ahí el puerto serial es fácil manipularlo desde labview.

Espero te sirva esta información y suerte con tu proyecto, ya nos contarás que curiosidades haces con él.


----------



## Ligator (Dic 17, 2008)

http://zone.ni.com/devzone/cda/tut/p/id/4478


----------



## jokelnice (Dic 26, 2008)

yo tambien saque la comunicacion por usb con la libreria de microchip ya que por visa no pude , y hasta el momento todo handa bien cualquier cosa estamos para ayudarnos


----------



## Moyano Jonathan (Dic 26, 2008)

Estaría buenisimo que postearas algo con labview de usb. Igual me voy a tener que meter a leer como es la programación con ese lenguaje por que hasta ahora todo lo que programado en la pc lo he hecho en vb 2006.


----------



## jokelnice (Dic 26, 2008)

si mira labview es muy sencillo lo unico que hay que tener en cuenta es que no se programa de la forma tipica que conocemos ( por lineas de instruccion ) sino por lenguaje g ( grafico ) en donde no se ejecuta de abajo hacia arriba sino con una perspectiva nodal  para que me entiendas es como si estuvieras simulando un circuito 
por ejemplo en c para sumar dos numeros que hariamos :
x=2;
y=3;
z=x+y; // 5 
en labview tendriamos un esquema que simboliza la suma con dos entradas ( los dos numeros ) y una salida ( resultado ) ;espero que haya servido cualquier cosa avisenme he hecho muchas cosas con este software ,cualquier cosa a la orden


----------



## Moyano Jonathan (Dic 26, 2008)

La verdad , me gustaría aprender todo lo que pueda de este lenguaje. Igual primero me lo voy a conseguir y después veo si me bajo algunos tutos al respecto , cualquier duda te la comento.


----------



## jokelnice (Ene 20, 2009)

hay un ejemplo basico el otro post aca esta: https://www.forosdeelectronica.com/f24/control-dispositivos-traves-modulo-usb-pic18f2550-17458/


----------



## Patico21 (Feb 15, 2009)

alguien me m puede ayudar a hacer la comunicacion usb con lab view con visa o por lo menos los pasos para poder lograrlo les agradeceria mucho


----------



## jokelnice (Feb 16, 2009)

Patico21 dijo:
			
		

> alguien me m puede ayudar a hacer la comunicacion usb con lab view con visa o por lo menos los pasos para poder lograrlo les agradeceria mucho



patico21 como estas antes de meternos con labview no se si ya tengas información del protocolo ; como funciona ,que podemos hacer . si no la tienes hacer lo primero que debes hacer es visitar estos foros y paginas  recomendados ya despues integrarlo con labview es facil cualquier cosa estamos para servirte 

https://www.forosdeelectronica.com/f24/control-dispositivos-traves-modulo-usb-pic18f2550-17458/
http://picmania.garcia-cuervo.com/USB_0_Desencadenado.php

si por el contrario ya tienes algo de conocimiento sobre el usb entonces dirigite a este foro que lo estoy llevando sobre labview y el primer ejemplo es sobre comunicacion usb el modo cdc (Communications Devices Class) saludos

https://www.forosdeelectronica.com/f26/usb-labview-entre-otros-18338/


----------



## biskinson (Jun 12, 2009)

Hola a todos.
Antes que nada daros a todos las gracias por los aportes que hacen. Gracias a ellos, he conseguido comunicarme en modo usb  cdc con el micro sin ningún problema. 

El problema lo estoy teniendo con el modo hid. Para empezar he partido del ejemplo de CCS ex_usb_hid.c, modificándolo para usarlo con el pic 18f2550. El programa manda periódicamente un byte constante (0x55) y el valor del ADC. Para probar que funciona, he utilizado una aplicación hiddemo.exe, con la que puedo leer la información mandada con un dispositivo hid. Con esta aplicación, detecto el dispositivo y recibo tanto el byte constante como la lectura del ADC, así que entiendo que el pic funciona perfectamente en modo hid. 

Creé una aplicación en labview para hacer la lectura de estos bytes utilizando la librería mpusbapi.dll, pero no conseguí ninguna respuesta. Me bajé el vi de jokelnice para detectar el dispositivo hid y tampoco lo detecta. Llevo un tiempo dándole vueltas al asunto pero no entiendo qué es lo que puedo estar haciendo mal, ¿me podríais echar una mano?


```
#define __USB_PIC_PERIF__ 1

//if using a 16bit PIC on an Explorer 16 borad, set this to 1
#define __USB_PIC_EXPLORER16__   1

#if __USB_PIC_PERIF__
#define LED_ON(x) output_high(x)
#define LED_OFF(x) output_low(x)
#DEFINE LED1  PIN_B6
#DEFINE LED2  PIN_B7
#DEFINE LED3  PIN_C0
#define sw1  input(PIN_A3)
 #include <18F2550.h>
 #device ADC=8
 #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
 #use delay(clock=48000000)
 
#endif


#use rs232(baud=9600, UART1, errors)

// you can change the tx and rx packet sizes here.
// in order to be compatbile with hiddemo.exe, these values must be 2.
#define USB_CONFIG_HID_TX_SIZE   2
#define USB_CONFIG_HID_RX_SIZE   2

/////////////////////////////////////////////////////////////////////////////
//
// Include the CCS USB Libraries.  See the comments at the top of these
// files for more informaciónrmation
//
/////////////////////////////////////////////////////////////////////////////

#include <pic18_usb.h>   //Microchip PIC18Fxx5x hardware layer for usb.c

#include <usb_desc_hid.h>   //USB Configuration and Device descriptors for this UBS device
#include <usb.c>        //handles usb setup tokens and get descriptor reports


/////////////////////////////////////////////////////////////////////////////
//
// Configure the demonstration I/O
//
/////////////////////////////////////////////////////////////////////////////



/////////////////////////////////////////////////////////////////////////////
//
// usb_debug_task()
//
// When called periodically, displays debugging informaciónrmation over serial
// to display enumeration and connection states.  Also lights LED1 based upon
// enumeration and status.
//
/////////////////////////////////////////////////////////////////////////////
void usb_debug_task(void) 
{
   static int8 last_connected;
   static int8 last_enumerated;
   int8 new_connected;
   int8 new_enumerated;

   new_connected=usb_attached();
   new_enumerated=usb_enumerated();

   if (new_enumerated)
      LED_ON(LED1);
   else
      LED_OFF(LED1);

   if (new_connected && !last_connected)
      printf("\r\n\nUSB connected, waiting for enumaration...");
   if (!new_connected && last_connected)
      printf("\r\n\nUSB disconnected, waiting for connection...");
   if (new_enumerated && !last_enumerated)
      printf("\r\n\nUSB enumerated by PC/HOST");
   if (!new_enumerated && last_enumerated)
      printf("\r\n\nUSB unenumerated by PC/HOST, waiting for enumeration...");

   last_connected=new_connected;
   last_enumerated=new_enumerated;
}

void main(void) 
{
   int8 out_data[2];
   int8 in_data[2];
   int8 send_timer=0;

   LED_OFF(LED1);
   LED_OFF(LED2);
   LED_OFF(LED3);

   printf("\r\n\nCCS Vendor Specific HID Example");

  #ifdef __PCH__
   printf("\r\nPCH: v");
   printf(__PCH__);
  #elif defined(__PCD__)
   printf("\r\nPCD: v");
   printf(__PCD__);
  #else
   printf("\r\nPCM: v");
   printf(__PCM__);
  #endif

   usb_init_cs();

  #if !(__USB_PIC_PERIF__)
   printf("\r\nUSBN: 0x%X", usbn_get_version());
  #endif
   printf("\r\n");

   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);
   set_adc_channel(0);

   while (TRUE) 
   {
      usb_task();
      usb_debug_task();
      if (usb_enumerated()) 
      {
         if (!send_timer) 
         {
            send_timer=250;
            out_data[1]=read_adc();
            out_data[0]=0x55;
            if (usb_put_packet(1, out_data, 2, USB_DTS_TOGGLE))
               printf("\r\n<-- Sending 2 bytes: 0x%X 0x%X", out_data[0], out_data[1]);
         }
         if (usb_kbhit(1)) 
         {
            usb_get_packet(1, in_data, 2);
            printf("\r\n--> Received data: 0x%X 0x%X",in_data[0],in_data[1]);
            if (in_data[0]) {LED_ON(LED2);} else {LED_OFF(LED2);}
            if (in_data[1]) {LED_ON(LED3);} else {LED_OFF(LED3);}

         }
         send_timer--;
         delay_ms(1);
      }
   }
}
```


----------



## jokelnice (Jun 12, 2009)

biskinson dijo:
			
		

> Hola a todos.
> Antes que nada daros a todos las gracias por los aportes que hacen. Gracias a ellos, he conseguido comunicarme en modo usb  cdc con el micro sin ningún problema.
> 
> El problema lo estoy teniendo con el modo hid. Para empezar he partido del ejemplo de CCS ex_usb_hid.c, modificándolo para usarlo con el pic 18f2550. El programa manda periódicamente un byte constante (0x55) y el valor del ADC. Para probar que funciona, he utilizado una aplicación hiddemo.exe, con la que puedo leer la información mandada con un dispositivo hid. Con esta aplicación, detecto el dispositivo y recibo tanto el byte constante como la lectura del ADC, así que entiendo que el pic funciona perfectamente en modo hid.
> ...




Colega el vi solo funciona con usb modo bulk , no en hid


----------



## biskinson (Jun 15, 2009)

OK, he usado #DEFINE USB_HID_DEVICE  FALSE y funciona. Gracias, jokelnice. ¿La librería mpusbapi.dll no se puede utilizar en modo hid? ¿Habría que utilizar la librería hid.dll de windows? ¿Tenéis algún ejemplo usando esta librería?


----------



## gpoolb (Jun 19, 2009)

Saludos...

Les comparto mis experiencias con la comunicación por puerto USB con PIC de Microchip (compilado con CCS C compiler) y Labview 8.2 usando "Call Library Function Node" para manipular mpusbapi.dll  ... espero les sea útil. Espero sus comentarios.


----------



## Ritos (Jun 20, 2009)

que tal

tengo una duda, mpusbapi.dll puede funcionar con la clase hid


----------



## Moyano Jonathan (Jun 20, 2009)

No mpusbapi.dll funciona bajo el metodo bulk de transferencia de datos. En cambio HID funciona bajo protocolo de transmisión de datos a baja velocidad.


----------



## Ritos (Jul 19, 2009)

gracias por responder jhonatan, veo que has posteado sobre usb, ahora me encuentro trabajando sobre usb clase hid, utilizando unas funciones de win32 (handles) para ello. Pero ahora me ha surgido un problema y no se en que parte del foro ponerla, me sale el error 0000h con el icprog y el winpic, he revisado si el mclr, la configuracion, cuando leo el pic salen 00000 0000 0000 lo cual indica que esta previamente grabado, quiero volver a grabarlo pero no se deja, sigue saliendo el error 0000h, como si puedo grabar un pic 16f628 creo que se debe a la alimentacion, voy a probar con otro quemador y otro pic.

me gustaria saber como volver a grabar un pic protegido

ritos


----------



## Chico3001 (Jul 19, 2009)

Mira este tema:

https://www.forosdeelectronica.com/f24/solucion-al-error-verificacion-0000h-icprog-198/


----------



## Rijiru (Jul 22, 2009)

Holaaaa...    pss...    iintente hacer los proyectos que estan aqui descritos....  pero al final la PC no me reconocia el  dispositivo...  que podra ser el problema?


----------



## gpoolb (Jul 22, 2009)

Hola Rijiru...

Te anexo un archivo ZIP que contiene un pdf que explica con más detalle la implementación del software del PIC y ahí mismo se encuentra el diagrama esquemático, se incluye el código del PIC en CCS <<daq.c>> y archivo demo en LabView 8.2 <<daq.vi>>. Espero tus comentarios.


----------



## Rijiru (Ago 5, 2009)

Muchas gracias, lo que pasó es que no habia cambiado el archivo del descriptor, en donde se reconoce el vendor....     todo bien, funciono muy bien,


----------



## marquez182 (Jul 16, 2010)

Muchas gracias por el aporte esta excelente


----------



## atricio (Jul 20, 2010)

hola a todos me podrian orientar un poco he hecho un pequeno proyecto en proton y labview 8.5 pero con un poco de dificultad lo he logrado pero mi pregunta es que diferencia hay en usar el dll que da microchip y el easyhid que nos da proton o microcode


----------



## electronical (Sep 23, 2010)

Hola, yo estoy trabajando con PSOC Y utilizo el protocolo usb hid, tengo una librería del PSOC que ya configura todo, cargarla en Labview sería posible? Nunca he trabajado con Labview y no sé cómo funciona. Trabajo con Visual C# pero tengo problemas para realizar gráficas en tiempo real.

Gracias


----------



## Gaby (Nov 23, 2010)

Hola buen día, mi nombre es Gaby soy estudiante de ingenieria en electrononica.

Oye solo que tenemos muchas dudas yo y mi compañera de proyecto, acerca de la comunicación serial por medio de Labview y un pic 18f2550

Mira tenemos un programa que realizamos en MikroC para la comunicación utilizando un cable serial. La comunicación fue un éxito utilizando la herramienta UART que nos ofrece el MikroC, el problema aquí es que el profesor nos pidió que hiciramos el mismo programa pero ahora implementando Labview.

No somos muy buenas utilizando el Labview pero lo intentamos. Hicimos una interfaz en labview 8.6, sabemos que si envia y recibe el datos ya que conectamos el cable serial e hicimos un puente en los pines 2 y 3, con esto observamos que la comunicacion serial con los Visa si funciono, pero, al conectar nuestra placa con el pic no hace lo que queremos, se supone que tenemos programado el pic para que encienda un led medio segundo cuando haya comunicacion serial. Sabemos que si le llega algo por que enciende el led pero no sigue con el proceso que queremos que haga.

No sabemos si el problema esta en el codigo de mikroc o en la 
interfaz del labview. 
Estamos mas inclinadas al hecho de que sea el código en mikroc, debido a que no estamos muy seguras de la comparación que se hace con la ventana de mikroc donde antes realizábamos las practicas y que hemos cambiado por la interfaz creada por nosotras en labview, que en caso del serial seria en mikroc TOOLS/USART Terminal y con eso ya aparece esta ventana que reemplazamos, he de ahí donde sale la parte del código que creemos que reemplazar porque en el archivo de .h , nosotros lo llamamos UART1_Read() o en UART1_Write(), entonces para utilizar la interfaz del labview ¿cual seria?

Crees que podrias ayudarnos, te paso el código que tengo en mikroc , para que lo revises y nos digas si puedes ayudarnos.

De antemano muchisimas gracias por tu tiempo. 

_Codigo MikroC_


> char uart_rd;
> 
> void main() {
> 
> ...


----------



## Moyano Jonathan (Nov 23, 2010)

Es obligatorio que usen Labview...por que hay muchos lugares dentro del foro donde se explica como plantear la comunicación serial mediante plataforma .net...como VB.net


----------



## Gaby (Nov 23, 2010)

Pues dasofortunadamente para nosotras si tiene que ser en Labview, ya vez como son los maestros de especiales.... Pero crees tu que podrias ayudarnos???



			
				Gaby dijo:
			
		

> Pues dasofortunadamente para nosotras si tiene que ser en Labview, ya vez como son los maestros de especiales.... Pero crees tu que podrias ayudarnos???



Creemos que también podría ser que no funciona la comunicación con el PIC por que no convertimos el dato que mandamos de labview a ASCII para que el PIC entienda la comunicacion...


----------



## Moyano Jonathan (Nov 23, 2010)

Y yo les podría ayudar pero el que tiene más claro el tema es meta en cuanto al puerto serie...mandale un privado a ver que te dice ..yo igual de labview no se nada ...en todo caso en VB.net , Visual C++ o Visual C# podría ayudarte..


----------



## Gaby (Nov 23, 2010)

Ok muchas gracias por tu tiempo eres muy amable


----------



## dianita (Nov 29, 2010)

Hola me llamo Diana y he venido trabajando comunicaci÷on USB con labview para mi proyecto de grado todo funciona perfecto pero estoy transmitiendo un ADC de solo 8 bits y mi proyecto requiere mayor resolucion, necesito transmitir a 10 bits. YA he hecho las modificaciones necesatrias a la funcion de nodo de labview pero me gustariasaber que debo modificar en las librerias del usb para lograrlo. Gracias


----------



## Moyano Jonathan (Nov 29, 2010)

Para transmitir 10 bit's tenés que usar 2 elementos dentro del buffer de salida en vez de uno.


```
int conversion; // Variable de 16 bits que guarda la conversión.

conversion = read_adc() // Lee muestra de 10 bits.

buffer_salida[1] = (conversion >> 8) // parte baja de la conversión.
buffer_salida[2] = conversion // parte baja de la conversión.
```

Luego en el programa del host haces una función union para obtener el dato completo.


----------



## dianita (Nov 29, 2010)

Oye gracias es una solucion mucho mas sencilla pues yo estaba intentando modificar la funcion que envia los paquetes y modificando la configuracion de los datos recibidos en la fucion de nodo. Gracias


----------



## beto3574 (Dic 4, 2010)

hola a todos, estoy buscando asesoria en un proyecto que estoy haciendo,,es un electrocardiografo, ya tenemos la señal cardiaca ok, necesitamos mostrarla en labview. ya tenemos la emulacion del puerto rs232 por medio de un pic 18f4550 y funciona bien, ahora lo que necesitamos es introducir la señal analoga del electrocardiografo a un pic para ser digitalizada y enviarla serialmente al puerto usb que se comporta como serial...alguien tiene un ejemplo de como debo programar mi pic para que me digitalize la señal y la envie de forma serial al usb??

tambien necesito ayuda en como ver la señal que entra a la computadora en un chart de labview, no se ni un centimo de labview y estoy 


-l

les agradezco cualquier asesoria,,,saludos


----------



## marcofajardo (Dic 4, 2010)

hola quisiera saber como hacer el pic usb y hacer enlace con labview pero paso a paso para saber como configurarle y eso tengo un proyecto que presentar y no tengo la menor idea de como hacer eso..


----------



## Moyano Jonathan (Dic 4, 2010)

beto3574: https://www.forosdeelectronica.com/f24/proyecto-fotopletismografia-usb-c-25693/ fijate en ese proyecto quizas le puedas sacar ideas..

marcofajardo: Te recomiendo leer las reglas del foro, antes de postear cualquier duda. A veces usar el buscador es bueno..
Te dejo 3 enlaces que te van a ser de ayuda:
- https://www.forosdeelectronica.com/f24/control-dispositivos-traves-modulo-usb-pic18f2550-17458/
- https://www.forosdeelectronica.com/f24/usb-pic-18f2550-desarrollo-proyectos-asm-31415/
- https://www.forosdeelectronica.com/f26/usb-labview-entre-otros-18338/


----------



## beto3574 (Dic 4, 2010)

gracias moyano voy a mirarlo y leerlo


----------



## pablo_aries (Dic 20, 2010)

Hola a todos: espero me puedan ayudar.

He hecho la comunicacion entre el PIC18F2455 con LabView8.6 por USB, no tuve la necesidad de emular el puerto RS-232 (CDC), lo hice directamente utilizando el protocolo, la comunicacion con LabView la hice utilizando las funciones NI-VISA (Open-Read-Write y Close), estas funciones solo logran interactuar con dispositivos de clase USBTMC (USB Test & Measurement Class),  es decir, se logra que LabView vea a nuestro dispositivo como dicha clase cuando creamos e instalamos el driver para el PIC con la aplicacion NI-VISA Driver Wizard que viene con el paquete de LabView, posteriormente cuando hemos creado el driver podemos agregarlo a la lista de dispositivos de LabView utilizando la aplicacion Measurement & Automation Explorer/Devices & Interfaces, de esta forma cuando usamos la funcion VISA-Open la direccion del dispositivo ahora si aparece en las opciones de la entrada VISA resources name de dicha funcion.
EL PROBLEMA que tengo es que para correr en otra computadora el ejecutable creado, la direccion de mi dispositivo no es valida (USB0::0x04D8::0x000C::NI-VISA-10001::RAW), supongo que esto se debe a la sintaxis utilizada para direccionar el dispositivo, sintaxis generada por NI-VISA no es reconocida,  puesto que no esta instalada en esa otra conmputadora el LabView y por lo tanto el NI-VISA tampoco, la idea es que el dispositivo funcione en cualquier computadora sin necesidad de instalar el LabView en éstas.
Como puedo hacer para solucionar este problema?????
Por ahi estaba leyendo que la comunicacion se puede hacer por llamadas DLL (llamando a la mpusbapi.dll), Será ésta la solucion?
o habrá alguna solucion utilizando VISA?


----------



## memowwe (Ene 20, 2011)

Ligator dijo:


> Hola, yo también he usado el pic18f2550 con labview por medio del puerto usb.
> 
> Lo que hice fue aprender la parte de la programación del pic por medio de la página www.muchotrasto.com (te la recomiendo ampliamente), ahí te enseñan a programarlo con las librerías CDC del compilador CCS, esto significa que solo tienes que instalar el archivo *.inf (que la misma página te proporciona) y ya está, tu ordenador reconocerá a tu pic como si estuviera conectado a un puerto serial!.
> 
> ...




posteo el que  realize en base a el proyecto de  jockelnice, modifique la parte de labview,  y el programa en  el micro, la version que tengo  es para, crystal de 12mhz, la entrada analoga la tomas de ra0,  y ya.
para que funcione correctamente,tienes que  ponerle  en los retardos un numero ( yo les  pongo 200  y me jala bien),  y debes fijarte que no  te  marque en los  pipes ( si te -1 aun conectado  el pic a la pc  presiona el boton stop (que dise refresh outipe  inpipe) en donde dise pdata coloca esto  primer campo (0),  segundo  campo le pones un 1,  ya que con esto  envias en el  buffer[0] =1 que es el comando  para que el pic lea la entrada analoga y la mande  por el usb, lo demas  lo demas arreglos de  momento  etsan desabilitados son para futuras aplicaciones, el diseño  esta  un poco  en desorden pero  funciona  muy  bonito,  si  tienes  problemas para armarlo comenta.
 en el  rar bienen las carpetas, de build (aplicacion de labVIEW) driver and  inf (driver) firmwarexxmhz (source code para el pic segun tu  crystal). comenta como te fue..
exito..



electra26 dijo:


> Quisiera comunicar una tarjeta de adquision de datos que yo estoy fabricando a traves del puerto usb con labview. estoy utilizando el pic 18f2550, y segun he leido en la ayuda de labview para facilitar la conexion se requiere que este sea de clase usbtmc (usb test and measurement class) para configurarlo a traves de visa, quisiera que por favor alguien me facilitara un fireware para que mi dispositivo soporte esta clase o me guíen en como hacerlo. he leido en solicitudes de ayuda de personas en años anteriores como altair que requerian lo mismo que yo, si por favor estas personas ya lograron desarrollar sus proyectos les agradecería mucho toda la ayuda e información q me puedan brindar.
> desde ya gracias!!!




mira la que  publique mas abajo  jeje esta buena



electra26 dijo:


> Quisiera comunicar una tarjeta de adquision de datos que yo estoy fabricando a traves del puerto usb con labview. estoy utilizando el pic 18f2550, y segun he leido en la ayuda de labview para facilitar la conexion se requiere que este sea de clase usbtmc (usb test and measurement class) para configurarlo a traves de visa, quisiera que por favor alguien me facilitara un fireware para que mi dispositivo soporte esta clase o me guíen en como hacerlo. he leido en solicitudes de ayuda de personas en años anteriores como altair que requerian lo mismo que yo, si por favor estas personas ya lograron desarrollar sus proyectos les agradecería mucho toda la ayuda e información q me puedan brindar.
> desde ya gracias!!!



me perdi,,, pero mira la que  publique jala bien



Rijiru dijo:


> Holaaaa...    pss...    iintente hacer los proyectos que estan aqui descritos....  pero al final la PC no me reconocia el  dispositivo...  que podra ser el problema?



pues,,verifica el capacitor de vusb (debe ser uno ceramico) de 0.47uf (indicado como 474), revisa  tus conexiones,  revisa que la configuracion de el pll sea la correcta, que el crystal sea el correcto. yo  tambien cometi muhcos error al principio y esoso fueron los mas comunes salu2 ¡¡


----------



## saulon019 (Feb 21, 2011)

Hola a todos, llevo ya bastante tiempo trabajando en labview, ahora estoy en el 2009 y estoy por pasarme a usar el 2010, el cual tiene el nuevo modulo Robotics, si en algo puedo ayudarles, con gusto, muchos de mis proyectos han usado comunicacion serial(rs-232) y paralela(db-25), ahora estoy trabajando la comunicacion usb, en mi blog tengo un ejemplo de labview y la clase CDC del pic18f, emulando un puerto serial con el usb, espero les sirva de referencia:

http://superelectronicacc.blogspot.com/

pablo_aries, me gustaria saber como llamaste el dispositivo usb que generaste con NI-VISA Driver Wizard, yo genere el driver y lo coloque en Measurement & Automation, pero no se como accersar a el, yo tambien use el modulo visa para abrirlo, leerlo y cerrarlo pero me genera error al compilar, podrias mostrarme algunas capturas del diagrama de bloques???? te agradesco la ayuda.


----------



## haifer (Mar 29, 2011)

Aguno de ustedes tiene un programa sencillo para hacer comunicacion USB HID usando LabView


----------



## atricio (Mar 30, 2011)

define que es lo que quieres hacer usa compiladores en basic para generar el driver y el labview para la comunicacion


----------



## haifer (Mar 30, 2011)

Muchas gracias, la verdad es que he logrado hacer una comunicación USB-CDC usando el pic 18f4550, y debido a que por este método se emula un puerto serial virtual, quería saber de qué forma se comunica el USB HID ose puedo por el mismo puerto serial enviar y recibir o es algo diferente el manejo. Debido a esto quería encontrar un programa sencillo en labview  para esta aplicación.

De antemano muchas gracias.


----------



## diegoroman17 (May 18, 2011)

Hola a todos compañeros de aprendizaje...Estoy desarrollando una tarjeta de adquisicion de datos para manejarla con labview...Lo que deseo hacer es una especie de osciloscopio pero que al menos pueda ver señales de 10 MHz de frecuencia. Por lo tanto necesitaria una alta tasa de transmision de datos de la DAQ a labview. Esto solo se puede conseguir mediante transmision USB de alta velocidad. Quisiera saber como puedo desarrollar esta etapa y hacer que mi tarjeta sea de la clase usbtmc para que labview la detecte como propia y pueda acceder mediante VISA???Ademas quisiera que siempre al conectar la DAQ a cualquier computadora con el software instalado la reconosca en seguida sin necesidad de crear nuevos drivers ni nada de eso...Es decir para que cualquier persona con conocimientos no tan avanzados pueda utilizar la DAQ y tener un osciloscopio en casa que hace mucha falta en electronica...Por favor quisiera que me ayudaran con esto y compartir tambien los conocimientos que tengo. Soy estudiante de cuarto año de Ingenieria Electrónica. Gracias


----------



## ehsanavr (Nov 1, 2011)

hi dianita
my name is ehsan from iran
I like you have been working on USB COMMUNICATION-High Speed(pic-labview)
your problem was solved?
You make me work?
if answered -yes pls send a Email for me



have a good time

Hello everyone 
http://pablohoffman.com/cgi-bin/twiki/bin/view/Oscusb/OscusbDocumentacion


----------



## yurimilena (Nov 10, 2011)

hola que chevere encontrarte por aqui


----------



## dinoelectro (Nov 14, 2011)

mejor que labview, measurement studio para visual basic... es de national instruments y pueden descargarse la version de prueba.. se los recomiendo


----------



## yurimilena (Nov 14, 2011)

uhm hola dinoelectro......

Me gustaria saber un poco mas de eso donde lo puedo descargar??????


----------



## diegmv (Nov 17, 2011)

Hola a todos tengo una pregunta no se si me pueden ayudar al emplear el modulo visa para el envio de datos y lo recibo mediante el comando usb_cdc_getc en el pic pero solo me funciona para 8 bits es decir del labview mando un caracter en ascii por ejemplo mando el numero 49 entonces visa write me envia el caracter 1. Ahora mi problema radica que quiero enviar mas de 8 bits

con comunicacion usb_cdc como hay la posibilidad de enviar una cadena de caracteres y de ser asi como lo recibo en el pic 

gracias por susr espuestas de antemano


----------



## dinoelectro (Nov 22, 2011)

yurimilena dijo:


> uhm hola dinoelectro......
> 
> Me gustaria saber un poco mas de eso donde lo puedo descargar??????



Este software esta disponible en la pagina de national instrument (version de prueba).. es muy bueno yo lo utilize en mi tesis y luego automatice una banda transportadora en una fabrica de llantas donde trabajaba.. en realidad es un software muy muy bueno...  saludos


----------



## yurimilena (Nov 22, 2011)

dinoelectro dijo:


> Este software esta disponible en la pagina de national instrument (version de prueba).. es muy bueno yo lo utilize en mi tesis y luego automatice una banda transportadora en una fabrica de llantas donde trabajaba.. en realidad es un software muy muy bueno...  saludos



hola estoy aprendiendo a programar con visual basic 6.0, este software me sirve para esta version del visual....????


----------



## dinoelectro (Nov 23, 2011)

yurimilena dijo:


> hola estoy aprendiendo a programar con visual basic 6.0, este software me sirve para esta version del visual....????


hola yuri milena, este software sirve para visual basic 6.0, 2005, 2008,2010, 2011... y C++. Es muy facil de aprender y mucho mas poderoso que labview ya que la programacion es grafica y codificada tambien

Labview es bueno cuando solo tienes que hacer programas sencillos, pero visual basic es un lenguaje de alto nivel y con herramientas mucho mas poderosas... saludos


----------



## murphy9 (Dic 30, 2011)

Hola a todos, estuve probando el ejemplo daq_384 que publicó en la primera página gpoolb y al intentar correrlo me aparece el siguiente error:

Error 7 occurred at Call Library Function Node in DAQ.vi

Possible reason(s):

LabVIEW:  File not found. The file might have been moved or deleted, or the file path might be incorrectly formatted for the operating system. For example, use \ as path separators on Windows, : on Mac OS X, and / on Linux. Verify that the path is correct using the command prompt or file explorer.

Este error se repite 4 veces señalando en cada oportunidad un bloque distinto. Ya controlé que la librería que se intenta cargar esté en esa ubicación, incluso intenté cargarla desde la misma carpeta en que se encuentra el proyecto y siguen dando los mismos errores, tienen idea de que puede estar ocurriendo?


----------



## atricio (Dic 30, 2011)

tienes conectada la DAQ a la compu es medio tonta la pregunta tambien verifica que este bien instalado el controlador de la DAq eso puedes tener un conflicto para correr la DAQ asistant....tambien verifica que tiene el controlador que tienes es para el sistema operativo que lo soporta y tambien que tengas instalado en el labview los componentes para la adquisicion de datos que tiene el labview tambien ten en cuenta la version del labview que ten encuentras usando


----------



## murphy9 (Ene 3, 2012)

Hola nuevamente, atricio gracias por tu respuesta, te comento que todavía no puedo hacer funcionar el ejemplo. Yo lo estoy simulando en proteus y la pc reconoce bien al PIC ya que el mismo es enumerado sin problemas, el error sigue presentándose en labview. Lo que mas me llama la atención es que de 7 bloques Call library function solo 4 presentan este error. Alguien tiene idea de que puede estar ocurriendo? Tengo la versión 8.6 de Labview, puede que esta versión presente errores?. Gracias


----------



## atricio (Ene 3, 2012)

ahi si me desconcertaste no se que mismo estas haciendo mencionas que tienes un error en una DAQ pense que estabas usando una DAQ de la national instrunent pero dices que estas haciendolo con un micro me dajaste en nada si pudes colgar lo que estas haciendo y depronto el vi te puedo ayudar mejor porque si estas usando el subvi de la daq para comunicarte con un micro no es posible de que forma te comunicas entre el micro y labview USB, SERIAL, IR, PARALELLO...o soy muy distraido y no te entiendo

haber mi amigo dejo plateada la pregunta pero de todas maneras creo haberte entendido te comparto estas paginas en las cuales puedes solucionar algunas dudas sobre como usar la dll de microchip para la conexion usb 

http://www.mediafire.com/download.php?6z97s7ta3g4rwhy 

*este es un manual hecho por un capo de los foros que explica como hacer un proyecto usando usb y picc compiler *

*aca otro donde explica como usar el dll de microchip y como modificarla a nustro gusto*

http://www.unrobotica.com/usbcon.htm

y aca te explica como usar el easy hid (en esto si te puedo ayudar xq he tenido experiencia el el mismo) con ayuda de proton.


http://www.neoteo.com/conecta-tus-pr...-al-puerto-usb


cualquier duda estoy para parender juntos o ayudarte


----------



## murphy9 (Ene 3, 2012)

Muchas gracias atricio por tu ayuda y por las paginas que me recomendaste. Te comento, yo estaba ensayando un ejemplo que publico gpoolb en la primera pagina de este hilo, el mismo se llama daq_384 y en el se ensaya la comunicación entre pic y pc utilizando labview. Finalmente pude resolver mi problema, se trataba de un error bastante tonto y que estaba pasando por alto, solo tenia que cambiar la ubicación de la librería en el panel frontal del proyecto, una vez hecho esto el mismo anda excelente. Muchas gracias nuevamente por tu ayuda


----------



## atricio (Ene 4, 2012)

me alegra haberte ayudado tan solo un poco seria bueno que postees que tipo de error tubiste ojala lo hagas de manera grafica y poder asi enriquecer el foro


----------



## lesaca (Jul 24, 2012)

dinoelectro dijo:


> mejor que labview, measurement studio para visual basic... es de national instruments y pueden descargarse la version de prueba.. se los recomiendo



hola, alguien me podria ayudar, quisiera comunicar pc - pic via usb, he hecho practiacs con pic pero no se como hacer la conexion usb por fa necesito informacion, tengo a la mano el pbp microcode studio, labview, porteus, easy hid, pickit2clone, vb y el pic18f4550, con encender unl ed via usb seria suficiente para empezar a aprender.
Saludos.


----------



## D@rkbytes (Jul 24, 2012)

lesaca dijo:


> hola, alguien me podria ayudar, quisiera comunicar pc - pic via usb, he hecho practiacs con pic pero no se como hacer la conexion usb por fa necesito informacion, tengo a la mano el pbp microcode studio, labview, porteus, easy hid, pickit2clone, vb y el pic18f4550, con encender unl ed via usb seria suficiente para empezar a aprender.
> Saludos.


Saludos.
Existe un ejemplo resuelto sobre comunicación PIC PC por medio de USB
Como el post está dentro del Curso de programación de PIC en PICBasic Pro
resulta algo difícil de encontrar, así que aquí pongo el enlace.
_Ejemplo de comunicación USB PIC PC_

Suerte.


----------



## holanda (Ago 27, 2012)

Ligator dijo:


> Hola, yo también he usado el pic18f2550 con labview por medio del puerto usb.
> 
> Lo que hice fue aprender la parte de la programación del pic por medio de la página www.muchotrasto.com (te la recomiendo ampliamente), ahí te enseñan a programarlo con las librerías CDC del compilador CCS, esto significa que solo tienes que instalar el archivo *.inf (que la misma página te proporciona) y ya está, tu ordenador reconocerá a tu pic como si estuviera conectado a un puerto serial!.
> 
> ...



hola ligator, gracias me ha servido de mucho la información de la pagina que escribiste vienen muy bien explicados los ejemplos de como simular un puerto RS232 usando USB, de antemano gracias saludos.


----------



## dianita (Oct 26, 2012)

hola a todos, estoy haciendo un nuevo proyecto  usb con labview y un 4550, pero tengo la versión 2012 del programa  y es de 64 bits;y la librería dll de microchip es de 32, esto me genera un error al momento de corre el programa en el compu, me gustaría saber si es posible encontrar la librería de 64 bits para no tener que cambiar la versión de labview


----------



## dinoelectro (Oct 29, 2012)

dianita dijo:


> hola a todos, estoy haciendo un nuevo proyecto  usb con labview y un 4550, pero tengo la versión 2012 del programa  y es de 64 bits;y la librería dll de microchip es de 32, esto me genera un error al momento de corre el programa en el compu, me gustaría saber si es posible encontrar la librería de 64 bits para no tener que cambiar la versión de labview



con 64 bits es mas facil todavia, utiliza los drivers de NI VISA en lugar de la dll


----------



## diego1012 (Oct 29, 2012)

Buenas colegas

Estoy haciendo una prueba sencilla de envio y recepción de datos con un micro y el pc. El envio del micro hacia el pc es perfecto, pero cuando envio desde el pc al micro no pasa nada. Me gustaría que me ayudaran a ver si el error esta en C o en LabVIEW.


```
#include <18F4550.h>
#device  adc=10
#fuses HSPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#include <lcd.c>

#define USB_HID_DEVICE     FALSE             //deshabilitamos el uso de las directivas HID
#define USB_EP1_TX_ENABLE  USB_ENABLE_BULK   //turn on EP1(EndPoint1) for IN bulk/interrupt transfers
#define USB_EP1_RX_ENABLE  USB_ENABLE_BULK   //turn on EP1(EndPoint1) for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE    32               //size to allocate for the tx endpoint 1 buffer
#define USB_EP1_RX_SIZE    32                 //size to allocate for the rx endpoint 1 buffer

#include <pic18_usb.h>     //Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver
#include <PicUSB.h>         //Configuración del USB y los descriptores para este dispositivo
#include <usb.c>

#define a envio[0]
#define b recepcion[0]
#define c recepcion[1]
#define d recepcion[2]

int envio[1],recepcion[3];

void main() {

set_tris_b(0xff);
set_tris_c(0x00);

output_c(0x00);

usb_init();
usb_task();
usb_wait_for_enumeration();

while(true){

 if(usb_enumerated())          //si estamos correctamente conectados y reconocidos por la PC
      {
         if (usb_kbhit(1))          //si el endpoint de salida contiene datos del host
         {
            usb_get_packet(1, recepcion, 3); //recibimos el paquete de tamaño 2 bytes del


 if(b==1)
{output_high(pin_c0);}

if(c==2)
{output_high(pin_c1);}

if(d==3)
{output_high(pin_c2);}

if(b==0)
{output_low(pin_c0);}

if(c==0)
{output_low(pin_c1);}

if(d==0)
{output_low(pin_c2);}



if(input(pin_b0)==1)
{a=1;
usb_put_packet(1,envio, 1, USB_DTS_TOGGLE); //enviamos el paquete de tamaño 1 byte del EP1 al PC}
}

if(input(pin_b1)==1)
{a=2;
usb_put_packet(1,envio, 1, USB_DTS_TOGGLE); //enviamos el paquete de tamaño 1 byte del EP1 al PC}
}

if(input(pin_b2)==1)
{a=3;
usb_put_packet(1,envio, 1, USB_DTS_TOGGLE); //enviamos el paquete de tamaño 1 byte del EP1 al PC
}


}
}
}
}
```

y les adjunto una imagen con los bloques en LabVIEW.

Gracias.


----------



## ricardo83 (Ene 25, 2013)

diegoroman17 dijo:


> Hola a todos compañeros de aprendizaje...Estoy desarrollando una tarjeta de adquisicion de datos para manejarla con labview...Lo que deseo hacer es una especie de osciloscopio pero que al menos pueda ver señales de 10 MHz de frecuencia. Por lo tanto necesitaria una alta tasa de transmision de datos de la DAQ a labview. Esto solo se puede conseguir mediante transmision USB de alta velocidad. Quisiera saber como puedo desarrollar esta etapa y hacer que mi tarjeta sea de la clase usbtmc para que labview la detecte como propia y pueda acceder mediante VISA???Ademas quisiera que siempre al conectar la DAQ a cualquier computadora con el software instalado la reconosca en seguida sin necesidad de crear nuevos drivers ni nada de eso...Es decir para que cualquier persona con conocimientos no tan avanzados pueda utilizar la DAQ y tener un osciloscopio en casa que hace mucha falta en electronica...Por favor quisiera que me ayudaran con esto y compartir tambien los conocimientos que tengo. Soy estudiante de cuarto año de Ingenieria Electrónica. Gracias



Hola, casualmente a mi hace rato me está rondando la idea de hacer una DAQ con un PIC, pero siempre he pensado que no podría lograr frecuencias muy elevadas de muestreo (debido a las limitaciones del propio conversor AD del PIC). Me gustaría saber como piensas hacer para lograr ver señales de 10 MHz (implica muestrear lo menos a 50 MHz).
saludos


----------



## jospad (Sep 7, 2013)

Hola amigo, me podrías indicar como hacer la configuracion para no utlizar el Visa


----------

