Autor Tema: Transferir mas de 64 bytes USB BULK  (Leído 2269 veces)

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

Desconectado WOOD_girl

  • PIC12
  • **
  • Mensajes: 56
Transferir mas de 64 bytes USB BULK
« en: 13 de Mayo de 2010, 00:30:19 »
hola amigos del foro, de nuevo recurro a su colaboración con un problema que me ha surgido:

tengo un PIC 18F2550  configurado en modo bulk con el cual he hecho envios de 100bytes de una señal seno de 60Hz muestreada a traves del canal AN0  y visualizado en labview de una manera satisfactoria.

he hecho transferencias de paquetes de 512 bytes que he almacenado previamente en un array, visualizando estos datos tambien en labview.

pero ahora tengo un programa en labview el cual envia unos parametros hacia el pic por medio del USB (USB_write ();), que son parametros para incrementar un contador, el cual cada vez que incrementa se hace una lectura del conversor AD (señal de 1khz) y  luego  se almacena este dato en un array en la ram del pic. cuando el contador termine su tarea (contar jeje) tengo ke inmediatamente enviar los datos almacenados en el array (USB_read();), de esta manera retorno la información recolectada hacia el PC la cual tiene que ser visualizada en labview, obteniendo asi los 900 datos almacenados en la RAM.

Ahora el problema ocurre cuando los datos son transferidos hacia el PC yleido por el labview, digamos que almacene 10 datos en el pic, cuando llegan al labview solo hay 5 y si son 100 datos solo llegan 50 y si son 900 no llega nada!, solo ceros y mas ceros y despues de que recojo los 900 ya no vuelve a funcionar el conversor, ya no recoge ni un solo dato, no se que pasa por que simulo el mismo proceso en ISIS y si se ven los 900 datos en el debug, por ke en el labview a veces se ven, a veces no.


llegando a una sinopsis, la cuestion gira entorno a si es posible enviar estos 900 bytes que son muestreados a una frecuencia de 1KHz  (velocidad de incremento del contador) hacia el labview de una manera exitosa?

la otra pregunta es, ¿porque cuando el CCS solo me reporta un uso de la RAM de 75%, si intento guardar mas datos, me dice que la ram esta llena y la barra se pone amarilla (no deberia llegar a 100% si esta llena??


y lo ultimo. habra al guna diferencia si en vez de la funcion usb_put_packet(); utilizo la función usb_puts(); para que sirve esta ultima?, en que se diferencia de la primera?


agradezco mucho la colaboración que me puedan brindar.

Desconectado BEXTIXTOX

  • PIC16
  • ***
  • Mensajes: 108
Re: Transferir mas de 64 bytes USB BULK
« Respuesta #1 en: 27 de Julio de 2010, 02:20:26 »
 oye tengo un problema con labview
que no puedo recibir mas de 1 byte segun veo tu programa
 en este si puedes recivir mas de 1 solo que con problemas :) :) :)

ya diste solucion a tu problema?? :shock:
podrias subir tu proyecto??? :mrgreen: :mrgreen:


 

anything