TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: Pantera.mx en 27 de Enero de 2006, 01:17:00

Título: USB y Labview
Publicado por: Pantera.mx en 27 de Enero de 2006, 01:17:00
Hola a todos es mi promer post. y propongo un buen tema.
USB y Labview.
Propongo hacer una targeta de adquisicion de datos. Hay otro foro el cual proponen lo mismo, sin embargo veo que ya nadie pone nada. Nose si sea por que ya fue hace un buen tiempo. Sin embargo no veo nada concreto. Espero que podamos hacer algo.

Yo he logrado por el momento hacer la comunicacion USB, sin embargo solo puedo escribir no puedo hacer lograr leer al dispositivo. Nose en que ando fallando. estoy utilizando las Visas write y Read. La cumunicacion es tipo Bulk y ya logre escribir unos bytes y el micro hace lo correcto.

Espero que el tema muestre interes para todos.

Título: RE: USB y Labview
Publicado por: J1M en 27 de Enero de 2006, 08:00:00
Hola Joe, prueba esto:

http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=FAF0FB9A4A200F52E0340003BA230ECF

saludos Giño
Título: RE: USB y Labview
Publicado por: Pantera.mx en 27 de Enero de 2006, 11:11:00
Bueno mira la Version que estoy utilizando es la de Labview 7.0 Student edition. Tambien anexo el trabajo que llevo es importante saber que el programa fue en base al que hizo J1M. Lo unco de lo que tengo interes hacer funcionar es  labview. vale
Bueno no puedo Subirlo, que mal

Si a alguien le interesa pueden pedirmelo por MSN ya que el archivo no lo puedo subir me imagino que esta algo grande. Pero bueno tengo un archivo de word donde explico lo que llevo(tipo tutorial), el driver generado en labview, el programa en labview y el codigo del pic con el compilador PICC.
Título: RE: USB y Labview
Publicado por: Pantera.mx en 27 de Enero de 2006, 11:29:00
J1M ya lo habia probado y si funciona pero no comprendo bien que onda se que labview tiene la capacidad de leer las DLL como lo haces tu. He revisado la herramienta con la cual haces las llamdas a las funciones dentro de la DLL de microchip pero como que nadamas no me responde nada.
no le encuentro la forma a este programa que me dices el programa que me indicas si funciona ya que lo he probado en la targeta para el cual fue diseñado.

Yo creo que seria mejor checar este link. en ese link muestra la herramienta para leer la DLL.

http://www.ftdichip.com/Projects/CodeExamples/LabVIEW.htm

Aqui se ve un programa para un dispositivo FTDI"s D2XX, solo que la libreria no la tengo.

Pongo La bibliografia muy interesante que he encontrado en este apartado

USB RAW Bulk Communication with LabVIEW
http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=F2EE170C4808502DE0340003BA7CCD71

USB RAW Control Communication in LabVIEW
http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=F3A26DF3BAC50779E0340003BA7CCD71

Este link esta genial son seminarios WEB de labview en español (videos)
http://digital.ni.com/worldwide/latam.nsf/webevents/C7800D7DA416468786256DB900612732?OpenDocument&node=165480_esa
Título: Re: USB y Labview
Publicado por: LabPIC en 19 de Mayo de 2006, 15:49:07
Hola que bueno que hayan ligado USB + LabVIEW  :-/

Brevemente comento que soy principiante en esto del USB, he recibido muestras de Microchip pero lamentablemente no he podido empezar fuerte con esto. He bajado los Firmware en ensamblador de la pagina de Microchip pero al momento de compilarlo que me muestra un sin fin de errores  :z).

Lo que tengo en mente es ligar ambos USB + LabVIEW y creo que este el el lugar para empezar  :D.

Habra alguien que pueda hecharme una ayudadita  :mrgreen:

¿Para programar la familia 18F que me recomiendan C o ensamblador

Saludos LabPIC
Título: Re: USB y Labview
Publicado por: pantera en 20 de Junio de 2006, 00:36:51
Hola chicos pues retomo el tema he estado algo inactivo por la catidad de materias. Me he dado cuenta que alguien de mi tierra ha despertado el interes ... Queretaro hoy he retomado el tema y pues espero aparesca mas gente que se interese en el tema LABVIEW - PIC18 USB .........

