Reglas | Envíos recientes | tema RSS | Buscar | Registro | Iniciar sesión

Proyecto para sustituir CY7C64613 en el ICD2


Ir a página Anterior 1, 2, 3, 4 ... 59, 60, 61 Siguiente
Ir a la página:

Post new topic Reply to topic EDAboard.com Índice Foro -> Microcontroladores -> Proyecto CY7C64613 para sustituir en el ICD2
Versión en árabe Búlgaro versión Versión en catalán Versión checa Versión danesa Versión alemana Versión griega Versión Inglés Versión en español Versión finlandesa Versión en francés Versión hindi Versión croata Indonesio versión Versión italiana Versión hebrea Versión en japonés Versión coreana Versión lituana Versión letona Versión neerlandesa Noruego versión Versión polaca Versión en portugués Versión rumana Versión en ruso Versión eslovaca Versión eslovena Serbio versión Versión sueca Tagalo versión Ucraniano versión Versión vietnamita Versión en chino
Autor Mensaje
Kripton2035



Antigüedad: 19 de julio 2001
Puestos: 482
Ayudó: 15
Ubicación: Tierra


Post 03 de abril 2006 8:28 Re: Proyecto para sustituir CY7C64613 en el ICD2

predrage escribió:
Mis amigos i no tuvieron éxito en la programación ICD2_4550_BOOT_0180.BIN en 4550. I'v
trató de abrir el archivo bin winpic 800 con el software, pero no. I tryed para abrirlo con la opción "todos los archivos" en "tipos de archivo" porque no hay apoyo directo a los archivos bin. ICprog que tienen el apoyo (para abrir los archivos bin), pero no puede programa 4550. De hecho no hay ninguna lista de dispositivos en 4550. ¿Qué debo hacer? Alguna sugerencia? Yo sólo soy un principiante pero tengo buena voluntad para ayudar.
Perdón por mi mala Inglés.


cambiar el nombre de la. BIN a. HEX winpic y que se abrirá!
a veces una gran cantidad de ficheros. BIN intelectual son en realidad. hexadecimal!
para estar seguro, abrir el archivo con el Bloc de notas, si contiene líneas que comienzan con ":" a continuación, cambie el nombre. hexadecimal y abierto con winpic .. si se trata de basura, luego un bin2hex se debe utilizar para abrirlo.
Volver arriba
narccizzo



Antigüedad: 20 de enero 2006
Puestos: 173
Ayudó a: 4
Ubicación: Pátzcuaro, Michoacán, MEXICO


Post 03 de abril 2006 9:42 Re: Proyecto para sustituir CY7C64613 en el ICD2

Estos son los dos archivos bin convertir en hexadecimal, he abierto la caja de archivos con el
ic-prog software i guardar los archivos en formato hexadecimal, si usted echa un vistazo a estos archivos se puede ver una cadena de lectura "Microchip ICD2 Tecnología icd2 usb Dispositivo USB" en la dirección 0x0ee7 para el archivo y boot.hex la misma cadena en el 0x0b8e para la
os.hex archivo, No tengo un desensamblador para explorar con más detalle estos ficheros pero algo me dice que estos dos archivos son todo lo que necesitamos.

BR
Narccizzo


Lo sentimos, pero necesita acceso para ver este archivo adjunto

Volver arriba
Jay.slovak



Antigüedad: 23 de marzo 2006
Puestos: 11


Post 03 de abril 2006 11:17 Re: Proyecto para sustituir CY7C64613 en el ICD2

narccizzo escribió:
Estos son los dos archivos bin convertir en hexadecimal, he abierto la caja de archivos con el
ic-prog software i guardar los archivos en formato hexadecimal, si usted echa un vistazo a estos archivos se puede ver una cadena de lectura "Microchip ICD2 Tecnología icd2 usb Dispositivo USB" en la dirección 0x0ee7 para el archivo y boot.hex la misma cadena en el 0x0b8e para la
os.hex archivo, No tengo un desensamblador para explorar con más detalle estos ficheros pero algo me dice que estos dos archivos son todo lo que necesitamos.

BR
Narccizzo


¿Estás seguro de que han convertido los archivos correctamente? Si yo importación en MPLAB, el código no tiene sentido, todo lo que hace es sólo ir a través del Programa de memoria y hacer PON. Nada de lo útil que está sucediendo en los dos de arranque y SO HEXs. Incluso los bits de configuración son diferentes en ambos archivos!
Volver arriba
Zedman



Antigüedad: 13 de octubre 2003
Puestos: 294
Ayudado: 2


Post 03 de abril 2006 11:19 de proyecto para sustituir CY7C64613 en el ICD2

Albert,

el núcleo conductor (s) de esperar, el ciprés se conectará en un VID / PID cuando firt conectado, y después de que el cargador de sistema de descargas es FW se vuelva como un VID / PID de manera que el sistema de otros habla con ella. Tenemos que aplicar sólo la segunda.
@ Iam trabajo por lo que no puedo hacer nada aquí esperamos duro pensando Rolling Ojos ...
Volver arriba
silvio



Antigüedad: 31 de diciembre 2001
Puestos: 800
Ayudó: 90


Post 03 de abril 2006 11:31 Re: Proyecto para sustituir CY7C64613 en el ICD2
Etiquetas: MPLAB protocolo icd2 ciprés desensamblador desensamblador ciprés

Hola Zedman,

it's a must to understand what's under cover. En cuanto a CY hexadecimal archivo no es sólo una cuestión de buena desensamblador que conoce el ciprés de chip, pero la lectura de 436 páginas-USB EZ FX TechRefManual es una necesidad para comprender lo que está bajo cubierta.
Y no creo que haya tiempo para ello. Sin embargo, si usted no está familiarizado con los opcodes 8051, al analizar el código va a tomar tiempo. (Sé que estás familiarizado con los PIC)
with appropiate values from CY7C64613 registers 0x7800-0x7FFF but you'll definitely end up turning the pages of TechRefManual looking for definitions. No puedo sustituir a todos los casos de MOV DPTR, # LXXXX con los valores adecuados de CY7C64613 registros 0x7800-0x7FFF pero definitivamente le acaban convirtiendo las páginas de TechRefManual buscando definiciones.
Además de que algunos la dificultad de asignar nombres de bits que se establecen o claro en el programa, siempre y cuando no se asigna en el espacio SFR (que termina en 0 o 8).
with MOV DPTR, #EP0CS but it's difficult to say SETB HSNAK due to the above reasons. Es fácil sustituir MOV DPTR, # L7FB4 con MOV DPTR, # EP0CS pero es difícil decir SETB HSNAK debido a las razones anteriormente mencionadas.

