Pravila | Noviji postovi | RSS topic | Pretraga | Registracija | Log in

Projekta za zamjenu CY7C64613 u ICD2


Goto page Previous 1, 2, 3, 4 ... 59, 60, 61 Sljedeća
Skoči na stranicu:

Post new topic Reply to topic EDAboard.com Forum Indeks -> Microcontrollers -> Projekt zamijeniti CY7C64613 u ICD2
Arabic version Bulgarian version Croatian version Czech version Danski verzija German version Greek version English version Španjolski verzija Finski verzija Francuski verzija Hindski verzija Hrvatska verzija Indonezijski verzija Italian version Hebrejski verzija Japanska verzija Korean verzija Lithuanian version Latvijski verzija Nizozemski verziju Norwegian verzija Poljski verziju Portugalski inačici Rumunjski verzija Srpska verzija Slovak version Slovenian version Srpska verzija Švedski verzija Tagalog version Ukrainian version Vijetnamski verzija Kineski verzija
Autor Poruka
Kripton2035



Joined: 19 Jul 2001
Postovi: 482
Pomogao: 15
Lokacija: Earth


Post 03. travanj 2006 8:28 Re: Projekt za zamjenu CY7C64613 u ICD2

predrage wrote:
Moji prijatelji i nisu uspjeli u programiranju ICD2_4550_BOOT_0180.BIN u 4550. I'v
pokušao otvoriti bin file sa winpic 800 softver ali to nije uspjelo. JA tryed to OpenBSD Internet sa opcijom "all files" in "vrste datoteka" jer nema direktnu podršku bin datoteka. ICprog imati taj podrška (otvoriti bin datoteke), ali ne može program 4550. U stvari nema 4550 na popisu uređaja. Što trebam napraviti? Bilo koji sugestija? Ja sam tek početnik, ali imam dobre volje da pomognu.
Nažalost o moj loš engleski jezik.


preimenovati. bin u. Hex i winpic otvorit će se!
ponekad puno datoteke. Kanta u stvarnosti su Intel. heksadecimalna!
kako bi bili sigurni, otvorite datoteku sa notepad ako sadrži linije beginning with: "onda preimenovati to. heksadecimalna i otvorite ga s winpic .. ako je smećem, a zatim i bin2hex moraju koristiti da biste je otvorili.
Povratak na vrh
narccizzo



Pristupio / la: 20 siječanj 2006
Postovi: 173
Pomogao: 4
Lokacija: PATZCUARO, Michoacán, Mexico


Post 03. travanj 2006 9:42 Re: Projekt za zamjenu CY7C64613 u ICD2

To su dvije datoteke bin pretvorena u heksadecimalna sam otvorio bin datoteke sa
ic-PROG softver onda ja spremanje datoteka u heksadecimalna formatu, ako potražite na ove datoteke možete vidjeti čitljiv string "Microchip Tecnology ICD2 USB Device USB icd2" u adresnoj 0x0ee7 za boot.hex file i isti string u 0x0b8e za
os.hex datoteku, ja dont imati rastavljanja da istraži u više detalja ove datoteke, ali nešto mi govori da su te dvije datoteke su sve što nam treba.

BR
Narccizzo


Žao nam je, ali morate prijaviti da biste vidjeli u ovom prilogu

Povratak na vrh
Jay.slovak



Pristupio / la: 23 ožujak 2006
Postovi: 11


Post 03 Apr 2006 11:17 Re: Project to replace CY7C64613 in the ICD2

narccizzo wrote:
To su dvije datoteke bin pretvorena u heksadecimalna sam otvorio bin datoteke sa
ic-PROG softver onda ja spremanje datoteka u heksadecimalna formatu, ako potražite na ove datoteke možete vidjeti čitljiv string "Microchip Tecnology ICD2 USB Device USB icd2" u adresnoj 0x0ee7 za boot.hex file i isti string u 0x0b8e za
os.hex datoteku, ja dont imati rastavljanja da istraži u više detalja ove datoteke, ali nešto mi govori da su te dvije datoteke su sve što nam treba.

BR
Narccizzo


Jeste li sigurni da su pretvorene datoteke ispravno? Ako sam se uvoziti ih u MPLAB, koda ne smisla, sve to je samo prolazio kroz Program memorije i radiš NOPs. Ništa korisno se događa u oba Čizma i OS HEXs. Čak i konfiguracijski bitovi se razlikuju u obje datoteke!
Povratak na vrh
Zedman



Joined: 13. listopad 2003
Postovi: 294
Pomogao: 2


Post 03 tra 2006 11:19 projekta za zamjenu CY7C64613 u ICD2

Albert,

