Pravila | Recent posts | RSS temo | Iskanje | Registracija | Prijava

Projekt nadomestiti CY7C64613 na ICD2


Pojdi na stran Prejšnja 1, 2, 3, 4 ... 59, 60, 61 Naslednja
Skoči na stran:

Post new topic Reply to topic EDAboard.com Forum Index -> mikrokontrolerji -> Project nadomestiti CY7C64613 v ICD2
Različica v arabščini Bolgarska različica Katalonščina različica Češka različica Različica v danščini Nemška različica Grška različica English version Španska različica Različica v finščini Francoska različica Hindi version Croatian version Indonezijščina različica Italijanska različica Različica v hebrejščini Japonska različica Korejska različica Litovska različica Različica v latvijščini Različica v nizozemščini Norveška različica Različica v poljščini Različica v portugalščini Romunska različica Russian version Slovaška različica Slovenska različica Serbian version Različica v švedščini Tagalog version Ukrainian version Vietnamščina različica Kitajska različica
Avtor Sporočilo
Kripton2035



Pridružen /-a: 19. julij 2001
Posts: 482
Pomagali: 15
Kraj: Earth


Post 03. april 2006 8:28 Re: Projekt nadomestiti CY7C64613 v ICD2

predrage wrote:
Moji prijatelji i niso uspeli v programskem ICD2_4550_BOOT_0180.BIN v 4550. I'v
Poskušal odpreti bin datoteko z winpic 800 programske opreme, vendar je uspelo. I tryed, da jo odprete z možnostjo "vse datoteke" v "vrste datotek", ker ni nobene neposredne podpore za bin datoteke. ICprog so te podpore (odpreti bin datotek), vendar ne more program 4550. V resnici ne obstaja 4550 v napravi seznam. Kaj naj naredim? Kakšen predlog? Jaz sem samo začetnik vendar sem dobre volje bi pomagal.
Žal mi je moja angleščina slaba.


preimenovati. Bin do. Hex in winpic bo odpiraj!
včasih veliko datotek. Bin v resnici so Intel. hex!
da se prepričate, da odprete datoteko z notepad, če vsebuje vrstic beginning with ":" in nato za preimenovanje. hex in ga odprite s winpic .. če je to smeti, potem bin2hex je treba uporabiti, da jo odprete.
Nazaj na vrh
narccizzo



Pridružen /-a: 20. januar 2006
Posts: 173
Pomagali: 4
Lokacija: PATZCUARO, Michoacán, MEHIKA


Post 03. april 2006 9:42 Re: Projekt nadomestiti CY7C64613 v ICD2

To sta dve datoteki bin pretvoriti v hex, sem odprl bin datoteke z
ic-prog software i nato shranite datoteke v hex format, če si za te datoteke si lahko ogledate čitljivem string "mikročip Tecnology ICD2 USB Device icd2 USB" na naslov 0x0ee7 za boot.hex datoteko in isti niz v 0x0b8e za
os.hex datoteko, i dont imajo disassembler raziskati podrobneje te datoteke, ampak nekaj mi pravi, da se ti dve datoteki, so vsi, ki jih potrebujemo.

BR
Narccizzo


Oprosti, ampak, kar potrebujete za prijavo v to prilogo, da si ogledate

Nazaj na vrh
Jay.slovak



Pridružen /-a: 23. marec 2006
Posts: 11


Post 03. april 2006 11:17 Re: Projekt nadomestiti CY7C64613 v ICD2

narccizzo wrote:
To sta dve datoteki bin pretvoriti v hex, sem odprl bin datoteke z
ic-prog software i nato shranite datoteke v hex format, če si za te datoteke si lahko ogledate čitljivem string "mikročip Tecnology ICD2 USB Device icd2 USB" na naslov 0x0ee7 za boot.hex datoteko in isti niz v 0x0b8e za
os.hex datoteko, i dont imajo disassembler raziskati podrobneje te datoteke, ampak nekaj mi pravi, da se ti dve datoteki, so vsi, ki jih potrebujemo.

BR
Narccizzo


Ali ste prepričani, da so pretvorjene datoteke pravilno? Če uvozite v MPLAB, se oznaka ne bi bila smiselna, vse pa je samo skozi program pomnilnika in delaš NOPs. Nič koristno je dogajalo v obeh Boot in OS HEXs. Tudi config bitov so različne v obeh datotek!
Nazaj na vrh
Zedman



Pridružen /-a: 13. oktober 2003
Posts: 294
Pomagali: 2


Post 03. april 2006 11:19 Project nadomestiti CY7C64613 v ICD2

Albert,

jedrca voznika (-ov), pričakujejo, da bo čempresa povežete na različne vid / PID ko firt povezani, in po nakladalnika sys Učitano je FW bo znova kot drugo vid / PID tako druge sys pogovorih z njo. Smo izvajati le drugo.
Zdaj @ dela tako ne morem storiti ničesar tukaj pričakovali težko razmišljam Rolling Eyes ...
Nazaj na vrh
Silvio