and EP0STAL L which are affected in the bellow code at 0x03E2. Tomemos el ejemplo HSNAK bits y EP0STAL L que se ven afectados en el código de abajo en 0x03E2.
Código:

L03E2: LCALL L0FBE
Del JNC L03EE
MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 01h; algún tipo de SETB EP0STALL
MOVX @ DPTR, A
L03EE: MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 02H; algún tipo de SETB HSNAK
MOVX @ DPTR, A
RET

L0FBE: SETB C
RET


Tomemos, por ejemplo (CP_1.asm) las líneas de código a partir de compensar 0x0100 (una subrutina es llamado desde 0x05FA), la primera línea de código utilizado immediatelly abajo tabla de vectores de interrupción
En RAM 0x7FE9 usted puede encontrar el 2 º byte de 8 bytes de paquetes de datos USB SETUP (consulte la página 215 table9-1), en el sentido de bRequest campo (véase el cuadro 9-2).


Código:

L0100: MOV DPTR, # L7FE9
MOVX A, @ DPTR
JNZ L0109
LJMP L029B, si bRequest = GetStatus saltar a 0x029B
L0109: DEC A
JNZ L010F
LJMP L0317; si bRequest = Borrar Artículo, el salto a 0x0317
L010F: AÑADIR A, # 0FEh
JNZ L0116
LJMP L038E, si bRequest = Conjunto de características, el salto para 0x038E
L0116: AÑADIR A, # 0FBh
JNZ L011D
LJMP L0295; si bRequest = Obtener configuración, salto a 0x0295
L011D: DEC A
JNZ L0123
LJMP L028F, si bRequest = Ajuste de configuración, el salto para 0x028F
L0123: DEC A
JNZ L0129
LJMP L0283; si bRequest = Obtener la interfaz, el salto a 0x0283
L0129: DEC A
JNZ L012F
LJMP L0289; si bRequest = Conjunto de interfaz, el salto a 0x0289
L012F: AÑADIR A, # 05h
JZ L0136
LJMP L03E2; = bRequest si ninguna de las anteriores, a continuación, establezca los bits HSNAK
y EP0STALL de EP0CS control y registro de estado y
y, a continuación, en 0x05FD RET
;
L0136: LCALL L0F7A; si bRequest = Obtener Descriptor, donde LCALL 0x0F7A
JC L013E; llevar poco está configurado de forma predeterminada, a fin de saltar a 0x013E
LJMP L03EE; si al llevar 0x0F7A sería 0 por defecto, fijado poco HSNAK
; EP0CS de control y registro de estado y RET en 0x05FD
;
L013E: MOV DPTR, # L7FEB; aquí porque era un bRequest Obtener Descriptor
MOVX A, @ DPTR, por lo que comprobar el campo de la WValueH USB SETUP paquete
AÑADIR A, # 0FEh
JZ L015F, si wValueH fue 0x02 saltar a 0x015F
DEC A
JZ L0190; si wValueH fue 0x03 salto a 0x0190
AÑADIR A, # 02H
JZ L0150; si wValueH fue 0x01 salto a 0x0150
LJMP L0279; wValueh si es diferente de cualquiera de 0x01 o 0x02 o 0x03 luego
; bits HSNAK y EP0STALL de registro y EP0CS RET en 0x05FD
;
L0150: MOV A, 0Ch; aquí porque wValueH fue 0x01, de modo de carga USB SUDPTR registro mundial
MOV DPTR, # L7FD4; con valor 0x0C0D, luego poco HSNAK de EP0CS y RET en 0x05FD
MOVX @ DPTR, A
MOV A, 0DH
MOV DPTR, # L7FD5
MOVX @ DPTR, A
LJMP L03EE
L015F: MOV DPTR, # L7FEA; mirada ahora en el ámbito de la wValueL USB SETUP paquete
;
;
;
;
, etc ...................


port2: Microchip MPLAB ICD2 Fw client Esta tabla de búsqueda o en el desplazamiento 0x0622 que coincidan con el Kripton2035 port2: Microchip MPLAB ICD2 Fw cliente


Código:

Tabla 5-9. Dispositivo USB predeterminado Descriptor

Valor de compensación de RAM Campo Descripción

0622 0x12 blength 0 Longitud de la presente Descriptor = 18 bytes
0623 0x01 1 bDescriptorType Descriptor = Tipo de dispositivo
0624 0x00 2 bcdUSB (L) USB Specification Version 1.10 (L)
0625 0x01 3 bcdUSB (H) USB Specification Version 1.10 (H)
0626 0xFF 4 bDeviceClass Device Class (FF es específica del proveedor)
0627 0xFF 5 bDeviceSubClass Sub-clase de dispositivos (FF es específica del proveedor)
0628 0xFF Dispositivo 6 bDeviceProtocol Protocolo (FF es específica del proveedor)
0629 0x40 7 bMaxPacketSize0 Tamaño máximo de paquete de 64 bytes = EP0
062A 0xD8 8 idVendor (L) Identificación de proveedores (L) = 04D8H Microchip Tecnología
062B 0x04 9 idVendor (H) Identificación de proveedores (H)
062C 0x01 10 idProduct (L), ID del producto (L) ICD2 = 8001H
062D 0x80 11 idProduct (H) ID del producto (H)
062E 0x03 12 bcdDevice (L) Número de dispositivos de lanzamiento (BCD, L)
062F 0x00 13 bcdDevice (H) Número de dispositivos de lanzamiento (BCD, H)
0630 0x00 14 iManufacturer Fabricante Índice String = Ninguno
0631 0x00 15 iProduct Product Index String = Ninguno
0632 0x00 16 iSerialNumber número de serie del Índice String = Ninguno
0633 0x01 17 bNumConfigurations Número de Configuraciones en esta interfaz = 1

Tabla 5-10. USB configuración predeterminada Descriptor

Valor de compensación de RAM Campo Descripción

0634 0x09 blength 0 Longitud de la presente Descriptor = 9 bytes
0635 0x02 1 bDescriptorType Descriptor = Tipo de configuración
0636 0x74 2 wTotalLength (L) Longitud total (L) Incluye la interfaz y punto final Descriptores = 116
0637 0x00 3 wTotalLength (H) Longitud total (H)
0638 0x01 4 Número de Interfaces bNumInterfaces en esta configuración
0639 0x01 5 bConfigurationValue configuración valor utilizado por Set_Configuration Seleccione esta Solicitud de configuración
063A 0x00 6 iConfiguration Índice de String Describiendo esta configuración = Ninguno
063B 0x80 7 bmAttributes Atributos - Bus-Powered, no despertador
063C 0x4B 8 MaxPower Potencia máxima - 150 mA

