Regles | Enviaments recents | tema RSS | Cerca | Registre | Iniciar sessió

Projecte per substituir CY7C64613 al ICD2


Anar a pàgina Anterior 1, 2, 3, 4 ... 59, 60, 61 Següent
Anar a la pàgina:

Post new topic Reply to topic EDAboard.com Índex Fòrum -> Microcontroladors -> Projecte CY7C64613 per substituir al ICD2
Versió en àrab Búlgar versió Versió en català Versió txeca Versió danesa Versió alemanya Versió grega Versió Anglès Versió en espanyol Versió finlandesa Versió en francès Versió Hindi Versió croat Indonesi versió Versió italiana Versió hebrea Versió en japonès Versió coreana Versió lituana Versió letona Versió neerlandesa Noruec versió Versió polonesa Versió en portuguès Versió romanesa Versió en rus Versió eslovaca Versió eslovena Serbi versió Versió Sueca Tagàlog versió Ucraïnès versió Versió Vietnamita Versió en xinès
Autor Missatge
Kripton2035



Antiguitat: 19 de juliol 2001
Llocs: 482
Ajudar: 15
Ubicació: Terra


Post 03 d'abril 2006 8:28 Re: Projecte per substituir CY7C64613 al ICD2

Predrag va escriure:
Els meus amics i no van tenir èxit en la programació ICD2_4550_BOOT_0180.BIN en 4550. I'v
va tractar d'obrir el fitxer bin winpic 800 amb el programari, però no. I tryed per obrir-lo amb l'opció "tots els fitxers" a "tipus de fitxer" perquè no hi ha suport directe als arxius bin. ICprog que tenen el suport (per obrir els arxius bin), però no pot programa 4550. De fet no hi ha cap llista dels dispositius a 4550. Què he de fer? Algun suggeriment? Jo només sóc un principiant però tinc bona voluntat per ajudar.
Perdó per la meva mala anglès.


canviar el nom de l'. BIN a. HEX winpic i que s'obrirà!
a vegades una gran quantitat de fitxers. BIN intel lectual són en realitat. hexadecimal!
per estar segur, obrir l'arxiu amb el Bloc de notes, si conté línies que comencen amb ":" a continuació, canvieu el nom. hexadecimal i obert amb winpic .. si es tracta d'escombraries, després un bin2hex s'ha d'utilitzar per obrir-lo.
Tornar amunt
narccizzo



Antiguitat: 20 de gener 2006
Llocs: 173
Ajudar a: 4
Ubicació: Pátzcuaro, Michoacán, MEXICO


Post 03 d'abril 2006 9:42 Re: Projecte per substituir CY7C64613 al ICD2

Aquests són els dos arxius bin convertir en hexadecimal, he obert la caixa de fitxers amb el
ic-prog programari i guardar els arxius en format hexadecimal, si vostè dóna un cop d'ull a aquests fitxers es pot veure una cadena de lectura "Microxip ICD2 Tecnologia icd2 USB Dispositiu USB" a la direcció 0x0ee7 per l'arxiu i boot.hex la mateixa cadena al 0x0b8e per a la
os.hex arxiu, No tinc un desacoblar per explorar amb més detall aquests fitxers però alguna cosa em diu que aquests dos arxius són tot el que necessitem.

BR
Narccizzo


Ho sentim, però necessita accés per veure aquest arxiu adjunt

Tornar amunt
Jay.slovak



Antiguitat: 23 de març 2006
Llocs: 11


Post 03 d'abril 2006 11:17 Re: Projecte per substituir CY7C64613 al ICD2

narccizzo va escriure:
Aquests són els dos arxius bin convertir en hexadecimal, he obert la caixa de fitxers amb el
ic-prog programari i guardar els arxius en format hexadecimal, si vostè dóna un cop d'ull a aquests fitxers es pot veure una cadena de lectura "Microxip ICD2 Tecnologia icd2 USB Dispositiu USB" a la direcció 0x0ee7 per l'arxiu i boot.hex la mateixa cadena al 0x0b8e per a la
os.hex arxiu, No tinc un desacoblar per explorar amb més detall aquests fitxers però alguna cosa em diu que aquests dos arxius són tot el que necessitem.

BR
Narccizzo


Estàs segur que han convertit els arxius correctament? Si jo importació en MPLAB, el codi no té sentit, tot el que fa és només anar a través del Programa de memòria i fer PON. Res del útil que està succeint en els dos d'arrencada i SO HEXs. Fins i tot els bits de configuració són diferents en ambdós arxius!
Tornar amunt
Zedman



Antiguitat: 13 d'octubre 2003
Llocs: 294
Ajudat: 2


Post 03 d'abril 2006 11:19 de projecte per substituir CY7C64613 al ICD2

Albert,

