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

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

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Proyecto PicUSB
« Respuesta #105 en: 10 de Septiembre de 2006, 15:25:47 »
Jode diego, a eso se le llama explicación y lo demás son tonterias! :p Profesores como tú son lo que debería haber en la universidad leche! Yo sigo de examenes, esto es inacabable, quiero jugar!!! buaaa!! ;)

kalux no confundas DDK con SP; DDK es el Driver Development Kit (Kit de Desarrollo de Drivers) y SP es Service Pack (Paquete de Actualizaciones (en una fantastica traducción e interpretación realizada por el menda! jeje)) Pues bien, cuando en el ejemplo PicUSB hablo de "windows_server_2003_sp1_ddk" en este parrafo:

"El último paso ha sido la edición del Driver suministrado por Microchip de tal forma que apareciera en el Administrador de Dispositivos una nueva clase con un icono personalizado. Para esto ha sido necesario crear una DLL que exporte ese icono. Se adjunta el código fuente de la DLL, PicUSB_Classinstaller.zip por si se desea recompilar para poner otro icono. Se necesita para ello la DDK (Development Driver Kit) de Microsoft, para este ejemplo se ha usado la windows_server_2003_sp1_ddk. Y el ejemplo llamado Toaster."

Ahí no me estoy refiriendo a 'crear' ningún driver, solo a editar el .inf suministrado por microchip, no sabría decir si el .inf se puede considerar driver... en cualquier caso, solo lo modifico para que lea una DLL creada por la DDK donde hay un icono con el fin de que aparezca en el panel de control (algo que no sabía hacer y utilize este proyecto para aprenderlo).

Respondiendote entonces, el "windows_server_2003_sp1_ddk", es la última versión disponible (en el momento de escribir el articulo) de la DDK de Microsoft, que como te digo, solo la vas a necesitar en el caso de que desees crearte un icono y ponerlo en el panel de control, en cualquier otra situación puedes usar el que se incluye en el proyecto o incluso descargar la versión sin modificar de microchip para adaptarlo a tus necesidades. Añadir también que ese SP1 va implicito a la DDK, y no al Sistema Operativo como estabas sugiriendo. Puedes tener el XP SP2, la DDK SP1, el Office 2K3 con el SP1, y el Visual Studio con el SP5... que cada SP corresponde a su programa, creo que me he explicado no? jejeje

Lo que es el Driver en sí (el .sys) no puede modificarse, hay gente que se ha creado su propio driver(de momento no está compartido) haciendo uso de esa misma DDK, ya que el de microchip parece ser que va limitado en cuanto a velocidad de transmisión (no se puede aprovechar al 100% el potencial de un FULL USB 2.0 como es el incluido en el PIC) pero vamos eso es otra historia de la que se bastante poco :S

A tú pregunta del C++ Builder no se exactamente que responderte, decirte que tienes varias páginas en internet en las que se explica como echar a andar un dispositivo USB (con PIC) y el C++Builder, en concreto puedes encontrar varios en la página wikki francesa que publica el amigo Diego al final de su peaaazo articulo.

saludos!

Desconectado 5GTT

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 915
Re: Proyecto PicUSB
« Respuesta #106 en: 11 de Septiembre de 2006, 02:24:08 »
RedPic se que esto te va a gustar, lo malo es que esta hecho con C18. Yo lo he probado y funcina perfectamente, seguramente sepas adaptarlo a tu RRBOARD y a CCS.

http://www.geocities.com/dariuskrail20/USBUSART.html

Saludos.

Tutoriales y proyectos de electrónica

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Proyecto PicUSB
« Respuesta #107 en: 12 de Septiembre de 2006, 03:25:24 »
¡Enhorabuena maestro Diego!, estoy de vacaciones y no puedo pararme a leer tu artículo so pena de perderme algunos paisajes y no menos monumentos, pero lo dejo en la recámara para leerlo en cuanto llegue. Tiene una pinta extraordinaria.

Desconectado kalux

  • PIC10
  • *
  • Mensajes: 36
Re: Proyecto PicUSB
« Respuesta #108 en: 12 de Septiembre de 2006, 13:46:53 »
Hola,

Gracias J1M, ahora te he entendido perfectamente.
Lo que me falta por el momento, es compilar para obtener la dll del icono. Que por cierto me estoy volviendo loco y no lo consigo. Estamos con ello.

Muchas gracias por vuestros aportes.
Un saludo.

Desconectado kalux

  • PIC10
  • *
  • Mensajes: 36
Re: Proyecto PicUSB
« Respuesta #109 en: 16 de Septiembre de 2006, 07:11:42 »
Hola,

No consigo generar la dll. Los pasos que sigo son:

1.- Ejecutar el "Windows XP free Environment". En el pongo:
2.- setenv [donde esta instalado el ddk] free WXP. Segun la ayuda. Seria para xp
3.- cd [donde estan los ficheros]
4.- make

Al ejecutar el comando make, me da los siguientes errores:
"jvc" no se reconoce como comando interno o externo,
programa o archivo por lotes ejecutable.
NMAKE : U1077: 'jvc' : return code '0x1'
Stop.

