Autor Tema: Proyecto PicUSB  (Leído 510565 veces)

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

Desconectado elflamen

  • PIC10
  • *
  • Mensajes: 1
Re: Proyecto PicUSB
« Respuesta #390 en: 29 de Marzo de 2008, 15:20:37 »
Hola!

Es la primera vez que participo en un foro de electrónica y es un verdadero placer iniciarme en este por el excelente nivel que posee.
Van entonces mis más sinceras felicitaciones a todo el plantel de moderadores y participantes que hacen posible todo este intercambio de ideas, contribuyendo al conocimiento de temas poco difundidos que hacen al crecimiento profesional, personal y solidario.

Como he visto en los textos, el apasionante proyecto USB ha cautivado a mucha gente y yo soy uno de ellos, ansioso todavía por poder enviar el primer byte desde un PC hacia un PIC.
Les cuento que vengo de la vieja escuela del MS-DOS, cuando controlar periféricos desde el puerto paralelo usando el querido Borland C era un juego de gurises (nenes, en uruguayo). Las cosas han cambiado y todo esto “se fue al muere”. Apareció Windows y se terminó la tranquilidad!.

Hace menos de 2 años comencé a estudiar Visual Basic para entrarle al Windows y me dio muchas satisfacciones la  sencillez con que se diseñan aplicaciones que hacen cosas complejas. Con todas estas herramientas visuales, la obsesiva necesidad de poner a conversar una PC con periféricos diseñados por nosotros tomó mas cuerpo y mas aún ahora, con el puerto USB.

En este momento estoy desarrollando una aplicación en Visual Basic que debe enviar series de Bytes hacia un PIC, luego éste lo procesa y le pide al PC el próximo y así sucesivamente.
En un principio, implementé la comunicación por el puerto serial, no sin algunos problemillas de control de flujo.
Pero como este puerto “también va al muere” opté por centrar mi tiempo y energías hacia el misterioso USB.
Para aprovechar el software, conseguí un convertidor USB-Serial, pero no me dio resultados con los protocolos RTS/CTS, así que descarté el serial por completo.

He seguido de cerca en este foro todo el material publicado sobre el proyecto USB, que lo he adoptado como una Biblia y me dediqué a estudiar la versión en Visual Basic a los efectos de aprender la filosofía.
Sin embargo, me encontré con la dificultad de que el firmware del PIC está escrito en C y carezco del compilador con sus librerías.
Agradecería enormemente si alguien pudiera indicarme donde bajar el compilador CCS PCWH 3.227 y/o algún firmware en lenguaje ensamblador (asm de MPLab) que tenga rutinas de comunicación por USB para el PIC18F2550 o 4550 para sacar ejemplos.
Bueno, espero no haber sido demasiado extenso, los felicito nuevamente y los saludo afectuosamente,
Elflamen.



Desconectado Desiderium

  • PIC10
  • *
  • Mensajes: 5
Re: Proyecto PicUSB
« Respuesta #391 en: 30 de Marzo de 2008, 14:29:55 »
Hola Geo, muchas gracias por la respuesta, también me gustaria saber qué software usaste en tu aplicación, para ver si es que influye. Si pudieras compartirlo para hacerle pruebas. De momento estoy consiguiendo el VC# 2005 o C#. Me servirá el Visual Studio 2008?. Thanks

Elflamen, puedes descargar una versión demo del CCS en su página (Aquí).