el nucli conductor (s) d'esperar, el xiprer es connectarà a un VINYA / PID quan firt connectat, i després que el carregador del sistema de descàrregues és FW es torni com un VINYA / PID de manera que el sistema d'altres parla amb ella. Hem d'aplicar només la segona.
@ Iam treball per la qual cosa no puc fer res aquí esperem dur pensant Rolling Ulls ...
Tornar amunt
silvio



Antiguitat: 31 de desembre 2001
Llocs: 800
Ajudar: 90


Post 03 d'abril 2006 11:31 Re: Projecte per substituir CY7C64613 al ICD2
Etiquetes: MPLAB protocol icd2 xiprer desacoblar desacoblar xiprer

Hola Zedman,

it's a must to understand what's under cover. Pel que fa a CY hexadecimal fitxer no és només una qüestió de bona desacoblar que coneix el xiprer de xip, però la lectura de 436 pàgines-USB EZ FX TechRefManual és una necessitat per comprendre el que està sota coberta.
I no crec que hi hagi temps per a això. Tanmateix, si vostè no està familiaritzat amb els opcodes 8051, en analitzar el codi va a prendre temps. (Sé que estàs familiaritzat amb els PIC)
with appropiate values from CY7C64613 registers 0x7800-0x7FFF but you'll definitely end up turning the pages of TechRefManual looking for definitions. No puc substituir tots els casos de MOV DPTR, # LXXXX amb els valors adequats de CY7C64613 registres 0x7800-0x7FFF però definitivament li acaben convertint les pàgines de TechRefManual buscant definicions.
A més de que alguns la dificultat d'assignar noms de bits que s'estableixen o clar en el programa, sempre que no s'assigna a l'espai SFR (que acaba en 0 o 8).
with MOV DPTR, #EP0CS but it's difficult to say SETB HSNAK due to the above reasons. És fàcil substituir MOV DPTR, # L7FB4 amb MOV DPTR, # EP0CS però és difícil dir SETB HSNAK degut a les raons anteriorment esmentades.

and EP0STAL L which are affected in the bellow code at 0x03E2. Prenguem l'exemple HSNAK bits i EP0STAL L que es veuen afectats en el codi de sota a 0x03E2.
Codi:

L03E2: LCALL L0FBE
Del JNC L03EE
MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 01h; algun tipus de SETB EP0STALL
MOVX @ DPTR, A
L03EE: MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 02h; algun tipus de SETB HSNAK
MOVX @ DPTR, A
RET

L0FBE: SETB C
RET


Prenguem, per exemple (CP_1.asm) les línies de codi a partir de compensar 0x0100 (una subrutines és anomenat des 0x05FA), la primera línia de codi utilitzat immediatelly avall taula de vectors d'interrupció
En RAM 0x7FE9 vostè pot trobar el 2n byte de 8 bytes de paquets de dades USB SETUP (vegeu la pàgina 215 table9-1), en el sentit de bRequest camp (vegeu el quadre 9-2).


Codi:

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 = Esborrar Article, el salt a 0x0317
L010F: AFEGIR A, # 0FEh
JNZ L0116
LJMP L038E, si bRequest = Conjunt de característiques, el salt per 0x038E
L0116: AFEGIR A, # 0FBh
JNZ L011D
LJMP L0295; si bRequest = Obtenir configuració, salt a 0x0295
L011D: DEC A
JNZ L0123
LJMP L028F, si bRequest = Ajust de configuració, el salt per 0x028F
L0123: DEC A
JNZ L0129
LJMP L0283; si bRequest = Obtenir la interfície, el salt a 0x0283
L0129: DEC A
JNZ L012F
LJMP L0289; si bRequest = Conjunt d'interfície, el salt a 0x0289
L012F: AFEGIR A, # 05h
JZ L0136
LJMP L03E2; = bRequest si cap de les anteriors, a continuació, estableixi els bits HSNAK
i EP0STALL d'EP0CS control i registre d'estat i
i, a continuació, a 0x05FD RET
;
L0136: LCALL L0F7A; si bRequest = Obtenir Descriptor, on LCALL 0x0F7A
JC L013E; portar poc està configurat per defecte, per tal de saltar a 0x013E
LJMP L03EE; si al portar 0x0F7A seria 0 per defecte, fixat poc HSNAK
; EP0CS de control i registre d'estat i RET en 0x05FD
;
L013E: MOV DPTR, # L7FEB; aquí perquè era un bRequest Obtenir Descriptor
MOVX A, @ DPTR, per la qual cosa comprovar el camp de la WValueH USB SETUP paquet
AFEGIR A, # 0FEh
JZ L015F, si wValueH va ser 0x02 saltar a 0x015F
DEC A
JZ L0190; si wValueH va ser 0x03 salt a 0x0190
AFEGIR A, # 02h
JZ L0150; si wValueH va ser 0x01 salt a 0x0150
LJMP L0279; wValueh si és diferent de qualsevol de 0x01 o 0x02 o 0x03 després
; Bits HSNAK i EP0STALL de registre i EP0CS RET en 0x05FD
;
L0150: MOV A, 0Ch; aquí perquè wValueH va ser 0x01, de manera de càrrega USB SUDPTR registre mundial
MOV DPTR, # L7FD4; amb valor 0x0C0D, després poc HSNAK d'EP0CS i RET en 0x05FD
MOVX @ DPTR, A
MOV A, 0DH
MOV DPTR, # L7FD5
MOVX @ DPTR, A
LJMP L03EE
L015F: MOV DPTR, # L7FEA; mirada ara en l'àmbit de la wValueL USB SETUP paquet
;
;
;
;
, Etc ...................