Pridružen /-a: 31. december 2001
Posts: 800
Pomagali: 90


Post 03. april 2006 11:31 Re: Projekt nadomestiti CY7C64613 v ICD2
tags: mplab protokol icd2 čempresa disassembler disassembler Čempres

Zdravo Zedman,

it's a must to understand what's under cover. Glede CY hex datoteke ni samo stvar dobre disassembler ki pozna čempresa čip, ampak branju 436 strani EZ-USB FX TechRefManual ga je treba razumeti, kaj je pod streho.
In ne verjamem, da ste čas za to. Vendar, če niste seznanjeni z 8051 opcodes, razčlenjevanju kodo bo trajalo nekaj časa. (Vem, da ste familar s tistimi, PIC)
with appropiate values from CY7C64613 registers 0x7800-0x7FFF but you'll definitely end up turning the pages of TechRefManual looking for definitions. I more nadomestiti vse pojava MOV DPTR, # LXXXX z ustreznimi vrednostmi iz CY7C64613 registre 0x7800-0x7FFF vendar boste zagotovo končal preobrat strani TechRefManual išče definicije.
Poleg tega, da bi nekateri, kako težko določiti bitov imeni, ki so določene jasno, ali v program, dokler niso razporejena v SFR prostora (ki se konča na 0 ali 8).
with MOV DPTR, #EP0CS but it's difficult to say SETB HSNAK due to the above reasons. To je enostavno zamenjati MOV DPTR, # L7FB4 s MOV DPTR, # EP0CS vendar je težko reči SETB HSNAK zaradi zgoraj navedenih razlogov.

and EP0STAL L which are affected in the bellow code at 0x03E2. Let's sprejmejo primer bitov HSNAK in EP0STAL L, ki so prizadete v bellow koda na 0x03E2.
Koda:

L03E2: LCALL L0FBE
JNC L03EE
MOV DPTR, # L7FB4
MOVX A @ DPTR
ORL A, # 01h; nekakšen SETB EP0STALL
MOVX @ DPTR, A
L03EE: MOV DPTR, # L7FB4
MOVX A @ DPTR
ORL A, # 02h; nekakšen SETB HSNAK
MOVX @ DPTR, A
RET

L0FBE: SETB C
RET


Vzemi za primer (CP_1.asm) šifro vrstic začenši z izravnavo 0x0100 (a Potprogram pozvanega 0x05FA), prva vrstica kode uporablja immediatelly bellow vektor prekine tabela
Na RAM 0x7FE9 najdete 2. bajt od 8 bajtov USB SETUP paketne podatke (glejte stran 215 table9-1), kar pomeni, bRequest področju (glej tabelo 9-2).


Koda:

L0100: MOV DPTR, # L7FE9
MOVX A @ DPTR
JNZ L0109
LJMP L029B; če bRequest = GetStatus Skoči na 0x029B
L0109: DEC A
JNZ L010F
LJMP L0317; če bRequest = Počisti igranog, skočite na 0x0317
L010F: ADD A, # 0FEh
JNZ L0116
LJMP L038E; če bRequest = Nastavite Feature, skočite na 0x038E
L0116: ADD A, # 0FBh
JNZ L011D
LJMP L0295; če bRequest = Dobi Konfiguracija Skoči na 0x0295
L011D: DEC A
JNZ L0123
LJMP L028F; če bRequest = Nastavite Konfiguracija Skoči na 0x028F
L0123: DEC A
JNZ L0129
LJMP L0283; če bRequest = Dobi Interface, skočite na 0x0283
L0129: DEC A
JNZ L012F
LJMP L0289; če bRequest = Nastavitev vmesnika, skočite na 0x0289
L012F: ADD A, # 05h
JZ L0136
LJMP L03E2; če bRequest = nobeno od zgoraj navedenih, nato pa nastavite bitov HSNAK
; in EP0STALL za EP0CS nadzora in status register in
, nato RET na 0x05FD
;
L0136: LCALL L0F7A; če bRequest = Dobi Descriptor, LCALL 0x0F7A kjer
JC L013E; nosijo bit je nastavljen privzeto, da skočite na 0x013E
LJMP L03EE; če na 0x0F7A prevoz bi biti 0 privzeto nastavite bit HSNAK
; EP0CS za nadzor in stanje registra in RET pri 0x05FD
;
L013E: MOV DPTR, # L7FEB; tukaj bRequest ker je bil Get Descriptor
MOVX A @ DPTR; tako, preverite WValueH področju USB SETUP paketno
ADD A, # 0FEh
JZ L015F; če wValueH bil 0x02 Skoči na 0x015F
DEC A
JZ L0190; če wValueH bil 0x03 Skoči na 0x0190
ADD A, # 02h
JZ L0150; če wValueH bil 0x01 Skoči na 0x0150
LJMP L0279; wValueh če je drugačen od obeh 0x01 ali 0x02 ali 0x03 nastavite
; bitov HSNAK in EP0STALL za EP0CS register in RET pri 0x05FD
;
L0150: MOV A, 0Ch; tukaj zaradi wValueH bil 0x01, tako obremenitev SUDPTR svetovni USB register
MOV DPTR, # L7FD4; z vrednostjo 0x0C0D, nato nastavite bit HSNAK za EP0CS in RET pri 0x05FD
MOVX @ DPTR, A
MOV A, 0Dh
MOV DPTR, # L7FD5
MOVX @ DPTR, A
LJMP L03EE
L015F: MOV DPTR, # L7FEA; poglej zdaj na wValueL področju USB SETUP paketno
;
;
;
;
; in tako naprej ...................


