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

Disculparán las continuas molestias, pero es que esto me está gustando...

Estuve chequeando los programas HID que Sr. Jonathan publicó utilizando easyHID, y al parecer se pueden realizar muchas aplicaciones. Eso es bueno.

Sin embargo, me he puesto a verificar una correcta comunicación entre el host y el PIC para saber si existe algún problema de transmisión o recepción en alguna de las dos partes, y ha resultado que si.

He probado llenando el Buffer en VB y mandando el paquete al PIC, y que cuando este lo reciba lo reenvie al PC, además de verificar que los datos que el PIC reciba sean los correctos. Sin embargo, parece que solo puedo leer la primera posición del Buffer de recepción en el PIC, y además no devuelve los datos al PC.

Si fuera alguien tan amable y me pudiese indicar cual es el problema en el código VB o CCS que genera este error, le agradezco.
 

Adjuntos

  • usbproject_175.zip
    5.8 KB · Visitas: 356
Hola a todos, talvez llegue algo tarde a este foro, pero he encontrado información realmente útil puesto que tengo que reaizar un proyecto con USB y Labview.

He revisado algo de la información que han puesto aqui se me hace realmente interesante, ademas, de lo poco que habia leido de usb, lo que no me quedaba muy claro era como hacer los descriptores, pero espero que esto me ayude.

No entré a este foro solo para piratearme información (como alguien por ahi dijo que muchos hacen), sino que tratare de aportar algo, aunque ahora solo estoy empezando con el proyecto, espero que pronto pueda darles noticias de como esto me ha ayyudado.

De antemano gracias a todos por compartir el conocimiento.

Todo sea por la electronica...!
 
Alber Moremont, en realidad el foro está hecho como una comunidad de autoayuda para los proyectos individuales de cada uno, donde los conocimientos de uno son transmitidos a otros y viceversa para que todos puedan sacar sus dudas.

En cualquier cosa que te podamos ayudar para que termines tu proyecto , deci nomas y vemos como hacemos para darte una mano.
 
Moyano Jonathan dijo:
Dejame que veo como puedo ayudarte. Cualquier cosa te digo

Ahora bien a que llamás llenar el buffer en VB?

Gracias por la colaboración.

Cuando me refiero a llenar el buffer es que, según entiendo, easyHID crea en VB una clase de array que define el número de Bytes que se pueden enviar en un paquete (máx 64). Yo utilicé el buffer de 8 bytes que pone easyHID. Si se fija en el programa, lo que se hace es ubicar un dato en cada uno de los bloques o posiciones del array BufferOut con 1<= i <= 8, y eviarlo al PIC. En el pic hay otro array DatoRx que los debe recibir.

Según comprendí, el dato que se envía desde VB se puede leer en el PIC de la siguiente forma:


VB <------------> PIC
BufferOut[0] No se utiliza
BufferOut[1] DatoRx[0]
BufferOut[2] DatoRx[1]
. .
BufferOut[8] DatoRx[7]

Y de la misma forma al leer en VB lo que se envía del PIC. Sin embargo, como mencioné antes, no coinciden las lecturas que hago en el PIC con los datos que envío del PC (solo coinciden los datos de BufferOut(1) y DatoRx(0)). Espero haber aclarado alguna duda que permita su colaboración.

Agradecimientos
 
Saludos, a todos y Moyano me parece muy interesante lo que has echo, e incluso e copiado muchas cosas de las que has echo y estoy haciendo un recuento de todo lo que has desarrollado en USB, en un documento vamos a ver si me animo y lo dejo como tutorial, pero si usted me autoriza, jejeje.

TENGO UNA DUDA. en los programas que usted ha desarrollado hay algo que no entiendo que es
cuando usted declara una variable

int8 recibe[3]

int8 = ?
recibe[3], por que encierra en corchetes el 3, eso significa el numero de bits, o que? y hasta que numero puedo colocar ahi?

Le agradeceria mucho su respuesta, y que pena la molestia ya que van tan adelante pero, si me gustaria tener claro ese detalle.
 
si claro colega esa es una declaracion de un vector o array , lo que estas haciendo es declarando un array de enteros de 8 bits ( 0-255) de tres posisiones , que para este caso seria cantidad de bytes y esa cantidad sera 3 , entonces seria un array de tres bytes . que para uso del usb serian tres bytes que recibirias o tres bytes que enviarias .. saludos
 
La explicación de jokelnice es más que clara, es la declaración de un array de 3 bytes para poder enviar 3 datos de 8 bits a la vez.


PD: Este fin de semana me pongo a full con el control de motores paso a paso por USB. y tambien en el desarrollo de una interfaz para controlar 16 salidas con tan solo 3 cables y además hacerlo USB.

estoy haciendo un recuento de todo lo que has desarrollado en USB, en un documento vamos a ver si me animo y lo dejo como tutorial, pero si usted me autoriza, jejeje.

Por supuesto que podes hacerlo , no hay problema.
 
