Você está na página 1de 8

1.

La introduccin de la interfaz de software USB Microchip ofrece una capa de software para el PIC16C745/65 que se encarga de la interfaz de bajo nivel por lo que su aplicacin no tendr que hacerlo. Esto proporciona un simple Poner / Obtener interfaz para la comunicacin. La mayora de los USB de procesamiento tiene lugar en el fondo a travs de la rutina de interrupcin. Desde el punto de vista de aplicacin, la comunicacin de la enumeracin de procesos y datos se lleva a cabo sin ms interaccin. Sin embargo, la configuracin se requiere bastante en la forma de generar descriptores apropiados. 2. La integracin de USB en su aplicacin La ltima versin del software de interfaz USB est disponible en el sitio web de Microchip. Ver http://www.microchip.com/ La interfaz de la aplicacin es en recipientes de 5 funciones: InitUSB, PutEP1, PutEP2, GetEP1 y GetEP2. InitUSB inicializa los perifricos USB que permite al anfitrin para enumerar el dispositivo. A continuacin, para comunicaciones de datos normal, las funciones PutEPn enviar datos a la sede y las funciones GetEPn recibir datos desde el host. Tambin hay una buena cantidad de trabajo de configuracin que se deben completar. USB depende en gran medida de los descriptores. Estos son los parmetros de software que se comunica con el host para hacerle saber lo que el dispositivo es, y cmo comunicarse con l. Ver especificaciones USB V1.1 seccin 9.5 para ms detalles. InitUSB permite la interrupcin del USB, de modo de enumeracin puede comenzar. El proceso de enumeracin actual se produce en el fondo, impulsado por el anfitrin y la rutina de servicio de interrupcin. Macro ConfiguredUSB espera hasta que el dispositivo se encuentra en el estado configurado. El tiempo necesario para enumerar es completamente dependiente del husped y la carga del bus. 3. Interrumpir afecta a la estructura Procesador de Recursos La mayora de los USB de procesamiento se produce a travs de la interrupcin y por lo tanto es invisible para la aplicacin. Sin embargo, todava consume los recursos del procesador. Estos incluyen ROM, RAM, memoria RAM comn, los niveles de la pila y los ciclos del procesador. En esta seccin se intenta cuantificar el impacto en cada uno de estos recursos, y muestra la manera de evitar conflictos. Estas consideraciones deben ser tenidas en cuenta si usted escribe su propia rutina de servicio de interrupcin: Guardar W, STATUS, PCLATH FSR y que son los registros de archivo que puede estar daado por el servicio de la interrupcin del USB. El archivo ofrece una usb_main.asm ISR esqueleto que lo hace por usted, e incluye pruebas para cada uno de los posibles fragmentos ISR. Esto proporciona un buen punto de partida si an no lo ha escrito el suyo propio. Niveles de pila La pila de hardware en el PIC est a solo 8 niveles de profundidad. As que la llamada peor de los casos entre la aplicacin y el ISR slo puede ser de 8 niveles. El proceso de enumeracin requiere de 4 niveles, de modo que lo mejor es que la principal aplicacin mantiene fuera de cualquier proceso hasta que la enumeracin es completa. ConfiguredUSB es una macro que espera hasta que el proceso de enumeracin es completa para este propsito. Esta macro se esta poniendo a prueba el menor de dos trozos de USWSTAT (0x197). ROM El cdigo necesario para apoyar la interrupcin USB, incluyendo las llamadas de interfaz captulo 9, pero no incluye la interfaz de llamadas HID o tablas de descriptores es de 1 kW. Las funciones especficas de HID y