Tabla 5-11. Interfaz USB predeterminado 0, Suplente Configuración 0 Descriptor

Valor de compensación de RAM Campo Descripción

063D 0x09 blength 0 Longitud de la interfaz Descriptor
063E 0x04 1 bDescriptorType Descriptor = Tipo de interfaz
063F 0x00 2 bInterfaceNumber Índice de base cero de esta interfaz = 0
0640 0x00 3 bAlternateSetting otro Ajuste Valor = 0
0641 0x0E 4 bNumEndpoints Número de puntos finales en esta interfaz (sin contar OEP) = 14
0642 0xFF 5 bInterfaceClass = Interfaz de la clase de proveedores específicos
0643 0xFF 6 bInterfaceSubClass Interfaz Sub-class = Vendor Specific
0644 0xFF 7 bInterfaceProtocol = Interfaz de Protocolo de proveedores específicos
0645 0x00 8 Índice de la Cadena iInterface Descriptor para este Interface = Ninguno

Tabla 5-14. Interfaz por defecto 0, Suplente Configuración 1, punto final a granel Descriptores

Valor de compensación de RAM Campo Descripción

0646 0x07 0 Longitud blength de este parámetro Descriptor
0647 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
0648 0x01 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = OUT1
0649 0x02 3 bmAttributes XFR = Tipo A GRANEL
064A 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
064B 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
064C 0x01 6 bInterval intervalo de sondeo en milisegundos

064D 0x07 Longitud 0 blength de este parámetro Descriptor
064E 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
064F 0x02 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = OUT2
0650 0x02 3 bmAttributes XFR = Tipo A GRANEL
0651 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
0652 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
0653 0x01 6 bInterval intervalo de sondeo en milisegundos

0654 0x07 0 Longitud blength de este parámetro Descriptor
0655 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
0656 0x03 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = OUT3
0657 0x02 3 bmAttributes XFR = Tipo A GRANEL
0658 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
0659 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
065A 0x01 6 bInterval intervalo de sondeo en milisegundos

065B 0x07 Longitud 0 blength de este parámetro Descriptor
065C 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
065D 0x04 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = OUT4
065E 0x02 3 bmAttributes XFR = Tipo A GRANEL
065F 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
0660 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
0661 0x01 6 bInterval intervalo de sondeo en milisegundos

0662 0x07 0 Longitud blength de este parámetro Descriptor
0663 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
0664 0x05 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = OUT5
0665 0x02 3 bmAttributes XFR = Tipo A GRANEL
0666 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
0667 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
0668 0x01 6 bInterval intervalo de sondeo en milisegundos

0669 0x07 0 Longitud blength de este parámetro Descriptor
066A 0x05 1 bDescriptor Tipo Tipo Descriptor = Punto final
066B 0x06 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = OUT6
066C 0x02 3 bmAttributes XFR = Tipo A GRANEL
066D 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
066E 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
066F 0x01 6 bInterval intervalo de sondeo en milisegundos

0670 0x07 blength Longitud 0 de este parámetro Descriptor
0671 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
0672 0x07 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = OUT7
0673 0x02 3 bmAttributes XFR = Tipo A GRANEL
0674 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
0675 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
0676 0x01 6 bInterval intervalo de sondeo en milisegundos

Valor de compensación de RAM Campo Descripción

0677 0x07 0 Longitud blength de este parámetro Descriptor
0678 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
0679 0x81 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = IN1
067A 0x02 3 bmAttributes XFR = Tipo A GRANEL
067B 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
067C 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
067D 0x01 6 bInterval intervalo de sondeo en milisegundos

067E 0x07 Longitud 0 blength de este parámetro Descriptor
067F 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
0680 0x82 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = IN2
0681 0x02 3 bmAttributes XFR = Tipo A GRANEL
0682 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
0683 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
0684 0x01 6 bInterval intervalo de sondeo en milisegundos

0685 0x07 0 Longitud blength de este parámetro Descriptor
0686 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
0687 0x83 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = IN3
0688 0x02 3 bmAttributes XFR = Tipo A GRANEL
0689 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
068A 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
068B 0x01 6 bInterval intervalo de sondeo en milisegundos

068C 0x07 Longitud 0 blength de este parámetro Descriptor
068D 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
068E 0x84 2 bEndpointAddress extremos Dirección (1 es) y dirección IN4 =
068F 0x02 3 bmAttributes XFR = Tipo A GRANEL
0690 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
0691 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
0692 0x01 6 bInterval intervalo de sondeo en milisegundos

0693 0x07 0 Longitud blength de este parámetro Descriptor
0694 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
0695 0x85 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = IN5
0696 0x02 3 bmAttributes XFR = Tipo A GRANEL
0697 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
0698 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
0699 0x01 6 bInterval intervalo de sondeo en milisegundos

069A 0x07 blength Longitud 0 de este parámetro Descriptor
069B 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
069C 0x86 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = IN6
069D 0x02 3 bmAttributes XFR = Tipo A GRANEL
069E 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
069F 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
06A0 0x01 6 bInterval intervalo de sondeo en milisegundos

06A1 0x07 Longitud 0 blength de este parámetro Descriptor
06A2 0x05 1 bDescriptor Descriptor Tipo Tipo = Punto final
06A3 0x87 2 bEndpointAddress Dirección Punto final (1 en) y Dirección = IN7
06A4 0x02 3 bmAttributes XFR = Tipo A GRANEL
06A5 0x40 4 wMaxPacketSize (L) Tamaño máximo de paquete = 64 Bytes
06A6 0x00 5 wMaxPacketSize (H) Tamaño máximo de paquete - Alto
06A7 0x01 6 bInterval intervalo de sondeo en milisegundos

que es seguido por Unicode forma de cadena que terminó cero
"Tecnología de Microchip ICD2 USB Device"



Sin embargo, si te quedas atascado con bin 4550, puedo tratar de ayudar mediante la adición de comentarios en el archivo asm CY.
Volver arriba
Zedman



Antigüedad: 13 de octubre 2003
Puestos: 294
Ayudado: 2


Post 03 de abril 2006 17:10 Re: Proyecto para sustituir CY7C64613 en el ICD2
Etiquetas: icd2.dll

Hola Silvio,

