Hace rato que no toco el USB de algún freescale (lo último que toqué era un MCF51JM128... lindo bicho), pero la forma en que trabaja el USB 2.0 (Full Speed en el JM) no te permite más de 1000 frames por segundo, eso si, cada frame puede tener varios paquetes de 64 bytes (hasta 19 por frame llega, 1Mbyte por segundo aprox). Si querés que los datos salgan a 20Khz tenés que implementar un doble buffer en el micro (digamos 512+512 bytes) y que la PC los llene alternativamente. O más fácil aún, podés configurar varios endpoints (Ep0, Ep1, etc) y que el software de la PC te llene 64bytes de Ep0, luego de Ep1, Ep2 etc,etc y vuelva a Ep0 (y espere a que se libere), mientras sacas los datos del EP recientemente transferido a la velocidad que quieras (siempre menor a la velocidad de llenado).
Saludos
Muchas Gracias por orientarme, con esto que comentaste hiciste que desempolve y comience de nuevo, ya que lo había abandonado la idea de usar una comunicación USB en mi proyecto ya que al leer la documentación me desanime por el tema de los frames (cada 1ms).
Aprovecho que ya laburaste con los módulos USB de freescale y me tomo el atrevimiento de hacerte algunas preguntas mas.
Es la primera vez que tengo un acercamiento con el protocolo USB
Protocolo. - ¿Que tipo de trasferencia debería usar para mi proyecto (bulk,iso,int) y que clase.
firm. - por el momento no me inicié en C para freescale sigo dándole con asm, estudié el proceso de enumeración para intentar realizar la rutina en ASM pero vi que muchos usan stack USB que tienen una gran parte resuelta, pero estos están en C.
¿que consejo me das?, es posible en ASM?
por ultimo, la aplicación de usuario tiene que correr en un debian (ahí me llevo mejor con C), para eso estaba armando una pequeña app en C+GTK. Para la comunicación con mi placa conviene escribir un modulo y laburar en espacio de kernel para que interactue con la app de usuario mejor o usar directamente libusb?
del lado PC tampoco nunca usé lib-usb, así que tengo que tendría que ponerme al día con esa librería,
Saludos.