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

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

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Proyecto PicUSB
« Respuesta #570 en: 27 de Octubre de 2010, 16:07:08 »
Yo no hablo español, así que utilizei la herramienta de Google para traducir para mí.

Esto  projectio está muy bien. Sin embargo, no está trabajando conmigo.

He utilizado los archivos originales disponibles y nada. El Windows 7 reconoce el PIC, puede instalar el com driver. OK

Las luces del LED de color rojo se acende, luego verde. Normal.

Pero el app no apaga el LED. No suma!

El hardware es idéntica a la publicada. Sólo el condensador de 100nF que no tengo aquí conmigo.

Otra de las cosas. Estoy usando un 18F4550. Solo mudei a la instrucción # include 18f2550.h por # include  18F4550.

Estoy usando cristal 12MHz. Correcta?

Resumindo, win 7 reconocido, instalado con el driver, pero la aplicación no funciona.

Gracias

Hola Matheus.
Como sugerencia te pediria que plantees la pregunta en tu lengua original (aqui hay varios que podremos leerla) y ademas pongas el texto traducido por Google.
Como el traductor no es 100% eficiente, esa es una forma de saber que quisiste decir realmente.
Saludos!!
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MatheusLPS

  • PIC10
  • *
  • Mensajes: 6
Re: Proyecto PicUSB
« Respuesta #571 en: 04 de Noviembre de 2010, 19:08:28 »
Citar
Como sugerencia te pediria que plantees la pregunta en tu lengua original (aqui hay varios que podremos leerla).

Ok. O problema é que o computador reconheceu o PIC normalmente. Instalei com o driver proposto. Certo.

Mas quando abro o programa que controla o PIC, simplesmente ele não responde. Não soma. Não acende nem apaga os LEDs.

Semana passada fiz não sei o que e estava funcionando. Parou de novo.

O hardware permanece o mesmo. Apenas mudei para o 18F4550 que é mais robusto. E claro declarei no CCS.

Não entendo por que não funciona. Coloquei os capacitores no Vusb de 47uF e um de 47uF na alimentação que vem da USB. Os dois capacitores são eletrolíticos.

Alguém tem alguma ideia o porque do aplicativo travar e não responder a nenhum comando?

Tenho o .Net 4.0 instalado.

EDIT:

Estava tentando encontrar um erro e abri o Visual Express 2010 e rodei o programa de lá. Ele abriu normalmente mas quando mandei somar ele retornou o seguinte erro no PicUSBAPI:

Erro no Visual C#http://img443.imageshack.us/img443/1967/errofm.jpg

Obrigado!

MatheusLPS do Brasil
« Última modificación: 04 de Noviembre de 2010, 19:52:47 por MatheusLPS »

Desconectado MatheusLPS

  • PIC10
  • *
  • Mensajes: 6
Re: Proyecto PicUSB
« Respuesta #572 en: 17 de Noviembre de 2010, 23:05:40 »
Problema resolvido!

Desistalei o windows 7 e instalei o windows XP e voltou a funcionar!

Podem conferir o vídeo aqui (em português! :D):


Obrigado

Desconectado cpva

  • PIC10
  • *
  • Mensajes: 1
Re: Proyecto PicUSB
« Respuesta #573 en: 03 de Diciembre de 2010, 21:49:23 »
hola quisiera saber qu e pic es el mas apropiado para la comunicacion usb entre un pic y labview

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Proyecto PicUSB
« Respuesta #574 en: 04 de Diciembre de 2010, 11:55:46 »
hola quisiera saber qu e pic es el mas apropiado para la comunicacion usb entre un pic y labview

Cualquier PIC con USB te servirá.

Desconectado electrowolf

  • PIC12
  • **
  • Mensajes: 56
Re: Proyecto PicUSB
« Respuesta #575 en: 14 de Diciembre de 2010, 21:16:39 »
Hola Gente

pues bien no se si a alguien le ha pasado, pero espero puedan ayudarme, no he termiando de leer todas las paginas de este post, quiza encuentre la respuesta pero como son muchas, mientras leo pongo por si alguien puede, me ayude.