las tablas de descriptor tener memoria adicional. La ubicacin de estas piezas no est restringido, y el guin enlazador puede ser editado para controlar la posicin de cada parte. Ver las cadenas y las secciones de descriptores en el script del enlazador. RAM Con la excepcin de RAM comunes ms adelante, el servicio de la interrupcin de USB requiere aproximadamente 40 bytes de memoria RAM en el banco 2. Eso deja a toda la RAM de uso general en los bancos de cero y uno, ms de la mitad de banco 2 disponible para su aplicacin a utilizar. Comn el uso de RAM El PIC16C745/765 tiene 16 bytes de memoria RAM comn. Estos son los ltimos 16 direcciones de cada banco y todos se refieren a los mismos 16 bytes de memoria sin tener en cuenta que banco de registros est dirigida por el RP0, RP1 y los bits IRP. Estos son particularmente tiles cuando se responde a las interrupciones. Cuando ocurre una interrupcin, el ISR no se sabe de inmediato qu banco se trata. Con dispositivos que no soportan RAM comn, el registro W debe ser establecido en cada banco. El PIC16C745/765 puede guardar los registros correspondientes en la memoria RAM comn y no tiene que perder un byte en cada banco para el registro de W. Asignacin del buffer El PIC16C745/765 tiene 64 bytes de RAM de doble puerto. 24 se utilizan para la tabla de descriptores de bfer, (BDT), dejando 40 bytes para los buffers. Endpoint 0 (ep0) dentro y fuera necesario buffers dedicada, desde una operacin de instalacin no puede estar desnudo. Eso deja a tres buffers de cuatro puntos finales posibles. Sin embargo, la especificacin USB requiere que los dispositivos de baja velocidad slo se permiten dos extremos (USB V1.1 el prrafo 5.3.1.2), en un extremo de una conexin simple que se define por la combinacin de nmero de punto final y la direccin. La configuracin por defecto asigna topes individuales a ep0 OUT, ep0 IN, EP1 OUT, y EP1 IN. El bfer pasado es compartida entre EP2 EP2 IN y OUT. Una vez ms, la especificacin dice dispositivos de baja velocidad slo puede utilizar dos criterios de valoracin ms all de ep0. Esta configuracin es compatible con la mayora de las combinaciones posibles de puntos finales (EP1 EP1 OUT y IN, OUT y EP1 EP2 IN, OUT y OUT EP1 EP2, EP1 de entrada y salida EP2, EP1 y EP2 EN IN). La nica combinacin que no es compatible con esta configuracin es de entrada y salida EP2 EP2. Si su aplicacin necesita tanto EP2 EP2 IN y OUT, el USBReset funcin tendr que ser editado para dar a cada uno de estos criterios de valoracin dedicada topes a expensas de la EP1. 4. Archivo de embalaje La interfaz del software es empaquetado en cinco archivos, diseado para simplificar la integracin con su aplicacin. Estos son: 1. usb_main.asm 2. usb_ch9.asm 3. hidclass.asm 4. descript.asm 5. usb_defs.inc Usb_main.asm archivo es til como punto de partida de una nueva aplicacin y como un ejemplo de cmo una aplicacin existente a las necesidades de servicio de la interrupcin USB y comunicarse con las funciones bsicas.