Contestando a tu pregunta pues creo que realmente el camino es C sin embargo mi cuestion es PCW o C18
Título: Re: USB y Labview
Publicado por: patolinec en 21 de Junio de 2006, 00:47:54
Mmm pues si desean manejar el Labview, primero es mejor que se acostumbren a su manejo y trabajen con una tarjeta de adquisicion Serial para que luego de poder entender (No requiere mucho trabajo), puede aplicar una migracion a USB, si les gusta esta idea yo me comprometo a subir y desarrollar en conjunto una DAQ serial pogramando en PCW y ha desarrollar el software para labview

Me cuenta si les gusta la idea
Título: Re: USB y Labview
Publicado por: LabPIC en 21 de Junio de 2006, 18:07:11
Gracias por la oferta patolinec, pero en mi caso ya he manipulado tanto puerto serial como paralelo con LabVIEW. Es por eso que ahora trato de empezar con lo del USB en LabVIEW.

De cualquier manera, sería bueno que si has tenido alguna experiencia con USB y LabVIEW pues la comentes, si no es molestia.

Saludos LabPIC
Título: Re: USB y Labview
Publicado por: patolinec en 22 de Junio de 2006, 22:54:45
Pues yo he trabajado bastante bien con lo que es el proyecto de J1M, y enlazando al Labview con la DLL de micrchip, obtuve buenos resultados y hasta me arme una DAQ.

Lo que si aun no mpuedo evitar el retardo de 1ms que opr alguna razon esta DLL te impone
Título: Re: USB y Labview
Publicado por: J1M en 23 de Junio de 2006, 01:23:23
patolinec, ese es un parametro que es configurable, es el '1' que entra tanto al pipe-in como al pipe-out... o espera... ese '1' que te comento era 1 segundo no 1ms... vaya me he quedado con la duda, este medio dia le echo un vistazo... y te comento
Título: Re: USB y Labview
Publicado por: patolinec en 23 de Junio de 2006, 15:25:21
Pues no se J1M la verdad esque alamceno 64 muestras del ADC y eso envio en un solo paquete para poder aprovechar al maxcimo el tiempo
Título: Re: USB y Labview
Publicado por: J1M en 23 de Junio de 2006, 16:39:16
patolinec, que valor tienes puesto en el campo 'SendDelay' ??? en el ejemplillo venia por defecto 1000... es decir, un segundo entre transmisión y transmisión, este valor lo puedes disminuir, si te digo la verdad no se hasta cuanto... cuestión de hacer pruebas...aunq supongo que tiene que venir dado por alguna relación....
Título: Re: USB y Labview
Publicado por: patolinec en 23 de Junio de 2006, 17:26:03
Como te dije esto puedes reducir hasta 1 ms que es lo minimo,

saludos
Título: Re: USB y Labview
Publicado por: J1M en 23 de Junio de 2006, 17:40:16
vaya que extraño, lee lo que dice el código fuente de la DLL:

Código: [Seleccionar]
//  dwMilliseconds
//          - Specifies the time-out interval, in milliseconds. The function
//            returns if the interval elapses, even if the operation is
//            incomplete. If dwMilliseconds is zero, the function tests the
//            data pipe and returns immediately. If dwMilliseconds is INFINITE,
//            the function's time-out interval never elapses.

Por lo que este valor es en realidad el Time-Out de la función, por lo que se puede deducir, si se pone '0' tb funcionaría y estarías eliminando ese 1ms q por otro lado supongo es el valor q tiens puesto en el campo 'SendDelay'... prueba con '0' y cuenta como ha ido la cosa.

mata ne!
Título: Re: USB y Labview
Publicado por: J1M en 23 de Junio de 2006, 19:49:31
Vaya pues creo q anduve un poco bastante ekivocado con la respuesta anterior... parece ser que efectivamente como comentabas desde el principio... la dll o mejor dicho, el driver suministrado por microchip tiene ese 'defecto'... que como mucho pueden transferir 64KB/S (64B/mS) por canal (supongo q esto se refiere a 'pipe'), en este post lo comentan:
http://forum.microchip.com/tm.aspx?m=92884
Parece q la solución pasa por hacerse uno su propio driver ó hacer una transmisión con buffer 'Ping Pong' (se doblaría 128B/mS):
http://forum.microchip.com/tm.aspx?m=88264
ó engañando un poco al driver... http://forum.microchip.com/tm.aspx?m=165751 (parece interesante...)