gracias por la información, mucho tiempo atrás he tenido que analizar un archivo bin procedentes de un chip EPROM. Ni siquiera el tipo de procesador no se ni el circuito. Pero yo tenía que encontrar la forma en que se trata de una tarjeta de memoria, y sus datos.
Yo daba por supuesto que es una especie de chip de 8051 y trató de disassemblers mucho, y terminó con un 80C542 (i cant recordar que fue precisamente uno) Yo pense que a partir de los números de puerto y la forma en que el código se ocupa de los pines del puerto.
Sin embargo, tomó 2 semanas de trabajo de día y de noche Neutral para mí, mucho de la lectura / depuración / aprendizaje.
Por eso yo quería un ensamblador lo que es capaz de hacer las cosas que se menciona en lugar conmigo ... Very Happy
Gracias de nuevo Silvio.

-----------------------------

Iam empezando a creer que todos, de acuerdo con bin. Hice una investigación en ICD2 dll y descubrió que las llamadas GETUSBDESCRIPTOR y números de los controles en el descriptor y si coincide con la versión más reciente ICD2 que firmé en mi Descriptor de 4550 de lo que hace un llamamiento send4550image!
Y también hay descriptores de archivos en la papelera idéntica a la que Kripton subido.
Una cosa que no entiendo es ¿por qué enviaron a la imagen de arranque?
¿Y por qué ICD2.dll Intenta descargar este archivo? Si yo llegue a casa, voy a tratar de definir mi descriptores para que coincida con el que encontré en la caja y tratará MPLAB en él.

Creo que se están acercando! Fresco

Creado después de 46 minutos:

Y hay una cosa de magia en el primer arranque de la btyes bin: MCHP (microchip?)
He buscado por él, si es más tarde (después de la carga) reemplaza estos con GOTO verdadero punto de entrada o primera, pero en el ICD2.dll no.

Creado después de 3 horas 34 minutos:

Mira esto:

Hice lo que he dicho antes, acaba de establecer el número de versión a la más nueva y que espera MPLAB trata de enviar el sistema operativo! (Por supuesto que mi FW no es un gestor de arranque)

Código:

MPLAB ICD 2 Listo
Conexión a MPLAB ICD 2
ICD0289: No se puede volver a programa ICD2 USB OS firmware.
ICD0021: Unable to connect with MPLAB ICD 2
MPLAB ICD 2 Listo


De alguna manera el gestor de arranque debería trabajar, voy a tratar de hacer algo por la noche.
Volver arriba
narccizzo



Antigüedad: 20 de enero 2006
Puestos: 173
Ayudó a: 4
Ubicación: Pátzcuaro, Michoacán, MEXICO


Post 03 de abril 2006 18:43 de proyecto para sustituir CY7C64613 en el ICD2

Hola JaySlovak
No, Im no está seguro, sólo me abrió la caja y guárdelo en formato hexadecimal. Triste
Volver arriba
Jay.slovak



Antigüedad: 23 de marzo 2006
Puestos: 11


Post 03 de abril 2006 20:45 Re: Proyecto para sustituir CY7C64613 en el ICD2

narccizzo escribió:
Hola JaySlovak
No, Im no está seguro, sólo me abrió la caja y guárdelo en formato hexadecimal. Triste


Sí, es raro que la cadena es legible, sólo el código no hace nada Triste
Volver arriba
Zedman



Antigüedad: 13 de octubre 2003
Puestos: 294
Ayudado: 2


Post 03 de abril 2006 22:25 Re: Proyecto para sustituir CY7C64613 en el ICD2
Etiquetas: icd2.dll

Buenas noticias, después de 2 horas de depuración,

ICD2.dll hace uso tanto de bin. El archivo de sistema operativo quiere ser descargados solamente a ICD2s nuevo producto con número de serie.
PERO cuando se modifique el ID de la versión en el nombre del archivo de OS.bin * _FFFF.bin para que empiece a comprobar la versión de arranque buscar:

Código:

Conexión a MPLAB ICD 2
ICDWarn0062: El USB de arranque del firmware de la ICD2 es activa y la prestación de las comunicaciones con el ICD2. Este firmware es obsoleta y debe actualizarse. No puede ser actualizado al mismo tiempo activo. Sin embargo, puede seguir funcionando con el firmware actual de arranque, si decide hacerlo. ¿Desea continuar?


Si yo pulse YES aquí de lo que intenta conectarse a ICD2 sí mismo, y se bloquea (sólo he instalado aún el 4550).
Si yo pulse NO de lo que parece que intenta actualizar, pero que necesitamos un gestor de arranque de este tipo, por lo que este mensaje aparece:

Código:

ICD0288: No se puede volver a programa ICD2 USB de arranque de firmware.
ICD0021: No se puede conectar con MPLAB ICD 2
MPLAB ICD 2 Listo


Bueno chicos, pensar pensar pensar cómo podemos utilizar ese bin para obtener un trabajo de gestor de arranque en un 4550!

Creado después de 2 minutos:

También compiló la muestra con el gestor de arranque correcto VID / PID, pero tiene los mismos resultados que con mi 4550.

Creado después de 16 minutos:

Puede ser, que no podemos obtener la primera inicial inicial:) parte del gestor de arranque que carga el primer gestor de arranque que carga el sistema operativo ...

Creado después de 5 minutos:

Este es el momento en que rkodaira debe volcar su 4550 para el nivel 0 de arranque. (con una gran esperanza de que no está protegido ...)

Rkodaira Te necesitamos Sonreír
Volver arriba
albert22



Antigüedad: 20 de julio 2004
Puestos: 95
Ayudado: 3


Post 03 de abril 2006 22:46 Re: Proyecto para sustituir CY7C64613 en el ICD2

He sido el análisis de una impresión que tengo conmigo de la BL010101. y encontrar algunas cosas.
Parece aceptar comandos próximos 5 a partir de la PSP o el USART.
0x55 ejecutar código a partir de 0x0010.
0x56 Carga hexadecimal (esto parece haber una mayor subcommands)
0x5a envía los datos 0x01 0x01 0x03 (Versión de la BL?)
Otros dos comandos a su vez en el error y ocupado Leds y cuelga en un bucle inffinite.

Las siguientes rutinas están relacionadas con lo que he llamado la "carga hexadecimal" comando:

En otra rutina la BL envía la siguiente serie de caracteres 0x5b ", 0810C9", 0x5d
Otras respuestas envía Embebido en la siguiente serie de caracteres 0x5b, "0A000", U, 0x31, U, 0x5d. (donde U parece ser 0x31, 0x34, 0x36 y 0x37).

I didnt tienen mucho tiempo para continuar con el análisis. Yo no vi USB vigilancia que han sido enviados ya Im que en un cyber. Pero creo que estos datos deben ser embalados en la comunicación USB
Volver arriba
Zedman



Antigüedad: 13 de octubre 2003
Puestos: 294
Ayudado: 2