port2: Microchip MPLAB ICD2 Fw client Ali to lookup tabelo na izravnavo 0x0622, ki se ujemajo z Kripton2035 port2: mikročipu MPLAB ICD2 FW stranke


Koda:

Tabela 5-9. USB Device Privzeta Descriptor

RAM Vrednost Offset Področje Opis

0622 0x12 0 bLength Dolžina tega Descriptor = 18 bajtov
0623 0x01 1 bDescriptorType Descriptor Type = Device
0624 0x00 2 bcdUSB (L) USB Specifikacija Version 1.10 (L)
0625 0x01 3 bcdUSB (H) USB Specifikacija Version 1.10 (H)
0626 0xFF 4 bDeviceClass naprave razreda (FF je Vendor-Posebni)
0627 0xFF 5 bDeviceSubClass Device Sub-Class (FF je Vendor-Posebni)
0628 0xFF 6 bDeviceProtocol Device protokola (FF je Vendor-Posebni)
0629 0x40 7 bMaxPacketSize0 Največja velikost paketa za EP0 = 64 bajtov
062A 0xD8 8 idVendor (L) Vendor ID (L) mikročip Tehnologija = 04D8H
062B 0x04 9 idVendor (H) Vendor ID (H)
062C 0x01 10 idProduct (L) Product ID (L) ICD2 = 8001H
062D 0x80 11 idProduct (H) Product ID (H)
062E 0x03 12 bcdDevice (L) Device Release Število (BCD, L)
062F 0x00 13 bcdDevice (H) Device Kolofon Število (BCD, H)
0630 0x00 14 iManufacturer Proizvajalec Kazalo String = None
0631 0x00 15 iProduct izdelek Kazalo String = None
0632 0x00 16 iSerialNumber Serijska številka Kazalo String = None
0633 0x01 17 bNumConfigurations Število Konfiguracije ta vmesnik = 1

Tabela 5-10. USB Privzeta konfiguracija Descriptor

RAM Vrednost Offset Področje Opis

0634 0x09 0 bLength Dolžina tega Descriptor = 9 zlogov
0635 0x02 1 bDescriptorType Descriptor Type = Konfiguracija
0636 0x74 2 wTotalLength (L) Skupna dolžina (L) Vključno z vmesnikom in končna točka Descriptors = 116
0637 0x00 3 wTotalLength (H) Skupna dolžina (H)
0638 0x01 4 bNumInterfaces Število Vmesniki s to konfiguracijo
0639 0x01 5 bConfigurationValue Konfiguracija uporabljena vrednost, ki ga Set_Configuration Zahteva Izberite to Konfiguracija
063A 0x00 6 iConfiguration Kazalo String Ocenjujuchi to Konfiguracija = None
063B 0x80 7 bmAttributes Atributi - Bus-Powered, št bujenju
063C 0x4B 8 MaxPower Največja moč - 150 mA

Tabela 5-11. USB vmesnik Default 0, nadomestni Nastavitev 0 Descriptor

RAM Vrednost Offset Področje Opis

063D 0x09 0 bLength Dolžina međupovršini Descriptor
063E 0x04 1 bDescriptorType Descriptor Type = Vmesnik
063F 0x00 2 bInterfaceNumber Neobrestovane temelji Kazalo te Interface = 0
0640 0x00 3 bAlternateSetting nadomestni Nastavitev Value = 0
0641 0x0E 4 bNumEndpoints Število končnih točk v tem Interface (ne upošteva EPO) = 14
0642 0xFF 5 bInterfaceClass vmesnike razreda = Vendor Posebni
0643 0xFF 6 bInterfaceSubClass Interface Sub-class = Vendor Posebni
0644 0xFF 7 bInterfaceProtocol vmesnika protokola = Vendor Posebni
0645 0x00 8 iInterface Kazalo do String Descriptor za ta vmesnik = None

Tabela 5-14. Default Interface 0, nadomestni Setting 1, Bulk končna točka Descriptors

RAM Vrednost Offset Področje Opis