port2: Microchip MPLAB ICD2 Fw client Aquesta taula de cerca o en el desplaçament 0x0622 que coincideixin amb el Kripton2035 port2: Microchip MPLAB ICD2 Fw client


Codi:

Taula 5-9. Dispositiu USB predeterminat Descriptor

Valor de compensació de RAM Camp Descripció

0622 0x12 blength 0 Longitud de la present Descriptor = 18 bytes
0623 0x01 1 bDescriptorType Descriptor = Tipus de dispositiu
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 és específica del proveïdor)
0627 0xFF 5 bDeviceSubClass Sub-classe de dispositius (FF és específica del proveïdor)
0628 0xFF Dispositiu 6 bDeviceProtocol Protocol (FF és específica del proveïdor)
0629 0x40 7 bMaxPacketSize0 Tamany màxim de paquet de 64 bytes = EP0
062A 0xD8 8 idVendor (L) Identificació de proveïdors (L) = 04D8H Microxip Tecnologia
062B 0x04 9 idVendor (H) Identificació de proveïdors (H)
062C 0x01 10 idProduct (L), Identificador del producte (L) ICD2 = 8001H
062D 0x80 11 idProduct (H) Identificador del producte (H)
062E 0x03 12 bcdDevice (L) Nombre de dispositius de llançament (BCD, L)
062F 0x00 13 bcdDevice (H) Nombre de dispositius de llançament (BCD, H)
0630 0x00 14 iManufacturer Fabricant Índex String = Cap
0631 0x00 15 iProduct Product Index String = Cap
0632 0x00 16 iSerialNumber número de sèrie de l'Índex String = Cap
0633 0x01 17 bNumConfigurations Número de Configuracions en aquesta interfície = 1

Taula 5-10. USB configuració predeterminada Descriptor

Valor de compensació de RAM Camp Descripció

0634 0x09 blength 0 Longitud de la present Descriptor = 9 bytes
0635 0x02 1 bDescriptorType Descriptor = Tipus de configuració
0636 0x74 2 wTotalLength (L) Longitud total (L) Inclou la interfície i punt final Descriptors = 116
0637 0x00 3 wTotalLength (H) Longitud total (H)
0638 0x01 4 Nombre de Interfícies bNumInterfaces en aquesta configuració
0639 0x01 5 bConfigurationValue configuració valor utilitzat per Set_Configuration Seleccioneu aquesta Sol.licitud de configuració
063A 0x00 6 iConfiguration Índex de String descriu aquesta configuració = Cap
063B 0x80 7 bmAttributes Atributs - Bus-Powered, no de despertador
063C 0x4B 8 MaxPower Potència màxima - 150 mA

Taula 5-11. Interfície USB predeterminat 0, Suplent Configuració 0 Descriptor

Valor de compensació de RAM Camp Descripció

063D 0x09 blength 0 Longitud de la interfície Descriptor
063E 0x04 1 bDescriptorType Descriptor = Tipus d'interfície
063F 0x00 2 bInterfaceNumber Índex de base zero d'aquesta interfície = 0
0640 0x00 3 bAlternateSetting altre Ajust Valor = 0
0641 0x0E 4 bNumEndpoints Número de punts finals en aquesta interfície (sense comptar OEP) = 14
0642 0xFF 5 bInterfaceClass = Interfície de la classe de proveïdors específics
0643 0xFF 6 bInterfaceSubClass Interfície Sub-class = Vendor Specific
0644 0xFF 7 bInterfaceProtocol = Interfície de Protocol de proveïdors específics
0645 0x00 8 Índex de la Cadena iInterface Descriptor per aquest Interface = Cap

Taula 5.-14.. Interfície per defecte 0, Suplent Configuració 1, punt final a granel Descriptors

Valor de compensació de RAM Camp Descripció

0646 0x07 0 Longitud blength d'aquest paràmetre Descriptor
0647 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
0648 0x01 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = OUT1
0649 0x02 3 bmAttributes XFR = Tipus A GRANEL
064A 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
064B 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
064C 0x01 6 bInterval interval de sondeig en milisegons

064D 0x07 Longitud 0 blength d'aquest paràmetre Descriptor
064E 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
064F 0x02 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = OUT2
0650 0x02 3 bmAttributes XFR = Tipus A GRANEL
0651 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
0652 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
0653 0x01 6 bInterval interval de sondeig en milisegons