Saludos.
Velis nolis post mortem nihil est

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Proyecto PicUSB
« Respuesta #392 en: 30 de Marzo de 2008, 18:38:31 »
He seguido de cerca en este foro todo el material publicado sobre el proyecto USB, que lo he adoptado como una Biblia y me dediqué a estudiar la versión en Visual Basic a los efectos de aprender la filosofía.
Sin embargo, me encontré con la dificultad de que el firmware del PIC está escrito en C y carezco del compilador con sus librerías.
Agradecería enormemente si alguien pudiera indicarme donde bajar el compilador CCS PCWH 3.227 y/o algún firmware en lenguaje ensamblador (asm de MPLab) que tenga rutinas de comunicación por USB para el PIC18F2550 o 4550 para sacar ejemplos.
Bueno, espero no haber sido demasiado extenso, los felicito nuevamente y los saludo afectuosamente,
Elflamen.
Primero que nada, bienvenido al foro :), estoy seguro de que pasarás un buen rato por aquí e intercambiarás conocimientos :).
Después, comentarte que, además de trabajar con el compilador CCS (el preferido en este foro y en otros lugares), puedes también utilizar el compilador C18 de Microchip, quien proporciona una versión de prueba de 30 días (si mal no recuerdo), aunque la interfaz para el manejo de USB es bastante diferente :? a la del CCS. Por último, te animo a participar activamente en el foro, conforme vas enviando más mensajes más gente se interesa y puedes acceder a más información conforme la vas leyendo :).

Hola Geo, muchas gracias por la respuesta, también me gustaria saber qué software usaste en tu aplicación, para ver si es que influye. Si pudieras compartirlo para hacerle pruebas. De momento estoy consiguiendo el VC# 2005 o C#. Me servirá el Visual Studio 2008?. Thanks.
Usé Visual C++ 2008 en su versión Express. Trabajé con las librerías de MCHPUSB de Microchip, WinUSB de Microsoft y libusb-win32. El programa en si es muy sencillo, es una aplicación de consola que utiliza la función de la API de Windows para obtener la hora en milisegundos, más o menos trabaja así:
Código: [Seleccionar]
t1 = ObtieneMilisegundos
*Envía paquete de 64 bytes al PIC por USB
t2 = ObtieneMilisegundos
*Recibe paqute de 64 bytes del PIC por USB
t3 = ObtieneMilisegundos

TiempoEnvio = t2 - t1
TiempoRecepcion = t3 - t2
* Esta parte del código es la que varía un poco de acuerdo a la librería que se esté utilizando.
Yo trabajé en lenguaje C/C++, tú puedes hacer lo propio con C# sin problemas. Por el momento no me encuentro en mi casa, para el próximo fin de semana espero poder subir algo de código :).

Saludos.
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado Desiderium

  • PIC10
  • *
  • Mensajes: 5
Re: Proyecto PicUSB
« Respuesta #393 en: 31 de Marzo de 2008, 12:37:00 »
OK, está semana estaré probando código, lo lamentable es que se acabaran las vacaciones. Ya les contaré cómo me fue.

Saludos.
Velis nolis post mortem nihil est

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Proyecto PicUSB
« Respuesta #394 en: 31 de Marzo de 2008, 15:21:12 »
Esto es la mayor parte del código del programa usando la librería de Microchip, la idea se entiende :).