saludos y disculpa por la confusión ;)
Título: Re: USB y Labview
Publicado por: patolinec en 23 de Junio de 2006, 21:39:17
Disculparte J1M nunca, tu eres una de las personas que mas ayuda en este foro y que mejor proyectos presenta, y por esa duda pues estaba viendo la forma de evitarlo con todo yo voy a seguir trabajando en eso y ahi te cuento que sucedio

Saludos :wink:
Título: Re: USB y Labview
Publicado por: pantera en 02 de Julio de 2006, 22:13:13
Hola chicos ... He estado revisando de nuevo la información de USB y he estado divagando de por que al ser un dispositivo que puede llegar a trabajar a 248 MB... la aplicación que realizaste, J1M, esta lenta por mas que le he movido al time out a 1 ms.. y le incorpore un LCD tarda un buen.

Leí en algún documento:
The
Bulk transfer is best suited for bursts of data which may not be time critical, but are error
intolerant.


Isochronous transfers are specifically designed for time sensitive, high bandwidth transfers;

Interrupt transfers, unlike the other pipes, generate an internal flag signaling that a
particular peripheral requires attention. All other transfers immediately push data onto the
bus if there’s room.


Y he revisado las librerías y es claro que pueden editarse la cantidad de BYTES, así como el tipo de comunicación a otra. Sin embargo, hay que editar el archivo,  PicUSB.h , para también cambiar las enumeraciones de los pipes. Y además en las librería,  MPUSBAPI Library Version 1.00, cambiarlas  de tal forma que correspondan todo lo anterior que menciono ( ya sea en Labview o en C#). Que tan factible es esta idea?


Cabria la posibilidad de cambiar en el programa que propones Jaime, PicUSB solo la cantidad de BYTES.  Una forma eficaz de demostrar que no es problema de labview seria conseguir el oscope.exe de la tarjeta de prueba de USB Prototype board. de CCS. Sin embargo no puedo encontrarlo.

Por otra parte cual es la maxima cantidad de BYTES que pueden mandarse por cada "Trama" encontre que:

When communicating with the microcontroller, the data packet structure is a maximum 64
bytes long, with 5 bytes of overhead reserved for the firmware instruction set. See
MCHPFSUSB, the example project from Microchip for more details.


Por cierto toda esta interesante informacion la saque de(Esta en ingles :s):

http://zoo.cs.yale.edu/classes/cs490/05-06b/brown.grober.savvides.pdf (http://zoo.cs.yale.edu/classes/cs490/05-06b/brown.grober.savvides.pdf)

Para las personas que no tienen  muy checado el protocolo esta muy bien el enfoque queda ya que no se mete en cosas muy pesadas.


VAMOS ESPAÑA SON MIS FOVORITOS PARA SER GANADORES EN EL MUNDIAL !!!
[/b]
Título: Re: USB y Labview
Publicado por: pantera en 03 de Julio de 2006, 11:43:04
HOla de nuevo!!!

Despuede de leer esa informacion se me vino a la mente revisar el codigo de J1M La cosa es que el codigo tiene un par de detalles insignificantes pero. Simplemente cambie en la parte del modo de SUMA. LLegando todo directamente a un Build Array y quite en los SubVI el Frame cero ya que me parecia que eran innecesarios pero bueno la cosa ya jala mas rapido. Aderi un LCD al codigo de J1M para ver la velocidad de actualizacion en el micro y comparala visualmente con el de J1M.

Si ubiera un retardo pues minimo ya no es persectible.


Título: Re: USB y Labview
Publicado por: J1M en 03 de Julio de 2006, 15:51:57
pantera, en este mismo post, en la primera página, la última respuesta, tiene un par de links q te pueden ser de utilidad con respecto a las dudas q comentas en tú anterior post.

El ejemplo en labview realmente está lejos de estar optimizado, era una primera toma de contacto con el programilla en cuestión, de todas formas, por eliminar el frame cero no deberías obtener más velocidad, si acaso podrías tener algún problema en el caso de ejecutar el programa sin tener el dispositivo conectado... pero tampoco... es más algo purista que útil. Si va más rápido quizá sea por ese 'build array' q comentas, q relamente no se a q te refieres :S

Ten encuenta que cada vez q mandes algo en paquetes separados, se tendrán q abrir los pipes, enviar un paquete y cerrar los pipes, eso no es óptimo... una forma mejor de hacer esto sería, abrir pipes, enviar mediante un bucle for todos los paquetes (de 64bytes) q tengas q enviar y cerrar los pipes. Así ganaras algo de tiempo.

Otra forma para ganar o para optimizar la cosa es como comentan en el post ese que te digo (aún no lo he probado) engañando al micro para que reciba mas de 64bytes.

Por último hay otra forma y es hacerse uno su propio driver, ya q el de microchip está preparado para transmisión bulk y con un solo pipe, con lo cuál la velocidad máxima q se puede obtener está muy lejos de la velocidad teórica q debería poderse alcanzar. Espero pelearme un poco con este asunto en verano y hacer q el micro se despeine un poco! ahora tengo q acabar los examenes :p

saludos!
Título: Re: USB y Labview
Publicado por: pantera en 03 de Julio de 2006, 18:23:49
Gracias J1M pues que cacharro que este tan limitado la comunicacion pero haber que se soluciona en el futuro

Pues no habia podido subir el archivo en labview  antes, Pero ahi esta ....


(http://www.geocities.com/jeoart_1982/metal.gif)

http://www.geocities.com/jeoart_1982/S4020016.JPG (http://www.geocities.com/jeoart_1982/S4020016.JPG)
Título: Re: USB y Labview
Publicado por: Osolong en 22 de Mayo de 2007, 01:25:06
Hola.
Soy nuevo en esto de USB. Hice el ejemplo de J1M con el 18F2550 de PicUSB y funciona perfecto.
He estado intentando utilizar labview para comunicarme con el PIC utilizando el DLL de microchip, pero cómo llaman a las funciones desde Labview?? Con un CIN o con un Call Library??
Podrian pasarme el programa con el que lo hacen??
Por adelantado, gracias!!
Título: Re: USB y Labview
Publicado por: El_Guitre en 23 de Mayo de 2007, 20:21:23
Pantera sera posible que conviertas el archivo para poder abrirlo con el lab view 7.1? Gracias, pasa que no tengo el 8 para instalarlo
Título: Re: USB y Labview
Publicado por: J1M en 24 de Mayo de 2007, 03:52:21
Tengo un problema similar al de El_Guitre. Un amigo con Labview 7 quiere abrir el proyectillo, y yo no puedo exportarselo a esta versión ya que tengo la 8.2.1 y solo me deja hacer retrocompatibilidad para la 8.0 (a veces las cosas no se piensan bien del todo!). La cuestión es que si alguien tiene el 8.0 sería posible realizarla para la versión 7.0, el proyectillo en cuestión es el que subí a la página:
http://www.hobbypic.com/images/stories/articulos/comunicacion/picusbstuff/PicUSB_Labview.rar

Si alguien puede hacerlo, me haría un gran favor, gracias!!
Título: Re: USB y Labview
Publicado por: Arbolito en 31 de Mayo de 2007, 15:44:04
Aca lo dejo en labview 8.0, no si es esto lo que nesecitabas J1M

Saludos
Título: Re: USB y Labview
Publicado por: J1M en 31 de Mayo de 2007, 18:07:57
Si, es eso, muchisimas gracias Arbolito :)

He encontrado también en la propia página de Labview un link para descargar el programa completo (sin CD de drivers) en versión evaluación (aunque da la posibildad de ponerle código de registro... ...) Os lo dejo por si os pudiera interesar, son 575Mb

ftp://labview8.ni.com/evaluation/labview/pc/labview_821.exe

saludos!
Título: Re: USB y Labview
Publicado por: Arbolito en 31 de Mayo de 2007, 18:46:39
No hay porque   8)