Usb_ch9.asm archivo contiene las funciones de interfaz y el ncleo necesario para enumerar el bus. Tambin contiene las funciones que el servicio de la USB, enviar datos a la mquina, y recibir datos desde el host. Hidclass.asm archivo proporciona algunas funciones especficas de clase HID. Actualmente, slo Get_Report_Descriptor y Set_Report son compatibles. Otras funciones especficas de clase se pueden implementar de una manera similar. Cuando una alarma se muestra determina que es un comando de la clase especfica sobre la base de que poco ReportType 6 se establece, el control pasa a la funcin ClassSpecific. Si ests trabajando con una clase diferente, esta es la interfaz entre las funciones bsicas y las funciones especficas de clase. Descript.asm archivo contiene descriptores del dispositivo, configuracin, interfaz, punto final y la cadena. Tambin incluye los descriptores HID especficos - HID y el informe. Usb_defs.inc archivo contiene varias macros incluyendo ConfigUSB, PutEP1, PutEP2, GetEP1 y GetEP2. Como se mencion anteriormente, los casos de la opcin de venta y obtener macros se han creado en usb_ch9.asm ya. 5. Referencia de funciones de llamadas Interfaz entre la aplicacin y la capa de protocolo se lleva a cabo en cinco funciones principales: InitUSB, PutEP1, PutEP2, GetEP1 y GetEP2. InitUSB debe ser llamado por el programa principal despus de que el dispositivo est encendido. Asegrese de que preceder la llamada con un retraso de 16 ms para dar a la SIE la oportunidad de restablecer antes de comenzar la enumeracin. InitUSB permite a los perifricos USB y la interrupcin de reinicio USB. Tambin las transiciones de la parte con el estado alimentado con el fin de preparar el dispositivo para la enumeracin. Antes de la enumeracin se inicia, el botn de reinicio USB es la nica interrupcin de USB permite, evitando que la parte de responder a nada en el autobs hasta que se ha restablecido. Restablecer la interrupcin USB inicializa la tabla de descriptores de bfer (BDT) y las transiciones de la parte con el estado por defecto donde se responde a los comandos en la direccin cero. Cuando se recibe un comando de Ajuste de la direccin, las transiciones de dispositivo para el Estado requerido y ahora responde a los comandos en la nueva direccin. PutEPn enva los datos al host. Llamar a esta funcin con las siguientes especifica: La direccin de comienzo del bloque de datos a transmitir en el FSR / IRP. El nmero de bytes en el bloque de datos en W. Si el en el buffer est disponible para ese punto final, el bloque de datos se copian en el bfer, los datos de 0 / 1 bit se da la vuelta y el dueo de bit est establecido. Si el buffer no est disponible, un cdigo de error se devuelve lo que la aplicacin puede volver a intentarlo ms tarde (el indicador de acarreo se borrarn.) Si la funcin tiene xito, se establece el indicador de acarreo. GetEPn devuelve los datos enviados desde el host. Llamar a esta funcin con la direccin inicial de los datos de ubicacin deseada se colocar en FSR / IRP. Si hay un buffer listo, es decir los datos se ha recibido desde el host, se copian en el destino al que apunta FSR / IRP. La funcin devolver el nmero de bytes copiados en el registro W. Si no se dispone de datos, se devuelve un cdigo de error (el indicador de acarreo est activada.) Si la funcin tiene xito, se establece el indicador de acarreo. ServiceUSBInt se ocupa de todas las interrupciones generadas por el perifrico USB. En primer lugar se copia el buffer activo en la memoria RAM comn que proporciona un rpido giro en torno a la memoria intermedia en la RAM de doble puerto y tambin evita tener que cambiar de banco durante el procesamiento de la memoria intermedia.

StallUSBEP / UnstallUSBEP establece o borra el bit de parada en el registro de control de punto final. El bit de parada indica al servidor que la intervencin del usuario es necesaria y hasta que dicha intervencin se hace, ms intentos de comunicarse con el punto final no ser un xito. Una vez que la intervencin del usuario se ha hecho, se UnstallUSBEP borrar el bit que permite la comunicacin tenga lugar. Estas llamadas se utilizan para indicar al servidor que la intervencin del usuario es necesaria. Un ejemplo de esto podra ser una impresora de papel. SoftDetachUSB borra el bit DEV_ATT, elctrica desconectar el dispositivo del bus, a continuacin, volver a conectar para que pueda ser re-enumerados por el anfitrin. Este proceso tarda aproximadamente 50 ms, para asegurarse de que el anfitrin ha visto el dispositivo de desconexin y vuelva a conectar al bus. CheckSleep pone a prueba la poco UCTRL.UIDLE que si se establece, indica que no ha habido ninguna actividad en el bus de 3 ms. Si se activa, el dispositivo puede ser puesto a dormir, lo que pone la parte en un modo de espera de bajo consumo hasta que despert la actividad del bus. Esto tiene que ser manejado fuera de la ISR, porque necesitamos la interrupcin de despertar del sueo de la PIC, y tambin porque la aplicacin no puede estar listo para dormir cuando la interrupcin ocurre. En cambio, la aplicacin peridicamente debe llamar a esta funcin con el fin de sondear el poco y averiguar si el dispositivo est en un buen lugar para dormir. Antes de la puesta a dormir, que permite la interrupcin de la actividad para que el dispositivo va a ser despertado por la primera transicin en el autobs. El PIC saltar inmediatamente a la ISR que se reconoce la interrupcin de la actividad cuando se desactiva la alarma y reanuda el proceso con la instruccin despus de la llamada CheckSleep. ConfiguredUSB (una macro) sondea continuamente los bits de estado enumeracin y espera hasta que el dispositivo ha sido configurado por el anfitrin. Esto se debe utilizar despus de la llamada a InitUSB y antes de la primera vez que la aplicacin intenta comunicarse en el autobs. SetConfiguration es una funcin de devolucin de llamada que permite su aplicacin a asociar algn significado a un comando de configuracin Ajuste del anfitrin. El C.9 tiendas de software en el valor USB_Curr_Config lo que se puede inform en una llamada Get_Configuration. Esta funcin tambin se le llama, pasando por la nueva configuracin en W. Esta funcin se llama desde el interior del ISR por lo que debe ser lo ms corto posible. 6. Detrs de las escenas: InitUSB borra los contadores de error y permite al regulador de 3,3 V y la interrupcin de reinicio USB. Este implementa el requisito para evitar que el PIC de responder a los comandos hasta que el dispositivo se ha restablecido. El anfitrin ve el dispositivo, y pone al equipo para iniciar el proceso de enumeracin. El restablecimiento se inicializa la tabla de descriptores de bfer (BDT) y Control de Registros EndPoint adems de permitir a las restantes fuentes de USB de interrupcin. Las transferencias de interrupcin de control para el vector de interrupcin (direccin 0x0004). Cualquier rutina de interrupcin debe preservar el estado del procesador de ahorro de la FSR que puede cambiar durante el proceso de interrupcin. Le recomendamos que guarde W, STATUS, PCLATH y FSR. W se pueden almacenar en la memoria RAM comn para evitar problemas de la banca. Luego comienza el sondeo de la bandera de interrupcin para ver lo que ha provocado la alarma. Las interrupciones de USB son atendidos llamando ServiceUSBInt que ms pruebas de las fuentes de interrupcin USB para determinar la forma de

