Autor Tema: Osciloscopio USB, y en el PC, ¿Labview?  (Leído 87606 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #45 en: 04 de Abril de 2006, 07:24:00 »
Duende, cuando digo alta velocidad, no me refiero al programa que he hecho (q solo manda 3bytes y en fin...Avergonzado) sino al Labview, que es un software dedicado al procesamiento de señales, imagenes, etc a través de tarjetas de adquisición, que mirando cualquiera que sea por usb en la página de national instruments anda sobre las 100kS/s (100mil muestras por segundo), eso para las de USB, si se mira alguna tarjeta de adquisición con otro bus mas rápido como puede ser el PCIexpress la cosa sube bastante, lo q trataba de decir es que el programita es potente, y supongo que por eso se come la memoria de la forma que se la come...

Respecto a como reconoce al dispositivo... Según espeficicaciones las velocidades de transferencia son:

USB 1.1: 12Mbit/s
USB 2.0: 480Mbit/s

El Pic cumple con el standar de 2.0 y puede alcanzar la velocidad máxima con un clock de 48MHz... usea, tal y como está configurado el ejemplillo, el pq no lo indica... la verdad es que no lo tengo claro :S... Le exaré un ojo a ver si localizo el pq.

saludos!

Desconectado Duende_Azul

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 908
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #46 en: 09 de Abril de 2006, 01:27:57 »
Algunas novedades...

Segun el datasheet del 18F2550, este micro es: 

  • USB V2.0 Compliant
  • Low Speed (1.5 Mb/s) and Full Speed (12 Mb/s)

asi que aun no tengo claro lo de los 480Mb/s pero bueno, con 12 me conformo...  :lol:

El otro asunto es el siguiente: he seguido al pie de la letra lo expuesto en el enlace que puso Nocturno

http://zone.ni.com/devzone/conceptd.nsf/webmain/6792BAB18242082786256DD7006B6416?OpenDocument

y adivinen que..... el pic es reconocido por Labview y pude enviar datos al pic sin retardos apreciables, el detallito es que los datos del pic no son leidos en labview, da un error de configuracion que dice:

VISA:  (Hex 0xBFFF003A) Unable to start operation because setup is invalid (due to attributes being set to an inconsistent state).

presiento que es una tonteria que aun no he visto asi que si se enteran de algo ya saben  :P

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #47 en: 09 de Abril de 2006, 18:38:17 »
¿Windows te reconoce el dispositivo sin chirriar?
¿Cómo hiciste para generar el driver?
Hasta donde sé de VISA,creo que para hacer una operación de lectura,el pc primero manda un aviso para decirle al dispositivo que quiere leer y después lee.
Puedes probar a toquetear los atributos del dispositivo,a lo mejor hay suerte.
« Última modificación: 09 de Abril de 2006, 19:32:09 por Modulay »

Desconectado Duende_Azul

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 908
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #48 en: 10 de Abril de 2006, 00:57:38 »
Modulay, el driver lo hice con el Visa driver development wizard, a partir de ahora VDDW  :P, muy importante es que el VIP, PID, Munufacturer Name y Model name, sean exactamente iguales como aparecen en el dispositivo.

En principio empece con un programa hecho en Mikropascal, pero ese programa funciona en modo HID (por llamarlo de una manera) y el problema esta en que el BULK PIPE-IN STATUS, me aparece con valor -1 lo cual indica que no es reconocido por VISA, despues de golpear mi cabeza mil veces contra la pared, decidi modificar el programa de J1M para que recibiera un byte y lo regresara y SORPRESA!!!  funcionó!!!  se puede enviar un byte y se recibe de inmediato   :D



Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #49 en: 10 de Abril de 2006, 11:23:43 »
Pues yo tuve en cuenta todo eso que dices y no consigo que windows arranque el dispositivo.
El pic pasa la enumeracion,pero windows dice q ni hablar del asunto...y no me aparece en el VISAIC.
¿Podrías detallar que cambios hiciste en los descriptores y cuales son los manufacturer name y model name que pusiste en el VDDW?
« Última modificación: 10 de Abril de 2006, 11:45:11 por Modulay »

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #50 en: 10 de Abril de 2006, 12:07:20 »
Bueno,ya he conseguido instalar el driver y ya me aperece en el VISAIC.
Voy a probar a establecer comunicacion a ver como va

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #51 en: 10 de Abril de 2006, 16:25:57 »
He conseguido enviar y recibir tramas de 64 bytes,usando la rutina de interrupción del pic para capturar los datos.
Lo guay sería poder hacer lo mismo del lado del host con lavbiew ¿alguna idea?

Desconectado Duende_Azul

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 908
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #52 en: 10 de Abril de 2006, 16:40:47 »
¿y a donde mandaste esa trama?, con el esquema que puse arriba no funciona?

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #53 en: 10 de Abril de 2006, 17:04:23 »
Lo hice exactamente de la misma manera que tú.
Escribo la trama desde el pc y justo después leo

Desconectado Duende_Azul

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 908
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #54 en: 10 de Abril de 2006, 17:13:49 »
 :D  ahi vamos!!!!

no entiendo porque dices:

       Lo guay sería poder hacer lo mismo del lado del host con lavbiew ¿alguna idea?


como ves la velocidad?  yo no noto nada de retardo desde que se envia el dato hasta que se recibe...
« Última modificación: 10 de Abril de 2006, 17:17:16 por Duende_Azul »

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #55 en: 10 de Abril de 2006, 17:24:31 »
Yo tampoco veo retardo alguno.
El control "EJECUTAR" es un botón que evita que se ejecute nada hasta que no se pulse.Pues al pulsarlo,la aparición de la respuesta del pic en el control "Lectura" es practicamente instantáneo.
La primera vez lo hace bien,aunque parece q las sucesivas hay q ejecutar dos veces para q el pic responda lo q debe (un reflejo de lo q ha recibido).
Voy a ver si toqueteando un poco se soluciona.
A lo que me refiero con lo de la interrupción es que se pueda hacer una lectura sin que se sepa en que momento llegan los datos desde el pic,o sea,como si fuera por interrupcion
« Última modificación: 10 de Abril de 2006, 17:26:36 por Modulay »

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #56 en: 11 de Abril de 2006, 15:03:36 »
Pues no consigo arreglarlo.
Parece que el problema está en el pic.La primera vez devuelve bien lo que recibe,pero en las sucesivas devuelve lo que recibió en la anterior ejecución.
Dejo los archivos para que probeis suerte.
« Última modificación: 12 de Abril de 2006, 21:28:21 por Modulay »

Desconectado Duende_Azul

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 908
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #57 en: 11 de Abril de 2006, 18:18:18 »
He probado el vi que has colgado con este código en el pic:

Citar
   
while (TRUE)
   {
      if(usb_enumerated())          //si el PicUSB está configurado
      {
         if (usb_kbhit(1))          //si el endpoint de salida contiene datos del host
         {
            usb_get_packet(1, recibe, 4); //cojemos el paquete de tamaño 3bytes del EP1 y almacenamos en recibe
            usb_put_packet(1, recibe, 4, USB_DTS_TOGGLE);
         }
      }
   }


básicamente es lo mismo que hizo J1M, sólo que, lo que se recibe es devuelto de inmediato, a mi me funciona siempre con un pequeño detalle:

1ra ejecucion:  envio  1234  recibe 1234
2da ejecucion: envio  ABCD recibe ABCD
3ra ejecucion   envio  X      recibe XBCD
4   ejecucion   envio   123  recibe 123D

osea, pareciera que el bufer de salida no se limpia una vez que es leído y por lo tanto conserva los datos anteriores hasta que son reescritos... 

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #58 en: 11 de Abril de 2006, 19:03:55 »
Supongo que mantendrá los datos si.
Creo que sería bueno leer en el pic por interrupción,para evitarnos la espera activa.
¿Has probado usando esas funciones a mandar tramas de 64 bytes? si no recuerdo mal para ese caso ya iban mejor la funciones usb_gets y usb_puts

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Osciloscopio USB, y en el PC, ¿Labview?
« Respuesta #59 en: 12 de Abril de 2006, 21:36:10 »
Bueno,pues ya está arreglado.
Mando paquetes de 64 bytes en ambas direcciones,haciendo que el pic atienda la interrupción por usb y capturando los datos cuando ésta se produce.
He hecho las cuentas y alcanza una velocidad aproximada de 32 Kbytes/s.
En el archivo que dejo (he eliminado el del otro mensaje) está implementado para enviar 16 paquetes de 64 bytes y para recibir exactamente lo mismo,en total 1 Kbyte de ida y otro de vuelta.
Para conseguir un comportamiento parecido al de una interrupción en labview se usan las ocurrencias si no me equivoco,pero ¿alguien puede explicar un poco como se usan?...lo he intentado pero no doy con la tecla.