Post 03 de abril 2006 23:30 de proyecto para sustituir CY7C64613 en el ICD2

Albert,

Lo comprobé la serie frente a la comunicación USB, USB utiliza una envoltura a través de la serie cosa.
Parece que utiliza EP1 de puerto de control (es OUT y IN) y EP2 como puerto de datos, sólo en (CIE-> pc).
Volver arriba
albert22



Antigüedad: 20 de julio 2004
Puestos: 95
Ayudado: 3


Post 05 de abril 2006 6:39 Re: Proyecto para sustituir CY7C64613 en el ICD2

Aquí están mis avances con la BL
No hubo tal subcommands. La carga hexadecimal sólo toma el mando hexagonal registros y escribe los datos a la memoria del programa de 2 bytes a la vez. Comprueba para distintos errores como la gama de la dirección. Ap. para evitar la intensificación en el programa de BL. Esto confirma que la BL es siempre residente en la 877.
El [0A000 ", U, 0x31, U]. (La 2 ª U es la primera U 1) es poco probable que sea visto, porque es un informe de errores. Los errores son: mal formato, de verificación, la mala dirección y el rango de error de escritura EEPROM .
La rutina espera a 16 caracteres a partir de una 0x3c ('<') y terminando con un 0x3e ('>'). esta cabecera de 16 caracteres de contener la dirección, longitud y de comprobación de los datos a ser escritos en ASCII.
Si es correcta la cabecera Ap. respuestas con la BL "[0810C9]"
Los datos acompaña después de un 0x7B
Este formato parece ser diferente de un intelectual formato hexadecimal.

Zedman.
Puede ser que usted reconoce algo como esto en el RS232
Mañana será en mi casa y poder instalar hdd, para comprobar los registros y ver si puede ser de ninguna ayuda.
Volver arriba
Zedman



Antigüedad: 13 de octubre 2003
Puestos: 294
Ayudado: 2


Post 05 de abril 2006 12:17 Re: Proyecto para sustituir CY7C64613 en el ICD2
Etiquetas: MPLAB protocolo icd2 icd2.dll icd2w2k.sys mplbcomm.dll

Estoy pegado con esta cosa USB. Y estoy triste.

En realidad no sé qué hacer. Pasé mucho tiempo a la depuración icd2.dll.

El problema es: No puedo enviar un byte, incluso volver a MPLAB.

Voy a explicar lo que he encontrado hasta ahora, aunque no realmente interesado en un (solo quieren agarrar acabado cosa). (Excepto: albert, Kripton, rkodaira, Silvio, y los chicos en este hilo)

Por lo tanto, se comunica con el MPLAB ICD2 de esta manera:

[MPLAB -> ICD2.dll -> MPLBCOMM.dll -> icd2w2k.sys ->] --- [ICD2 dispositivo]

Si usted elige el tipo de conexión USB le pedirá el dispositivo de la Descriptor ICD2 y comprueba la versión del producto palabra, si es 0x0003 que se trata de un ciprés ICD2 basado, si es 0x0010 que es una basada en un 4550. 0x0010 encontró que si se dice lo que he sido enviado antes de que el sistema operativo en el ICD2 debe ser actualizado. Es interesante que si la versión (0100) en el nombre del archivo de la OS.bin FFFF se ha modificado para que lo que se salta este paso y se comprueba la versión de arranque. Aquí tuve que ICD2.dll parche para que tratar de comprobar la versión del archivo BL.bin demasiado, es que incluso hardcoded es ajustado a FFFF no lo puedo tratar de mejorar, por eso es parcheado (hardcoded conjunto FFFF a menor) por lo que ahora dice lo que yo también antes de mentoined: bl la versión es demasiado antigua, pero no se puede actualizar mientras que la activa.

Bien. Hice un pequeño progreso de la muestra de arranque, con los descriptores de corregir y tratar de comunicarse con MPLAB con el fin de descifrar el protocolo y para emular el BL en el nuevo 4550 ICD2.
ICD2 que Kripton usos, (versión ciprés) establece 7 / EN extremos, pero de acuerdo a los registros que usa sólo para EP1 IN / OUT y EP2 de EN. (FUERA medio de PC-> Dispositivo)
Parece que envía el usb comandos específicos y datos a través de EP1, y de nuevo en el EP1, y envía los bytes de la ICD2 leida 877 a través de la variable independiente EP2 pulg

Cuando intenta enviar MPLAB º OS.bin para mejorar el FW os emite una llamada a getUSBdescriptor el núcleo conductor, y envía un comando 0x12 bytes de longitud utilizando DeviceIoControl comando. I depurado, que llega con éxito a la 4550.
MPLAB cuestiones que GetStatus una llamada, y parece que los parámetros de la llamada que espera 0x08 bytes de datos de vuelta.
Puse mi tampón con 8 bytes, y establecer la propiedad a SIE. Pero nunca que envía 8 bytes atrás (que no aparece en USBMon). Sólo espera.
No puede haber muchas cosas.
Tal vez hago mal en la primera configuración de 4550, pero he intentado con otra progs y funciona, puede enviar octetos espalda.
Sé que el anfitrión debe enviar en el comando y el dispositivo para que envíe en lo que quiere.
Pero cuando depurado MBLBCOMM, vi que el comando no DeviceIoControl!
I tought inteligencia que tal vez algunos se construyó en el. Sistema de archivo y se descarta el paquete, debido a que está mal el contenido, pero creo que debería ser una tarea de nivel superior.
Cuando llegue a casa voy a comprobar el valor de GetLastError.


Alguien tiene alguna idea de cómo puedo ver si hay un paquete enviado en, o ¿cómo puedo ejercer?
Volver arriba
Kripton2035



Antigüedad: 19 de julio 2001
Puestos: 482
Ayudó: 15
Ubicación: Tierra


Post 05 de abril 2006 16:59 de proyecto para sustituir CY7C64613 en el ICD2

puede ser que usted debe conectar el 877 a un puerto de la PSP 4550 para ver lo que viene a través de, y el programa 877 con el gestor de arranque que tenemos? puede ser el acontecimiento que espera octetos proceden de la EP2, por lo que el 877?

¿Quieres que enviar otro archivo de registro de una condición precisa? por la forma en que el seguro que necesita un rokaida registro de 4550 con su icd2 ..

PS: No estoy interesado en ese proyecto .. Sonreír Soy sólo curiosidad! Ya tengo una usb icd2! Sonreír
Volver arriba
Zedman



Antigüedad: 13 de octubre 2003
Puestos: 294
Ayudado: 2


Post 05 de abril 2006 20:08 de proyecto para sustituir CY7C64613 en el ICD2

Gracias Kripton,

Yo le avise cuando necesita más volcado Sonreír , Es un poco más compleja de lo que acaba de pasar por los bytes a 877 y de vuelta, tiene un protocolo en el mismo envoltorio.
Lo que usted dice es muy útil, pero rkodeira costumbre sacrify su nuevo ICD2 ... Sonreír Si él, que con el volcado de su proceso de actualización de sistema operativo se podría definir el protocolo de ...
Volver arriba
Kripton2035



Antigüedad: 19 de julio 2001
Puestos: 482
Ayudó: 15
Ubicación: Tierra


Post 05 de abril 2006 22:09 de proyecto para sustituir CY7C64613 en el ICD2

No pienso así que necesita para sacrify su icd2! sólo algunos vertederos con usbmon como yo lo hice .. ojalá mi icd2 sigue trabajando!
Volver arriba
albert22



Antigüedad: 20 de julio 2004
Puestos: 95
Ayudado: 3


Post 05 de abril 2006 22:16 Re: Proyecto para sustituir CY7C64613 en el ICD2
Etiquetas: icd2 hexadecimal comando de carga

No puedo instalar HHD monitor para ver los registros, porque sólo tengo W98 en casa.
¿Se puede exportar un volcado del sistema operativo para descargar un archivo. Txt, para mí?
-------
¿Cómo la CIA restablece el 877?
Hay una señal (patilla 43) a la base de Q1 que el colector es MCLR. Pero esto va a un conector llamado PROG. Ahora se dan cuenta de que esta señal debe ir a la 877 también.
Tendríamos que saber qué USB comando restablece el 877. Puede ser lo que es una de las variables de control?
No sé cuál es la función de este conector PROG. pero los criterios de valoración adicional puede estar relacionado con ella.
----------
Uno de cargar el sistema operativo a la ICD2 parece ser: ICD01020405.hex he intentado disassemby, pero no puedo obtener el desensamblador para sustituir a la hexagonal de direcciones con el nombre de los registros. Se tendrá más tiempo para averiguar cómo funciona.
Un hecho interesante es que el código comienza en 0x0010. Recuerde que el BL llama a esta dirección con el comando ejecutar.

BL informó la versión de MPLAB es 01.01.01.00 este va bastante bien con el comando que BL respuestas 01,01,01,03
---------
No hay DPot (MCP41xxxx) brasileño en el CIE. ¿Cómo establecer Vpp?
La mayoría de los clones tienen un Vpp. ¿Esto significa que el brasileño CIE no es más que una de bajo costo y no el clon nuevo ICD2? No pienso que fue por un microchip fijo Vpp. Si no hay otro método de control de la Vpp, distinta de la DPot tendría cambios de firmware de la CIE OS. El viejo sistema operativo no funcione en el nuevo. Que puede ser la causa de que el archivo DLL está comprobando la versión.
Volver arriba
Zedman



Antigüedad: 13 de octubre 2003
Puestos: 294
Ayudado: 2


Post 05 de abril 2006 22:32 de proyecto para sustituir CY7C64613 en el ICD2
Etiquetas: MPLAB protocolo icd2 icd2w2k.sys icd2w2k descargar 4550 gestor de arranque escribir icd2w2k.sys download descargar icd2w2k

No creo que debería ocuparse de nada en relación con el protocolo o circuito o conexión entre 877 y 4550 todavía. Creo que todo lo que necesitamos está escrito en el 4550 se suministra con MPLAB papeleras.
Tenemos que escribir un gestor de arranque compatible con el icd2w2k.sys para obtener el OS.bin descargado, y después de que podamos scracth la cabeza la forma en que el 877 está conectado.

Creado después de 5 minutos:

En ICD2br utiliza otro tipo de chip que genera el Vpp. Rkodaira mentoined, compruebe antes los puestos.
Volver arriba
silvio



Antigüedad: 31 de diciembre 2001
Puestos: 800
Ayudó: 90


Post 06 de abril 2006 2:36 Re: Proyecto para sustituir CY7C64613 en el ICD2
Etiquetas: icd2w2k.sys icd2w2k descargar 4550 gestor de arranque escribir icd2w2k.sys download descargar icd2w2k

Zedman escribió:

Tenemos que escribir un gestor de arranque compatible con el icd2w2k.sys para obtener el OS.bin descargago.


Sí, esta es la principal razón por la cual me dice que dissasembling CY FW es inútil mientras tengamos el sistema operativo y BL bin proporcionada por Microchip. Para iniciar la codificación desde cero para 4550 y simular el CY FW sería tiempo y valor.
Soy consciente de que la zedman sus esfuerzos.

Sin embargo a veces no puedo ayudarme a mí mismo a pedir esta pregunta estúpida: Si el BL no se puede actualizar al mismo tiempo es activo, lo que se Microchip ICD2 diseñadores del enfoque para una actualización? Paralelamente programador de soldadura antes de 4550? O mediante ICSP con una imagen de bin descargado después del bloque de arranque borran?
Si se encuentra que rkodaira del CPB y EBTRB bits están habilitados Muy triste o llorar , Entonces ¿cómo puede ser cargado OS.bin en 4550? Empiezo a preguntar como tú: ¿por qué enviaron a la imagen de arranque?
Or, as Jay.slovak said "the string is readable, just the code does nothing" because it's encrypted and makes sense only for original boot code.
So, the only solution is to simulate the 4550's bootloader and get the mirror bin image of OS ?
Volver arriba
albert22



Joined: 20 Jul 2004
Posts: 95
Ayudado: 3


Post 06 Apr 2006 4:36 Re: Project to replace CY7C64613 in the ICD2
tags: mplab protocol icd2

Quote:
In ICD2br uses another kind of chip which generates the Vpp. Rkodaira mentoined, check the posts before.

I didnt mean the MIC2175, which is a switching regulator as the MC34063. I was aiming at the DPOT and specifically to its I2C interfase because it requires the support of the firmware in the 877 to set the correct Vpp voltage. As I said before if the new ICD2 relies in other component to change the Vdd, all the firmware needs to change.

May be Rkodaira could check ithe circuit associated with pin 3 (FB) of the MIC2172 to see if vpp can be controlled or it is fixed.

Let me make my statement a little clear. If the Brazilian ICD has no control of Vpp it is highly probable that it is just a clone. In that case there is no warranty that the real new ICD2 is based on a 4550 and a 877. It could be just a 4450 alone for example (why not) in that case the following statement would not be true.
Quote:
I think ALL we need is written in the 4550 bins supplied with MPLAB.

As we dont know for sure the arquitecture of the new ICD we need to emulate the CY. However chances are that the 4550BINs will still be usefull to solve the USB protocol. I tried to disassemble it today but found nothing coherent yet.

To the question:
Quote:
why did they supplied the boot image ?

They supplied the BL010101.hex which needs to be programmed at the factory for the ICD to work.[/quote]
Volver arriba
Zedman



Joined: 13 Oct 2003
Posts: 294
Ayudado: 2


Post 06 Apr 2006 11:48 Re: Project to replace CY7C64613 in the ICD2
tags: icd2 load hex command

Silvio,

the BL cannot be upgraded thing was a little trick. Actually MPLAB is set to check the BL's version against 0xFFFF, and if 0xFFFF (it's only a word) is lower than it will try to upgrade the bootloader. So it wont ever get here, because larger number than 0xFFFF cannot be set on a word. So I patched it to skip this test and try to do it, but anyway it's a BUILT IN function in MPLAB! It CAN update the boot image too. I just patched the version check out.
But think: it's not accidentaly set to 0xFFFF, they may not want to use this function yet.
According to the OS.bin file, if the product version is 0x0010 than it's downloaded all the time. Maybe 0x0010 is the BL's version only, and set to lower when OS will run in it! The OS.bin's version is also checked against 0xFFFF. If it's equals to 0xFFFF it's starts the checking for the BOOT.bin file as I mentoined above.

