Usb y labVIEW , entre otros

Para aquellas personas que presentan problemas con el driver del picUSB, para que el computador lo reconozca, este driver lo pueden encontrar en su computador en la siguiente ruta C:\Archivos de programa\....\PICC\Drivers
Para instalar este driver deben ir primero administrador de dispositivos y actualiza el dispositivo y listo .
 
Ya he podido controlar con VISA de labView mi dispositivo HID, es una aplicacion sencila de encender y pagar un led, la cual desarrollo Moyano Jonathan (de otro foro), pero el lo hacia con VB. Ahora espero poder adentrarme mas y desarrllar alicaciones propias y enfocadas a lo que necesito.

Definitivamente estos foros me han servido mucho...

Saludos
 
Alber Moremont dijo:
Ya he podido controlar con VISA de labView mi dispositivo HID, es una aplicacion sencila de encender y pagar un led, la cual desarrollo Moyano Jonathan (de otro foro), pero el lo hacia con VB. Ahora espero poder adentrarme mas y desarrllar alicaciones propias y enfocadas a lo que necesito.

Definitivamente estos foros me han servido mucho...

Saludos

bien echo colega .
 
que onda antes que nada quisiera sdaber si me podrias ayudar a conectar mi proyecto al usb pero necesito mandar los datos que se han guardado a la eprom pero me quedo una duda no se si usar la memoria flash para guardar esos datos y tambien para pedirte si puedes irme diciendo los pasos para configurar mi proyecto usando el usb y el labview

mi proyecto consta de usar un programa que mide el voltaje y la corriente y con esos valores calcular la potencia pero tambien poder guardar este dato de la potencia en una eprom o flash y asi poder conectar en un momento determinado la al usb y sacar el dato por labview.
 
Hola otra vez jokelnice.

Una preguntota, sabes como puedo leer los datos del pic desde labView usando visa read?
es que la comunicacion ya esta establecida, puedo mandarle datos con visa write y el pic hace lo que le pido correctamente, pero no puedo por nada del mundo leer algo...

otra cosa mas, de donde bajo la mpusbapi.dll?

De antemano gracias...

un saludo
 
Alber Moremont dijo:
Hola otra vez jokelnice.

Una preguntota, sabes como puedo leer los datos del pic desde labView usando visa read?
es que la comunicacion ya esta establecida, puedo mandarle datos con visa write y el pic hace lo que le pido correctamente, pero no puedo por nada del mundo leer algo...

otra cosa mas, de donde bajo la mpusbapi.dll?
pero que has intentado Hacer yo tengo por hay unos ejemplos que servirian este es uno basico ....

la mpbuspapi se encuentra en la pagina de microchip , de todas maneras hay va.......
 

Adjuntos

  • mpusbapi_198.rar
    27.8 KB · Visitas: 318
  • recibe_visa_188.rar
    9.1 KB · Visitas: 443
jokelnice dijo:
listo aca esta el 8.2

OK jokelnice, muchas gracias...te informaciónrmaré si es que ya puedo adquirir bien mis datos...

Solo una pregunta mas, veo que en el programa en C utilizas BULK, yo lo hacia con HID, ¿crees que eso pueda ser el problema que tenia en mi comunicación?

Un saludo
 
Alber Moremont dijo:
Ya he podido controlar con VISA de labView mi dispositivo HID, es una aplicacion sencila de encender y pagar un led, la cual desarrollo Moyano Jonathan (de otro foro), pero el lo hacia con VB. Ahora espero poder adentrarme mas y desarrllar alicaciones propias y enfocadas a lo que necesito.

Definitivamente estos foros me han servido mucho...

Saludos

Saludos alber, recién experimenté con visa y hid y logré q el labview reconozca mi dispositivo pero no tengo ni idea de cómo enviarle y recibir datos del micro, igual estoy intentando hacer una prueba con leds pero no funciona, pudieras facilitarme tu vi?, gracias. Con respecto al micro lo estoy programando con Protón y el usb wizard integrado del mismo, y la aplicación de leds si funciona en visual basic pero en labview no da señales de vida, puedes ayudarme?