0646 0x07 0 bLength Dolžina te končne točke Descriptor
0647 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
0648 0x01 2 bEndpointAddress končna točka Direction (1 je na) in naslov = OUT1
0649 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
064A 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
064B 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
064C 0x01 6 bInterval Volišče interval v milisekundah

064D 0x07 0 bLength Dolžina te končne točke Descriptor
064E 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
064F 0x02 2 bEndpointAddress končna točka Direction (1 je na) in naslov = OUT2
0650 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
0651 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
0652 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
0653 0x01 6 bInterval Volišče interval v milisekundah

0654 0x07 0 bLength Dolžina te končne točke Descriptor
0655 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
0656 0x03 2 bEndpointAddress končna točka Direction (1 je na) in naslov = OUT3
0657 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
0658 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
0659 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
065A 0x01 6 bInterval Volišče interval v milisekundah

065B 0x07 0 bLength Dolžina te končne točke Descriptor
065C 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
065D 0x04 2 bEndpointAddress končna točka Direction (1 je na) in naslov = OUT4
065E 0x02 3 bmAttributes XFR type = razsutem stanju
065F 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
0660 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
0661 0x01 6 bInterval Volišče interval v milisekundah

0662 0x07 0 bLength Dolžina te končne točke Descriptor
0663 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
0664 0x05 2 bEndpointAddress končna točka Direction (1 je na) in naslov = OUT5
0665 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
0666 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
0667 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
0668 0x01 6 bInterval Volišče interval v milisekundah

0669 0x07 0 bLength Dolžina te končne točke Descriptor
066A 0x05 1 bDescriptor Vrsta Descriptor Type = končna točka
066B 0x06 2 bEndpointAddress končna točka Direction (1 je na) in naslov = OUT6
066C 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
066D 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
066E 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
066F 0x01 6 bInterval Volišče interval v milisekundah

0670 0x07 0 bLength Dolžina te končne točke Descriptor
0671 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
0672 0x07 2 bEndpointAddress končna točka Direction (1 je na) in naslov = OUT7
0673 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
0674 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
0675 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
0676 0x01 6 bInterval Volišče interval v milisekundah

RAM Vrednost Offset Področje Opis

0677 0x07 0 bLength Dolžina te končne točke Descriptor
0678 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
0679 0x81 2 bEndpointAddress končna točka Direction (1 je na) in naslov = IN1
067A 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
067B 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
067C 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
067D 0x01 6 bInterval Volišče interval v milisekundah

067E 0x07 0 bLength Dolžina te končne točke Descriptor
067F 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
0680 0x82 2 bEndpointAddress končna točka Direction (1 je na) in naslov = IN2
0681 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
0682 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
0683 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
0684 0x01 6 bInterval Volišče interval v milisekundah

0685 0x07 0 bLength Dolžina te končne točke Descriptor
0686 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
0687 0x83 2 bEndpointAddress končna točka Direction (1 je na) in naslov = IN3
0688 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
0689 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
068A 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
068B 0x01 6 bInterval Volišče interval v milisekundah

068C 0x07 0 bLength Dolžina te končne točke Descriptor
068D 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
068E 0x84 2 bEndpointAddress končna točka Direction (1 je na) in naslov = IN4
068F 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
0690 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
0691 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
0692 0x01 6 bInterval Volišče interval v milisekundah

0693 0x07 0 bLength Dolžina te končne točke Descriptor
0694 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
0695 0x85 2 bEndpointAddress končna točka Direction (1 v) in čez 5 = Naslov
0696 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
0697 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
0698 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
0699 0x01 6 bInterval Volišče interval v milisekundah

069A 0x07 0 bLength Dolžina te končne točke Descriptor
069B 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
069C 0x86 2 bEndpointAddress končna točka Direction (1 je na) in naslov = IN6
069D 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
069E 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
069F 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
06A0 0x01 6 bInterval Volišče interval v milisekundah

06A1 0x07 0 bLength Dolžina te končne točke Descriptor
06A2 0x05 1 bDescriptor Vrsta Descriptor Vrsta = končna točka
06A3 0x87 2 bEndpointAddress končna točka Direction (1 je na) in naslov = IN7
06A4 0x02 3 bmAttributes XFR Vrsta = razsutem stanju
06A5 0x40 4 wMaxPacketSize (L) Največja velikost paketa = 64 Bytes
06A6 0x00 5 wMaxPacketSize (H) Največja velikost paketa - Visoka
06A7 0x01 6 bInterval Volišče interval v milisekundah

ki se nato sledi obliki Unicode nič končalo string
"Tehnologija mikročipa ICD2 USB Device"



Vendar, če si zaljubljen s 4550 bin, lahko poskusite pomagati z dodajanjem pripombe v CY ASM datoteko.
Nazaj na vrh
Zedman



Pridružen /-a: 13. oktober 2003
Posts: 294
Pomagali: 2


Post 03. april 2006 17:10 Re: Projekt nadomestiti CY7C64613 v ICD2
tags: icd2.dll

Zdravo Silvio,

