Quizas pueda ayudar en algo.
He desarrollado un proyecto, se trata de un Electro Cardiograma por USB utilizando el famoso 18f4550 y partiendo del aun mas famoso proyecto de JiM.
Bueno, en principio el ECG vendria a ser en el fondo un osciloscopio, pero que funciona a muy bajas frecuencias ... estoy hablando del orden de los 1 a 20 Hz, pues las señales provenientes de los latidos del corazon rodean estas frecuencias. Utilizando el propio ADC del pic, laparte de la adquisicion de datos no me tomo mucho trabajo, lo que mas me incomodaba eran las partes de la transferencia de datos usando el USB y la visualizacion en la pantalla de la señal. Despues de una larga busqueda y de tratar de hacer esto ya sea usando el LABVIEW o incluso el MATLAB (emulando el rs232) no llegue a buen puerto, pork a decir verdad no conozco mucho el labview y me di cuenta de los problemas que se originaron con la velocidad de adquisicion con el proyecto que JiM adapto para el Labview, por otro lado el Matlab hubiera sido mucho mejor, pero no contaba con la suficiente experiencia para poder jalar la mpusbapi.dll desde alli.
A raiz de esta busqueda surge una alternativa, probablemente no tan comoda, pero poderosa en todo sentido. La solucion estaba en seguir usando el lenguaje de programacion original donde nacio el proyecto de JiM, el Visual C#, pero... añadiendole una poderosa herramienta desarrollada por National Instruments (si ... de los mismos creadores de Labview), el llamado ... "MEASUREMENT STUDIO 8.0" resulta que este software repotencia las capacidades de los lenguajes de programacion visuales .Net para que sean capaces de trabajar con señales, visualizarlas, procesarlas, filtrarlas, etc etc etc. Asi que esta fue la solucion a mi problema, utilizar este software.
Sin embargo... (aqui vienen los peros) en primer lugar obviamente el measurement studio no es gratuito, sin embargo puede bajarse una version de prueba que dura 3 meses, (suficiente para mis proyectos de universidad), otro inconveniente (y quizas el mayor) es que no funciona con versiones Express Edition del Visual Studio. Asi que la solucion fue "adquirir" (jejeje) la version Profesional del Visual Studio 2005 (1DVD), en la cual viene incluida por supuesto el Visual C#. Una vez superados estos obstaculos, me puse a trabajar.
El Electro Cardiograma funciono de las mil maravillas, la ayuda que da el Measurement Studio es muy grande, por eso tambien me tomo algo de tiempo aprender a utilizar sus potencialidades, sin embargo, mirando para adelante, y justamente en lo que se refiere a hacer un Osciloscopio decente utilizando el puerto USB, mi principal problema esta en el envio de tramas desde el PIC hacia el USB.
Mandando tramas de 64 bytes a la vez, no tengo ningun problema, sin embargo si obtuve problemas cuando intente transferir cualquier cantidad superior a este tamaño. Y por ahi me surge otra duda.
En el ejemplo que vienen incluido en el Compilador CCS , ex_usb_scope.c , se transmiten tramas de 512 bytes, utilizando la funcion usb_puts (que sinceramente aun no se como funciona en el lado de la PC), pero noto que tambien tienen un tamaño de endpoint de TX de 64bytes. Asi que no se por donde va el asunto en este punto.
Definitivamente para mejorar el ancho de banda de el proyecto que tengo, tengo que enviar tramas mas grandes que las de 64 bytes que tengo actualmente, la primera pregunta esta en...
Alguien sabe como utilizar la funcion usb_puts correctamente, tanto en el lado del pic como en el de la Pc?? por favor ayuda.
Aqui les dejo algunas imagenes de como resulto mi proyectillo del ECG.
El Link de Measurement Studio 8.0 :
http://www.ni.com/mstudio/