Usb y labVIEW , entre otros

Bueno.. como es la primera vez que subo algo al foro.. me estoy demorando..aqui les adjunto un par de imagene.. del panel frontal y del codigo.. En la parte derecha dl codigo se encuentra el subvi del usb...este lo puedn descargar del internet.. en paginas anteriores de este mismo hilo lo han recomendaddo... pero capas si pudieramos saber como se contruyo podriamso mejorarlo y tb su velocidad de transmisicion.... luego aveces podran ver que el codigo es un poco extenso.. bueno eso es porque estoy utilizando 12 puertas analogica ademas que un ADC de 12 por ello que necesito de 2 bytes para su recepcion.

 
Podes subir el archivo .vi para poder detallarlo en esta imagen no se ve nada. En cuanto al sub vi del usb en paginas anteriores se puede ver como se hizo por completo
 
A ver si me puedes decir porfavor en que pagina esta com ose hizo el subvi... Y co nrespectoa subir un archivo no se como.. x ello solo e puesto la imagen..com odigo es al primera vez que toy posteando.. pero quiero de alguna forma ayudar =D
 
Saludos compañeros! Tengo una situación para plantear, que de solucionarse, podría significar un gran avance pionero en el uso de LabVIEW y adquisición de datos!

Resulta que estoy realizando un proyecto de grado en el cual debo tomar una señal de audiofrecuencia con el ADC (AN0) del PIC18F4550, enviarlo por USB BULK TRANSFER a la PC, donde LabVIEW toma el dato mediante el subVI picusb.vi, y de ahí le aplica el Spectral Measurements para así poder observar las componentes espectrales de la señal adquirida.

A continuación, el problema:



Como se observa en la figura de arriba, se adquiere la señal con el subVI picusb.vi, y el dato es convertido en decimal, y mientras se grafica dicho dato en una Waveform Chart, este mismo se toma como componente para el Y array en el Build Waveform. Ahora, el único problema que queda antes del análisis espectral es el hecho de que no he logrado hasta ahora agregar el resto de los componentes al Build Waveform, de tal manera de reconstruir la señal de audio adecuadamente...

Alguno en este foro sabe cómo usar el módulo Build Waveform?

Sólo esto me falta para terminar definitivamente el proyecto. Una vez terminado, postearé! Ya que yo mismo he sufrido un calvario buscando ayuda con respecto a este problema!

Adjunto al mensaje en un .rar:
  • Programación del PIC en PIC-C
  • Esquemático del circuito en Proteus
  • Driver del dispositivo USB BULK TRANSFER
  • subVI picusb.vi
  • VI del proyecto

Gracias por tomarse el tiempo!
 

Adjuntos

hola a todos los del foro he estado siguiendole el hilo a todo lo del bulk transfer pero veo que solo lo hacen en ccs mi pregunta es alguien lo ha realizado con c18 bueno mi inquietud es que tengo que realizar un trabajo pero debe ser en c18 y no logor entender muy bien los ejemplos de este si alguien lo ha realizado les agradeceria su ayuda gracias
 
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
 
hola diegmv lo que tienes que hacer es encontrar una manera para separar el dato que quieres enviar en n datos de 8 bit yvolver a concatenarlos en labview por que el puerto serial solo recibe y envia 8 bits
 
Ya pude arreglar el problema de los drivers, simplemente no querian funcionar en mi portatil...

pero ya se me presenta otro problema en labview:
Cuando lo pongo en modo paso a paso funciona perfectamente, pero cuando lo pongo a correr continuo me sale error de timeout!
Otro problema que he tenido es que cuando vario la entrada al conversor analogo digital me sale "Could not perform operation because I/O error."

Alguna sugerencia?
 
Hola, jokelnice escribió al abrir el tema:
el protocolo usb se puede trabajar en modo cdc ( Communication Device Class) que no es mas que utilizar nuestro micro junto con unas librerias proporcionadas por picc ...

pero recuerden que hay que personalizar nuestro dispositivo hay entran las librerias de picc una es la usb_cdc.h que son para que funcione y otra llamada picUSB_CDC.h que si es la que editamos para personalizar el dispositivo y se modifican las siguientes lineas
Yo tengo una duda que no he podido despejar. Si esas librerías necesarias vienen con el compilador CCS y si sólo pertenecen a la versión de pago del compilador.
Ya wansi me contestó que se podrían armar esos archivos, pero si alguien me puede responder si esas librerías vienen con la versión completa de CCS o de dónde se pueden obtener.
...En este tema jokelnice dice que son proporcionadas por picc, es decir CCS. Pero si alguien sabe dónde las puedo encontrar EN picc? Gracias.
 
si en PICC se encuentran son solo archivos .h y .c si no los tienes cualquiera te los puedes pasar y los pegas en la carpeta indicada.
Gracias jokelnice. Entonces los voy a buscar. Tal vez en la versión de prueba no los incluyen, así es que voy a buscar por ahí si obtengo todo completo el CCS.

Muchas gracias, ya me despejaste la duda y sé que deben venir en las carpetas de ese programa. Con eso me basta para proceder al paso siguiente.
 
hola jokelnice estuve viendo el tema que posteastes y quisiera saber como puedo activar entradas digitales del puerto rb 0,1,2,3 de mi tarjeta y la dos salidas analogicas ya que solo tengo las salidas digitales del puerto rd y las entradas analogas y como tendria que modificar en labview a qui te dejo el codigo para aver si me puedes ayudar te lo agradeseria mucho
 

Adjuntos

Que tal compañero bueno pues ya no manejo los pic pero si quieres sacar datos por el puerto b es sencillo solo cambia
set_tris_b(0x00); //Configuracion para el puerto b como salida

solo verifica si ese puerto no esta ocupado en algo

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, 2); //Cachamos el paquete de tamaño 2bytes del EP1 y almacenamos en recibe

if (modo==1)//modo salida digital d1,d2,d3,d4,d5,d6,d7,d8
{
output_b(param); //El dato param recibido lo mandamos al puerto o registro b

}
de todos maneras te recomiendo que leas bien la documentación del microcontrolador, como te digo ya no manejo los pic en cuanto al programa en Labview no se tendria que cambiar nada ya que la comunicacion sigue siendo igual USB , labview recibiria datos , lo que debes configurar es el micro
 
Hola Jokelnice

Muy buenos aportes

Tengo un inconveniente, estoy tratado de realizar la comunicacion usb por medio del mpusapi basado en uno de tus archivos "version 4.0 foro", esto debo hacerlo en labview 7.1, pero no recibe datos del adc. Supongo que el problema es la version de labview que me recomiendas.

Nota:no puedo migrar a una version superior debido a que la licencia en la u es para 7.1
 
Arriba