Código:
' select MCU and clock speed                                                                                                                                                                                                                                   
Device = 18F4550
XTAL = 48	
'*****************************************************************
TRISD=0 'todo el puerto B como salida  ***************************
PORTD=0
Symbol LED_1 PORTD.0
Symbol LED_2 PORTD.1
Symbol LED_3 PORTD.2
Symbol LED_4 PORTD.3
'*****************************************************************
' descriptor file, located in \inc\usb_18 - a copy
' is located in the same folder as this file	
USB_DESCRIPTOR = "USBProjectDESC.inc"

' we are going to use an interrupt to keep the USB
' connection alive, so disable auto polling from within 
' the USBIn and USBOut commands
USBIN_AUTO_POLL  = OFF
USBOUT_AUTO_POLL = OFF

' USB buffer...
Symbol USBBufferSizeMax = 8
Symbol USBBufferSizeTX  = 8
Symbol USBBufferSizeRX  = 8
Dim    USBBuffer[USBBufferSizeMax] As Byte

' some useful flags...
Dim PP0 As Byte SYSTEM        ' USBPOLL status return
Symbol CARRY_FLAG = STATUS.0  ' high if microcontroller does not have control over the buffer
Symbol ATTACHED_STATE = 6     ' is USB attached
Symbol TRNIF = UIR.3		  ' low if USB Busy
Dim TIMER1 As TMR1L.Word      ' access 16 bits of TMR1
 
' use an interrupt to keep USB connection alive...
Symbol TimerPreload = $A23F   ' approx 2ms
ON_HARDWARE_INTERRUPT GoTo USBServiceInterrupt

' indicador de conexión de usb, los leds se encienden antes de que el PC reconozca el dispositivo
LED_1 = 0 : DelayMS 500 : LED_1 = 1 : DelayMS 500 : LED_1 = 0
LED_2 = 0 : DelayMS 500 : LED_2 = 1 : DelayMS 500 : LED_2 = 0
LED_3 = 0 : DelayMS 500 : LED_3 = 1 : DelayMS 500 : LED_3 = 0
LED_4 = 0 : DelayMS 500 : LED_4 = 1 : DelayMS 500 : LED_4 = 0

GoTo ProgramStart

' ************************************************************
' * the USB interrupt service routine maintains the          *
' * connection to the bus - without this routine, a          *
' * call to USBPoll, USBIn or USBOut must be made            *
' * every couple of milliseconds or so                       *
' ************************************************************
USBServiceInterrupt:
   ' don't poll USB if it's busy...
    btfss TRNIF				
    bra ExitInterrupt
    
    ' poll the USB interface...
    Call (Check@BusStatus)
    Call (Driver@Service)

    ' clear interrupt flag and exit...
ExitInterrupt:   
    bcf PIR1,0 
    TIMER1 = TimerPreload
    retfie fast   
     
' ************************************************************
' * program starts here...                                   *
' ************************************************************
ProgramStart:
   GoSub AttachToUSB
   
   ' turn on interrupt timer...
   TIMER1 = TimerPreload
   T1CON = %10000001								
   PIE1 = %00000001	  ' enable TMR1 overflow interrupt
   INTCON = %11000000 ' enable global and peripheral interrupts
   
' ************************************************************
' * main program loop                                        *
' ************************************************************
ProgramLoop:
   ' your code in here - to send data, load USBBuffer
   ' and then call DoUSBOut. To receive data, call DoUSBIn...
   
   '*************************************************************
   GoSub DoUSBIn '********************************************
'*************************************************************

   GoTo ProgramLoop
  
' ************************************************************
' * receive data from the USB bus                            *
' ************************************************************
DoUSBIn:
   USBIn 1, USBBuffer, USBBufferSizeRX, DoUSBIn
   
   '**************************************************************   
   PORTD = USBBuffer[7] '**************************************
   
   Return
   
