Problema retardo en conexión PIC-PC por USB

Buenas, vengo a vosotros con la esperanza de que me ayudéis dado que después de probar muchas muchas cosas para conseguir evitar lo que lleva de título este post, no lo he conseguido.

De proyecto final del módulo de electrónica que estoy haciendo me decidí por hacer una batería electrónica, en resumen unos piezoeléctricos que detectan el golpe, un pic 18F4550 recoge la señal analógica, la mando por usb al ordenador y un programa reproduce un sonido seleccionado para cada "tambor" o "pad", esto ya está conseguido, incluso suena más fuerte o más flojo según la intensidad del golpe. ¿Cual es el problema? el maldito retardo...

En un principio cogí el código CCS de j1m "PicUSB" copiado total, el que encencía LED rojo y LED verde y sumaba 2 numeros, lo modifiqué para enviar mi señal analógica y así empecé, pero eso si que era retardo, lo menos medio segundo. Ahora mismo trapicheando mucho y cambiando varias cosas tanto del CCS como del programa en C# he conseguido algo así como 30 o 50 milisegundos de retardo y para aprobar el proyecto me vale, pero para la presentación que quiero tocar encima de una canción, se nota un montón el retardo.

Mi duda sobretodo es en referencia a los tipos de transferencia, dado que después de mucho leer no encuentro la manera de configurar el pic en modo transferencia tipo isócrona, que al parecer es para transmitir audio y video en tiempo real, supongo que podré transmitir la señal de los piezoeléctricos en tiempo real también...¿no?. En realidad eso no lo he tocado del código de j1m, así que no sé en que tipo trabaja ese proyecto, creo que en BULK.

Como veis no sé mu bien de que estoy hablando (jeje), ni si se puede conseguir un retardo poco o inapreciable para el oido mediante el USB, así que agradecería si alguien pudiera explicarme o ponerme el código para configurar el USB en el modo de envío de datos más rápido, solo tengo que enviar 5 bytes. Si es necesario poner el código decírmelo, pero para la duda que tengo creo que no es necesario.

Gracias de antemano, y siento la parrafada, solo quería explicarme bien.
 
No se mucho, pero comentario, tal vez te sirva. He usado un micro para enviar datos a traves de rs232( el tipico cable serial ) a un pc, mas especificamente para controlar un servo con un gampepad enchufado a dicho pc.

Lo tenia setiado en 19200 baud rate, y andaba practicamente en tiempo real. El micro puede configurarse para baud rate y tasas de transferencias bastante mas altas( pero el porcentaje de perdida de datos sube). Si lo conectas por rs232 tal vez ande mas rapido.
 
Gracias por las respuestas, pero el proyecto tiene que ser por USB y no tengo un ordenador mejor para probarlo y el que tengo es de doble nucleo de hace 2 años...

Supongo que con el Pic 18f4550 se puede hacer un "mando de videoconsola" para conectarlo por usb al ordenador. Eso es lo que necesito, que reaccione en tiempo real...¿ninguna ayuda? :(.
 
Mira con ese ordenador doble nucleo de hace 2 años estas pero mucho, mucho mas que sobrado en recursos, idem el pic 18F ( Pensando en tu aplicación).

Asi que el problema de lentitud tiene que ser por el lado de configuración del usb, o el programa que corre desde el pc. Lamentablemente no se mucho de estos temas, pero por ese lado tiene que estar la solucion.

saludos
 
Atrás
Arriba