hice la placa para comunicar un pic18f4550 con el usb y segun todo salio bien, le cargo el programa al pic pero al conectarlo, me dice que el dispositivo no fue reconocido y me coloca el usb como "unknow Device", ya intente meterle el controlador pero cuando lo intento, me dice que ya no es necesario actualizarlo por que ya tiene el mas actual, acontinuacion les pongo el codigo que uso:

Código: [Seleccionar]
/////////////////////////////////////////////////////////////////////////
////                            DAQ.c                                ////
////                                                                 ////
//// Este ejemplo muestra como desarrollar un sencillo dispositivo   ////
//// USB con el PIC18F2550 (para la serie 18Fxx5x)                   ////
//// los drivers que se requiere para éste dispositivo son los que   ////
//// proporciona Microchip en su pagina web, y se basan en protocolo ////
//// USB_ENABLE_BULK su XTAL es de 12Mhz.                            ////
////                                                                 ////
////                                                                 ////
//// Cuando el dispositivo sea conectado al PC, saldrá el asistente  ////
//// para la instalación del driver. Se instala el driver            ////
//// que nos proporciona Microchip.                                  ////
////                                                                 ////
//// Al aplicar energia al PIC se enciende el LED en RB6 y  hasta    ////
//// que el dispositivo halla sido configurado por la PC via puerto  ////
//// USB se encende el Led en RB7. El PIC muestra el dato que le     ////
//// envia la PC en el vector [0] e inmediatamente el PIC le         ////
//// responde con el valor del puerto A almacenado en el vector [1]. ////
//// Sólo si la PC le envia un dato al PIC éste enviará el dato del  ////
//// puerto A                                                        ////
////                                                                 ////
/////////////////////////////////////////////////////////////////////////
////                                                                 ////
//// Realizado con el compilador CCS PCWH 3.227                      ////
//// Este programa fue desarrollado para estimular el uso del        ////
//// puerto USB y desarrollar tarjetas de adquisición económicas     ////
//// por Ing. Gabriel Pool y Ing. Julio Lugo para proyecto de        ////
//// materia Sensores y Actuadores impartida por el profesor         ////
//// M.C. Pedro Nájera.                                              ////
////                                                                 ////
//// Actualizado en Julio de 2009 para uso en  Matlab                ////
//// por Ing. Gabriel Pool para proyecto de la materia Diseño        ////
//// Mecatrónico impartida por el profesor Dr. Alejo Mosso Vazquez   ////
//// (Universidad Modelo en Mérida, Yucatán, México)                 ////
//// Apoyado por Centro de Investigación Científica de Yucatán AC    ////
//// Depto de Instrumentación ( www.cicy.mx)                         ////
////                                                                 ////
/////////////////////////////////////////////////////////////////////////

// Por favor, complete los 4 pasos siguientes ...
// Paso 1:
// Cambie la siguiente instrucción de acuerdo al PIC que utilice PIC18F2455/2550/4455/4550
#include <18F4550.h>
//#device ADC=10                             //Descomente ésta opción en caso de usar el ADC a 10bits
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL4,CPUDIV1,VREGEN,MCLR,NOPBADEN
// Paso 2: Ajuste el fusible del PLL de acuerdo al Xtal que utilice
// No olvide que PLL1 = Para un Xtal de 4Mhz
//               PLL2 = Para un Xtal de 8Mhz
//               PLL3 = Para un Xtal de 12Mhz
//               PLL4 = Para un Xtal de 20Mhz , etc.
#use delay(clock=48000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

/////////////////////////////////////////////////////////////////////////////
//
// CCS Library dynamic defines.  For dynamic configuration of the CCS Library
// for your application several defines need to be made.  See the comments
// at usb.h for more information
//
/////////////////////////////////////////////////////////////////////////////

#define USB_HID_DEVICE     FALSE              //deshabilitamos el uso de las directivas HID
#define USB_EP1_TX_ENABLE  USB_ENABLE_BULK    //turn on EP1(EndPoint1) for IN bulk/interrupt transfers
#define USB_EP1_RX_ENABLE  USB_ENABLE_BULK    //turn on EP1(EndPoint1) for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE    64                 //size to allocate for the tx endpoint 1 buffer
#define USB_EP1_RX_SIZE    64                 //size to allocate for the rx endpoint 1 buffer