u kernel driver (e) očekivati je čempres će spojiti na drugi vid / PID kada firt povezani, a nakon loader sys downloads to FW on će ponovo, kao još jedan vid / PID pa drugi sys razgovora do njega. Mi smo provesti samo na drugu.
Iam @ raditi, pa mi ne mogu ništa učiniti ovdje teško očekivati thinkin ' Rolling Eyes ...
Povratak na vrh
Silvio



Pristupio / la: 31 prosinac 2001
Postovi: 800
Pomogao: 90


Post 03 tra 2006 11:31 Re: Projekt za zamjenu CY7C64613 u ICD2
tags: mplab protokol icd2 čempres rastavljanja rastavljanja čempres

Hi Zedman,

it's a must to understand what's under cover. Što se tiče CY heksadecimalna file to nije samo stvar dobrog rastavljanja koja zna čempres chip, ali čitanje 436 stranica EZ-USB FX TechRefManual to je potrebno da shvate što je pod poklopcem.
A ja ne vjerujem da ste vremena za to. Ipak, ako niste upoznati s 8051 opcodes, raščlanjivanjem kôd će trajati neko vrijeme. (Znam da ste familar s one PIC)
with appropiate values from CY7C64613 registers 0x7800-0x7FFF but you'll definitely end up turning the pages of TechRefManual looking for definitions. Ja mogu zamijeniti sve pojava MOV DPTR, # LXXXX s odgovarajućim vrijednostima iz CY7C64613 registrima 0x7800-0x7FFF ali ćete svakako završiti okretanjem stranice TechRefManual tražite definicije.
Osim toga kako bi to neki težak za dodjeljivanje bitova nazivi koji su jasno postavili ili u programu sve dok nisu mapirani u SFR prostor (koji završava u 0 ili 8).
with MOV DPTR, #EP0CS but it's difficult to say SETB HSNAK due to the above reasons. To je lako zamijeniti MOV DPTR, # L7FB4 s MOV DPTR, # EP0CS ali je teško reći SETB HSNAK zbog gore navedenih razloga.

and EP0STAL L which are affected in the bellow code at 0x03E2. Ajmo uzeti primjer HSNAK bitova i EP0STAL L koje su pogođene u kod ispod na 0x03E2.
Code:

L03E2: LCALL L0FBE
JNC L03EE
MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 01h; nekakav SETB EP0STALL
MOVX @ DPTR, A
L03EE: MOV DPTR, # L7FB4
MOVX A, @ DPTR
ORL A, # 02h; nekakav SETB HSNAK
MOVX @ DPTR, A
Močiti

L0FBE: SETB C
Močiti


Uzmi za primjer (CP_1.asm) kod linije starta s offset 0x0100 (a subrutina zovu iz 0x05FA), prvi broj linija koristi prekidni vektor immediatelly ispod stola
U RAM 0x7FE9 možete pronaći 2. byte od 8 bytes USB Setup paketne podatke (vidi stranicu 215 table9-1), što znači bRequest polju (vidi tablice 9-2).


Code:

L0100: MOV DPTR, # L7FE9
MOVX A, @ DPTR
JNZ L0109
LJMP L029B; ako bRequest = GetStatus Skoči na 0x029B
L0109: Dec A
JNZ L010F
LJMP L0317; ako bRequest = Očisti Feature, skok na 0x0317
L010F: ADD A, # 0FEh
JNZ L0116
LJMP L038E; ako bRequest = Postavi Feature, skok na 0x038E
L0116: ADD A, # 0FBh
JNZ L011D
LJMP L0295; ako bRequest = Get Configuration, skok na 0x0295
L011D: A DEC
JNZ L0123
LJMP L028F; ako bRequest = Postavi Configuration, skok na 0x028F
L0123: Dec A
JNZ L0129
LJMP L0283; ako bRequest = Get Interface, skok na 0x0283
L0129: Dec A
JNZ L012F
LJMP L0289; ako bRequest = Postavi Interface, skok na 0x0289
L012F: ADD A, # 05h
JZ L0136
LJMP L03E2; ako bRequest = nijedan od gore, a zatim postavite bitova HSNAK
i EP0STALL od EP0CS kontrolu i stanja i
, a zatim močiti u 0x05FD
;
L0136: LCALL L0F7A; ako bRequest = Get deskriptor, LCALL 0x0F7A gdje
JC L013E; nosi pomalo je postavljen po defaultu, pa skok na 0x013E
LJMP L03EE; ako je 0x0F7A nositi bi bilo 0 po defaultu, postaviti bitna HSNAK
; od EP0CS i kontrolu stanja i močiti u 0x05FD
;
L013E: MOV DPTR, # L7FEB; jer je bio bRequest Get deskriptor
MOVX A, @ DPTR; tako, provjerite WValueH polju USB Setup paketne
ADD A, # 0FEh
JZ L015F; ako wValueH je 0x02 Skoči na 0x015F
A DEC
JZ L0190; wValueH ako je 0x03 Skoči na 0x0190
ADD A, # 02h
JZ L0150; wValueH ako je 0x01 Skoči na 0x0150
LJMP L0279; wValueh ako se razlikuje od bilo 0x01 ili 0x02 ili 0x03 zatim postavite
; bitova HSNAK i EP0STALL od EP0CS registrirati i močiti u 0x05FD
;
L0150: MOV A, 0Ch; wValueH ovdje jer je 0x01, pa opterećenje SUDPTR globalne USB registrirati
MOV DPTR, # L7FD4; s 0x0C0D vrijednost, a zatim postavite HSNAK zalogaj od EP0CS i močiti u 0x05FD
MOVX @ DPTR, A
MOV A, 0Dh
MOV DPTR, # L7FD5
MOVX @ DPTR, A
LJMP L03EE
L015F: MOV DPTR, # L7FEA; izgledaju sada na području wValueL USB Setup paketne
;
;
;
;
i tako dalje ...................


