Conexion USB PIC18F2550 C18

#1
Hola buen dia.
Agrego un nuevo tema al ver que muchos utilizan o requieren la conexión usb hacia el exterior mediante un pic en este caso el que uso es el 18f2550, programado en C18 y utilizando las librerías de microchip; para la interfaz gráfica utilizo C++ también proporcionadas por microchip. adjunto lo necesario para poder utilizarla y que se le pueda dar un uso.



el enlace sobre el manual de como usarlo y la explicación necesaria y diagrama aca:


el código y demás necesario aca:


espero que les sirva
saludos
:)
 

Adjuntos

#5
Muy bueno, trabajé con USB pero en CDC y Bulk, no HID.
Una pregunta, en qué parte del código del PIC es que se envían los datos y en qué parte es que se reciben?
Cuales son las funciones que se utilizan para esto?
Gracias!
 
#6
hola, pues este como dices es HID, en la carpeta llamada GenericHID-Firmware, en el archivo principal main, en el método main, se encuentra el llamado al método ProcessIO(), el cual a su vez contiene la identificación de los códigos. El funcionamiento es sencillo, dentro de un "case" se pregunta que caso se trata, el pic envia un codigo y la computadora le responde, haciendose un eco,

/****************************************************************** ******************************************************************/
case 0x80: //Toggle LEDs command
if(contLed1 == 0){
mLED_1_On();
contLed1 = 1;
} else{
mLED_1_Off();
contLed1 = 0;
}
break;

/****************************************************************** ******************************************************************/
case 0x81: //Get push button state
ToSendDataBuffer[0] = 0x81; //Echo back to the host PC the command we are fulfilling in the first byte. In this case, the Get Pushbutton State command.
if(sw3 == 1) //pushbutton not pressed, pull up resistor on circuit board is pulling the PORT pin high
{
ToSendDataBuffer[1] = 0x01;
}
else //sw3 must be == 0, pushbutton is pressed and overpowering the pull up resistor
{
ToSendDataBuffer[1] = 0x00;
}
if(!HIDTxHandleBusy(USBInHandle))
{
USBInHandle = HIDTxPacket(HID_EP,(BYTE*)&ToSendDataBuffer[0],64);
}
break;
/****************************************************************** ******************************************************************/

la computadora hace lo mismo, todos los datos se almacenan en dos variables principales
ReceivedDataBuffer[64]; //buffer de recepcion
ToSendDataBuffer[64]; //buffer de envio

los cuales solo se utilzan las 2 primeras posiciones, una el caso, otro el dato, pero se pueden utilizar los 64 posiciones,

en la interfaz grafica, en la pc, el envio y recepcion es casi igual

/****************************************************************** ******************************************************************/
//Encendido-Apagado General
if(OnOffBotonPresionado == TRUE)
{
OUTBuffer[0] = 0;
OUTBuffer[1] = 0x80;
for(unsigned char i = 2; i <65; i++)
OUTBuffer = 0xFF;

WriteFile(WriteHandleToUSBDevice, &OUTBuffer, 65, &BytesWritten, 0);
OnOffBotonPresionado = FALSE;
}
/****************************************************************** ******************************************************************/

envia el caso, y el dato,
espero que haya servido la explicacion, es sencillo, los otros casos como el CDC no me llama la atencion
saludos
 
#8
Que tal, encontré tu aporte y quería preguntarte si es posible enviar pulsos o alguna instrucción por medio de la PC al PIC para que éste genere los pulsos. Lo que quiero es hacer parpadear un LED.
De ser posible, me gustaría saber si este material que pones está listo para ser quemado tal cual en el PIC y probarse con la aplicación en C++ para comenzar de una base y trabajar en lo que quiero hacer.
Gracias.
 
#9
Hola, claro que si, de hecho en el codigo ya tiene por default un parpadeo de led, claro, esto depende de un ciclo interno, simplemte armalo, y programalo, y listo, 2 leds empezaran a parpadear y se detendran cuando se presione el boton incluido en la interfaz grafica, cualquier duda pregunta, saludos
 
#10
Que bien! solo que no tengo mucha experiencia en la programación de PIC con C18... no se si me puedas orientar un poco sobre donde y/o como tengo que introducir el código para el flash porque esta larguísimo y me pierdo :eek:hno:. Sobre el modelo del PIC, quisiera saber si puedo usar también el 18F4550 porque necesito una buena cantidad de señales y el 18F2550 no tiene tantas como el que mencione primero.
Gracias por contestar!
 
#12
hola que tal, soy nuevo en esto de los pics y en la escuela nos pidieron comenzar a familiarizarnos con el pic 18f2550, tengo que comenzar con lo mas basico que sera hacer parpadear un led pero la programacion tiene que ser en C y en el compilador CCS, alguien tiene conocimiento de como puedo hacer el programa o mejor aun el programa y que me lo explique para ir avanzando con mas practicas, el punto es que tengo que lograr entender el funcionamiento hasta lograr realizar el programa en el CCS para el pic y que este configurado para usar sus lineas de USB como CDC, y emular el puerto USB como RS232, espero su ayuda y respuesta saludos y gracias

hola que tal disculpa podrias ayudarme con un problema que tengo con un pic???
 
#13
Hola Gente querida del foro,estaba chusmeando este hilo y veo q los links donde colgaron la info estaba en MEGAUPLOAD y xl a ley SOPA y demas...lo hicieron crema :p y bueee...¿hay posibilidades q cuelguen la info de otro lugar?. Mil gracias.
 
#15
Hola necesito hacer un escáner para dispositivos con conexiòn USB con un PIC18F2550, lo que quiero hacer es que cuando el dispositivo sea conectado al PIC, éste lo reconozca, algo similar a lo que hace la PC cuando se le conecta un dispositivo USB. Por favor, si pueden ayudarme se los voy a agradecer.

Saludos...
 
#16
Hola buen dia.
Agrego un nuevo tema al ver que muchos utilizan o requieren la conexión usb hacia el exterior mediante un pic en este caso el que uso es el 18f2550, programado en C18 y utilizando las librerías de microchip; para la interfaz gráfica utilizo C++ también proporcionadas por microchip. adjunto lo necesario para poder utilizarla y que se le pueda dar un uso.



el enlace sobre el manual de como usarlo y la explicación necesaria y diagrama aca:


el código y demás necesario aca:


espero que les sirva
saludos
:)


me gustaria leer acerca de este tema, me podria pasar lo enlaces que no sean de megaupload
o me podria enviar la informacion a mi correo políticas@delforo.com es de gran interes es tema cualquier ayuda es de gran importancia gracias.

 
Última edición por un moderador:

Temas similares

Arriba