hvala za infos, dolgo časa nazaj sem imel na razčleniti na bin datoteko prihajajo iz EPROM čipa. Nisem še noben predelovalec vrsto niti vezja. Ampak sem našel kako se ukvarja s pomnilniške kartice, in to je podatkov.
Mislil sem, da to je 8.051 vrste čip in preizkušen veliko disassemblers in končal z 80C542 (i cant spomnite, ki je bil točno) sem ga ven iz pristanišča številke in kode, kako se ukvarja s posamezno pristanišče zatiči.
Ampak to so 2 tedna, dnevno in nočno delo Nevtralno za mano, veliko branja / debugging / učenja.
Zato sem hotel, je sestavljavcu kaj sposobna narediti stvari, ki jih omenjena namesto mene ... Very Happy
Še enkrat hvala Silvio.

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

Zdaj začenja verjeti, da si vse, v skladu z bin datotek. I did a ICD2 dll v raziskave in ugotovil, da je zahteva GETUSBDESCRIPTOR in pregledov številke v deskriptor in če se ujema z novejšo različico ICD2 kot sem podpisan v moji 4550 je deskriptor, kot to počne a send4550image klic!
In tako so deskriptorji v bin datotek enaka eni Kripton naložili.
Ena stvar, ki sem ne razumete, da je razlog, zakaj si jim dobavili boot image?
In zakaj ICD2.dll poskuša prenesti to datoteko? Če se vrnem domov, bom poskusil nastaviti moje deskriptorjev, da ustrezajo eni sem našel v bin in bo poskusil MPLAB na njem.

Mislim, da smo že bliže! Hladen

Doda po 46 minut:

In tam je čarobna stvar v prvi btyes v zagonski bin: MCHP (mikročip)?
Sem iskal, če je to kasneje (po obremenitvi) nadomešča te s pravimi vstopne točke Goto ali st, vendar v ICD2.dll ne.

Dodano po 3 ure, 34 minut:

Poglej to:

Jaz sem, kaj sem rekel, samo nastaviti številko različice na novejšo pričakuje in MPLAB skuša poslati OS! (Seveda, moj FW ni boot loader)

Koda:

MPLAB ICD 2 Ready
Priključevanje na MPLAB ICD 2
ICD0289: Ne morem, da se ponovno program ICD2 USB OS firmware.
ICD0021: Ne morem se povezati z MPLAB ICD 2
MPLAB ICD 2 Ready


Nekako boot loader naj dela, bom poskusil narediti nekaj ponoči.
Nazaj na vrh
narccizzo



Pridružen /-a: 20. januar 2006
Posts: 173
Pomagali: 4
Lokacija: PATZCUARO, Michoacán, MEHIKA


Post 03. april 2006 18:43 Project nadomestiti CY7C64613 v ICD2

Zdravo JaySlovak
Ne, Im ni prepričan, sem samo odprl bin in jo shranite v hex format. Žalosten
Nazaj na vrh
Jay.slovak



Pridružen /-a: 23. marec 2006
Posts: 11


Post 03. april 2006 20:45 Re: Projekt nadomestiti CY7C64613 v ICD2

narccizzo wrote:
Zdravo JaySlovak
Ne, Im ni prepričan, sem samo odprl bin in jo shranite v hex format. Žalosten


Jap, to je čudno kot niz je berljiv, samo koda ni nič Žalosten
Nazaj na vrh
Zedman



Pridružen /-a: 13. oktober 2003
Posts: 294
Pomagali: 2


Post 03. april 2006 22:25 Re: Projekt nadomestiti CY7C64613 v ICD2
tags: icd2.dll

Dobre novice po 2 urah debugging,

ICD2.dll ne uporablja za bin datoteke. The OS datoteke želi biti prenesli samo ICD2s z novo serijsko številko izdelka.
Toda, ko ste spremenili različico id v filename of OS.bin k * _FFFF.bin kot je začel, da preverite bootloader verzijo poglej:

Koda:

Priključevanje na MPLAB ICD 2
ICDWarn0062: USB Boot firmware za ICD2 je aktivna in zagotavljanju komunikacije z ICD2. Ta firmware so zastareli in jih je treba posodobiti. To ne more biti hkrati aktivno posodablja. Vseeno pa lahko še vedno deluje s trenutno boot firmware, če se odločite, da to storijo. Ali želite nadaljevati?


Če pritisnete YES tukaj kot da poskuša povezati z ICD2 sama in zamrzne (imam samo 4550 namestili še).
Če pritisnete Ne, kot se zdi, da skuša posodobiti, vendar moramo tukaj bootloader, kot je ta, da to sporočilo ne pojavi:

Koda:

ICD0288: Ne morem, da se ponovno program ICD2 USB Boot firmware.
ICD0021: Ne morem se povezati z MPLAB ICD 2
MPLAB ICD 2 Ready