0654 0x07 0 Longitud blength d'aquest paràmetre Descriptor
0655 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
0656 0x03 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = OUT3
0657 0x02 3 bmAttributes XFR = Tipus A GRANEL
0658 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
0659 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
065A 0x01 6 bInterval interval de sondeig en milisegons

065B 0x07 Longitud 0 blength d'aquest paràmetre Descriptor
065C 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
065D 0x04 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = OUT4
065E 0x02 3 bmAttributes XFR = Tipus A GRANEL
065F 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
0660 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
0661 0x01 6 bInterval interval de sondeig en milisegons

0662 0x07 0 Longitud blength d'aquest paràmetre Descriptor
0663 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
0664 0x05 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = OUT5
0665 0x02 3 bmAttributes XFR = Tipus A GRANEL
0666 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
0667 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
0668 0x01 6 bInterval interval de sondeig en milisegons

0669 0x07 0 Longitud blength d'aquest paràmetre Descriptor
066A 0x05 1 bDescriptor Tipus Tipus Descriptor = Punt final
066B 0x06 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = OUT6
066C 0x02 3 bmAttributes XFR = Tipus A GRANEL
066D 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
066E 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
066F 0x01 6 bInterval interval de sondeig en milisegons

0670 0x07 blength Longitud 0 aquest paràmetre Descriptor
0671 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
0672 0x07 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = OUT7
0673 0x02 3 bmAttributes XFR = Tipus A GRANEL
0674 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
0675 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
0676 0x01 6 bInterval interval de sondeig en milisegons

Valor de compensació de RAM Camp Descripció

0677 0x07 0 Longitud blength d'aquest paràmetre Descriptor
0678 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
0679 0x81 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = IN1
067A 0x02 3 bmAttributes XFR = Tipus A GRANEL
067B 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
067C 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
067D 0x01 6 bInterval interval de sondeig en milisegons

067E 0x07 Longitud 0 blength d'aquest paràmetre Descriptor
067F 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
0680 0x82 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = IN2
0681 0x02 3 bmAttributes XFR = Tipus A GRANEL
0682 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
0683 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
0684 0x01 6 bInterval interval de sondeig en milisegons

0685 0x07 0 Longitud blength d'aquest paràmetre Descriptor
0686 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
0687 0x83 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = IN3
0688 0x02 3 bmAttributes XFR = Tipus A GRANEL
0689 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
068A 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
068B 0x01 6 bInterval interval de sondeig en milisegons

068C 0x07 Longitud 0 blength d'aquest paràmetre Descriptor
068D 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
068E 0x84 2 bEndpointAddress extrems Direcció (1 s) i direcció IN4 =
068F 0x02 3 bmAttributes XFR = Tipus A GRANEL
0690 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
0691 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
0692 0x01 6 bInterval interval de sondeig en milisegons

0693 0x07 0 Longitud blength d'aquest paràmetre Descriptor
0694 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
0695 0x85 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = IN5
0696 0x02 3 bmAttributes XFR = Tipus A GRANEL
0697 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
0698 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
0699 0x01 6 bInterval interval de sondeig en milisegons

069A 0x07 blength Longitud 0 aquest paràmetre Descriptor
069B 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
069C 0x86 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = IN6
069D 0x02 3 bmAttributes XFR = Tipus A GRANEL
069E 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
069F 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
06A0 0x01 6 bInterval interval de sondeig en milisegons

06A1 0x07 Longitud 0 blength d'aquest paràmetre Descriptor
06A2 0x05 1 bDescriptor Descriptor Tipus Tipus = Punt final
06A3 0x87 2 bEndpointAddress Direcció Punt final (1 a) i Direcció = IN7
06A4 0x02 3 bmAttributes XFR = Tipus A GRANEL
06A5 0x40 4 wMaxPacketSize (L) Tamany màxim de paquet = 64 Bytes
06A6 0x00 5 wMaxPacketSize (H) Tamany màxim de paquet - Alt
06A7 0x01 6 bInterval interval de sondeig en milisegons

que és seguit per Unicode forma de cadena que va acabar zero
"Tecnologia de Microxip ICD2 USB Device"



Tanmateix, si et quedes encallat amb bin 4550, puc mirar d'ajudar mitjançant l'addició de comentaris a l'arxiu asm CY.
Tornar amunt
Zedman



Antiguitat: 13 d'octubre 2003
Llocs: 294
Ajudat: 2


Post 03 d'abril 2006 17:10 Re: Projecte per substituir CY7C64613 al ICD2
Etiquetes: icd2.dll

Hola Silvio,