He probado a ejecutar tambien el comando build, tambien infrutuosamente, obteniendo 3 errores y parando. Los errores son:
     Compiling - objfree_wxp_x86\i386 for all platforms
     NMAKE : warning U4006: special macro undefined : '$<'
esto se repite 3 veces y a continuacion marca:
    BUILD: Compile errors: not linking .....
    BUILD done
   3 files compiled - 3 errors

Comentar que es sobre el fichero que paso j1m, es decir primero quiero compilar el suyo.

Por favor una ayudita.
Gracias.


Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Proyecto PicUSB
« Respuesta #110 en: 16 de Septiembre de 2006, 09:04:38 »
kalux te pongo por aquí el como hacerlo y además 'legalmente', ya que microsoft ha liberado la DDK

En primer lugar vamos a la página de Microsoft de WDF (Windows Driver Foundation)
http://www.microsoft.com/whdc/driver/WDF/KMDF_pkgdwn.mspx?

Y descargamos el archivo WDFv11.iso, que son unos 300Mb

Una vez hayamos grabado la imagen o cargado con un programa tipo Daemon Tools, se abrirá la pantalla de instalación, seleccionamos 'Instalar DDK', se selecionan las opciones que quieras, en principio con marcar solo la opcion de los entornos 'enviroments' es suficiente.

Una vez instalado comprobamos que todo va bien ejecutando el siguiente comando en la linea de comandos de cualquier entorno (por ejemplo el del XP free), para cargar abrir la ventanita de la linea de comandos hay q ir a
inicio/programas/developmentkit/ddk/build enviroment/winxp/free build enviroment

y con eso aparece la linea de comandos para poner el comando
build –cZ

En principio debería compilarse sin ningún problema (si falla por lo que sea, vuelve a instalarlo y dejalo todo por defecto)

Volvemos a entrar a la linea de comandos para compilar el classinstaller del PicUSB, en ella escribimos la ruta dnd se encuentra la carpeta con los archivos:
C:\WINDDK\3790~1.183\src\picusb\classinstaller

Importante que esté dentro de la ruta de la DDK, a continuación compilamos escribiendo 'build' (sin comillas).

Deberá compilar sin fallos, entonces para cojer nuestra ansiada DLL vamos a la carpeta:
C:\WINDDK\3790.1830\src\picusb\disk\fre_wxp_x86\i386

Dnde la encontraremos nueva y reluciente para juguetear con ella ;)

Saludos!

Desconectado kalux

  • PIC10
  • *
  • Mensajes: 36
Re: Proyecto PicUSB
« Respuesta #111 en: 17 de Septiembre de 2006, 07:25:10 »
Gracias J1M.

Ahora siiiiiiiiiiiiiiiiiiiiiiiiiiii.    :-/ :-/ :-/

Como dices, lo importante es que este dentro de la ruta del ddk:
.....\src\aqui

Yo lo tenia en otro directorio, y claro ... pinchaba.

MUCHISIMAS GRACIAS (estoy que me salgo).

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Proyecto PicUSB
« Respuesta #112 en: 21 de Septiembre de 2006, 16:53:11 »
Buenooooo .... yo sigo con mi experimentos.  :mrgreen:

Hasta ahora hemos estado trabajando con el método Bulk Transfers (Transferencia masiva) para conectarnos con el PIC vía USB 2.0. (Firmware, Driver y Aplicación+Dll) pero hay más ....  :D

Otro método posible es el CDC USB (Communications Device Classes) que logra utilizar el USB como si fuera u fuese un puerto COM serie, Virtual pero tan puerto COM como el implementado con una UART.  :shock:

Este método nos permite comunicarnos con el PIC mediante cualquier programa en el PC que pueda utilizar un puerto COM serie normal y corriente, como por ejemplo el HyperTerminal de Windows o el Siow del CCS C, además de cualquier aplicación que deseemos hacer en Delphi, Visual Basic u C++ que tenga la posibilidad de leer y escribir puertos COM.  :)

El firmware de nuestro PIC le dice al Windows que es un puerto serie y éste va y se lo cree, añadiendolo como un puerto normal y corriente entre sus dispositivos. Para ello utiliza el mismo driver que usa para los demás puertos serie, por lo que no tenemos instalar un nuevo driver como era el caso del método Bulk Transfer. Solo tenemos que suministrarle un fichero .inf que nos pone a nuestra disposición Microchip y que le va a servir al PC para reconocer como este tipo de dispositivo a nuestro PIC con el correspondiente firmware a través del VIP&PID correspondiente.

Si queréis todos los detalles lo tenéis disponible en EL USB DESENCADENADO : CDC USB

« Última modificación: 21 de Septiembre de 2006, 17:02:29 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Proyecto PicUSB
« Respuesta #113 en: 21 de Septiembre de 2006, 17:53:26 »
A sus pies, gran Cuervo Rojo.

Desconectado 5GTT

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 915
Re: Proyecto PicUSB
« Respuesta #114 en: 21 de Septiembre de 2006, 22:00:47 »
RedPic se que esto te va a gustar, lo malo es que esta hecho con C18. Yo lo he probado y funcina perfectamente, seguramente sepas adaptarlo a tu RRBOARD y a CCS.