Código: C++
  1. printf( "Dispositivos encontrados: %d\n", MPUSBGetDeviceCount( VID_PID ) );
  2.         if ( MPUSBGetDeviceCount( VID_PID ) > 0 ) {
  3.                 abrirPipes();
  4.                 if ( ( !miPipeSalida ) || ( !miPipeEntrada ) ) {
  5.                         printf( "Error al abrir pipes.\n" );
  6.                         exit( 1 );
  7.                 }
  8.         }
  9.         else {
  10.                 printf( "No hay dispositivos conectados.\n" );
  11.                 exit( 1 );
  12.         }
  13.  
  14.         // Rellena búfer de datos a enviar
  15.         for ( int i = 0; i < NUM_BYTES; i++ ) {
  16.                 datos[ i ] = i;
  17.         }
  18.  
  19.         //DWORD aRecibir = NUM_BYTES;
  20.         DWORD aRecibir = 64;
  21.  
  22.         printf( "Ejecutando %d pruebas de envío y recepción...\n", NUM_PRUEBAS );
  23.  
  24.         // Envío y recepción
  25.         // (envía y recibe N veces)
  26.         for ( int i = 0; i < NUM_PRUEBAS; i++ ) {
  27.                 t1[ i ] = GetTickCount();
  28.                 enviarPaquete( datos, NUM_BYTES );
  29.                 t2[ i ] = GetTickCount();
  30.                 recibirPaquete( recibidos[ i ], &aRecibir );
  31.                 t3[ i ] = GetTickCount();
  32.         }
  33.         printf( "Fin pruebas de envío y recepción\nCalculando resultados...\n\n" );
  34.  
  35.         // Cálculo de tiempos y verificación de errores
  36.         int totalErrores = 0;
  37.         double sumaEnvio = 0;
  38.         double sumaRecepcion = 0;
  39.         double promedioEnvio = 0;
  40.         double promedioRecepcion = 0;
  41.  
  42.         double tasaEnvio = 0;
  43.         double tasaRecepcion = 0;
  44.         for ( int i = 0; i < NUM_PRUEBAS; i++ ) {
  45.                 // Calcula tiempos
  46.                 tiemposEnvio[ i ] = t2[ i ] - t1[ i ];
  47.                 tiemposRecepcion[ i ] = t3[ i ] - t2[ i ];
  48.  
  49.                 sumaEnvio += tiemposEnvio[ i ];
  50.                 sumaRecepcion += tiemposRecepcion[ i ];
  51.                
  52.                 // Verifica errores
  53.                 for ( int j = 0; j < NUM_BYTES; j++ ) {
  54.                         if ( datos[ j ] != recibidos[ i ][ j ] ) {
  55.                                 // Errores en la transmisión i
  56.                                 errores[ i ]++;
  57.                                 // Errores totales
  58.                                 totalErrores++;
  59.                         }
  60.                 }
  61.         }
  62.  
  63.         // Promedios
  64.         promedioEnvio = sumaEnvio / NUM_PRUEBAS;
  65.         promedioRecepcion = sumaRecepcion / NUM_PRUEBAS;
  66.        
  67.         printf( "Errores: %d\n", totalErrores );
  68.         printf( "Promedio de tiempo de envío: %f, %f milisegundos\n", sumaEnvio, promedioEnvio );
  69.         printf( "Promedio de tiempo de recepción: %f, %f milisegundos\n", sumaRecepcion, promedioRecepcion );
  70.  
  71.         cerrarPipes();
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: Proyecto PicUSB
« Respuesta #395 en: 31 de Marzo de 2008, 16:01:41 »
... algún firmware en lenguaje ensamblador (asm de MPLab) que tenga rutinas de comunicación por USB para el PIC18F2550 o 4550 para sacar ejemplos.
....


escribiendo usb en el buscador de microchip

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1999&ty=&dty=&section=&NextRow=&ssUserText=usb

en la sección: Firmware Drivers tienes

USB Device Embedded Host Software Stack

USB Firmware (Assembly Version 1.25)

USB Firmware (Assembly Version 2.00)

son las rutinas para manejar el usb del 16c765 , pero bien podría estudiarse para hacer una adaptación al 18f




La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Proyecto PicUSB
« Respuesta #396 en: 31 de Marzo de 2008, 16:30:12 »
Hola Geo, mi comentario no tiene nada que ver con USB, pero viendo el código que posteaste
Código: [Seleccionar]
// Cálculo de tiempos y verificación de errores
int totalErrores = 0;
double sumaEnvio = 0;
double sumaRecepcion = 0;
double promedioEnvio = 0;
double promedioRecepcion = 0;
No es como mucho seleccionar un tipo float para estas operaciones ?
Saludos !

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Proyecto PicUSB
« Respuesta #397 en: 02 de Abril de 2008, 03:11:07 »
Para el número de pruebas, estoy de acuerdo que si es mucho.

En un principio decidí declararlas así porque primero pensé en hacer pruebas en el orden de millones, sin embargo, después me dí cuenta que no era necesario hacer tantas, y además decidí separar las pruebas en distintas ejecuciones del programa :).

