Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

03/11/2006 #1


USB con labview
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
02/07/2007 #2


USB con labview
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!!!
03/07/2007 #3


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/US...encadenado.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..
04/07/2007 #4


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.
04/07/2007 #5


Hola!

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

Lo hice mediante llamadas a funciones DLL.
12/04/2008 #6


USB con Labview
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.
27/11/2008 #7

Avatar de Ligator

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.
26/12/2008 #9

Avatar de jokelnice

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
26/12/2008 #10

Avatar de Moyano Jonathan

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.
26/12/2008 #11

Avatar de jokelnice

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
26/12/2008 #12

Avatar de Moyano Jonathan

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.
20/01/2009 #13

Avatar de jokelnice

hay un ejemplo basico el otro post aca esta: http://www.forosdeelectronica.com/f2...18f2550-17458/
15/02/2009 #14


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
16/02/2009 #15

Avatar de jokelnice

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

http://www.forosdeelectronica.com/f2...18f2550-17458/
http://picmania.garcia-cuervo.com/US...encadenado.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

Usb y labVIEW , entre otros
12/06/2009 #16


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?

Código:
#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);
      }
   }
}


12/06/2009 #17

Avatar de jokelnice

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.

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?

Colega el vi solo funciona con usb modo bulk , no en hid
15/06/2009 #18


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?
19/06/2009 #19

Avatar de gpoolb

Comunicacion por puerto USB con Labview 8.2 y PIC
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.
Archivos Adjuntos
Tipo de Archivo: zip daq_384.zip (592,2 KB (Kilobytes), 2661 visitas)
20/06/2009 #20


que tal

tengo una duda, mpusbapi.dll puede funcionar con la clase hid
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.