/////////////////////////////////////////////////////////////////////////////
// Lo siguiente no es indispensable:
// If you are using a USB connection sense pin, define it here.  If you are
// not using connection sense, comment out this line.  Without connection
// sense you will not know if the device gets disconnected.
//       (connection sense should look like this:
//                             100k
//            VBUS-----+----/\/\/\/\/\----- (I/O PIN ON PIC)
//                     |
//                     +----/\/\/\/\/\-----GND
//                             100k
//        (where VBUS is pin1 of the USB connector)
//
/////////////////////////////////////////////////////////////////////////////
//#define USB_CON_SENSE_PIN PIN_B2  //CCS 18F4550 development kit has optional conection sense pin

/////////////////////////////////////////////////////////////////////////////
//
// Include the CCS USB Libraries.  See the comments at the top of these
// files for more information
//
/////////////////////////////////////////////////////////////////////////////

#include <pic18_usb.h>              //Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver
#include <usb_desc_scope.h>         //descriptors del Pic USB
#include <usb.c>                    //handles usb setup tokens and get descriptor reports

/////////////////////////////////////////////////////////////////////////////
/*
Paso 3: Abra el archivo C:\Archivos de programa\PICC\Drivers\usb_desc_scope.h
        ( donde se instaló el compilador de CCS ) que es el descriptor del USB
        ubicado en su PC, avance hasta la sección start device descriptors
        (aprox en la linea 132) y reemplace los valores del vendor id,
        el product id y el device release number como sigue ( puede copiar
        las tres líneas siguiente y pegar en el archivo del descriptor <<usb_desc_scope.h>> ) :
               
         0xD8,0x04,           //vendor id (0x04D8 is Microchip)
         0x0B,0x00,           //product id
         0x01,0x00,           //device release number

ESTO ES IMPORTANTE HACERLO CORRECTAMENTE DE LO CONTRARIO, EL DISPOSITIVO NO SERA RECONOCIDO POR EL DRIVER.
*/
/////////////////////////////////////////////////////////////////////////////


#define  LEDV    PIN_B6
#define  LEDR    PIN_B7
#define  LED_ON  output_high
#define  LED_OFF output_low

// Direcciones de memoria válidas para PIC18F2455/2550/4455/4550 (no olvide que son la misma familia)
// Esto es con el fin de poder escribir directamente en ellos sin usar instrucciones como intermediarios.
#BYTE TRISA  = 0x0F92                           // Registro de control de E/S del puerto A
#BYTE TRISB  = 0x0F93                           // Registro de control de E/S del puerto B
#BYTE PORTA  = 0x0F80                           // Registro del puerto A
#BYTE PORTB  = 0x0F81                           // Registro del puerto B
#BYTE ADCON1  = 0x0FC1                          // Registro de control del ADC
#BYTE CMCON   = 0x0FB4                          // Registro del modulo comparador

int8 dato[64];

void main(void) {

   LED_ON(LEDV);                                //encendemos led en RB6 para indicar presencia de energia
   LED_OFF(LEDR);

   usb_init();                                  // inicializamos el USB
   usb_task();                                  // habilita periferico usb e interrupciones
   usb_wait_for_enumeration();                  // esperamos hasta que el PicUSB sea configurado por el host

   LED_OFF(LEDV);
   LED_ON(LEDR);                                // encendemos led en RB7 al establecer contacto con la PC

   TRISA  = 0x0FF;                              // Se declara el puerto A como entradas (instrucción opcional)
   TRISB  = 0x00;                               // Se declara el puerto B como salidas (instrucción opcional)
   ADCON1 = 0x0F;                               // Se configura al ADC para entradas digitales (apagar el ADC)
   CMCON  = 0x07;                               // Se configuran los comparadores para entradas digitales (apagar los comparadores)

   while (TRUE)
   {
      if(usb_enumerated())                      // si el Pic está configurado via USB
      {
         if (usb_kbhit(1))                      // si el endpoint de salida contiene datos del host
         {
            usb_get_packet(1, dato, 64);        // cojemos el paquete de tamaño 8bytes del EP1 y almacenamos en dato
            portb = dato[0];                    // Se muestra al byte completo en el puerto B
            dato[1] = porta;                    // Se lee el puerto A y se almacena en el vector
            usb_put_packet(1, dato, 64, USB_DTS_TOGGLE); //y enviamos el mismo paquete de tamaño 64bytes del EP1 al PC
         }
       }
    }
}