Uff ya es hora que retome lo del USB me e quedado en el tiempo  :D

Saludos.

PD: Por cierto si pedis la demo te envian el CD a tu casa yo pedi el de la vercion 8.2 y me la enviaron sin problemas.
Título: Re: USB y Labview
Publicado por: Geo en 12 de Junio de 2007, 21:34:13
Qué tal, ¿alguien podría hacerme el gran favor de colgar el código para Labview 7? Yo cuento con la versión 7.1, aunque de cualquier forma, estoy descargando la evaluación de la 8 :P.

Recientemente estoy usando LabView, por ahora estoy trabajando en probar la comunicación USB con las diferentes herramientas que utilizamos en la escuela, me he basado en el proyecto de J1M y por ahora he recreado su aplicación (la que está en C#) usando:
Y ahora me gustaría simplemente hacer unas pruebas con LabView (no voy a desarrollar ninguna aplicación por el momento, sólo estoy probando con las herramientas más comunes utilizadas por aquí para desarrollo de proyectos :D).

Si no puede nadie, ya me daré de topes por mi cuenta ;), gracias de antemano.
Título: Re: USB y Labview
Publicado por: luna84 en 03 de Julio de 2007, 23:31:06
hola!
soy nueva en el foro y he estado leyendo algunas opiniones acerca de conectar usb a labview puesto q etoy haciendo un proyecto donde necesito conectar una tarjeta de adquisicion de datos q yo he fabricado a labview por usb pero se me ha presentado un problema y quisira q porfavor me ayuden. me he basado en el proyecto diseñado por J1M acerca del pic con usb q por cierto muchas gracias por tan valiosos aportes pues me ha servido mucho para introducirme en el tema, y como ahora lo q requiero es conectarlo a labview tengo un problema en la parte en q instalo el dispositivo con el archivo .inf y es q me pide q ubique a "mchpusb.sys" que esta en el ejmplo q proone J1M pero si no estoy equivocada este hace parte de microchip y pues asi no lo logro detectar con VISAIC. les agradezco su ayuda y toda la informacion q me puedan brindar. :-)
Título: Re: USB y Labview
Publicado por: fcoronah en 19 de Julio de 2007, 14:57:56
Hola a todos:

He leido este tema, la verdad esta muy interesante. Yo estoy trabjando es un proyecto de este tipo, no se si me puedan mandar los archivos para el Labview 7.0 Express. Y el tutorial que mensionan.  Mi correo es coronah_f@hotmail.com.  Gracias
Título: Re: USB y Labview
Publicado por: migsantiago en 24 de Febrero de 2009, 18:42:59
Vaya pues creo q anduve un poco bastante ekivocado con la respuesta anterior... parece ser que efectivamente como comentabas desde el principio... la dll o mejor dicho, el driver suministrado por microchip tiene ese 'defecto'... que como mucho pueden transferir 64KB/S (64B/mS) por canal (supongo q esto se refiere a 'pipe'), en este post lo comentan:
http://forum.microchip.com/tm.aspx?m=92884
Parece q la solución pasa por hacerse uno su propio driver ó hacer una transmisión con buffer 'Ping Pong' (se doblaría 128B/mS):
http://forum.microchip.com/tm.aspx?m=88264
ó engañando un poco al driver... http://forum.microchip.com/tm.aspx?m=165751 (parece interesante...)

saludos y disculpa por la confusión ;)

Hola

Estoy estudiando y leyendo sobre USB aquí en el foro y me entero de que la velocidad al usar 1 endpoint en CCS puede ser de hasta 64kB/s.

Se pueden obtener 12Mbps con los 15 Endpoints, y según mis cálculos, con un solo Endpoint se obtendrían 12/15 Mbps, es decir, 0.8Mbps. Si esto se convierte a bytes entonces, 0.1MBps.

0.1MBps equivalen a 100kBps, que es superior a los 64kBps que mencionan. ¿A qué se debe?

Otra duda, no entiendo cómo funciona el modo Ping-Pong Buffering. ¿Alguien podría explicármelo de forma sencilla?  :oops: ¿Se puede implementar ese modo en CCS para mejorar la velocidad de transmisión?

Gracias.
Título: Re: USB y Labview
Publicado por: XxX_VLAD_XxX en 25 de Febrero de 2011, 12:52:36
Por si acaso haya alguien leyendo este Tema y le interese otra forma de Comunicarse con el PIC mediante USN utilizando un driver diferente,
la comunicación es mas sencilla e  intuitiva, sigan este enlace

LabVIEW 2009 <-> PIC  mediante USB (http://www.neoteo.com/foro/f9/control-de-distancia-mediante-labview-usb-1394/)