I'll check how it handles the active check when it complains about "it cannot be upgraded while active".

Another strange thing is if the original bootloader handles the decryption of the OS.bin image, than it will be a nice thing to clone... Anyway there is no processing on the .bin files in the software as I saw.

the DeviceIOControl command returns 0x57: The parameter is incorrect. (ERROR_INVALID_PARAMETER)

If we get the OS.bin downloaded than we can read it back with another icd2 and see how it works.

Albert,

they wont change the 877 firmware. They have a lot of hexs supplied with MPLAB should work with both versions. They may do minor changes, but thats all.
Sorry I misunderstood that DPOT thing.
The question "Why they supplied the boot image?" I asked was for the 4550_boot.bin file.
Volver arriba
rkodaira



Joined: 08 Jun 2004
Posts: 332
Helped: 54
Location: Sao Paulo - Brasil


Post 06 Apr 2006 14:19 Re: Project to replace CY7C64613 in the ICD2

Hi guys !

Bad news. I could not install the USB monitor in my PC with Windows98SE, because it doesn´t accept to be installed. I think it (if installed) wouldn´t make any damage to my ICD2, but i could not test it.

About the Vpp control, I think that there is only the high voltage generator for Vpp and there is another way to control this voltage. I don´t know if the DG411 has this role, and there is a power mosfet also in the circuit.