Ok fantje, mislim misliš misliš kako lahko uporabite, da bin, da bi dobili delovno bootloader v 4550!

Dodano po 2 minutah:

Jaz tudi zbrati vzorec bootloader s pravilnim VID / PID pa imam enake rezultate, kot z mojim 4550.

Doda po 16 minut:

To je mogoče, da ne moremo dobiti začetne začetnega začetnem:) del, ki je bootloader obremenitev prvega bootloader, ki naloži os ...

Dodano po 5 minut:

To je čas, ko naj bi rkodaira smetišče njegov 4550 za 0 ravni bootloader. (z velikim upanjem, da ni zaščitena, ...)

Rkodaira We Need You Nasmeh
Nazaj na vrh
albert22



Pridružen /-a: 20. julij 2004
Posts: 95
Pomagali: 3


Post 03. april 2006 22:46 Re: Projekt nadomestiti CY7C64613 v ICD2

Sem bil analizira izpise, da imam z menoj v BL010101. in našel nekaj stvari.
Zdi se, da sprejmete 5 ukazi prihajajo bodisi od PSP ali USART.
0x55 Execute code starting at 0x0010.
0x56 Load hex (to se zdi, da so bolj subcommands)
0x5a pošilja podatke 0x01 0x01 0x03 (Verzija BL??)
Dve drugi ukazi samo vklopite Error in Zasedeno LED in obesi na inffinite zanke.

Naslednji postopki so povezani s tem, kar sem se imenuje "obremenitev hex" command:

V drugi redni BL pošlje naslednje string 0x5b "0810C9", 0x5d
Drugi pošilja odgovore embeded v naslednji niz 0x5b "0A000", U, 0x31, U, 0x5d. (U, kjer se zdi, 0x31, 0x34, 0x36 in 0x37).

Jaz didnt imeti veliko časa, da nadaljujejo z analizo. I ne videl USB spremljanja, ki so bili objavljeni, ker Im na kibernetskimi. Ampak mislim, da te podatki morajo biti pakirani v USB komunikacija
Nazaj na vrh
Zedman



Pridružen /-a: 13. oktober 2003
Posts: 294
Pomagali: 2


Post 03. april 2006 23:30 Project nadomestiti CY7C64613 v ICD2

Albert,