procesar la interrupcin. A continuacin, el host enva una seal de configuracin solicita el descriptor del dispositivo. Los perifricos USB recibe la operacin de configuracin, coloca a la parte de datos en el buffer ep0 a cabo, las cargas de la USTAT registro para indicar qu extremo recibido los datos y activa el token de Hecho (TOK_DNE) de interrupcin. El Captulo 9 Comandos luego interpretar el smbolo de la instalacin y configura los datos para responder a la solicitud en el ep0 en el buffer. A continuacin, establece el bit UOWN decir la SIE no hay datos disponibles. A continuacin, el host enva una transaccin EN para recibir los datos de la operacin de instalacin. El SIE enva los datos de la ep0 en el buffer y luego establece la interrupcin Token hecho para notificar que los datos han sido enviados. Si hay datos adicionales, el pleno siguiente bfer se establece en el ep0 en el buffer. Esta secuencia de procesamiento de seal es vlido para la secuencia de enumeracin completa, que camina a travs del diagrama de flujo a partir del captulo 9 de la especificacin USB. El dispositivo comienza en el estado de energa, la transicin a RESET mediante la interrupcin de reset, las transiciones que han de abordarse a travs del comando Ajuste de la direccin, y las transiciones a configurar a travs de un comando de configuracin de Set. Los perifricos USB detecta varios errores diferentes y se ocupa de la mayora de los internos. La interrupcin USB_ERR notifica al PIC que ha producido un error. Ninguna accin es requerida por la PIC cuando se produce un error. En cambio los errores son simplemente reconocidos y contados. No existe un mecanismo para sacar el dispositivo del bus si hay demasiados errores. Si este comportamiento se desea se debe implementar en la aplicacin. La interrupcin de la actividad queda desactivada hasta que el perifrico USB no detecta ninguna actividad en el bus de 3 ms. A continuacin, se suspende el perifrico USB y permite la interrupcin de la actividad. La interrupcin de la actividad se reactiva el perifrico USB cuando la actividad se reanuda bus para el procesamiento puede continuar. CheckSleep es una llamada independiente que toma el bus inactivo un paso ms all y pone el PIC a dormir si el perifrico USB ha detectado ninguna actividad en el bus. Esto apaga la mayora de los dispositivos de consumo de corriente mnimo. Esta llamada debe ser hecha en un punto en el circuito principal, donde todo el proceso est completo. 7. Ejemplos Este ejemplo muestra cmo funciona el USB se utilizan. En este primer ejemplo se inicializa el perifrico USB que permite que el anfitrin para enumerar el dispositivo. El proceso de enumeracin se produce en el fondo, a travs de una rutina de servicio de interrupcin. Esta funcin espera hasta que la enumeracin es completa, y las encuestas de EP1 para ver si hay datos disponibles. Cuando un buffer est disponible, se copia en el bfer de IN. Es de suponer que su aplicacin podra hacer algo ms interesante con los datos de este ejemplo. ; ************************************************* ***************** , Programa de demostracin que se inicializa el perifrico USB, permite que el anfitrin , Para enumerar, a continuacin, copia buffers de EP1OUT a EP1IN. ; ************************************************* ***************** Principal pagesel InitUSB llamar InitUSB, establecer todo lo que se puede enumerar