gràcies per la informació, molt temps enrera he hagut d'analitzar un arxiu bin procedents d'un xip EPROM. Ni tan sols el tipus de processador no es ni el circuit. Però jo havia de trobar la forma en que es tracta d'una targeta de memòria, i les seves dades.
Jo donava per suposat que és una espècie de xip de 8051 i va tractar d'disassemblers molt, i va acabar amb un 80C542 (i cant recordar que va ser precisament un) Jo pense que a partir dels números de port i la forma en que el codi s'ocupa dels pins del port.
No obstant això, va prendre 2 setmanes de treball de dia i de nit Neutral per a mi, molt de la lectura / depuració / aprenentatge.
Per això jo volia un assemblador el que és capaç de fer les coses que es menciona en lloc amb mi ... Very Happy
Gràcies de nou Silvio.

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

Iam començant a creure que tots, d'acord amb bin. Vaig fer una recerca en ICD2 dll i va descobrir que les trucades GETUSBDESCRIPTOR i números dels controls en el descriptor i si coincideix amb la versió més recent ICD2 que vaig signar en el meu Descriptor de 4550 del que fa una crida send4550image!
I també hi ha descriptors d'arxius a la paperera idèntica a la que Kripton carregat.
Una cosa que no entenc és per què van enviar a la imatge d'arrencada?
I per què ICD2.dll Intenta descarregar aquest arxiu? Si jo arribi a casa, vaig a tractar de definir el meu descriptors per tal que coincideixi amb el que vaig trobar a la caixa i tractarà MPLAB en ell.

Crec que s'estan acostant! Fresc

Creat després de 46 minuts:

I hi ha una cosa de màgia a la primera arrencada de la btyes bin: MCHP (microxip?)
He buscat per ell, si és més tard (després de la càrrega) reemplaça aquests amb Goto veritable punt d'entrada o primera, però en el ICD2.dll no.

Creat després de 3 hores 34 minuts:

Mira això:

Vaig fer el que he dit abans, acaba d'establir el número de versió a la més nova i que espera MPLAB tracta d'enviar el sistema operatiu! (Per suposat que la meva FW no és un gestor d'arrencada)

Codi:

MPLAB ICD 2 Llest
Connexió a MPLAB ICD 2
ICD0289: No es pot tornar a programa ICD2 USB OS microprogramari.
ICD0021: No es pot connectar amb MPLAB ICD 2
MPLAB ICD 2 Llest


D'alguna manera el carregador hauria de treballar, vaig a tractar de fer alguna cosa per la nit.
Tornar amunt
narccizzo



Antiguitat: 20 de gener 2006
Llocs: 173
Ajudar a: 4
Ubicació: Pátzcuaro, Michoacán, MEXICO


Post 03 d'abril 2006 18:43 de projecte per substituir CY7C64613 al ICD2

Hola JaySlovak
No, Im no està segur, només em va obrir la caixa i deseu-lo en format hexadecimal. Trist
Tornar amunt
Jay.slovak



Antiguitat: 23 de març 2006
Llocs: 11


Post 03 d'abril 2006 20:45 Re: Projecte per substituir CY7C64613 al ICD2

narccizzo va escriure:
Hola JaySlovak
No, Im no està segur, només em va obrir la caixa i deseu-lo en format hexadecimal. Trist


Sí, és extrany que la cadena és llegible, només el codi no fa res Trist
Tornar amunt
Zedman



Antiguitat: 13 d'octubre 2003
Llocs: 294
Ajudat: 2


Post 03 d'abril 2006 22:25 Re: Projecte per substituir CY7C64613 al ICD2
Etiquetes: icd2.dll

Bones notícies, després de 2 hores de depuració,

ICD2.dll fa ús tant de bin. L'arxiu de sistema operatiu vol ser descarregats només a ICD2s nou producte amb número de sèrie.
PERÒ quan es modifiqui l'ID de la versió en el nom de l'arxiu de OS.bin * _FFFF.bin perquè comenci a comprovar la versió d'arrencada cercar:

Codi:

Connexió a MPLAB ICD 2
ICDWarn0062: L'USB d'arrencada del firmware de la ICD2 és activa i la prestació de les comunicacions amb el ICD2. Aquest firmware és obsoleta i s'ha d'actualitzar. No pot ser actualitzat al mateix temps actiu. Tanmateix, pot seguir funcionant amb el firmware actual d'arrencada, si decideix fer-ho. Voleu continuar?


Si jo premeu YES aquí del que intenta connectar-se a ICD2 si mateix, i es bloqueja (només he instal lat encara el 4550).
Si jo premeu NO del que sembla que intenta actualitzar, però que necessitem un carregador d'aquest tipus, pel que aquest missatge apareix:

Codi:

ICD0288: No es pot tornar a programa ICD2 USB d'arrencada de microprogramari.
ICD0021: No es pot connectar amb MPLAB ICD 2
MPLAB ICD 2 Llest


Bé nois, pensar pensar pensar com podem utilitzar aquest bin per obtenir un treball de gestor d'arrencada en un 4550!

Creat després de 2 minuts:

També va compilar la mostra amb el carregador correcte VINYA / PID, però té els mateixos resultats que amb el meu 4550.

Creat després de 16 minuts:

Pot ser, que no podem obtenir la primera inicial inicial:) part del carregador que carrega el primer carregador d'arrencada que carrega el sistema operatiu ...