port2: Microchip MPLAB ICD2 Fw client Ili ovaj lookup table at offset 0x0622 koji odgovaraju Kripton2035 port2: Microchip MPLAB ICD2 FW klijenta


Code:

Tablica 5-9. Default USB Device deskriptor

RAM Vrijednost Offset Opis polja

0622 0x12 0 bLength Dužina ovog deskriptor = 18 bytes
0623 0x01 1 bDescriptorType = opisnik Tip Uređaja
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 je-Vendor Specific)
0627 0xFF 5 bDeviceSubClass Device Pod-Class (FF je-Vendor Specific)
0628 0xFF 6 bDeviceProtocol Device Protocol (FF je prodavač-Specific)
0629 0x40 7 bMaxPacketSize0 najveći dopušteni obujam paketa za EP0 = 64 bytes
062A 0xD8 8 idVendor (L) Vendor ID (L) = Microchip Technology 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) Uređaj Izdanje Broj (BCD, L)
062F 0x00 13 bcdDevice (H) Uređaj Izdanje Broj (BCD, H)
0630 0x00 14 iManufacturer Proizvođač Index String = None
0631 0x00 15 iProduct Product Index String = None
0632 0x00 16 iSerialNumber Serijski Broj Index String = None
0633 0x01 17 bNumConfigurations Broj Konfiguracije u ovom Interface = 1

Tablica 5-10. USB Configuration Default deskriptor

RAM Vrijednost Offset Opis polja

0634 0x09 0 bLength Dužina ovog deskriptor = 9 bajtova
0635 0x02 1 bDescriptorType deskriptor type = Configuration
0636 0x74 2 wTotalLength (L) Ukupna dužina (L) uključujući i sučelja za vršne točke deskriptore = 116
0637 0x00 3 wTotalLength (H) Ukupna dužina (H)
0638 0x01 4 bNumInterfaces Broj sučelja u ovoj konfiguraciji
0639 0x01 5 bConfigurationValue konfiguraciju vrijednost koristi Set_Configuration Zahtjev za Odaberite ovu konfiguraciju
063A 0x00 6 iConfiguration Indeks Gudački Opisujući ovu konfiguraciju = None
063B 0x80 7 bmAttributes Attributes - Bus-Powered Ne Wakeup
063C 0x4B 8 MaxPower najveću snagu - 150 mA

Tablica 5-11. USB Interface Default 0, Alternate Namjeątanje 0 deskriptor

RAM Vrijednost Offset Opis polja

063D 0x09 0 bLength Dužina međupovršini deskriptor
063E 0x04 1 bDescriptorType deskriptor Interface Type =
063F 0x00 2 bInterfaceNumber Zero-based Index of this Interface = 0
0640 0x00 3 bAlternateSetting Alternate Namjeątanje Value = 0
0641 0x0E 4 bNumEndpoints Broj Endpoints u ovom Interface (ne računajući EPO) = 14
0642 0xFF 5 bInterfaceClass Interface Klasa = Vendor Specific
0643 0xFF 6 bInterfaceSubClass Interface Pod-class = Vendor Specific
0644 0xFF 7 bInterfaceProtocol Protocol Interface = Vendor Specific
0645 0x00 8 iInterface Index u Gudački deskriptor za ovo sučelje = None

Tablica 5-14. Default Interface 0, Alternate Namjeątanje 1, Bulk deskriptore krajnje priključne točke

RAM Vrijednost Offset Opis polja