http://www.geocities.com/dariuskrail20/USBUSART.html

Saludos.

Cuando dije esto tampoco era un encargo eh!, jaja que prisa te has dado macho, tienes una media de mas de proyecto por semana. Quien pillara esa habilidad.

Enhorabuena.

Tutoriales y proyectos de electrónica

Desconectado Joaquín

  • PIC10
  • *
  • Mensajes: 24
    • Mi web
Re: Proyecto PicUSB
« Respuesta #115 en: 29 de Septiembre de 2006, 16:03:19 »
Hola a todos.

Ahora que dispongo de algo de tiempo me he puesto también con el USB  y así voy adelantando trabajo, pues este año voy a aprender a manejar una FPGA.

Tengo alguna documentación traducida y algún programa hecho modificando el PicUSB de JIM, todo pendiente de adecentar, lo cual haré en breve (supongo que durante el fin de semana), y os lo haré saber por si a alguien le sirve de algo.

Al final lo de hacer el proyecto con Linux lo hemos dejado un poco aparcado puesto que casi todo lo que he encontrado está en Windows y así el invento funcionará en los dos sistemas.

Además craro está tengo varias dudas:

---- La que más me tiene quitado el sueño es respecto a la API de C#, y es si hay alguna forma de que cuando el Pic le
      envíe un dato al PC se genere un evento en el programa del PC y  así actuar en consecuencia.

---- Otra duda es el timeout que está por ejemplo en la API y que el amigo JIM le da un valor de 1000 ms, ¿a qué se
      refiere ese tiempo? ¿Es el tiempo que permanecerán los datos en el buffer del USB?

---- Por otra parte, en el programa del PIC, las líneas que definen el tamaño de los bufferes (#define
      USB_EP1_RX_SIZE ) de los enpoints, qué tamaño máximo puedo darles?

¿Alguien me ayuda?

Gracias y un saludo.

Desconectado zimanka

  • PIC10
  • *
  • Mensajes: 7
Re: Proyecto PicUSB
« Respuesta #116 en: 06 de Octubre de 2006, 11:33:34 »
hola
me gustaria saber que velocidad puedo usar con el puerto virtual serial porque la velocidad de usb es 1.5 mbit/s como minimo mientras que la serial en 115kbit/s como maximo entonces a que velocidad iria este proyecto

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Proyecto PicUSB
« Respuesta #117 en: 08 de Octubre de 2006, 14:04:50 »
Another brick in the wall ....

El USB Desencadenado continúa inexorable ganando batalla tras batalla hasta su derrota final.  :mrgreen:

En este caso le toca al HID USB Dispositivo de Interfaz Humana (Keyboard, Mouse y/o Joystick) el que ha rendido armas y bagajes.


En este caso, el HID, no necesita de driver alguno para Windows, ya que son tan furiosamente estándares que lo llevan puesto desde que pulsamos sobre aquello de F8 para aceptar al instalar el Windows XP, Home u Profesional.

Si el USB_DESCRIPTOR dice que es un teclado USB el Windows lo cree y lo añade como un teclado USB, si nuestro firmware no funciona como tal que dios nos coja confesados.  :D

El caso es que le he puesto a mi ejemplo un push-button por RB0 y cada vez que lo pulso se envía al PC un teclazo del estilo 'a' y lo incremento para que la siguiente pulsación se envie un 'b' y así sucesivamente ... El Windows lo interpreta como un teclado y lo escribe como si hubiesemos pulsado la correspondiente tecla en un teclado como dios manda.  :mrgreen:

Cuidadín con el tema del pulsador porque si se queda pillado .... inundará nuestro PC de teclazos abcdefghijklmnopqrtsuvwxyz1234567890 .... hasta el infinito.



Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado 5GTT

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 915
Re: Proyecto PicUSB
« Respuesta #118 en: 10 de Octubre de 2006, 01:22:30 »
Magnifico, ahora ya ni drivers son necesarios.

Una duda, los HID son exclusivamente para ratones teclados y joysticks (y dispositivos que lo emulen) ¿o podria hacerse algo del tipo a la suma  del PicUSB? Me refiero a si se pueden enviar datos del PC al Pic mediante este modo.

Muchas gracias por compartir RedPIC, nunca me cansare de daroslas.

 

Tutoriales y proyectos de electrónica

Desconectado ma4826

  • PIC16
  • ***
  • Mensajes: 130
Re: Proyecto PicUSB
« Respuesta #119 en: 12 de Octubre de 2006, 10:49:37 »
 Por si a alguien le interesa dejo una versión del programa PicUSB para linux usando libusb.

 El binario compilado en Ubuntu 6.06 picusb y las fuentes PicUSB-0.2.tar.gz

 Para hacerlo me base en Writing a Real Driver In User Space y la documentacion de libusb.

 Saludos

« Última modificación: 12 de Octubre de 2006, 10:55:40 por ma4826 »
万人の友は誰の友でもない。