Creat després de 5 minuts:

Aquest és el moment en què rkodaira ha bolcar el seu 4550 per al nivell 0 d'arrencada. (amb una gran esperança de que no està protegit ...)

Rkodaira Et necessitem Somriure
Tornar amunt
albert22



Antiguitat: 20 de juliol 2004
Llocs: 95
Ajudat: 3


Post 03 d'abril 2006 22:46 Re: Projecte per substituir CY7C64613 al ICD2

He estat l'anàlisi d'una impressió que tinc amb mi de la BL010101. i trobar algunes coses.
Sembla acceptar comandes propers 5 a partir de la PSP o el USART.
0x55 executar codi a partir de 0x0010.
0x56 Càrrega hexadecimal (això sembla haver una major subcommands)
0x5a envia les dades 0x01 0x01 0x03 (Versió de la BL?)
Altres dos comandaments al seu torn en l'error i ocupat Leds i penja en un bucle inffinite.

Les següents rutines estan relacionades amb el que he anomenat la "càrrega hexadecimal" comanda:

En una altra rutina la BL envia la següent sèrie de caràcters 0x5b ", 0810C9", 0x5d
Altres respostes envia embeguda en la següent sèrie de caràcters 0x5b, "0A000", U, 0x31, U, 0x5d. (on U sembla ser 0x31, 0x34, 0x36 i 0x37).

I didnt tenen molt de temps per continuar amb l'anàlisi. Jo no vaig veure USB vigilància que han estat enviats ja Im que en un cyber. Però crec que aquestes dades han de ser embalats en la comunicació USB
Tornar amunt
Zedman



Antiguitat: 13 d'octubre 2003
Llocs: 294
Ajudat: 2


Post 03 d'abril 2006 23:30 de projecte per substituir CY7C64613 al ICD2

Albert,

Ho vaig comprovar la sèrie front a la comunicació USB, USB utilitza un embolcall a través de la sèrie cosa.
Sembla que utilitza EP1 de port de control (és OUT i IN) i EP2 com a port de dades, només en (CIE-> pc).
Tornar amunt
albert22



Antiguitat: 20 de juliol 2004
Llocs: 95
Ajudat: 3


Post 05 d'abril 2006 6:39 Re: Projecte per substituir CY7C64613 al ICD2

Aquí estan els meus avenços amb la BL
No hi va haver tal subcommands. La càrrega hexadecimal només pren el comandament hexagonal registres i escriu les dades a la memòria del programa de 2 bytes a la vegada. Comprova per a diferents errors com la gamma de la direcció. Ap per evitar la intensificació en el programa d'BL. Això confirma que la BL és sempre resident a la 877.
L'[0A000 ", U, 0x31, U]. (La 2 ª U és la primera U 1) és poc probable que sigui vist, perquè és un informe d'errors. Els errors són: malformats, de verificació, la mala direcció i el rang d'error de escriptura EEPROM .
La rutina espera a 16 caràcters a partir d'una 0x3c ('<') i acabant amb un 0x3e ('>'). aquesta capçalera de 16 caràcters de contenir l'adreça, longitud i de comprovació de les dades a ser escrits en ASCII.
Si és correcta la capçalera Ap respostes amb la BL "[0810C9]"
Les dades acompanya després d'un 0x7B
Aquest format sembla ser diferent d'un intel lectual hexadecimal.

Zedman.
Pot ser que vostè reconeix alguna cosa com això en el RS232
Demà serà a casa meva i poder instal lar hdd per comprovar els registres i veure si pot ser de cap ajut.
Tornar amunt
Zedman



Antiguitat: 13 d'octubre 2003
Llocs: 294
Ajudat: 2


Post 05 d'abril 2006 12:17 Re: Projecte per substituir CY7C64613 al ICD2
Etiquetes: MPLAB protocol icd2 icd2.dll icd2w2k.sys mplbcomm.dll

Estic enganxat amb aquesta cosa USB. I estic trist.

En realitat no sé què fer. Vaig passar molt de temps a la depuració icd2.dll.

El problema és: No puc enviar un byte, fins i tot tornar a MPLAB.

Vaig a explicar el que he trobat fins ara, encara que no realment interessat en un (només volen agafar acabat cosa). (Excepte: albert, Kripton, rkodaira, Silvio, i els nois en aquest fil)

Per tant, es comunica amb el MPLAB ICD2 d'aquesta manera:

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