//Paso 4: Compile y grabe en el PIC

ya realice los cambios al archivo que menciona en las lineas de VID y PID, lo compilo y lo cargo al pic,pero pasa lo que les comento arriba al inicio del post

de antemano gracias por su ayuda

Desconectado MatheusLPS

  • PIC10
  • *
  • Mensajes: 6
Re: Proyecto PicUSB
« Respuesta #576 en: 15 de Diciembre de 2010, 02:59:44 »
Tenho outro problema.

Estou usando o PicWinUSB com o driver para 64bits. O computador reconhece certinho. O problema é quando tento adicionar mais funcões no C#. O aplicativo trava. LOOK:

Apenas adicionei mais uma rotina no PIC:

Código: [Seleccionar]
usb_get_packet(1, iBuff, 2); // Read 2 byte packet from EP 1

            if (iBuff[0] == 0) // Led_Mode
            {
               if (iBuff[1] == 1) output_toggle(LED); // Toggle LED
            }

            if (iBuff[0] == 2) // ADC_Mode
            {
               oBuff[0] = 1;
               oBuff[1] = read_adc();
               usb_put_packet(1, oBuff, 2, USB_DTS_TOGGLE); // Send 2 byte packet to EP 1
            }
           
            if (iBuff[0] == 1)
            {
               oBuff[0] = 1;
               oBuff[1] = 1;
               usb_put_packet(1, oBuff, 2, USB_DTS_TOGGLE); //enviamos el paquete de tamaño 1byte del EP1 al PC
            }

E no C# fiz assim:

Código: [Seleccionar]
private void timer1_Tick(object sender, EventArgs e)
        {
            bool bres;
            byte[] sdBuffer = new byte[1];           // Define send DataBuffer size
            byte[] rdBuffer = new byte[2];           // Define recieve DataBuffer size

            sdBuffer[0] = 0x02;    //Mode ADC

            bres = picwinusbapi.Write_PicWinUSB(iHandle, sdBuffer);
            bres = picwinusbapi.Read_PicWinUSB(iHandle, rdBuffer);

            if (rdBuffer[0] == 1)
           
            {
                temperatura_ambiente_var = (int)(rdBuffer[1] * 5 * 100 / 254);
                adcBar.Value = temperatura_ambiente_var;
                temp_ambiente_box.Text = temperatura_ambiente_var.ToString() + "ºC";
            }

           
            sdBuffer[0] = 0x01;    //Mode se o PIC está conectado

            bres = picwinusbapi.Write_PicWinUSB(iHandle, sdBuffer);
            bres = picwinusbapi.Read_PicWinUSB(iHandle, rdBuffer);

            if (rdBuffer[0] == 1)
            {
                if (rdBuffer[1] == 1)
                {
                    pic_conectado_box.Text = "PIC Conectado";
                }
            }
etc...

Oque pode estar errado?

Gracias....

Desconectado MatheusLPS

  • PIC10
  • *
  • Mensajes: 6
Re: Proyecto PicUSB
« Respuesta #577 en: 15 de Diciembre de 2010, 18:22:26 »
RESOLVIDO!

Estava gabrando el codigo errado..

WORKING NOW!

Desconectado thom

  • PIC10
  • *
  • Mensajes: 3
Re: Proyecto PicUSB
« Respuesta #578 en: 17 de Febrero de 2011, 11:34:17 »
Hola a todos, aqui adjunto un video sobre el desarrollo de: PIC USB + C# + OPENGL.
Agradezco a este foro para el desarrollo de este.!!!!!!!!!!



Desconectado diego_z

  • PIC16
  • ***
  • Mensajes: 225
Re: Proyecto PicUSB
« Respuesta #579 en: 28 de Febrero de 2011, 09:53:20 »
hola gente buenas , estoy incurcionando en usb , y llegue a la pagina de migsantiago donde explica muy bien todo , baje el proyecto de el lei grabe etc , el pc me recomçnoce el pic conectado puedo instalar drivers ( win 7) todo ok pero no se comunica con la aplicacion en vb c 2008 , la pid y vid son iguales  , las que probee microchip , alguien me ayuda a resolver esto ? un abrazo diego
,,,,option,,,,,,,,,,,explicit,,,,,,,

DR800 big a la venta ,solo argentina por privado

Desconectado flaviorenatofrs

  • PIC10
  • *
  • Mensajes: 1
Re: Proyecto PicUSB
« Respuesta #580 en: 05 de Marzo de 2011, 02:23:00 »
Problema resolvido!

Desistalei o windows 7 e instalei o windows XP e voltou a funcionar!

Podem conferir o vídeo aqui (em português! :D):


Obrigado


Aqui eu consegui reproduzir o seu projeto. Bacana deve ter sofrido bastante. Eu possuo uma maquina com win7 32 bits. O driver é reconhecido, porém quando abro o aplicativo feito em c# o Pic fica com estado desconectado.

Estou com um projeto de iniciação cientifica muito parecido com o seu projeto.

Você tentou mexer novamente para saber o porque não funcionou no win7?

Abração

FRS

Desconectado adriano

  • PIC10
  • *
  • Mensajes: 1
encender Led por medio de visual con PIC
« Respuesta #581 en: 16 de Marzo de 2011, 23:41:36 »
tengo una super duda....como puedo encender un led con un PIC (cual sea) por medio de visual basic quisiera saber los codigos para mandarle los datos via USB :(

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Proyecto PicUSB
« Respuesta #582 en: 22 de Marzo de 2011, 14:45:47 »
Hola. Queria saber si alguien ha compilado el proyecto (la parte software, ocea el programa en VC#) en la version 2010? Yo lo he echo y me dio problemas...

Desconectado FabiPIC

  • PIC10
  • *
  • Mensajes: 7
Re: Proyecto PicUSB
« Respuesta #583 en: 04 de Abril de 2011, 20:03:19 »
Hola J1m y a todos, primero agradecerte, sin tu ayuda no creo que esta vida me hubiera resultado el tema pic usb, y tengo una consulta que hacerte al respecto para mi tesis, no lo puedo resolver despues de muuuchos intentos, y es que cuando envio un dato al pc por usb cdc, con la libreria que compartes para ccs, el pc recibe el correspondiente numero asociado al ascii, no a un entero, comprendi que la libreria envia sólo caracteres, entonces imagino el problema es de ahi, ¿existe alguna forma de enviar un entero y que el pc lo reconozca como entero?,pues en la funcion de la lib para ccs la cosa es un putc,  vi un ejemplo en tu pagina de MicroIngenia , la del equipo sensor de humedad y temperatura, y al parecer a ti te pasa lo mismo. ¿como lo resolviste?, no entendi   :shock: .

saludosss.

pd: la unica forma que me funciona y que el pc me reconoce bien,  es enviar cada char de un numero, ej, si quiero 5200, envio en char el 5, el 2.... comprenderas que es muy ineficiente.
 

Desconectado Martronica

  • PIC10
  • *
  • Mensajes: 17
Re: Proyecto PicUSB
« Respuesta #584 en: 15 de Abril de 2011, 01:14:42 »
Saludos amigos, tengo una pregunta sencilla para ustedes pero para mi vital.

Estoy tomando muestras de una señal analogica en el pic 18F4550
las quiero enviar a la PC por USB

mi intencion es que esta comunicacion sea lo mas rapida posible he leido que existen tres formas de configurar el PIC

Bulk Transfers USB o la transferencia bidireccional masiva de información.
HID USB o los dispositivos de interfaz humana.
CDC USB o la clase de dispositivos de comunicación.

me gustaria saber cual de ellas me es mas conveniente utilizar, tomando en cuenta la descripcion me inclino por Bulk Transfers USB. Pero quiero estar seguro para comenzar.
Saludos y exitos


 

anything