pagesel principal ConfiguredUSB; esperar aqu hasta que hemos enumerado. CheckEP1; Compruebe punto final para una transaccin de una salida BUFFER bankisel, indican un descenso de los bancos pagesel GetEP1 movlw BUFFER movwf FSR; FSR apuntan a nuestro buffer llamar GetEP1; Si los datos estn listos, se pueden copiar. pagesel CheckEP1 ESTADO btfss, C, estaba all todos los datos para nosotros? Ir a CheckEP1; No, comprobar de nuevo. PutBuffer BUFFER bankisel, indican un descenso de los bancos pagesel PutEP1 movlw BUFFER movwf FSR; FSR apuntan a nuestro buffer movlw 0x08; enviar 8 bytes de punto final de un llamar PutEP1 pagesel PutBuffer btfss STATUS, C; fue exitoso? Ir a PutBuffer; No: vuelve a intentarlo hasta que tenga xito pagesel CheckEP1 Ir a CheckEP1; S: bucle de reinicio final

8. Mltiples descriptores de configuracin o Informe El firmware C.9 hace concesiones por el hecho de que ms de una configuracin o descriptor informe puede ser deseado. Subsidios para la interfaz de mltiples, HID, y los descriptores de punto final no se hicieron porque no son necesarios. Estos descriptores son todos ellos en el descriptor de configuracin, independientemente de cuntos hay. El sistema solicita la descriptores, especificando el tipo de descriptor que quiere y un valor de ndice. Si ms de un descriptor de configuracin existe va a pedir a la primera mediante la especificacin de un ndice de cero y la segunda mediante la especificacin y el ndice de uno. Para hacer este proceso lo ms fcil posible para los desarrolladores para hacer frente a las funciones y Config_descr_index Report_descr_index se han creado en descript.asm. Estas funciones deben ser modificados en su cdigo tiene ms de una configuracin o de ms de un descriptor informe. Todo lo que se necesita es para que especifique la etiqueta de partida para desriptors adicionales en la tabla de consulta para estas funciones. Nota: los descriptores de cadena tambin se utiliza una funcin de ndice, string_index (en descript.asm). Esta funcin tendr que ser modificado de la misma manera si el cdigo tiene un nmero de otras cadenas de seis. 9. La optimizacin del firmware Este firmware ha sido creado para ofrecer a los desarrolladores ya hechas las funciones USB para que no se tiene que crear estas funciones por s mismos. La mayora de los desarrolladores no utilizar todas las funciones en el firmware C.9. Con el fin de optimizar la memoria del programa, las funciones no utilizados pueden ser sacados del firmware. Las siguientes pautas son un buen lugar para iniciar la optimizacin.