Si vostè selecciona el tipus de connexió USB li demanarà el dispositiu de la Descriptor ICD2 i comprova la versió del producte paraula, si és 0x0003 que es tracta d'un xiprer ICD2 basat, si és 0x0010 que és una basada en un 4550. 0x0010 va trobar que si es diu el que he estat enviat abans que el sistema operatiu en el ICD2 ha de ser actualitzat. És interessant que si la versió (0100) en el nom de l'arxiu de la OS.bin FFFF s'ha modificat per a que el que se salta aquest pas i es comprova la versió d'arrencada. Aquí vaig haver de ICD2.dll pedaç per tractar de comprovar la versió de l'arxiu BL.bin massa, és que fins i tot hardcoded és ajustat a FFFF no ho puc tractar de millorar, per això és pedaç (hardcoded conjunt FFFF a menor) per la qual cosa ara diu el que jo també abans de mentoined: bl la versió és massa antiga, però no es pot actualitzar mentre que l'activa.

Bé. Vaig fer un petit progrés de la mostra d'arrencada, amb els descriptors de corregir i tractar de comunicar-se amb MPLAB per tal de desxifrar el protocol i per a emular el BL en el nou 4550 ICD2.
ICD2 que Kripton usos, (versió xiprer) estableix 7 / EN extrems, però d'acord amb els registres que fa servir només per EP1 IN / OUT i EP2 d'EN. (FORA mitjà de PC-> Dispositiu)
Sembla que envia el usb comandaments específics i dades a través de EP1, i de nou en el EP1, i envia els bytes de la ICD2 llegida 877 a través de la variable independent EP2 polz

Quan intenta enviar MPLAB º OS.bin per millorar el FW us emet una crida a getUSBdescriptor el nucli conductor, i envia una comanda 0x12 bytes de longitud utilitzant DeviceIoControl comanda. I depurat, que arriba amb èxit a la 4550.
MPLAB qüestions que GetStatus una trucada, i sembla que els paràmetres de la trucada que espera 0x08 bytes de dades de tornada.
Vaig posar la meva tampó amb 8 bytes, i establir la propietat a SIE. Però mai que envia 8 bytes enrera (que no apareix en USBMon). Només espera.
No hi pot haver moltes coses.
Potser faig malament a la primera configuració de 4550, però he intentat amb una altra progs i funciona, pot enviar a octet esquena.
Sé que l'amfitrió ha d'enviar a la comanda i el dispositiu per a que envieu en el que vol.
Però quan depurat MBLBCOMM, vaig veure que el comandament no DeviceIoControl!
I tought intel ligència que potser alguns es va construir al. Sistema d'arxiu i es descarta el paquet, ja que està malament el contingut, però crec que hauria de ser una tasca de nivell superior.
Quan arribi a casa vaig a comprovar el valor de GetLastError.


Algú té alguna idea de com puc veure si hi ha algun paquet enviat a, o com puc exercir?
Tornar amunt
Kripton2035



Antiguitat: 19 de juliol 2001
Llocs: 482
Ajudar: 15
Ubicació: Terra


Post 05 d'abril 2006 16:59 de projecte per substituir CY7C64613 al ICD2

pot ser que vostè ha de connectar el 877 a un port de la PSP 4550 per veure el que ve a través de, i el programa 877 amb el gestor d'arrencada que tenim? pot ser l'esdeveniment que espera a octet procedeixen de la EP2, per la qual cosa el 877?

Vols que enviar un altre fitxer de registre d'una condició necessària? per la forma en que l'assegurança que necessita un rokaida registre de 4550 amb el seu icd2 ..

PS: No estic interessat en aquest projecte .. Somriure Sóc només curiositat! Ja tinc una usb icd2! Somriure
Tornar amunt
Zedman



Antiguitat: 13 d'octubre 2003
Llocs: 294
Ajudat: 2


Post 05 d'abril 2006 20:08 de projecte per substituir CY7C64613 al ICD2

Gràcies Kripton,

Jo us avisi quan necessita més bolcat Somriure , És una mica més complexa del que acaba de passar pels bytes a 877 i de tornada, té un protocol en el mateix embolcall.
El que vostè diu és molt útil, però rkodeira costum sacrify seu nou ICD2 ... Somriure Si ell, que amb el bolcat del seu procés d'actualització de sistema operatiu es podria definir el protocol de ...
Tornar amunt
Kripton2035



Antiguitat: 19 de juliol 2001
Llocs: 482
Ajudar: 15
Ubicació: Terra


Post 05 d'abril 2006 22:09 de projecte per substituir CY7C64613 al ICD2

No penso així que necessita per sacrify seu icd2! només alguns abocadors amb usbmon com jo ho vaig fer .. tant de bo el meu icd2 segueix treballant!
Tornar amunt
albert22



Antiguitat: 20 de juliol 2004
Llocs: 95
Ajudat: 3


Post 05 d'abril 2006 22:16 Re: Projecte per substituir CY7C64613 al ICD2
Etiquetes: icd2 hexadecimal comanda de càrrega