0646 0x07 0 bLength dužina ove vršne točke deskriptor
0647 0x05 1 bDescriptor Tip deskriptor type = krajnje priključne točke
0648 0x01 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = OUT1
0649 0x02 3 bmAttributes XFR = Type Bulk
064A 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
064B 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
064C 0x01 6 biračkih bInterval Interval u milisekundi

064D 0x07 0 bLength dužina ove vršne točke deskriptor
064E 0x05 1 bDescriptor Tip deskriptor type = krajnje priključne točke
064F 0x02 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = OUT2
0650 0x02 3 bmAttributes XFR = Type Bulk
0651 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
0652 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
0653 0x01 6 biračkih bInterval Interval u milisekundi

0654 0x07 0 bLength dužina ove vršne točke deskriptor
0655 0x05 1 bDescriptor Tip deskriptor type = krajnje priključne točke
0656 0x03 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = OUT3
0657 0x02 3 bmAttributes XFR = Type Bulk
0658 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
0659 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
065A 0x01 6 biračkih bInterval Interval u milisekundi

065B 0x07 0 bLength dužina ove vršne točke deskriptor
065C 0x05 1 bDescriptor deskriptor Type = Tip krajnje priključne točke
065D 0x04 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = OUT4
065E 0x02 3 bmAttributes XFR = Type Bulk
065F 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
0660 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
0661 0x01 6 biračkih bInterval Interval u milisekundi

0662 0x07 0 bLength dužina ove vršne točke deskriptor
0663 0x05 1 bDescriptor Tip deskriptor type = krajnje priključne točke
0664 0x05 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = OUT5
0665 0x02 3 bmAttributes XFR = Type Bulk
0666 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
0667 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
0668 0x01 6 biračkih bInterval Interval u milisekundi

0669 0x07 0 bLength dužina ove vršne točke deskriptor
066A 0x05 1 bDescriptor Tip deskriptor type = krajnje priključne točke
066B 0x06 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = OUT6
066C 0x02 3 bmAttributes XFR = Type Bulk
066D 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
066E 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
066F 0x01 6 biračkih bInterval Interval u milisekundi

0670 0x07 0 bLength dužina ove vršne točke deskriptor
0671 0x05 1 bDescriptor Tip deskriptor type = krajnje priključne točke
0672 0x07 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = OUT7
0673 0x02 3 bmAttributes XFR = Type Bulk
0674 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
0675 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
0676 0x01 6 biračkih bInterval Interval u milisekundi

RAM Vrijednost Offset Opis polja

0677 0x07 0 bLength dužina ove vršne točke deskriptor
0678 0x05 1 bDescriptor Tip deskriptor type = krajnje priključne točke
0679 0x81 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = IN1
067A 0x02 3 bmAttributes XFR = Type Bulk
067B 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
067C 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
067D 0x01 6 biračkih bInterval Interval u milisekundi

067E 0x07 0 bLength dužina ove vršne točke deskriptor
067F 0x05 1 bDescriptor Vrsta deskriptor type = krajnje priključne točke
0680 0x82 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = IN2
0681 0x02 3 bmAttributes XFR = Type Bulk
0682 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
0683 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
0684 0x01 6 biračkih bInterval Interval u milisekundi

0685 0x07 0 bLength dužina ove vršne točke deskriptor
0686 0x05 1 bDescriptor Tip deskriptor type = krajnje priključne točke
0687 0x83 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = IN3
0688 0x02 3 bmAttributes XFR = Type Bulk
0689 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
068A 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
068B 0x01 6 biračkih bInterval Interval u milisekundi

068C 0x07 0 bLength dužina ove vršne točke deskriptor
068D 0x05 1 bDescriptor deskriptor Type = Tip krajnje priključne točke
068E 0x84 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = IN4
068F 0x02 3 bmAttributes XFR = Type Bulk
0690 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
0691 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
0692 0x01 6 biračkih bInterval Interval u milisekundi

0693 0x07 0 bLength dužina ove vršne točke deskriptor
0694 0x05 1 bDescriptor Tip deskriptor type = krajnje priključne točke
0695 0x85 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = IN5
0696 0x02 3 bmAttributes XFR = Type Bulk
0697 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
0698 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
0699 0x01 6 biračkih bInterval Interval u milisekundi

069A 0x07 0 bLength dužina ove vršne točke deskriptor
069B 0x05 1 bDescriptor Tip deskriptor type = krajnje priključne točke
069C 0x86 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = IN6
069D 0x02 3 bmAttributes XFR = Type Bulk
069E 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
069F 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
06A0 0x01 6 biračkih bInterval Interval u milisekundi