I don´t think my clone is the new ICD2 from Microchip. I suppose the local manufacturer only made a clone using more available parts and making some changes in the firmware to adequate the new parts. Sorry I cannot make any attempt to read the 18F4550 contents.

Added after 15 minutes:

One more thing:

I tried to build the PICKIT2 programmer (onlu the basic part: the PIC, crystal and some connections) some weeks ago. It has the schematic and "all" the software available for download in the Microchip pages. I bought some 18F2550 and programmed with the firmware provided. I installed the programmer software and connected the hardware to the USB port. The PC recognized it once but the software did not. I think that there is something missing in the package, that blocks the programmer to communicate with the software. Could be the same case be happening with the hex files provided for the ICD2 ? Or in other words: Microchip does´t provide the complete code for the ICD2.
Volver arriba
albert22



Joined: 20 Jul 2004
Posts: 95
Ayudado: 3


Post 06 Apr 2006 18:26 Re: Project to replace CY7C64613 in the ICD2

Please
Can somebody export to .txt the USB log files captured by HDD monitor?
I cannot install this soft at my home. Otherwise Ill have to wait until next week to read them on my PC at work. I am now studying the protocol between the CY and the 877 OS.
If they are too big. A connect log, and a program log would be nice.
Thanks
Volver arriba
Kripton2035



Joined: 19 Jul 2001
Posts: 482
Helped: 15
Location: Earth


Post 06 Apr 2006 19:31 Re: Project to replace CY7C64613 in the ICD2

rkodaira wrote:
Hi guys !
Bad news. I could not install the USB monitor in my PC with Windows98SE, because it doesn´t accept to be installed. I think it (if installed) wouldn´t make any damage to my ICD2, but i could not test it.


may be you can try this one : they say it works under w98...
http://www.perisoft.net/bushound/

zedman needs a log of a real 4550... my cypress clone doesnt give all he needs...
Volver arriba
Zedman



Joined: 13 Oct 2003
Posts: 294
Ayudado: 2


Post 06 Apr 2006 20:14 Project to replace CY7C64613 in the ICD2

It can be exported from USBMon to HTML format, but I have only serial ICD2.
Volver arriba
Brem



Joined: 06 Apr 2006
Posts: 36


Post 06 Apr 2006 20:22 Re: Project to replace CY7C64613 in the ICD2
tags: mplab protocol icd2 icd2 load hex command

Hi group,

Zedman drew my attention to this thread. I find it very interesting.

Last winter my hobby project was to build an ICD clone on a 2455/2550. I used the CDC firmware for RS232 emulation to connect to MPLAB. I disassambled the 877 firmware and made it more readable with a VB program. As far as I can tell the protocol CY<->877 and the protocol RS232<->877 are the same. There are no USB specific things in the 877 firmware.

I'll try to explain what I learned of the protocol.

MPLAB starts a connection by sending a 'Z'. ICD should reply with some kind of version nr in binary: 0x01,0x01,0x03.

Now MPLAB sends a
'V' if it wants to connect to the bootloader, ICD should reply with a 'v'
'U' if it wants to connect to the OS, ICD should reply 'u'

Next is the version of the ICD hardware, this has to be compatible with the old ICD1, so its different from all other commands: MPLAB send '$7F00\r', ICD replies '02' for ICD2

From here on all commands are send in packets in the form: '<', packet len, command, [params], checksum, '>'
all items are sent in hex, packet length is including the <>. An example: '<0801C9>', len=8, cmd=1 (GETFIRMWAREVERSION), no params, checksum=0xC9

Reply's to commands are in the same form, except packed in []. Reply to the above example would be: '[0E0102630102]', len=14, cmd=1 (GETFIRMWAREVERSION), param 2.99.1, checksum=0x02.