La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado nestorfabio

  • PIC10
  • *
  • Mensajes: 1
Re: Proyecto PicUSB
« Respuesta #398 en: 02 de Abril de 2008, 17:27:04 »
Hola a todos.  Necesito ayuda urgente sobre como capturar datos por el puerto usb usando un microcontrolador y graficar los datos en el pc con ayuda de c#.

Si alguien puede ayudarme por favor enviarme un correo a: nestormontoya@hotmail.com

Muchas gracias y bendiciones a todos.

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Proyecto PicUSB
« Respuesta #399 en: 03 de Abril de 2008, 02:52:24 »
Hola a todos.  Necesito ayuda urgente sobre como capturar datos por el puerto usb
¿Y este tema del foro no sirve precisamente para eso? Dale una leída al menos.
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado Desiderium

  • PIC10
  • *
  • Mensajes: 5
Re: Proyecto PicUSB
« Respuesta #400 en: 04 de Abril de 2008, 20:57:08 »
Hola a todos de nuevo, he estado un poco ocupado con la universidad, además de tener problemas con Internet, sólo para agradecer a Geo por el código que ha puesto, esperemos que nos ponga el proyecto completo, sirve que me meto con VC++, yo he programado mi programa en VB6, es exactamente lo mismo, luego les paso el proyecto y resultados. Saludos
Velis nolis post mortem nihil est

Desconectado loranca

  • PIC10
  • *
  • Mensajes: 3
Re: Proyecto PicUSB
« Respuesta #401 en: 12 de Abril de 2008, 13:04:16 »
Buenas!!
En primero agradecer la gran ayuda que me ha aportado este foro y a todos sus colaboradores, ya que me está sirviendo de gran ayuda para realizar proyectos con PIC.

Mi caso es el siguiente, para mi proyecto utilizo un PIC18F2550 con el que realizo una conversión A/D, para empezar a trastear me descargué el proyecto pisusbnut de la pagina de J1M de www.hobbypic.com (buenisima pagina por cierto), sé que está hecho para un PIC18F4550 pero cambié algunas cosillas en los puertos y todo bien, programé con el GTP-USB Plus y monté el circuito. Lo he probado y me funciona todo correctamente a excepción de la conversión A/D, por más que regulo el potenciometro no hace nada siempre está en el cero.

Alguién me puede decir porque puede ser?!

Muchas gracias de antemano.

Desconectado DPP0881

  • PIC10
  • *
  • Mensajes: 1
problema con proteus
« Respuesta #402 en: 26 de Abril de 2008, 23:09:58 »
hola oye hazme un favor es que tengo un problema, yo antes tenia una version anterior de proteus y ya la elimine para instalar otra la 7.2 pero he intentado y intentado con artisimos diferentes y me sale error de licencia y ya hize lo que dices hay de eliminar el .inf y todavia me sale.. ayuda porfavor

Desconectado manuelroin24

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 665
Re: Proyecto PicUSB
« Respuesta #403 en: 02 de Mayo de 2008, 01:19:30 »
bueno alguno de ustedes vio esto???

MCHPFSUSB Framework v2.1 – MCHPFSUSB  is a distribution package containing a variety of USB related PIC18 and PIC24F firmware projects, along with other USB related drivers and resources intended for use on the PC. The USB embedded host stack is API compatible with the USB Device and Embedded Host Stack for PIC32. All release notes are included in the .zip file bundle.

Bueno por lo que veo microchip saco una actualizacion de su driver, la descargue pero no llego a comprender como trabajar con ella, alguien tiene experiencia en esta nueva actualizacion ???
El conocimiento se consigue a base de esfuerzo...

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Proyecto PicUSB
« Respuesta #404 en: 02 de Mayo de 2008, 13:28:35 »
En cuanto al driver genérico, se trabaja igual ya que según leí se mantienen los nombres de las funciones de la anterior versión.
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/


 

anything