06A1 0x07 0 bLength dužina ove vršne točke deskriptor
06A2 0x05  1 bDescriptor        Type Descriptor Type = Endpoint
06A3 0x87 2 bEndpointAddress Direkcija za vršne točke (1 se nalazi u) i poštanski broj = IN7
06A4 0x02 3 bmAttributes XFR = Type Bulk
06A5 0x40 4 wMaxPacketSize (L) najveći dopušteni obujam paketa = 64 Bytes
06A6 0x00 5 wMaxPacketSize (H) maksimalna veličina paketa - Visoka
06A7 0x01 6 biračkih bInterval Interval u milisekundi

koji se potom slijede Unicode oblik nula završila string
"Microchip Technology ICD2 USB Device"



Međutim ako se zaglavi sa 4550 bin, mogu pokušati pomoći dodavanjem komentari u CY asm file.
Povratak na vrh
Zedman



Joined: 13. listopad 2003
Postovi: 294
Pomogao: 2


Post 03 tra 2006 17:10 Re: Projekt za zamjenu CY7C64613 u ICD2
tags: icd2.dll

Poštovanje Silvio,

hvala za jedan dan informacije, davno sam morao parsati bin datoteke koje dolaze iz jedne eprom chip. Nisam čak ni procesor ni tip spoja. Ali sam morala naći način da se bavi memorijsku karticu, i to podatke.
JA pretpostaviti to je 8051 i vrstu čipa pokušali puno disassemblers, a završio je sa 80C542 (ja licemjerje sjećati koje je točno) I figured it out iz luke brojevima i kako se broj bavi pojedinačnim luci igle.
Ali, to je 2 tjedna i danju i noću rade Neutralno za mene, dosta čitanja / debugging / učenja.
Zato sam htjela jedan asembler što je sposoban učiniti stvari koje se spominju umjesto mene ... Very Happy
Hvala opet Silvio.

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

Zatim počinje vjerovati svima vama, prema bin datoteka. Nisam istraživanja u ICD2 dll i saznali da se pozivi GETUSBDESCRIPTOR i provjerava brojeve u opisnik i ako to odgovara ICD2 noviju verziju nego ja potpisan u moje 4550's deskriptor nego li send4550image pozivu!
I također postoje deskriptore u bin datoteke identičan onom Kripton učitali.
Neki predmet JA dont 'shvatiti zašto je učinio da oni dobili boot image?
A zašto ICD2.dll pokušava preuzeti ovu datoteku? Ako sam se kući, ja ću pokušati podesiti moje deskriptore da odgovara jednoj sam našla u bin te da će pokušati MPLAB on.

Mislim da se približava! Hladno

Added nakon 46 minuta:

I tu je čarobna stvar u prvom btyes of boot bin: MCHP (MiCrocHiP?)
Tražili smo ga, ako je kasnije (nakon opterećenja) te zamjenjuje sa stvarnim ulaznu GOTO ili st, no u ICD2.dll ne.

Added nakon 3 sata 34 minuta:

Look at this:

Ja sam ono što sam rekao prije, samo postavite broj verzije na noviju ga očekuje i MPLAB pokušava poslati OS! (Naravno moje FW nije boot loader)

Code:

MPLAB ICD 2 Ready
Spajanje na MPLAB ICD 2
ICD0289: Ne može se re-program ICD2 USB OS firmveru.
ICD0021: Ne može se povezati s MPLAB ICD 2
MPLAB ICD 2 Ready


Nekako boot loader trebali raditi, ja ću pokušati nešto učiniti noću.
Povratak na vrh
narccizzo



Pristupio / la: 20 siječanj 2006
Postovi: 173
Pomogao: 4
Lokacija: PATZCUARO, Michoacán, Mexico


Post 03 tra 2006 18:43 projekta za zamjenu CY7C64613 u ICD2

Hi JaySlovak
Ne, ne Im siguran, samo sam otvorila kanta i spremiti ga u heksadecimalna formatu. Tužan
Povratak na vrh
Jay.slovak



Pristupio / la: 23 ožujak 2006
Postovi: 11


Post 03 tra 2006 20:45 Re: Projekt za zamjenu CY7C64613 u ICD2

narccizzo wrote:
Hi JaySlovak
Ne, ne Im siguran, samo sam otvorila kanta i spremiti ga u heksadecimalna formatu. Tužan


Yep, to je čudno, kao string je čitati, samo kod ne radi ništa Tužan
Povratak na vrh
Zedman



Joined: 13. listopad 2003
Postovi: 294
Pomogao: 2


Post 03 tra 2006 22:25 Re: Projekt za zamjenu CY7C64613 u ICD2
tags: icd2.dll

Dobre vijesti nakon 2 sata debugging,