Preveril sem serijsko comm versus USB, USB uporablja ovoj korito serijska stvar.
Zdi se uporablja EP1 za nadzor pristanišča (it's in V) in EP2 so podatki pristanišča, samo v (ICD-> PC).
Nazaj na vrh
albert22



Pridružen /-a: 20. julij 2004
Posts: 95
Pomagali: 3


Post 05. april 2006 6:39 Re: Projekt nadomestiti CY7C64613 v ICD2

Tu so moje predplačila z BL
Ni bilo takšnih subcommands. Obremenitev hex ukaz samo zavzema hex evidence in piše podatke na programski spomin 2 bajti naenkrat. Prav preglede za različne napake, vključno z vrsto naslov. Ap. da se prepreči krepitev v BL program. To potrjuje, da BL je vedno prebivajo na 877.
V [0A000 ", U, 0x31, U]. (2. U je prva U 1) ni verjetno, da bi videl, ker je poročilo o napaki. Napake vključujejo: slaba oblika, checksum, slab naslov območju in EEPROM pisati o napaki .
Redni čaka 16 znakov, začenši z 0x3c ('<') in konča s 0x3e ('>'). to 16 znakov header vsebuje naslov, dolžina in checksum za podatke, ki morajo biti napisana v ASCII.
Če je glava pravilno Ap. BL odgovori z "[0810C9]
Podatki cames po 0x7b
Ta format se zdi drugačen od Intel hex format.

Zedman.
Lahko vam priznane kaj takega v RS232
Jutri I wil na moj dom in sposobni za vgradnjo hdd preveriti dnevniki in vidim, če sem lahko iz katere koli pomoč.
Nazaj na vrh
Zedman



Pridružen /-a: 13. oktober 2003
Posts: 294
Pomagali: 2


Post 05. april 2006 12:17 Re: Projekt nadomestiti CY7C64613 v ICD2
tags: mplab protokol icd2 icd2.dll icd2w2k.sys mplbcomm.dll

Jaz sem zaljubljen v to USB stvar. In jaz sem žalostna.

Res ne vem, kaj storiti naslednje. Sem porabil veliko časa za iskanje in odpravljanje napak na icd2.dll.

Problem je: Ne morem poslati še en bajt nazaj MPLAB.

Bom razložila, kaj sem našel do sedaj, čeprav nihče zares zanima (samo želijo zgrabi končnega stvar). (Razen: Albert, Kripton, rkodaira, Silvio in fantov v tem zaporedju)

Torej, MPLAB komunicira s ICD2 ta način:

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

Če ste izbrali vrsto USB povezave bo vprašati naprave deskriptor od ICD2 in kontrole za različico izdelka besedo, če je od 0x0003 it's a Cypress ICD2 temeljijo, če je 0x0010, kot je to 4550 na osnovi enega. Če 0x0010 ugotovljeno kot pravi, kar sem bil napoten pred OS, da je v ICD2 je treba nadgraditi. To je zanimivo, da če je verzija (0100) v filename od OS.bin je prirejena za FFFF kot je Preskočeno ta korak, in preveri različico bootloader. Tukaj sem, da obliž ICD2.dll, da ga poskusite preveriti BL.bin datoteke Različica preveč, je hardcoded, da je celo to, da je FFFF Navada poskušate nadgraditi, zato sem ga krpaju (sklop hardcoded FFFF nižje), tako sedaj pravi, kaj sem preveč mentoined pred: BL različica je prestar, vendar je ni mogoče nadgraditi, ko je aktivna.

Ok. Naredila sem majhno programi iz vzorca bootloader, s pravilnim opisnike in poskuša komunicirati z MPLAB da decrypt protokol in posnemati BL v novih 4550 ICD2.
ICD2 da Kripton uporab, (čempresa različica) določa 7 OUT / V končnih točk, vendar v skladu s hlodi se uporablja samo za EP1 IN / OUT in EP2 v. (OUT pomeni PC-> Device)
Zdi se, da ga pošlje v usb posebnih ukazov in podatkov prek EP1, in nazaj na EP1, in pošlje bytes readed od ICD2 je 877 skozi ločen končna točka EP2 palcev

Ko MPLAB poskuša poslati th OS.bin za nadgradnjo FW os ga izda getUSBdescriptor klic v kernel voznikom, in pošilja na 0x12 bytes long command uporabo DeviceIOControl ukaz. I debugged, da uspešno prispe do 4550.
Kot MPLAB izda GetStatus klic, in zdi se, iz razpisa parametrov, ki jih pričakuje 0x08 bajtov podatkov nazaj.
Nastavim moj pufer z 8 bajtov, in določi lastništvo na SIE. Ampak nikoli ne pošilja da 8 bajt nazaj (ne zdi v USBMon). Samo čaka.
Tukaj lahko veliko stvari.
Mogoče sem naredil st narobe z nastavitvami za 4550, vendar sem poskusil z drugim progs in deluje, lahko pošljete bytes nazaj.
Vem gostiteljica mora poslati in na ukaz, da naj napravi poslati kaj hoče.
Ampak ko sem debugged MBLBCOMM, sem videl, da je DeviceIOControl command failed!
I tought, da morda nekaj inteligence je bil zgrajen v. Sys datoteko in jo spusti paketno, ker je narobe vsebine, ampak mislim, da bi morala biti višja raven nalogo.
Ko pridem domov bom preverite GetLastError vrednost.


Vsakdo ima kakšno idejo, kako lahko vidim, če je bilo v paketno poslala, oziroma kako lahko opravljajo?
Nazaj na vrh
Kripton2035



Pridružen /-a: 19. julij 2001
Posts: 482
Pomagali: 15
Kraj: Earth


Post 05. april 2006 16:59 Project nadomestiti CY7C64613 v ICD2

lahko se morate povezati z 877 na PSP pristanišču je 4550 za prikaz kaj prihaja, in program je 877 z bootloader smo? lahko bytes vas čaka prihajajo iz EP2 in tako je 877?

hočeš poslati drugi log datoteka natančno stanje? mimogrede, da je prepričan, da si je treba rokaida prijavite s svojim 4550 icd2 ..

PS: Im 'ne zanima v tem projektu .. Nasmeh Im 'šele radoveden! Sem že usb icd2! Nasmeh
Nazaj na vrh
Zedman



Pridružen /-a: 13. oktober 2003
Posts: 294
Pomagali: 2


Post 05. april 2006 20:08 Project nadomestiti CY7C64613 v ICD2

Hvala Kripton,

I bomo obvestili, ko rabim več dump Nasmeh , Je malce bolj zapleten kot zgolj skozi bytes do 877 in nazaj, je protokol ovoj na njem.
Kaj si rekel, da je bila zelo koristna, vendar rkodeira Navada sacrify svojo novo blagovno znamko ICD2 ... Nasmeh Če bi bil, kot z dump of it's OS update proces opredeljuje protokol dobro ...
Nazaj na vrh
Kripton2035



Pridružen /-a: 19. julij 2001
Posts: 482
Pomagali: 15
Kraj: Earth


Post 05. april 2006 22:09 Project nadomestiti CY7C64613 v ICD2

tudi jaz dont mislim, da mora sacrify njegov icd2! le nekaj stresa z usbmon kot sem .. upajmo, da moja icd2 še vedno delajo!
Nazaj na vrh
albert22



Pridružen /-a: 20. julij 2004
Posts: 95
Pomagali: 3


Post 05. april 2006 22:16 Re: Projekt nadomestiti CY7C64613 v ICD2
tags: icd2 obremenitev hex ukaz

Ne morem namestiti HHD monitor za prikaz hlodov, ker imam samo w98 doma.
Lahko izvoz smetišče v OS prenesete na. Txt, za mene?
-------
Kako CY ponastavi 877?
Obstaja signal (pin 43) na podlagi katerih Q1 Collector je MCLR. Ampak to gre povezovalnika pozval PROG. Zdaj zavedaš, da ta signal mora iti na 877 preveč.
Mi bi morali vedeti, katere USB ukaz ponastavi 877. Lahko je na eni od nadzora končne točke?
I dont know kaj je funkcija tega PROG priključek. vendar z dodatnimi končnimi točkami so lahko povezani z njim.
----------
Eden od OS naložen na ICD2 se zdi: ICD01020405.hex sem poskušal disassemby, vendar ne morem dobiti disassembler nadomestiti hex naslove z imenom registrov. To bo trajalo več časa, da ugotovimo, kako deluje.
Zanimiv dejstvo je, da se koda začne na 0x0010. Ne pozabite, da je BL zahteva ta naslov z izvedbo ukaza.

BL različice, ki jih poročajo mplab je 01.01.01.00 tem gre precej dobro s BL ukaz ki odgovarja 01,01,01,03
---------
Ni DPot (MCP41xxxx) v brazilski ICD. Kako nastaviti Vpp?
Most of the kloni so fiksni Vpp. Ali to pomeni, da je brazilski ICD je le low cost klon in ne nove ICD2? I dont misliš, da mikročipa šel za določen vpp. Če obstaja drug način nadzora vpp, razen DPot bi morali firmware sprememb v ICD OS. Starih OS ne bi delovalo na novo. To lahko povzroči, da DLL je preverjanje različice.
Nazaj na vrh
Zedman



Pridružen /-a: 13. oktober 2003
Posts: 294
Pomagali: 2


Post 05. april 2006 22:32 Project nadomestiti CY7C64613 v ICD2
tags: mplab protokol icd2 icd2w2k.sys icd2w2k prenesi 4550 bootloader napišite icd2w2k.sys download download icd2w2k

Jaz ne mislim, da bi se morali spopadati z nič o vezje ali protokol ali povezavo med 877 in 4550 še ni. Mislim, da je vse, kar potrebujete, je zapisano v 4550 zabojih dobavljeni z MPLAB.
Mi bi morali napisati bootloader za združljivo s icd2w2k.sys dobiti OS.bin prenesli, in potem bomo lahko scracth naših glavah, kako je 877 je priključen.

Dodano po 5 minut:

V ICD2br uporablja drugi tip čipa, ki ustvari Vpp. Rkodaira mentoined, preverite mest pred.
Nazaj na vrh
Silvio



Pridružen /-a: 31. december 2001
Posts: 800
Pomagali: 90


Post 06. april 2006 2:36 Re: Projekt nadomestiti CY7C64613 v ICD2
tags: icd2w2k.sys icd2w2k download 4550 bootloader napišite icd2w2k.sys download download icd2w2k

Zedman wrote:

Mi bi morali napisati bootloader za združljivo s icd2w2k.sys dobiti OS.bin prenesli.


Ja, to je glavni razlog, zaradi katerega sem rekel, da dissasembling CY FW je neuporaben, dokler smo na OS in BL bin datoteke, ki jih mikročip. Če želite začeti iz nič, ki kodira za 4550 in simuliranje CY FW bo veliko časa in vrednosti.
To cenim zedman prizadevanja.

Vendar včasih ne morem pomagati sam zaprositi to neumno vprašanje: Če BL ni mogoče nadgraditi, ko je aktivna, kar je bilo mikročipa je ICD2 oblikovalci pristop za nadgraditev? Vzporedno programer spajkanje pred 4550? Ali prek ICSP s čisto bin image prenesete po boot blok izbrisati?
Če ugotovite, da bo rkodaira CPB in EBTRB bitov se obračunavajo 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 ?
Nazaj na vrh
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

Citat:
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.
Citat:
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:
Citat:
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]
Nazaj na vrh
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.
Nazaj na vrh
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.
Nazaj na vrh
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
Nazaj na vrh
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...
Nazaj na vrh
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.
Nazaj na vrh
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 (?) .
Nazaj na vrh
albert22



Joined: 20 Jul 2004
Posts: 95
Helped: 3


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

Citat:
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.
Nazaj na vrh
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.

Citat:

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
Nazaj na vrh
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.
Nazaj na vrh
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
Nazaj na vrh
Post new topic Reply to topic EDAboard.com Forum Index -> Microcontrollers -> Project to replace CY7C64613 in the ICD2
Page 3 of 61 Vsi časi so GMT 2 uri
Goto page Previous 1 , 2 , 3 , 4 ... 59 , 60 , 61 Next
Jump to page:


Zloraba | | Administrator | | Moderatorji | | Podprite nas | | kazalo
Topic RSS