Large chunks of data are sent in {} packets : {data [,data..], checksum}. For example the write program command:
MPLAB: <184300005DC000000120FF>, len 24, cmd=0x43 (WRITEPROGRAM), program size= 0x05DC, start address=0x0120, checksum = 0xFF
ICD: [0843CF], len 8, cmd 0x43, checksum 0xCF
MPLAB: {FF3FFF3F.....3C} , data data data.., checksum-0x3C
ICD: [0843CF], ack cmd 0x43 again



I used the information from this thread to connect my existing program with the real ICD USB Driver. I got so far that I receive the GETFIRMWAREVERSION command, but my response seems not to be understood. It sends the same command again and then hangs (?) .
Volver arriba
albert22



Joined: 20 Jul 2004
Posts: 95
Ayudado: 3


Post 06 Apr 2006 23:17 Re: Project to replace CY7C64613 in the ICD2

Quote:
It can be exported from USBMon to HTML format, but I have only serial ICD2.

Zedman may be you can open the log files that had been posted here and export them to html. No need to have the USB ICD2.

Brem,
Great. I was just at the routines that handle connection with the ICD once the OS is loaded. Thanks.
Volver arriba
Zedman



Joined: 13 Oct 2003
Posts: 294
Ayudado: 2


Post 06 Apr 2006 23:29 Re: Project to replace CY7C64613 in the ICD2
tags: mplbcomm.dll

Hey Brem!

nice to see you here!
Thanks for the infos on the protocol.

Quote:

I used the information from this thread to connect my existing program with the real ICD USB Driver. I got so far that I receive the GETFIRMWAREVERSION command, but my response seems not to be understood. It sends the same command again and then hangs (?) .



would you please explain this a bit more? What's that mean you response is not understood? You got an usb packet starting with 0x01, replied it succesfully and just the content was wrong?

Please explain this, because as you can see from the thread Iam stuck with the replying. Crying or Very sad

-------------------

Iam now trying an alternate way to **** with the replying thing, I wrote a small program in Delphi to test if the reply works, getting the same results yet but it's faster than switching the programmer in mplab while using it too.

here is the proc (values got from disassembled/debugged MPLBCOMM.dll):
Code:

procedure TForm1.Button1Click(Sender: TObject);
var hnd: cardinal;
InBuffer: array[0..3] of byte;
OutBuffer: array[0..17] of byte;
bytesReturned: cardinal;
a: integer;
begin
hnd:=CreateFile('\\.\i3kmc-0', $C0000000, 2, 0, 3, 0, 0);

if hnd <> INVALID_HANDLE_VALUE then
begin
// get usb descriptor
for a:=0 to 3 do InBuffer[a]:=0; for a:=0 to 17 do OutBuffer[a]:=0; bytesReturned:=0;
if (DeviceIoControl(hnd, $0A4122404, @InBuffer, 4, @OutBuffer, $12, bytesReturned, nil)) then
begin
Memo1.Lines.Add('1 OK');
end;

// write command
for a:=0 to 3 do InBuffer[a]:=0; for a:=0 to 17 do OutBuffer[a]:=0; bytesReturned:=0;
OutBuffer[0]:=3;
if (DeviceIoControl(hnd, $0A4122451, @InBuffer, 4, @OutBuffer, $12, bytesReturned, nil)) then
begin
Memo1.Lines.Add('2 OK');
end;

// get status
for a:=0 to 3 do InBuffer[a]:=0; for a:=0 to 17 do OutBuffer[a]:=0; bytesReturned:=0;
InBuffer[0]:=7;
if (DeviceIoControl(hnd, $0A412244E, @InBuffer, 4, @OutBuffer, 0, bytesReturned, nil)) then
begin
Memo1.Lines.Add('3 OK');
end;
Memo1.Lines.Add('- done.');
end;
end;



the 3rd DeviceIOControl returns failed.

I can't even remeber how my wife look like... Neutral
Volver arriba
Brem



Joined: 06 Apr 2006
Posts: 36


Post 07 Apr 2006 0:31 Re: Project to replace CY7C64613 in the ICD2

Hi Zedman,

Besides some recognizable data like the 'Z', the 'U' and <0801C9>, I receive packets I don't understand. They are all 18 bytes long, 1st char is 0x00,0x01 or 0x02, 2nd char seems to be some kind of seq.nr, 3rd byte a length.

First packet received is:
HOST->DEV: 02 C1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
I reply with 8 x 0
DEV->HOST: 00 00 00 00 00 00 00 00 00
Second packet received is:
HOST->DEV: 01 C2 01 00 00 00 00 00 00 00 C9 00 00 00 00 00 00 00
Here the first byte 0x01 seems to mean "data incoming", 3rd bytes undicates length. I dont send reply on this packet.
Next rcvd is a singe 'Z', I reply with the hardware version
HOST->DEV: 5A
DEV->HOST: 01 01 03
Next again a packet starting with 0x02, same reply
HOST->DEV: 02 C1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
DEV->HOST: 00 00 00 00 00 00 00 00 00
then a "data incoming" packet folowed by a 'U', connect to OS
HOST-DEV: 01 C2 01 00 00 00 00 00 00 00 C9 00 00 00 00 00 00 00
HOST-DEV: 55
Now MPLAB seems to want 8 bytes so I send a 'u' with 7 zeros
DEV->HOST: 75 00 00 00 00 00 00 00

Now comes the tricky part. A packet starting with 0x02 means MPLAB wants data on EP2.
HOST-DEV: 02 C3 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
DEV-HOST (on EP2!!): 75
DEV-HOST (on EP1): 00 00 00 00 00 00 00 00

And here I get stuck at the moment. MPLAB sends a <0801C9> but my response is ignored. I think from here on the ICD should send all data over EP2.
Volver arriba
Zedman



Joined: 13 Oct 2003
Posts: 294
Ayudado: 2


Post 07 Apr 2006 10:51 Project to replace CY7C64613 in the ICD2

Brem,

Iam a lamer. PLEASE TELL ME how do you reply?
How the hell does it work for you?
What am I missing?
If I set up the shared ram with 0s set the Cnt to 8 and set UOWN bit to SIE, MPLAB wont send me ANY more data, and UOWN never get cleared!!
But from this I see u managed it to work!!!

HELP ME PLEASE!

Code:

HOST->DEV: 02 C1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
I reply with 8 x 0
DEV->HOST: 00 00 00 00 00 00 00 00 00
Volver arriba
Post new topic Reply to topic EDAboard.com Forum Index -> Microcontrollers -> Project to replace CY7C64613 in the ICD2
Page 3 of 61 Todas las horas son GMT 2 Horas
Goto page Previous 1 , 2 , 3 , 4 ... 59 , 60 , 61 Next
Jump to page:


Abuso | | Administrador | | Moderadores | | Ayuda | | Mapa del sitio
RSS tema