No puc instal lar HHD monitor per veure els registres, perquè només tinc W98 a casa.
¿Es pot exportar un bolcat del sistema operatiu per a descarregar un arxiu. Txt, per a mi?
-------
Com la CIA restableix el 877?
Hi ha un senyal (patilla 43) a la base de Q1 que el col lector és MCLR. Però això va a un connector anomenat PROG. Ara s'adonen que aquest senyal ha d'anar a la 877 també.
Hauríem de saber què USB comanda restableix el 877. Pot ser el que és una de les variables de control?
No sé quina és la funció d'aquest connector PROG. però els criteris de valoració addicional pot estar relacionat amb ella.
----------
Un carregar el sistema operatiu a la ICD2 sembla ser: ICD01020405.hex he intentat disassemby, però no puc obtenir el desacoblar per substituir la hexagonal d'adreces amb el nom dels registres. Es tindrà més temps per esbrinar com funciona.
Un fet interessant és que el codi comença a 0x0010. Recordi que el BL crida a aquesta adreça amb la comanda executar.

BL va informar la versió de MPLAB és 01.01.01.00 aquest va força bé amb la comanda que BL respostes 01,01,01,03
---------
No hi ha DPot (MCP41xxxx) brasiler en el CIE. Com establir VPP?
La majoria dels clons tenen un VPP. ¿Això significa que el brasiler CIE no és més que una de baix cost i no el clon nou ICD2? No penso que va ser per un microxip fix VPP. Si no hi ha altre mètode de control de la VPP, diferent de la DPot hauria canvis de firmware de la CIE OS. El vell sistema operatiu no funcioni en el nou. Que pot ser la causa que el fitxer DLL està comprovant la versió.
Tornar amunt
Zedman



Antiguitat: 13 d'octubre 2003
Llocs: 294
Ajudat: 2


Post 05 d'abril 2006 22:32 de projecte per substituir CY7C64613 al ICD2
Etiquetes: MPLAB protocol icd2 icd2w2k.sys icd2w2k descarregar 4550 carregador escriure icd2w2k.sys download descarregar icd2w2k

No crec que hauria d'ocupar-se de res en relació amb el protocol o circuit o connexió entre 877 i 4.550 encara. Crec que tot el que necessitem està escrit en el 4550 es subministra amb MPLAB papereres.
Hem d'escriure un carregador compatible amb el icd2w2k.sys per obtenir el OS.bin descarregat, i després que puguem scracth cap la forma en que el 877 està connectat.

Creat després de 5 minuts:

En ICD2br utilitza un altre tipus de xip que genera el VPP. Rkodaira mentoined, comproveu abans dels llocs.
Tornar amunt
silvio



Antiguitat: 31 de desembre 2001
Llocs: 800
Ajudar: 90


Post 06 d'abril 2006 2:36 Re: Projecte per substituir CY7C64613 al ICD2
tags: icd2w2k.sys icd2w2k download 4550 bootloader write icd2w2k.sys download download icd2w2k

Zedman wrote:

We should write a bootloader compatible with the icd2w2k.sys to get the OS.bin downloaded.


Yes, this is the main reason for which I said that dissasembling CY fw it's useless as long as we have the OS and BL bin file provided by Microchip. To start coding from scratch for 4550 and simulate the CY fw would be time consuming and worthless.
That's I appreciate zedman's efforts.

However sometimes I can't help myself to ask this stupid question : If the BL cannot be upgraded while it's active, what was Microchip's ICD2 designers approach for upgrade ? In parallel programmer before soldering 4550 ? Or through ICSP with a clean bin image downloaded after boot block erased ?
If rkodaira will find that CPB and EBTRB bits are cleared Crying or Very sad , then how can OS.bin be loaded in 4550 ? I start asking like you : why did they supplied the boot image ?
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 ?
Back to top
albert22



Joined: 20 Jul 2004
Posts: 95
Helped: 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]
Back to top
Zedman



Joined: 13 Oct 2003
Posts: 294
Helped: 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.
Back to top
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.
Back to top
albert22



Joined: 20 Jul 2004
Posts: 95
Helped: 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
Back to top
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...
Back to top
Zedman



Joined: 13 Oct 2003
Posts: 294
Helped: 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.
Back to top
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 (?) .
Back to top
albert22



Joined: 20 Jul 2004
Posts: 95
Helped: 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.
Back to top
Zedman



Joined: 13 Oct 2003
Posts: 294
Helped: 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
Back to top
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.
Back to top
Zedman



Joined: 13 Oct 2003
Posts: 294
Helped: 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
Back to top
Post new topic Reply to topic EDAboard.com Forum Index -> Microcontrollers -> Project to replace CY7C64613 in the ICD2
Page 3 of 61 All times are GMT 2 Hours
Goto page Previous 1 , 2 , 3 , 4 ... 59 , 60 , 61 Next
Jump to page:


Abuse || Administrator || Moderators || Support us || sitemap
topic RSS