Control de dispositivos a través del módulo USB del PIC18F45/2550

Moyano, por curiosidad. ¿Haz probado bien si funciona las entradas analógicas por USB?

Otra cosa. Cuando conectas el PIC por USB al PC, se que te puede decir desconocido o el nombre que le hayas puesto al PIC en su interior se ve en administrador de dispositivos. ¿Cómo lo haz hecho?

;)
 
Si las funciones analógicas las he probado y funcionan excelente con el usb..es más usando un conversor A/D por medio del bus I2C del PIC, puedo tomar muestras de 12 bits de resolución y enviarlas al USB sin problemas.

Cuando conectamos el USB , el host busca los descriptores dentro del firmware y genera un archivo en el registro de windows para que cuando el PIC se conecte no lo enumere continuamente sino que busque el archivo y lo detecte.

Una vez conectado el dispositivo te va a aparecer en el administrador de dispositivos de 4 maneras diferentes.

1 si es CDC: Como un puerto COM de identifación variable (COM2 a COM xx )
2 si es HID: Como un dispositivo HID compatible.
3 si es BULK/TRANSFER Se le puede poner un ícono específico.
4 si es MSD Como un Dispositivo de almacenamiento masivo.

Espero haberte aclarado la duda.
 
Moyano has probado asi fisicamente la maxima velocidad de estas 3 HID,BULK,MSD me imagino que ha de ser bulk pero mejor te pregunto y cual sera el buffer maximo de transferencia de cada uno

Por ejemplo si el hid puede enviar digamos a 2 bytes en 0.5 ms para enviar 1 Kb se tardaria 256ms
y el bulk parecieera mas lento digamos 512 bytes en 150ms se tardaria en teoria 300 ms
pero el hid utilizo mas rutinas para cada envio de dato en este caso utilizo 512 instrucciones de envio
vs las 2 que utilizo el bulk

Cual sera la mas rapida asi ya probada?
 
En C18 hay ejemplos de como hacer transmisiones Bulk a alta velocidad pero todavía no me he puesto con ese lenguaje. Aunque pronto lo voy a tener que hacer de manera obligada para poder trabajar con PIC18 de manera cómoda.
 
;)

El C18 es como el CSS en el lenguaje C. Lo que cambia es el IDE. Busca por Internet, antes todo el mundo quería el CSS y ahora le están dando desde hace casi un año por usar el C18 hasta hacer manuales. Por algo será. Siguen diciendo que está mejor el CSS pero no se el motivo de que usan el C18. Cuando te aprendas el C18, al pasar al C32 es muy fácil. (Incluyendo los dsPIC), al menos eso he leído en otros sitios.

Ya aprenderemos en su día.

:)
 
;)
El C18 es como el CSS en el lenguaje C. Lo que cambia es el IDE
No tengo nada en contra del CCS que también empece por él, pero no solo el IDE cambia, es cierto que al ser C sigue estándar o la sintaxis pero al tener muchas funciones pre-establecidas, el migrar a otro se hace confuso para el principiante (el código no es portable, no es compatible entre los dos).
Aprender el C18 es como aprender asm pero divertido :), control casi total del PIC (sin bugs), uno se concentra más en el programa que estar resolviendo problemas (¿Por qué no funciona? bugs? :enfadado::LOL:). La mejor opción es el C18 (y) y el C30/32 cuya arquitectura está adaptada para desarrollos en este lenguaje y opcional son los compiladores de Hi-Tech C que son muy buenos (hasta microchip les hace propaganda).
 
Última edición:
es que el C18 está optimizado para la linea 18, y de esa forma puede explotar todos los recursos de esos micros.

Yo lo uso, y con el framework es muy simple aprenderlo desde ejemplos. ;)
 
Hola a todos y buen día desde méxico.
Antes que nada debo felicitarlos por el gran trabajo que han hecho en conjunto para descifrar el maravilloso mundo del USB, hasta ahorita no había hecho ningún comentario porque apenas tengo algunos meses trabajando con el USB y debo decirles que toda la información aquí descrita me ha servido en sobremanera, muchas gracias!!
Hasta ahorita he conseguido hacer funcionar el USB por medio de CDC, la verdad me interesan mucho el HID y el bulk transfer pero lamentablemente para el proyecto que estoy realizando ahorita el CDC me basta y me sobra...
Mi duda ahorita es la siguiente, no sé si alguno de ustedes la ha experimentado. Se trata de que en mi proyecto (domotización) necesito un consumo de energía mínimo para poder hacer funcionar el PIC con baterías, el detalle es que apenas habilitando los fuses para la comunicación USB (no importa si usas o no el USB) el consumo del PIC se va hasta 35mA!!! (PIC18F2550) con lo cual me es imposible montarle baterías ya que requiero una vida útil de al menos 3 meses, con ese consumo de corriente me duraría apenas 2 días.
Después de mucho investigar la verdad no encontré información en ningún sitio acerca de los consumos de corriente del PIC según las características que utilices del mismo, por lo que me decidí a ponerlo a dormir y he aquí la interrogante...
Al parecer cuando el PIC está conectado al USB nunca se duerme, no sé realmente por qué razón pero he estado investigando en las librerías del pic18_usb.h y las del CDC, aún no termino de revisarlas por completo pero lo que sí es que mi PIC no se va a la cama =/
Bueno, si alguno de ustedes tiene una pista o se ha topado con un problema similar podemos compartir algunas experiencias que he tenido aunque la mayoría no son del todo agradables...
Un saludos a todos y espero este proyecto siga creciendo como hasta ahorita, muchas felicidades otra vez!!

P.D. He realizado estudios en una escuela de la india (NIIT) acerca de la programación en C#, si de alguna manera puedo ayudarles con eso pues aquí estoy ;-).
 
hace mucho que no requeria la necesidad de avanzar en la usb, ando a full, bueno hace unos meses empezamos a desarrolar una interfaz en labview para usb hid, asi que decidi subir la vi para algun interesado
 

Adjuntos

  • HID labview.rar
    154 KB · Visitas: 224
Atrás
Arriba