ICD2.dll ne koristite obje bin datoteka. OS datoteku želi biti preuzeti samo s novim proizvodom ICD2s serijski broj.
Ali kad modificirati verzija id u filename of OS.bin da * _FFFF.bin nego što počne da provjerite bootloader verziju izgled:

Code:

Spajanje na MPLAB ICD 2
ICDWarn0062: USB Boot firmware od ICD2 je aktivna i pružanje komunikacije s ICD2. Ovaj firmware je zastario i treba biti ažuriran. To ne može biti ažurirana, a aktivna. Međutim, ti svibanj nastaviti raditi sa sadašnjom boot firmware ako ste izabrali da to učinite. Želite li nastaviti?


Ako sam pritisnite YES ovdje nego pokušava se povezati s ICD2 sebe, i freezes (imam samo instalirane još 4550).
Ako sam pritisnite NO od čini se pokušava update, ali to nam je potrebno ovdje bootloader poput ove, tako da je ova poruka se pojavljuje:

Code:

ICD0288: Ne može se re-program ICD2 USB Boot firmware.
ICD0021: Ne može se povezati s MPLAB ICD 2
MPLAB ICD 2 Ready


Ok dečki, mislim mislim mislim kako možemo koristiti da kanta za dobijanje radne bootloader u 4550!

Added nakon 2 minute:

Također sam kompilirane uzorku bootloader s točnim VID / PID, ali je dobio iste rezultate kao i sa mojim 4550.

Added nakon 16 minuta:

To može biti, da ne možemo dobiti početne inicijalne početnom:) dio je bootloader koji učitava prva bootloader koji učitava os ...

Added nakon 5 minuta:

Ovo je vrijeme kada bi trebali rkodaira za 4550 izvatkom njegov 0 bootloader razini. (s velikom nadom da nije zaštićen ...)

Rkodaira TREBA LI NAM Osmjeh
Povratak na vrh
albert22



Joined: 20. srpnja 2004
Postovi: 95
Pomogao: 3


Post 03 tra 2006 22:46 Re: Projekt za zamjenu CY7C64613 u ICD2

Ja sam bio jedan analiziranje ispis da sam sa mnom u BL010101. i naći neke stvari.
Čini se da prihvate 5 naredbe dolaze bilo iz PSP ili USART.
0x55 Execute broj počevši od 0x0010.
0x56 Opterećenje heksadecimalna (ovo izgleda kao da ima više subcommands)
0x5a šalje podatke 0x01 0x01 0x03 (verzija od BL??)
Druge dvije naredbe samo uključivanje Greška i prometnu Leds i smrzne u inffinite petlja.

Sljedeće rutine su vezane uz ono što sam naziva "load heksadecimalna" naredbu:

U drugom rutinske BL šalje sljedeće string 0x5b "0810C9", 0x5d
Ostali embeded šalje odgovore na sljedeća string 0x5b ", 0A000", U, 0x31, U, 0x5d. (gdje je U Čini se da je 0x31, 0x34, 0x36 i 0x37).

JA nije imati mnogo vremena da se nastavi s analizom. Ja ne vidjeh USB monitoringa koje su postavljene jer Im na cyber. Ali mislim da ovi podaci trebaju biti pakiran u USB komunikaciju
Povratak na vrh
Zedman



Joined: 13. listopad 2003
Postovi: 294
Pomogao: 2


Post 03 tra 2006 23:30 projekta za zamjenu CY7C64613 u ICD2

Albert,

JA ček serijski comm versus USB, USB koristi omot kroz serijski stvar.
Čini se koristi za kontrolu EP1 port (to je OUT i IN), kao i podatke EP2 luku, samo u (icd-> PC).
Povratak na vrh
albert22



Joined: 20. srpnja 2004
Postovi: 95
Pomogao: 3


Post 05. travanj 2006 6:39 Re: Projekt za zamjenu CY7C64613 u ICD2