' ************************************************************
' * transmit data                                            *
' ************************************************************
DoUSBOut:   
   USBOut 1, USBBuffer, USBBufferSizeTX, DoUSBOut
   Return

' ************************************************************
' * wait for USB interface to attach                         *
' ************************************************************
AttachToUSB:
   Repeat								
      USBPoll		
   Until PP0 = ATTACHED_STATE
   Return

Gracias Lord Lafebre por el código!
 
Hola mikeedavila,
mira primero que nada si ya estas completamente seguro que tu dispositivo lo reconoce labview como un dispositivo RAW, entonces en el administrador de dispositivos de windows (sí es el que estas usando) te aparecerá como NI VISA USB-devices.

Y bueno, en mi rpograma lo unico que hago es mandarle los caracteres '0', '1','2' o '3', con lo cual alterna el estado de alguno de los dos leds individualmente ('0' o '1') o juntos ('2') o definitivamente los apaga('3').

Lo importante de esto es que para que el micro haga lo que tu quieres, el el firmware del mismo debes recibir los datos como caractéres y no como otro tipo de dato. Yo lo hice en C y mis variables las declare como unsigned char.

Bueno ya para no hacerla larga, aqui va el VI.

La parte de la logica es solo para mostrar el estado de los LED´s en el panel de LabView

Espero te sirva, cualquier cosa aqui estoy.

P.D. hasta ahora solo puedo enviar datos hacia el micro, no puedo leerlos.
 

Adjuntos

  • usb_enciende_led_505.rar
    14 KB · Visitas: 397
Alber Moremont dijo:
La parte de la logica es solo para mostrar el estado de los LED´s en el panel de LabView

Gracias Alber, tu VI me ayudó mucho.... la verdad fue mi error, estaba enviando los bits menos significativos desde el labview y por el tamaño del string el micro no lo reconocía, jajaja..... error de principiante.... al menos ya pude escribir datos, voy a probar la lectura.... gracias de nuevo
 
hola, he estado haciendo algunas pruebas con el cdc y el labview y si funciona, pero como es un puerto serial virtual, no puedo sacarle provecho a la velocidad de transmision por USB, alguno de ustedes conoce otro metodo para aumentar la velocidad de transmision de datos
 
hola agradezco a todos por el apoyo k brindan, me acabo de comprar un pic18f4550 y por favor si me pueden pasar su diagrama, para conectarlo al usb, y cual seria el driver para k pueda ser usado en win vista, ahora voy a empezar a hacer un fonocardiografo,.. y espero k me vaya bien.. muchas gracias.. ayudamen lo mas pronto k solo me queda 3 semanas.. Gracias
 
Cómo te va edgar, pues el diagrama es el mismo para todas las configuraciones según entiendo. Te paso el link de la página de mi buen amigo, el maestro Lafebre en la cual tiene un tutorial sobre cómo conectar un 18f2550, el diagrama funciona igual para el 4550, obviamente con los pines respectivos. http://www.freewebs.com/glafebre/articulos.htm El tutorial es en Protón para el micro, y Visual Basic para la PC pero te dará una idea, además el driver para vista lo genera el Labview 8.5 y el 8.6 pero no lo he probado, suerte con tu proyecto, pues tres semanas es en verdad poco tiempo.
 
edgarh44 dijo:
hola agradezco a todos por el apoyo k brindan, me acabo de comprar un pic18f4550 y por favor si me pueden pasar su diagrama, para conectarlo al usb, y cual seria el driver para k pueda ser usado en win vista, ahora voy a empezar a hacer un fonocardiografo,.. y espero k me vaya bien.. muchas gracias.. ayudamen lo mas pronto k solo me queda 3 semanas.. Gracias

Hola Edgar, mira pues tambien en este foro https://www.forosdeelectronica.com/f24/control-dispositivos-traves-modulo-usb-pic18f2550-17458/ puedes encontrar la forma de conectar el PIC al USB.

El foro es uno de los que menciona jokelnice al inicio, pero actualizado, jeje :LOL: , echale un ojo...
 
Atrás
Arriba