Hola
Mi nombre es Robinson, y he estado probando los ejemplos propuestos del foro. Mas concretamente he probando el ejemplo dos que es que enciende el led verde cuando el host enumera el pic y no me funciona. El Host nunca enumera el pic, y el led rojo permanece encendido. Lo he probado en vida real y en proteus 7.4 y el funcionamiento es el mismo. Con base a esto quisiera que me dieran ideas de cúal puede ser el problema y de paso hacerles unas preguntas:
¿han probado si los ejemplos Funcionan con el proteus? ¿Los ejemplos que han publicado de HID, funcionan con la velocidad plena del puerto?

Bueno de antemano les agradezco su pronta colaboración, por lo pronto yo sigo leyendo toda la información del foro (que es bastante) a ver si resuelvo mis dudas

Gracias
 
Muchas gracais Jokelnice y Moyano, la duda me queda clara. Moyano, el tutorial se lo debo, talvez cuando entre a vacaciones, lo hago que tengo mucho trabajo en la u, pero lo voy a hacer porque me parece muy bueno el trabajo de los que han participado en su foro.

Pero queria pedirle un favor a Jokelnice, yo lei anteriormente que usted a desrrrollado un foro el labview, me gustaria y me dice si depronto me ayudaria a entender labview que no lo comprendo y sobre todo para saber como se maneja esas interfaces, que es que pocon poco se de eso y usted ya ha manejado ese tema.

Si crea un foro para eso o me dice de uno en el que me explique como manejar esta interfaz.
Muchas gracias
 
A robin2715:
El Host nunca enumera el pic, y el led rojo permanece encendido. Lo he probado en vida real y en proteus 7.4 y el funcionamiento es el mismo. Con base a esto quisiera que me dieran ideas de cúal puede ser el problema y de paso hacerles unas preguntas:
¿han probado si los ejemplos Funcionan con el proteus? ¿Los ejemplos que han publicado de HID, funcionan con la velocidad plena del puerto?
Postea el ejemplo que estás probando vos, a ver si te puedo ayudar. Sin embargo yo mismo he probado todos y cada uno de los ejemplos que postee en este foro y todos funcionan bien.


A David:

Moyano, el tutorial se lo debo, talvez cuando entre a vacaciones

Tomate tu tiempo igual faltan algunas cosas como estas en el control del USB:

- Teclado y mouse HID
- Jostick HID
- Control de motores PAP y Servo
- Todo lo referente a mpusbapi.dll
- Más ejercicios de HID.

- Pasar todo a Visual basic.net (Emulación CDC)
- Pasar todo a VC++ 2008 (HID)
 
Pero queria pedirle un favor a Jokelnice, yo lei anteriormente que usted a desrrrollado un foro el labview, me gustaria y me dice si depronto me ayudaria a entender labview que no lo comprendo y sobre todo para saber como se maneja esas interfaces, que es que pocon poco se de eso y usted ya ha manejado ese tema.

Si crea un foro para eso o me dice de uno en el que me explique como manejar esta interfaz.
Muchas gracias

si claro David si estoy pensando hacer una especie de manual de labview , ya que seria muy importante y ademas casi no hay información en español saludos y cualquier te comento
 
jokelnice dijo:
Pero queria pedirle un favor a Jokelnice, yo lei anteriormente que usted a desrrrollado un foro el labview, me gustaria y me dice si depronto me ayudaria a entender labview que no lo comprendo y sobre todo para saber como se maneja esas interfaces, que es que pocon poco se de eso y usted ya ha manejado ese tema.

Si crea un foro para eso o me dice de uno en el que me explique como manejar esta interfaz.
Muchas gracias

si claro David si estoy pensando hacer una especie de manual de labview , ya que seria muy importante y ademas casi no hay información en español saludos y cualquier te comento

Oye, lo de hacer manuales de lo que dices, estaría muy agradecido, ya que nunca he usado LabView en mi vida.

Yo sigo con los míos:
http://electronica-pic.blogspot.com/

Saludo.
 
Moyano Jonathan dijo:
A robin2715:
El Host nunca enumera el pic, y el led rojo permanece encendido. Lo he probado en vida real y en proteus 7.4 y el funcionamiento es el mismo. Con base a esto quisiera que me dieran ideas de cúal puede ser el problema y de paso hacerles unas preguntas:
¿han probado si los ejemplos Funcionan con el proteus? ¿Los ejemplos que han publicado de HID, funcionan con la velocidad plena del puerto?
Postea el ejemplo que estás probando vos, a ver si te puedo ayudar. Sin embargo yo mismo he probado todos y cada uno de los ejemplos que postee en este foro y todos funcionan bien.



Ya funcionó, estaba eligiendo el COM equivocado desde el PC, muchas gracias este es un excelente foro.
 
Hola, amigos del foro encontre lo que andaba buscando, y ahora me gustaria simular estas aplicaciones, pero tengo varios problemas, el primero es que tengo Visual HomePremiun y no me deja instalar visual basic 6 y tampoco visual studio 2008, el segundo la versión de proteus que manejo es la 6,7 y me gustaria simular en 7,4 y o superior, si alguien sabe por que se generan errores en la instalacion y como puedo corregirlos se los agradeceria.
 
Atrás
Arriba