USB estado en el puerto B. El firmware muestra el estado de la comunicacin en el puerto USB B. Esta caracterstica est diseada para uso con la tarjeta USB PICDEM circuito que acciona un LED con cada pin del puerto B. Los LED indican los siguientes datos USB estado: RB0 - potencia, RB1 - por defecto, RB2 - dirigida, RB3 - configurado, RB4 dormir, RB5 - ep0 activa, RB6 - EP1 activa, RB7 - EP2 activo. Obviamente, estos indicadores de estado del USB no vayan a utilizarse en un producto terminado por un desarrollador a pesar de que son muy tiles durante el desarrollo. Todo el cdigo asociado con el LED de estado USB se puede eliminar de la memoria del programa, asegurando que SHOW_ENUM_STATUS no se define en la parte superior de usb_ch9.asm. Contador de errores Al igual que en el estado de los LED USB, cdigo en el firmware que cuenta con varios errores para propsitos de depuracin. Para eliminar este exceso de cdigo de la memoria del programa simplemente asegurarse de que COUNTERRORS no est definido. GetEP1, GetEP2, PutEP1 y PutEP2 Estas funciones son todas las macros definidas en usb_defs.inc. Las instancias de cada una de estas macros se presentan en usb_ch9.asm. Si un desarrollador no utilizar uno o ms de estas funciones, el espacio puede ser salvado mediante la eliminacin de la instancia (s) no se necesita de usb_ch9.asm. De clase HID La clase HID es una de varias clases adecuadas para USB de baja velocidad. Adems de estas clases, una definida por el proveedor de clase puede ser especificado. Si un desarrollador utiliza una clase distinta de la clase HID, cualquier cdigo de clase HID especfico en el firmware sera desperdiciar espacio. El cdigo de clase HID especfico se encuentra en el archivo, hidclass.asm. En caso de que la clase HID no est siendo utilizado por un desarrollador, este archivo y las variables o etiquetas asociadas a l debe ser quitado del proyecto. 10. Demostracin del cursor Microchip ofrece una demostracin de trabajo USB. Esta manifestacin tiene el efecto de mover el cursor en un pequeo crculo en la pantalla del usuario. Los pasos siguientes tendrn la demostracin de trabajo con una parte real o el ICE MPLAB: Obtencin de la manifestacin USB para trabajar en un PIC16C745/65 1. Descomprimir usbxxxasm.zip a una carpeta de proyecto. 2. Generar el proyecto en MPLAB. 3. Un programa PIC16C765 utilizando un Plus PICSTART o un PRO MATE II. Asegrese de que los bits de configuracin se definen de la siguiente manera: Oscilador: H4 Watchdog Timer: Off Power Up Timer: Off Cdigo de Proteccin: Off Nota: Para programar un PIC16C745 tendr que utilizar el archivo enlazador y los ficheros asociados con el PIC16C745. Adems, tendr que identificar la parte del cuadro de dilogo modo de desarrollo. Consulte la Gua del Usuario MPLAB para ms detalles. 4. La figura en la parte inferior de esta seccin se detalla el circuito en el que para implementar el PIC. Conecte el cable USB a su computadora. 5. Proporcionar energa a la PIC. Si est ejecutando Windows 98 (con la actualizacin de USB), Windows NT o Windows 2000, entonces su sistema operativo detectar un nuevo dispositivo e instalar los controladores necesarios automticamente. Despus de esto se debera ver el cursor de rotacin en un pequeo crculo en la pantalla. Para detener el cursor de rotacin, desconecte el cable USB.

Obtencin de la manifestacin USB para trabajar con el ICE MPLAB 1. Descomprimir usbxxxasm.zip a una carpeta de proyecto. 2. Generar el proyecto en MPLAB. 3. Asegrese de que el emulador est configurado de la siguiente manera en el dilogo de modo de desarrollo: Herramientas: MPLAB-ICE emulador Reloj: la frecuencia deseada: 24 MHz Configuracin: temporizador Watch Dog: Ninguno Potencia: la potencia del procesador: Desde la Junta de destino Nota: El firmware est configurado para ejecutarse en un PIC15C765 como predeterminado. Para emular un PIC16C745 tendr que utilizar el archivo enlazador y los ficheros asociados con el PIC16C745. Tambin tendr que identificar la parte del cuadro de dilogo modo de desarrollo. 4. La siguiente figura muestra el circuito en el que para implementar el ICE. Conecte el cable USB a su computadora. (La parte de oscilador externo del circuito es opcional cuando se utiliza el ICE MPLAB.) 5. Ejecutar el proyecto en el emulador. Si est ejecutando Windows 98 (con la actualizacin de USB), Windows NT o Windows 2000, entonces su sistema operativo detectar un nuevo dispositivo e instalar los controladores necesarios automticamente. Despus de esto se debera ver el cursor de rotacin en un pequeo crculo en la pantalla. Para detener el cursor de rotacin, presione F5. Consejos de emulacin 1. A su vez en el emulador, a continuacin, abra el proyecto para iniciar el emulador. Si el proyecto se encuentra en un modo que no paso de emulacin de seguir 2. 2. Si su proyecto ya est abierto antes de encender el emulador se puede iniciar por primera inflexin en el emulador. A continuacin, vaya al men de opciones y haga clic en el modo de desarrollo. Asegrese de que el botn de emulador MPLAB-ICE de radio est seleccionado en la carpeta Herramientas del cuadro de dilogo modo de desarrollo. Haga clic en Aceptar. El emulador se inicializa. 3. Asegrese de que el mdulo del procesador adecuado y de adaptadores de dispositivos instalados. 4. Si tiene otros problemas por favor consulte la Gua de MPLAB-ICE usuarios como su primer recurso.

Você também pode gostar