Evo moje predujmova s BL
Nije bilo takvih subcommands. Opterećenja heksadecimalna naredbu samo uzima heksadecimalna evidencije i zapisuje podatke u program memory 2 byte odjednom. Ona provjerava različite greške uključujući raspon adresa. Ap. kako bi se izbjeglo koračni u BL program. To potvrđuje da je rezident BL je uvijek na 877.
The [0A000 ", U, 0x31, U]. (2. U je prvi U 1) je vjerojatno da se vidi jer je izvješće o pogrešci. Greške uključuju: Loše format, provjerava, loše adresa EEPROM-a range pisati greška .
Rutinske čeka 16 znakova počevši s 0x3c ('<') i zaključno sa 0x3e ('>'). 16 znakova ovaj header sadržavati adresu, dužina i ispitni zbroj za podatke biti napisan u ASCII.
Ako je ispravan header Ap. BL odgovore s "[0810C9]"
Podaci cames nakon 0x7b
Ovaj format čini se da je drugačiji od Intel heksadecimalna formatu.

Zedman.
Svibanj vam biti priznata nešto poput ovog u RS232
Sutra će mi biti u mojoj kući i mogu instalirati hdd provjeriti logove i vidjeti ako ja mogu biti od bilo kakve pomoći.
Povratak na vrh
Zedman



Joined: 13. listopad 2003
Postovi: 294
Pomogao: 2


Post 05 tra 2006 12:17 Re: Projekt za zamjenu CY7C64613 u ICD2
tags: mplab protokol icd2 icd2.dll icd2w2k.sys mplbcomm.dll

Ja sam zaglavi sa USB ovu stvar. A ja sam tužna.

Ne znam što učiniti sljedeći. Provela sam dosta vremena za ispravljanje pogrešaka u icd2.dll.

Problem je: ne mogu slati ni jedan bajt natrag na MPLAB.

Ja ću objasniti što sam do sada, iako nitko nije zaista zainteresirani (samo želim dočepati gotovog stvar). (Osim: Albert, Kripton, rkodaira, Silvio i dečki na ovom thread)

Dakle, MPLAB komunicira s ICD2 na ovaj način:

[MPLAB -> ICD2.dll -> MPLBCOMM.dll -> icd2w2k.sys ->] --- [ICD2 uređaja]

Ako odaberete USB tip veze upitat će Vas uređaj opisnik iz ICD2 i čekove za proizvod verzija riječ, ako je ona 0x0003, nego što je čempres temelji ICD2, ako je ona 0x0010, nego što je 4550 baziran jedan. Ako 0x0010 naći ono što kaže, nego što sam prije toga objavljeno u OS ICD2 moraju biti unaprijeđeni. To je interesantno da ako verziju (0100), u ime datoteke u OS.bin je izmijenjeni to FFFF nego preskače ovaj korak i provjerava bootloader verziju. Ovdje sam da patch ICD2.dll da ga pokušati da provjerite verziju datoteke BL.bin previše, to je čak i hardcoded koji je postavljen na to FFFF navika pokušate nadograditi, to je razlog zašto sam ga patched (set hardcoded FFFF na niže), pa sad kaže što sam prije previše mentoined: BL verzija je prestar, ali ne može se nadogradit dok je aktivna.

Ok. JA je napravio malu hrana iz uzorka bootloader, s točnim opisima i težak to komunicirati sa MPLAB u cilju decrypt protokola i to natjecati BL u novoj 4550 ICD2.
Kripton ICD2 da koristi, (čempresi verzija) postavlja 7 OUT / IN Endpoints, ali prema zapisnicima ona koristi samo za EP1 IN / OUT i EP2 u. (OUT znači PC-> Device)
Čini ga šalje usb specifične naredbe i podatke preko EP1 van i natrag na EP1, i šalje bytes readed iz ICD2's 877 putem zasebne vršne točke EP2 u.

Kada MPLAB pokušava poslati th OS.bin da nadogradite FW os ga izdaje getUSBdescriptor poziv na kernel driver, i šalje jedan 0x12 bytes dugo koristeći naredbu DeviceIOControl naredbu. Ja debugged, to uspješno stigne do 4550.
Nego MPLAB izdaje GetStatus poziv, a čini se iz poziva na parametre koji ga očekuje 0x08 bytes podataka leđa.
JA postaviti moj buffer sa 8 bytes, i podesite na Sie vlasništva. Ali to nikada ne šalje da 8 byte leđa (ne pojavljuju u USBMon). Samo čeka.
Tu se može mnogo toga.
Možda mi je činiti st u redu sa setup od 4550, ali sam ga s drugom progs i radi, možete poslati bytes nazad.
Znam domaćin mora poslati i na naredbu neka uređaj poslati u ono što želi.
Ali kada sam debugged MBLBCOMM, vidjela sam da je DeviceIOControl naredba nije uspjela!
I tought da možda neki obaveštajnih sagrađena u. Sys file a kapi paketu jer to nije u redu sadržaja, ali mislim da bi trebao biti viši nivo zadatak.
Kad sam da ću stići kući provjeriti Getlasterror's vrijednost.


Svatko ima neke ideje kako mogu vidjeti ako postoji bio je u paket poslala, ili kako se mogu nositi na?
Povratak na vrh
Kripton2035



Joined: 19. srpnja 2001
Postovi: 482
Pomogao: 15
Lokacija: Earth


Post 05 tra 2006 16:59 projekta za zamjenu CY7C64613 u ICD2

svibanj se trebali povezati u 877 PSP port za 4550 vidjeti što dolazi, te program za 877 sa bootloader smo? svibanj biti bytes Vas čeka dolaze iz EP2 i tako da je 877?

Želite li mi poslati još jednu log datoteku od precizne stanje? na putu je da li je potrebna rokaida se prijavite sa svojim 4550 icd2 ..

PS: Nisam zainteresiran za taj projekt .. Osmjeh Ja sam samo znatiželjan! Već imam usb icd2! Osmjeh
Povratak na vrh
Zedman



Joined: 13. listopad 2003
Postovi: 294
Pomogao: 2


Post 05 tra 2006 20:08 projekta za zamjenu CY7C64613 u ICD2

Hvala Kripton,

Obavijestit ću vas kad mi je potrebno više dump Osmjeh To je malo složeniji od pukog prolaze bytes do 877 i nazad, ima omot protokol o njoj.
Ono što je rekao je bila vrlo korisna, ali rkodeira njegova navika sacrify potpuno novi ICD2 ... Osmjeh Ako on bi, nego s izvatkom samog OS update proces bi definirao protokol dobro ...
Povratak na vrh
Kripton2035



Joined: 19. srpnja 2001
Postovi: 482
Pomogao: 15
Lokacija: Earth


Post 05 tra 2006 22:09 projekta za zamjenu CY7C64613 u ICD2

JA dont misliti i on treba da sacrify njegov icd2! samo neke s snuždenost usbmon kao ja .. izgledno je i dalje moj icd2 rade!
Povratak na vrh
albert22



Joined: 20. srpnja 2004
Postovi: 95
Pomogao: 3


Post 05 tra 2006 22:16 Re: Projekt za zamjenu CY7C64613 u ICD2
tags: icd2 naredbu load heksadecimalna

Ne mogu instalirati HHD monitoru da vidi logove jer sam w98 ima samo kod kuće.
Mogu li izvesti izvatkom iz OS preuzimanje u. Txt, za mene?
-------
Kako CY presloži na 877?
Postoji signal (pin 43) na bazu Q1 Collector čije je MCLR. Ali to ide na konektor zove PROG. I sada shvatiti da ovaj signal bi trebao ići na 877 previše.
Mi bi trebao znati što je USB naredbu presloži 877. Svibanj se da je na jednom od kontrole endpoints?
Ja dont znati što je funkcija tog PROG konektor. no extra endpoints svibanj se odnose na njega.
----------
Jedan od OS učita na ICD2 čini se da je: ICD01020405.hex sam pokušao disassemby ga ali ne mogu dobiti rastavljanja smeniti heksadecimalna adrese s imenom na registrima. Proći će više vremena za shvatiti kako to radi.
Zanimljiva činjenica je da kod počinje u 0x0010. Zapamtite da je BL pozivi ovu adresu s izvršiti naredbu.

BL verzija mplab izvijestio je 01.01.01.00 ovaj ide sasvim dobro sa BL naredbu koja odgovore 01,01,01,03
---------
Nema DPot (MCP41xxxx) u brazilskim ICD. Kako one set Vpp?
Većina od klonovi imaju fiksne Vpp. Da li to znači da će Brazilac ICD je samo klon nisku cijenu, a ne nove ICD2? JA dont misliti taj microchip otišao na određeno vpp. Ako postoje druge metode kontrole vpp, osim da će to trebati DPot firmware promjene u ICD OS. Stari OS ne rade na novim. To svibanj biti uzrok da je DLL provjere verzije.
Povratak na vrh
Zedman



Joined: 13. listopad 2003
Postovi: 294
Pomogao: 2


Post 05 tra 2006 22:32 projekta za zamjenu CY7C64613 u ICD2
tags: mplab protokol icd2 icd2w2k.sys icd2w2k download 4550 bootloader pisati icd2w2k.sys Download Download icd2w2k

Ne mislim da treba da se bave bilo što vezano za sklop ili protokolom ili vezu između 877 i 4550 još. Mislim da je sve što trebate je zapisano u 4550 bins isporučuje sa MPLAB.
Mi bi trebali napisati bootloader kompatibilan s icd2w2k.sys da dobijete OS.bin preuzeli, a nakon toga možemo scracth naših glava kako 877 je povezan.

Added nakon 5 minuta:

U ICD2br koristi druga vrsta čip koji generira se Vpp. Rkodaira mentoined, provjerite postova prije.
Povratak na vrh
Silvio



Pristupio / la: 31 prosinac 2001
Postovi: 800
Pomogao: 90


Post 06. travanj 2006 2:36 Re: Projekt za zamjenu CY7C64613 u 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