76490397 Generador de Inf Para Los Drivers USB de Microchip

Embed Size (px)

Citation preview

  • Generador de inf para los drivers USB de Microchip

    Introduccin

    Descripcin del software

    Personalizando e instalando mchpusb.inf

    Personalizando e instalando mchpcdc.inff

    Video de ejemplo de uso

    Descarga del Software

    Historial de Cambios

    Autores Correspondientes

    Introduccin:

    En la serie 18F de uC PIC de Microchip, hay unos micros que poseen modulos de

    USB, los primeros micros con modulo USB que salieron al mercado fueron la familia

    18Fxx5x. Estos modulos son de gran importancia en el acontecer actual porque el USB

    se encuentra en la mayora de los dispositivos electrnicos que requieren comunicarse

    externamente.

    Comunicar un uC PIC con un dispositivo por USB, conyeva una compleja y

    estructurada red de protocolos que por lo general lleva escribir gran cantidad de lineas

    de programacin al que agrupan y/o denominan Pila o Stack USB.

    por otro lado y dependiendo de las caracteristicas de la transmisin, es necesario

    configurar un driver del lado del ordenador -a fin de que el sistema operativo S.O.

    reconozca al pic como un dispositivo de transaccin de datos-

    para que el driver sea configurado correctamente, el ordenador requiere de una

    secuencia de datos con informacin relativa al dispositivo, esta secuencia de datos se

    encuentran organizadas sintacticamente en el archivo instalador .inf

    a nivel de usuario, se resume a 5 los datos para personalizar nuestros archivos

    instaladores .inf . Estos datos son:

    Nombre

    VID

    PID

    Fabricante

    Descripcin

    Descripcin del Software

    Automatizacin de datos Enumeracin USB es un programa que pemite introducir

    datos como Nombre, VID, PID, Fabricante, Descripcin , entre otros para configurar

    el instalador que necesita el Windows cuando conectamos el dispositivo por primera

    vez.

    esta identificacin se muestra al momento de instalacin y cuando accedemos al

    administrador de dispositivos en Windows

  • Ventana principal del Generador INF

    volver arriba

    hay 2 modos de creacin de drivers, el modo de transmisin BULK para controlar las

    transacciones con MCHPUSB.DLL y mediante la clase CDC (que es reconocido por

    Windows poe ser un estandar). Para personalizar nuestros datos en el Firmware del uC

    PIC se usa el stack USB que provee el PIC C Compiler de CCS, dichos datos

    corresponden al descriptor de descripcin tipo 3

    Personalizando e instalando mchpusb.inf

    1.- El primer paso es introducir los datos personalizados en INF Enumeracin Datos

    uC PIC-USB.

  • paso 1

    2.- Una vez creados y guardados los archivos respectivos mchpusb.inf y

    usb_desc_scope.h, se procede a compilar el firmware y grabarlo en el microcontrolador

    uC PIC que posea mdulo USB.

    Nota:

    - Debes guardar el nuevo usb_desc_scope.h al directorio del proyecto a compilar.

    3.- Al conectar el uC PIC al ordenador, se iniciar el proceso de deteccin de nuevo

    hardware.

  • paso 3

    4.- Aparecer una ventana como esta:

    paso 4

  • paso 4

    5.- Aparecer otra ventana preguntando por el origen del driver, buscamos la ruta donde

    se encuentra el archivo mchpusb.inf

    paso 5

    7.- Tecleamos en Siguiente y el ordenador comenzar el proceso de instalacin y

    enumeracin.

  • paso 6

    8.- Al terminar, saldr una ventana como esta, diciendonos que se configur

    correctamente el nuevo hardware.

    paso 7

    Si vamos al administrador de dispositivos, veremos que aparecer nuestro uC PIC en la

    lista de hardware disponibles en el ordenador.

    Al clicar en la rama de nuestro uC PIC, veremos que nuestros personalizados estn all.

  • paso 8

    paso 8

    Para usar el cono predeterminado del sistema en Windows XP, bastara clicar en el

    checkbox de opciones avanzadas:

  • paso 9

    aplicando los pasos anteriores, una vez instalado correctamente:

    paso 10

  • Propiedades del device

    volver arriba

    Personalizando e instalando mchpcdc.inf

    1.- El primer paso es introducir los datos personalizados en INF Enumeracin Datos

    uC PIC-USB.

  • paso 1

    volver arriba

    2.- Una vez creados y guardados los archivos respectivos mchpcdc.inf y

    usb_desc_cdc.h se procede a compilar el firmware y grabarlo en el microcontrolador

    uC PIC que posea mdulo USB.

    Notas:

    - En la carpeta donde guard mchpcdc.inf debe estar mchpcdc.cat.

    - Debe guardar el nuevo usb_desc_cdc.h al directorio del proyecto a compilar.

    - Debe buscar el archivo usb_cdc.h que se encuentra en \PICC\Drivers y copiarlo al directorio del proyecto a compilar, buscar esta linea:

    #include //USB Configuration and Device descriptors for this USB

    device

    y cambiarla por esta linea:

    #include usb_desc_cdc.h //USB Configuration and Device descriptors for this USB device

  • 3.- Al conectar el uC PIC al ordenador, se iniciar el proceso de deteccin de nuevo

    hardware.

    paso 2

    4.- Aparecer una ventana como esta:

    paso 4

    5.- Aparecer otra ventana preguntando por el origen del driver.

  • paso 5

    6.- Buscamos la ruta donde se encuentra el archivo mchpcdc.inf.

    paso 6

    7.- Tecleamos en Siguiente y el ordenador comenzar el proceso de instalacin y

    enumeracin.

  • paso 7

    paso 8

    8.- Al terminar, saldr una ventana como esta, diciendonos que se configur

    correctamente el nuevo hardware.

  • paso 9

    9.- Si vamos al administrador de dispositivos, veremos que aparecer nuestro uC PIC en

    la lista de hardware disponibles en el ordenador.

    paso 10

    11.- En la pestaa Controlador podemos ver el resto de los datos personalizados.

  • propiedades del device

    volver arriba

    Video de ejemplo de uso

    volver arriba

    Descarga del Software

    Bajar Software

    link alternativo descarga

  • MD5: 3D4EC240D2E92B44E16CBAA5821B830E

    volver arriba

    Historial de Cambios

    Historial cambios:

    v3.1. 06-Mar-09

    - Arreglado un bug relacionado al sobrescribir los archivos generados.

    - Se aadi la opcin de escoger el tipo de cono del dispositivo, si se quiere usar un

    cono personalizado usar el predeterminado de windows (Win Vista).

    - Probado y funcional para Windows Vista 32.

    v3.0 27-oct-08

    - Mudado el cdigo fuente del Visual Basic 6.0 al AutoIT con la iniciativa de apoyar al

    software libre.

    - Actualizado para MCHPFSUSB v1.1.0.0 (June 23, 2008) que corresponde a la

    actualizacin de:

    - mchpusb.inf

    - mchpusb.sys

    - mchpusb64.sys

    - mchpusb.cat

    - mchpcdc.inf

    - mchpcdc.cat

    (para mayor informacin leer las release notes de MCHPFSUSB en

    www.microchip.com)

    - Aadida multitud de mejoras como comprobaciones de los textos, cambio total en la

    interfaz de idioma Ingls Espaol

    v2.0 01-feb-08

    - aadida nuevas opciones:

    - Crear una clase aparte solo para el dispositivo.

  • - incluir un cono a esa clase creada.

    - mejor estructuracin de cdigo fuente.

    - al cerrar el programa se guardan los datos de todos los campos.

    - al abrir el programa se cargan los datos de todos los campos, guardados con

    anterioridad.

    v1.0 versin inicial 09-ene-08

    volver arriba

    Autores Correspondientes

    Los archivos:

    - mchpusb64.sys

    - Ioctls.h

    - mchpusb.inf

    - mchpusb.sys

    - mchpusb.cat

    - mchpcdc.cat

    - mchpcdc.inf

    son propiedad de la empresa Microchip.

    Los archivos:

    - usb_desc_scope.h

    - usb_desc_cdc.h

    - usb_cdc.h

    son propiedad de la empresa del PIC C Compiler: Custom Computer Services (CCS).

    1. DAVID dice:

    20 Marzo 2010 en 3:24 am

  • Saludos, por le que he entendido, se tiene que grabar el archivo

    usb_desc_scope.h el el uC? No consigo que reconozca el hardaware,ni

    haciendolo manualmente. Estoy realizando un proyecto, y mirando por la web

    encontre un proyecto donde graba en el pic un archivo para despues intercambiar

    datos con matlab. El archivo es el siguiente

    #include

    //#device ADC=10 //Descomente sta opcin en caso de usar el ADC a 10bits

    #fuses

    HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV

    1,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

    //#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 //Microchip PIC18Fxx5x Hardware layer for CCSs PIC USB driver #include //descriptors del Pic USB

    #include //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 seccin 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 lneas siguiente y pegar en el archivo del descriptor ) :

    0xD8,004, //vendor id (004D8 is Microchip)

    00B,000, //product id

    001,000, //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 vlidas 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 = 00F92 // Registro de control de E/S del puerto A

    #BYTE TRISB = 00F93 // Registro de control de E/S del puerto B

    #BYTE PORTA = 00F80 // Registro del puerto A

    #BYTE PORTB = 00F81 // Registro del puerto B

    #BYTE ADCON1 = 00FC1 // Registro de control del ADC

    #BYTE CMCON = 00FB4 // 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 = 00FF; // Se declara el puerto A como entradas (instruccin opcional)

    TRISB = 000; // Se declara el puerto B como salidas (instruccin opcional)

    ADCON1 = 00F; // Se configura al ADC para entradas digitales (apagar el

    ADC)

    CMCON = 007; // 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 tamao 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 tamao 64bytes del EP1 al PC

    }

    }

    }

    }

    //Paso 4: Compile y grabe en el PIC

    Pero tras grabar este archivo al pic, no me reconoce el nuevo dispositivo, ni

    agragandolo manualmente. Si pueden ayudarme lo agradeceria, necesitaria

    conectar el pic para poder empezar.

    Gracias.